diff --git a/asm/include/overlay_02.inc b/asm/include/overlay_02.inc index 746b7da3..f8038ac1 100644 --- a/asm/include/overlay_02.inc +++ b/asm/include/overlay_02.inc @@ -250,3 +250,10 @@ .public sub_02079B14 .public sub_020827F4 .public sub_020819EC +.public ov02_0233C114 +.public sub_0207CD44 +.public ov00_022CEF10 +.public sub_02079DE0 +.public ov00_022D4B88 +.public ov00_022CF8F8 +.public Strcpy diff --git a/asm/overlay_02.s b/asm/overlay_02.s index fb3618d7..f4be8b77 100644 --- a/asm/overlay_02.s +++ b/asm/overlay_02.s @@ -965,11 +965,11 @@ ov02_0232A0F4: ; 0x0232A0F4 mov r0, r1 mov r1, r4 bl ov02_0232BA74 - ldr r0, _0232A114 ; =0x0232BD04 + ldr r0, _0232A114 ; =ov02_0232BD04 str r0, [r4, #4] ldmia sp!, {r4, pc} .align 2, 0 -_0232A114: .word 0x0232BD04 +_0232A114: .word ov02_0232BD04 arm_func_end ov02_0232A0F4 arm_func_start ov02_0232A118 @@ -1221,7 +1221,8 @@ _0232A40C: str r6, [sp, #0x24] b _0232A380 _0232A450: - .byte 0xF0, 0x87, 0xBD, 0xE8 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 _0232A454: .word 0x0234FBF8 arm_func_end ov02_0232A360 @@ -2990,9 +2991,15 @@ _0232BCF4: and r0, r2, r1, asr r0 ldmia sp!, {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_0232BD04 +ov02_0232BD04: ; 0x0232BD04 + ldr r1, [r0] + ldrh r2, [r1], #2 + str r1, [r0] + mov r0, r2 + bx lr + arm_func_end ov02_0232BD04 arm_func_start ov02_0232BD18 ov02_0232BD18: ; 0x0232BD18 @@ -3008,7 +3015,7 @@ ov02_0232BD18: ; 0x0232BD18 ldr r1, _0232BD8C ; =0x023544E0 mov r2, #0 str r0, [r1, #0x10] - ldr r0, _0232BD94 ; =0x0232BE08 + ldr r0, _0232BD94 ; =ov02_0232BE08 str r2, [r1, #0x14] str r0, [r1, #0x1c] ldr r0, _0232BD98 ; =0x023544F0 @@ -3028,14 +3035,27 @@ ov02_0232BD18: ; 0x0232BD18 .align 2, 0 _0232BD8C: .word 0x023544E0 _0232BD90: .word ov02_0232BDD0 -_0232BD94: .word 0x0232BE08 +_0232BD94: .word ov02_0232BE08 _0232BD98: .word 0x023544F0 _0232BD9C: .word 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_0232BDA0 +ov02_0232BDA0: ; 0x0232BDA0 + stmdb sp!, {r4, lr} + mov r4, #0 +_0232BDA8: + mov r0, r4 + bl sub_0207CD44 + cmp r0, #0 + bne _0232BDA8 + bl ov02_0232C0EC + bl ov02_0232C864 + bl ov02_0232D990 + mov r0, #0 + bl sub_0207CF14 + ldmia sp!, {r4, pc} + arm_func_end ov02_0232BDA0 arm_func_start ov02_0232BDD0 ov02_0232BDD0: ; 0x0232BDD0 @@ -3054,9 +3074,14 @@ ov02_0232BDD0: ; 0x0232BDD0 bl sub_0207D0D0 ldmia sp!, {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_0232BE08 +ov02_0232BE08: ; 0x0232BE08 + ldr ip, _0232BE10 ; =ov02_0232CA3C + bx ip + .align 2, 0 +_0232BE10: .word ov02_0232CA3C + arm_func_end ov02_0232BE08 arm_func_start ov02_0232BE14 ov02_0232BE14: ; 0x0232BE14 @@ -4056,16 +4081,44 @@ ov02_0232C9DC: ; 0x0232C9DC _0232CA34: .word 0x02357294 _0232CA38: .word 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_0232CA3C +ov02_0232CA3C: ; 0x0232CA3C + stmdb sp!, {r4, lr} + ldr r0, _0232CAB8 ; =0x02357294 + ldr r4, _0232CABC ; =0x023572DC + ldr r0, [r0, #0x48] + cmp r0, #0 + ldmeqia sp!, {r4, pc} + ldr r1, [r4, #0xc] + mov r0, #0 + ldr r2, [r4, #0x14] + str r0, [r4, #0x1c] + bl sub_0207C314 + ldr r1, [r4, #0x10] + ldr r2, [r4, #0x14] + mov r0, #0 + bl sub_0207C314 + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x14] + bl sub_0207A2DC + ldr r0, [r4, #0x10] + ldr r1, [r4, #0x14] + bl sub_0207A2DC + ldr r1, [r4, #0x2c] + mov r3, #0 + cmp r1, #0 + movge r0, #1 + movge r2, r0, lsl r1 + ldr r0, [r4, #0x24] + ldr r1, [r4, #0x28] + movlt r2, #0 + bl sub_0207C8B8 + ldmia sp!, {r4, pc} + .align 2, 0 +_0232CAB8: .word 0x02357294 +_0232CABC: .word 0x023572DC + arm_func_end ov02_0232CA3C arm_func_start ov02_0232CAC0 ov02_0232CAC0: ; 0x0232CAC0 @@ -9603,10 +9656,35 @@ ov02_0232FCF8: ; 0x0232FCF8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end ov02_0232FCF8 -_0232FD28: - .byte 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 + + thumb_func_start ov02_0232FD28 +ov02_0232FD28: ; 0x0232FD28 + push {r3, lr} + cmp r1, #0 + ble _0232FD38 + add r0, r1, #0 + ldr r1, _0232FD3C ; =0x02359320 + ldr r1, [r1] + blx r1 + pop {r3, pc} +_0232FD38: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0232FD3C: .word 0x02359320 + thumb_func_end ov02_0232FD28 + + thumb_func_start ov02_0232FD40 +ov02_0232FD40: ; 0x0232FD40 + push {r3, lr} + add r0, r1, #0 + ldr r1, _0232FD4C ; =0x0235932C + ldr r1, [r1] + blx r1 + pop {r3, pc} + .align 2, 0 +_0232FD4C: .word 0x0235932C + thumb_func_end ov02_0232FD40 thumb_func_start ov02_0232FD50 ov02_0232FD50: ; 0x0232FD50 @@ -10094,10 +10172,30 @@ ov02_02330068: ; 0x02330068 .align 2, 0 _02330074: .word ov02_0232FFB8 + 1 thumb_func_end ov02_02330068 -_02330078: - .byte 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_02330078 +ov02_02330078: ; 0x02330078 + ldr r3, _02330084 ; =sub_02079DE0 + add r1, r0, #0 + ldr r0, _02330088 ; =0x02359340 + mov r2, #0 + bx r3 + nop +_02330084: .word sub_02079DE0 +_02330088: .word 0x02359340 + thumb_func_end ov02_02330078 + + thumb_func_start ov02_0233008C +ov02_0233008C: ; 0x0233008C + ldr r3, _02330098 ; =sub_02079DE0 + add r1, r0, #0 + ldr r0, _0233009C ; =0x02359340 + mov r2, #0 + bx r3 + nop +_02330098: .word sub_02079DE0 +_0233009C: .word 0x02359340 + thumb_func_end ov02_0233008C thumb_func_start ov02_023300A0 ov02_023300A0: ; 0x023300A0 @@ -10771,51 +10869,379 @@ _02330590: .align 2, 0 _02330594: .word 0x02359320 thumb_func_end ov02_02330584 -_02330598: - .byte 0x08, 0xB5, 0x00, 0x28, 0x00, 0xD1, 0x53, 0xE1 - .byte 0x00, 0x21, 0x42, 0x5E, 0x07, 0x2A, 0x00, 0xD9, 0x47, 0xE1, 0x92, 0x18, 0x7A, 0x44, 0xD2, 0x88 - .byte 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x82, 0x02, 0x0E, 0x00, 0x36, 0x02, 0x8E, 0x00, 0xF2, 0x00 - .byte 0xC0, 0x00, 0x92, 0x01, 0x6E, 0x02, 0x02, 0x22, 0x80, 0x5E, 0x00, 0x28, 0x31, 0xD1, 0x9F, 0x4A - .byte 0x90, 0x69, 0x04, 0x28, 0x07, 0xD1, 0x03, 0x20, 0x90, 0x61, 0xD2, 0x69, 0x00, 0x2A, 0x2E, 0xD0 - .byte 0x06, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x06, 0x28, 0x10, 0xD1, 0x10, 0x69, 0x51, 0x69, 0x52, 0x68 - .byte 0xA4, 0xF7, 0x70, 0xEC, 0x03, 0x28, 0x22, 0xD0, 0x94, 0x48, 0x03, 0x21, 0x81, 0x61, 0xC2, 0x69 - .byte 0x00, 0x2A, 0x1C, 0xD0, 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 + + thumb_func_start ov02_02330598 +ov02_02330598: ; 0x02330598 + push {r3, lr} + cmp r0, #0 + bne _023305A0 + b _02330848 +_023305A0: + mov r1, #0 + ldrsh r2, [r0, r1] + cmp r2, #7 + bls _023305AA + b _0233083A +_023305AA: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_023305B6: ; jump table + .hword _0233083A - _023305B6 - 2 ; case 0 + .hword _023305C6 - _023305B6 - 2 ; case 1 + .hword _023307EE - _023305B6 - 2 ; case 2 + .hword _02330646 - _023305B6 - 2 ; case 3 + .hword _023306AA - _023305B6 - 2 ; case 4 + .hword _02330678 - _023305B6 - 2 ; case 5 + .hword _0233074A - _023305B6 - 2 ; case 6 + .hword _02330826 - _023305B6 - 2 ; case 7 +_023305C6: + mov r2, #2 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _02330632 + ldr r2, _0233084C ; =0x02359480 + ldr r0, [r2, #0x18] + cmp r0, #4 + bne _023305E6 + mov r0, #3 + str r0, [r2, #0x18] + ldr r2, [r2, #0x1c] + cmp r2, #0 + beq _0233063E + mov r0, #6 + blx r2 + pop {r3, pc} +_023305E6: + cmp r0, #6 + bne _0233060C + ldr r0, [r2, #0x10] + ldr r1, [r2, #0x14] + ldr r2, [r2, #4] + blx ov00_022D4ED4 + cmp r0, #3 + beq _0233063E + ldr r0, _0233084C ; =0x02359480 + mov r1, #3 + str r1, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _0233063E + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_0233060C: + cmp r0, #8 + bne _0233063E + ldr r0, [r2, #0x20] + ldr r1, [r2, #0x24] + ldr r2, [r2, #0xc] + blx ov00_022D5110 + cmp r0, #3 + beq _0233063E + ldr r0, _0233084C ; =0x02359480 + mov r1, #3 + str r1, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _0233063E + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_02330632: + ldr r0, _0233084C ; =0x02359480 + mov r3, #1 + str r3, [r0, #0x18] + ldr r3, [r0, #0x1c] + cmp r3, #0 + bne _02330640 +_0233063E: + b _02330848 +_02330640: + add r0, r2, #0 + blx r3 + pop {r3, pc} +_02330646: + mov r2, #2 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _02330666 + ldr r0, _0233084C ; =0x02359480 + ldr r2, [r0, #0x18] + cmp r2, #6 + bne _02330742 + mov r2, #5 + str r2, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _02330742 + mov r0, #8 + blx r2 + pop {r3, pc} +_02330666: + ldr r0, _0233084C ; =0x02359480 + mov r2, #3 + str r2, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _02330742 + mov r0, #9 + blx r2 + pop {r3, pc} +_02330678: + mov r2, #2 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _02330698 + ldr r0, _0233084C ; =0x02359480 + ldr r2, [r0, #0x18] + cmp r2, #8 + bne _02330742 + mov r2, #7 + str r2, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _02330742 + mov r0, #0xc + blx r2 + pop {r3, pc} +_02330698: + ldr r0, _0233084C ; =0x02359480 + mov r2, #3 + str r2, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _02330742 + mov r0, #0xd + blx r2 + pop {r3, pc} +_023306AA: + mov r2, #2 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _02330736 + ldr r2, _0233084C ; =0x02359480 + ldr r0, [r2, #0x18] + cmp r0, #4 + bne _023306CA + mov r0, #3 + str r0, [r2, #0x18] + ldr r2, [r2, #0x1c] + cmp r2, #0 + beq _02330742 + mov r0, #0xa + blx r2 + pop {r3, pc} +_023306CA: + cmp r0, #6 + bne _023306F0 + ldr r0, [r2, #0x10] + ldr r1, [r2, #0x14] + ldr r2, [r2, #4] + blx ov00_022D4ED4 + cmp r0, #3 + beq _02330742 + ldr r0, _0233084C ; =0x02359480 + mov r1, #3 + str r1, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _02330742 + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_023306F0: + cmp r0, #2 + bne _02330710 + blx ov00_022D4DE4 + cmp r0, #3 + beq _02330742 + ldr r0, _0233084C ; =0x02359480 + mov r1, #3 + str r1, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _02330742 + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_02330710: + cmp r0, #8 + bne _02330742 + ldr r0, [r2, #0x20] + ldr r1, [r2, #0x24] + ldr r2, [r2, #0xc] + blx ov00_022D5110 + cmp r0, #3 + beq _02330742 + ldr r0, _0233084C ; =0x02359480 + mov r1, #3 + str r1, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _02330742 + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_02330736: + ldr r0, _0233084C ; =0x02359480 + mov r2, #3 + str r2, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + bne _02330744 +_02330742: + b _02330848 +_02330744: + mov r0, #0xb + blx r2 + pop {r3, pc} +_0233074A: + mov r2, #2 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _023307DC + ldr r2, _0233084C ; =0x02359480 + ldr r0, [r2, #0x18] + cmp r0, #4 + bne _0233076A + mov r0, #3 + str r0, [r2, #0x18] + ldr r2, [r2, #0x1c] + cmp r2, #0 + beq _02330848 + mov r0, #0xe + blx r2 + pop {r3, pc} +_0233076A: + cmp r0, #6 + bne _02330790 + ldr r0, [r2, #0x10] + ldr r1, [r2, #0x14] + ldr r2, [r2, #4] + blx ov00_022D4ED4 + cmp r0, #3 + beq _02330848 + ldr r0, _0233084C ; =0x02359480 + mov r1, #3 + str r1, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _02330848 + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_02330790: + cmp r0, #2 + bne _023307B0 + blx ov00_022D4DE4 + cmp r0, #3 + beq _02330848 + ldr r0, _0233084C ; =0x02359480 + mov r1, #3 + str r1, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _02330848 + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_023307B0: + cmp r0, #8 + bne _023307D6 + ldr r0, [r2, #0x20] + ldr r1, [r2, #0x24] + ldr r2, [r2, #0xc] + blx ov00_022D5110 + cmp r0, #3 + beq _02330848 + ldr r0, _0233084C ; =0x02359480 + mov r1, #3 + str r1, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _02330848 + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_023307D6: + mov r0, #3 + str r0, [r2, #0x18] + pop {r3, pc} +_023307DC: + ldr r0, _0233084C ; =0x02359480 + mov r2, #3 + str r2, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _02330848 + mov r0, #0xf + blx r2 + pop {r3, pc} +_023307EE: + mov r2, #2 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _02330814 + ldr r0, _0233084C ; =0x02359480 + ldr r0, [r0, #0x18] + cmp r0, #2 + bne _02330848 + blx ov00_022D4B88 + ldr r0, _0233084C ; =0x02359480 + mov r1, #0 + str r1, [r0, #0x18] + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _02330848 + mov r0, #0x14 + blx r2 + pop {r3, pc} +_02330814: + ldr r0, _0233084C ; =0x02359480 + mov r3, #3 + str r3, [r0, #0x18] + ldr r3, [r0, #0x1c] + cmp r3, #0 + beq _02330848 + add r0, r2, #0 + blx r3 + pop {r3, pc} +_02330826: + ldr r0, _0233084C ; =0x02359480 + ldr r2, [r0, #0x18] + cmp r2, #5 + bne _02330848 + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _02330848 + mov r0, #5 + blx r2 + pop {r3, pc} +_0233083A: + ldr r0, _0233084C ; =0x02359480 + ldr r2, [r0, #0x1c] + cmp r2, #0 + beq _02330848 + mov r0, #1 + mov r1, #0 + blx r2 +_02330848: + pop {r3, pc} + nop +_0233084C: .word 0x02359480 + thumb_func_end ov02_02330598 thumb_func_start ov02_02330850 ov02_02330850: ; 0x02330850 @@ -11288,56 +11714,423 @@ _02330BE8: .word 0x02359480 _02330BEC: .word 0x0000231F _02330BF0: .word 0x02330599 thumb_func_end ov02_02330B3C -_02330BF4: - .byte 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 + + thumb_func_start ov02_02330BF4 +ov02_02330BF4: ; 0x02330BF4 + push {r3, lr} + cmp r0, #0 + bne _02330BFC + b _02330EF6 +_02330BFC: + mov r1, #0 + ldrsh r2, [r0, r1] + cmp r2, #9 + bls _02330C06 + b _02330EE8 +_02330C06: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_02330C12: ; jump table + .hword _02330EE8 - _02330C12 - 2 ; case 0 + .hword _02330C26 - _02330C12 - 2 ; case 1 + .hword _02330E76 - _02330C12 - 2 ; case 2 + .hword _02330CAC - _02330C12 - 2 ; case 3 + .hword _02330D1A - _02330C12 - 2 ; case 4 + .hword _02330CE4 - _02330C12 - 2 ; case 5 + .hword _02330DC2 - _02330C12 - 2 ; case 6 + .hword _02330EB2 - _02330C12 - 2 ; case 7 + .hword _02330EC8 - _02330C12 - 2 ; case 8 + .hword _02330ED6 - _02330C12 - 2 ; case 9 +_02330C26: + mov r2, #2 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _02330C98 + ldr r2, _02330EF8 ; =0x023594D0 + ldr r0, [r2, #0x2c] + cmp r0, #4 + bne _02330C48 + mov r0, #3 + str r0, [r2, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330CDC + mov r0, #6 + blx r2 + pop {r3, pc} +_02330C48: + cmp r0, #6 + bne _02330C70 + ldr r0, [r2, #0x44] + ldr r1, [r2, #0x48] + ldr r2, [r2, #0x60] + blx ov00_022D4ED4 + cmp r0, #3 + beq _02330CDC + ldr r0, _02330EF8 ; =0x023594D0 + mov r1, #3 + str r1, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330CDC + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_02330C70: + cmp r0, #8 + bne _02330CDC + ldr r0, [r2, #0x4c] + ldr r1, [r2, #0x28] + ldr r2, [r2, #0x58] + blx ov00_022D5110 + cmp r0, #3 + beq _02330CDC + ldr r0, _02330EF8 ; =0x023594D0 + mov r1, #3 + str r1, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330CDC + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_02330C98: + ldr r0, _02330EF8 ; =0x023594D0 + mov r3, #1 + str r3, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r3, [r0] + cmp r3, #0 + beq _02330CDC + add r0, r2, #0 + blx r3 + pop {r3, pc} +_02330CAC: + mov r2, #2 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _02330CCE + ldr r0, _02330EF8 ; =0x023594D0 + ldr r2, [r0, #0x2c] + cmp r2, #6 + bne _02330CDC + mov r2, #5 + str r2, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330CDC + mov r0, #8 + blx r2 + pop {r3, pc} +_02330CCE: + ldr r0, _02330EF8 ; =0x023594D0 + mov r2, #3 + str r2, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + bne _02330CDE +_02330CDC: + b _02330EF6 +_02330CDE: + mov r0, #9 + blx r2 + pop {r3, pc} +_02330CE4: + mov r2, #2 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _02330D06 + ldr r0, _02330EF8 ; =0x023594D0 + ldr r2, [r0, #0x2c] + cmp r2, #8 + bne _02330DDE + mov r2, #7 + str r2, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330DDE + mov r0, #0xc + blx r2 + pop {r3, pc} +_02330D06: + ldr r0, _02330EF8 ; =0x023594D0 + mov r2, #3 + str r2, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330DDE + mov r0, #0xd + blx r2 + pop {r3, pc} +_02330D1A: + mov r2, #2 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _02330DAE + ldr r2, _02330EF8 ; =0x023594D0 + ldr r0, [r2, #0x2c] + cmp r0, #4 + bne _02330D3C + mov r0, #3 + str r0, [r2, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330DDE + mov r0, #0xa + blx r2 + pop {r3, pc} +_02330D3C: + cmp r0, #6 + bne _02330D64 + ldr r0, [r2, #0x44] + ldr r1, [r2, #0x48] + ldr r2, [r2, #0x60] + blx ov00_022D4ED4 + cmp r0, #3 + beq _02330DDE + ldr r0, _02330EF8 ; =0x023594D0 + mov r1, #3 + str r1, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330DDE + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_02330D64: + cmp r0, #2 + bne _02330D86 + blx ov00_022D4DE4 + cmp r0, #3 + beq _02330DDE + ldr r0, _02330EF8 ; =0x023594D0 + mov r1, #3 + str r1, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330DDE + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_02330D86: + cmp r0, #8 + bne _02330DDE + ldr r0, [r2, #0x4c] + ldr r1, [r2, #0x28] + ldr r2, [r2, #0x58] + blx ov00_022D5110 + cmp r0, #3 + beq _02330DDE + ldr r0, _02330EF8 ; =0x023594D0 + mov r1, #3 + str r1, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330DDE + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_02330DAE: + ldr r0, _02330EF8 ; =0x023594D0 + mov r2, #3 + str r2, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330DDE + mov r0, #0xb + blx r2 + pop {r3, pc} +_02330DC2: + mov r2, #2 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _02330E62 + ldr r2, _02330EF8 ; =0x023594D0 + ldr r0, [r2, #0x2c] + cmp r0, #4 + bne _02330DE6 + mov r0, #3 + str r0, [r2, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + bne _02330DE0 +_02330DDE: + b _02330EF6 +_02330DE0: + mov r0, #0xe + blx r2 + pop {r3, pc} +_02330DE6: + cmp r0, #6 + bne _02330E0E + ldr r0, [r2, #0x44] + ldr r1, [r2, #0x48] + ldr r2, [r2, #0x60] + blx ov00_022D4ED4 + cmp r0, #3 + beq _02330EF6 + ldr r0, _02330EF8 ; =0x023594D0 + mov r1, #3 + str r1, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330EF6 + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_02330E0E: + cmp r0, #2 + bne _02330E30 + blx ov00_022D4DE4 + cmp r0, #3 + beq _02330EF6 + ldr r0, _02330EF8 ; =0x023594D0 + mov r1, #3 + str r1, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330EF6 + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_02330E30: + cmp r0, #8 + bne _02330E58 + ldr r0, [r2, #0x4c] + ldr r1, [r2, #0x28] + ldr r2, [r2, #0x58] + blx ov00_022D5110 + cmp r0, #3 + beq _02330EF6 + ldr r0, _02330EF8 ; =0x023594D0 + mov r1, #3 + str r1, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330EF6 + mov r0, #2 + mov r1, #0 + blx r2 + pop {r3, pc} +_02330E58: + cmp r0, #7 + bne _02330EF6 + mov r0, #3 + str r0, [r2, #0x2c] + pop {r3, pc} +_02330E62: + ldr r0, _02330EF8 ; =0x023594D0 + mov r2, #3 + str r2, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330EF6 + mov r0, #0xf + blx r2 + pop {r3, pc} +_02330E76: + mov r2, #2 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _02330E9E + ldr r0, _02330EF8 ; =0x023594D0 + ldr r0, [r0, #0x2c] + cmp r0, #2 + bne _02330EF6 + blx ov00_022D4B88 + ldr r0, _02330EF8 ; =0x023594D0 + mov r1, #0 + str r1, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330EF6 + mov r0, #0x14 + blx r2 + pop {r3, pc} +_02330E9E: + ldr r0, _02330EF8 ; =0x023594D0 + mov r3, #3 + str r3, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r3, [r0] + cmp r3, #0 + beq _02330EF6 + add r0, r2, #0 + blx r3 + pop {r3, pc} +_02330EB2: + ldr r0, _02330EF8 ; =0x023594D0 + ldr r0, [r0, #0x2c] + cmp r0, #5 + bne _02330EF6 + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330EF6 + mov r0, #5 + blx r2 + pop {r3, pc} +_02330EC8: + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330EF6 + mov r0, #4 + blx r2 + pop {r3, pc} +_02330ED6: + ldr r0, _02330EF8 ; =0x023594D0 + str r1, [r0, #0x2c] + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330EF6 + mov r0, #3 + blx r2 + pop {r3, pc} +_02330EE8: + ldr r0, _02330EFC ; =0x02359550 + ldr r2, [r0] + cmp r2, #0 + beq _02330EF6 + mov r0, #1 + mov r1, #0 + blx r2 +_02330EF6: + pop {r3, pc} + .align 2, 0 +_02330EF8: .word 0x023594D0 +_02330EFC: .word 0x02359550 + thumb_func_end ov02_02330BF4 thumb_func_start ov02_02330F00 ov02_02330F00: ; 0x02330F00 @@ -11395,30 +12188,186 @@ _02330F5A: _02330F60: .word 0x023594D0 _02330F64: .word 0x02330BF5 thumb_func_end ov02_02330F00 -_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, 0xF8, 0xB5, 0x00, 0x93 - .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, 0x0E, 0xD1, 0x91, 0x6C - .byte 0x10, 0x48, 0x12, 0x6E, 0xA3, 0xF7, 0x46, 0xEF, 0x03, 0x28, 0x13, 0xD1, 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, 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, 0x01, 0x20, 0x10, 0xBD, 0x20, 0x1C, 0x4A, 0xF5 - .byte 0x9C, 0xEB, 0x00, 0x20, 0x10, 0xBD, 0xC0, 0x46, 0xD0, 0x94, 0x35, 0x02 + + thumb_func_start ov02_02330F68 +ov02_02330F68: ; 0x02330F68 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r0, #1 + add r7, r1, #0 + blx ov00_022D6C88 + blx ov00_022D6C30 + add r6, r0, #0 + cmp r6, #0 + ble _02330FA0 + mov r4, #0 + cmp r6, #0 + ble _02330FA0 +_02330F84: + cmp r4, r7 + bge _02330FA0 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + blx ov00_022D6D04 + add r1, r5, #0 + mov r2, #0xc0 + blx sub_0207C330 + add r4, r4, #1 + add r5, #0xc0 + cmp r4, r6 + blt _02330F84 +_02330FA0: + mov r0, #0 + blx ov00_022D6C88 + add r0, r6, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end ov02_02330F68 + + thumb_func_start ov02_02330FAC +ov02_02330FAC: ; 0x02330FAC + push {r3, r4, r5, r6, r7, lr} + str r3, [sp] + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + blx EnableIrqFlag + add r7, r0, #0 + ldr r1, _02331080 ; =0x023594D0 + ldr r0, [sp] + cmp r5, #0 + str r0, [r1, #0x60] + ldr r0, _02331084 ; =0x02359988 + str r0, [r1, #0x44] + beq _02330FDC + mov r2, #0 +_02330FCC: + ldrb r1, [r5] + add r2, r2, #1 + add r5, r5, #1 + strb r1, [r0] + add r0, r0, #1 + cmp r2, #6 + blt _02330FCC + b _02330FEA +_02330FDC: + mov r1, #0xff + mov r2, #6 + blx sub_0207C40C + ldr r1, _02331088 ; =0x02318158 + ldr r0, _02331080 ; =0x023594D0 + str r1, [r0, #0x44] +_02330FEA: + ldr r2, _0233108C ; =0x023599C0 + ldr r0, _02331080 ; =0x023594D0 + cmp r4, #0 + str r2, [r0, #0x48] + beq _02331026 + cmp r6, #0 + ble _02331026 + cmp r6, #0x20 + bge _02331026 + mov r0, #0 + cmp r6, #0 + ble _02331010 +_02331002: + ldrb r1, [r4] + add r0, r0, #1 + add r4, r4, #1 + strb r1, [r2] + add r2, r2, #1 + cmp r0, r6 + blt _02331002 +_02331010: + cmp r0, #0x20 + bge _02331036 + ldr r1, _0233108C ; =0x023599C0 + add r2, r1, r0 + mov r1, #0 +_0233101A: + add r0, r0, #1 + strb r1, [r2] + add r2, r2, #1 + cmp r0, #0x20 + blt _0233101A + b _02331036 +_02331026: + ldr r0, _0233108C ; =0x023599C0 + mov r1, #0xff + mov r2, #0x20 + blx sub_0207C40C + ldr r1, _02331090 ; =0x02318160 + ldr r0, _02331080 ; =0x023594D0 + str r1, [r0, #0x48] +_02331036: + ldr r2, _02331080 ; =0x023594D0 + ldr r0, [r2, #0x2c] + cmp r0, #3 + bne _0233105C + ldr r1, [r2, #0x48] + ldr r0, _02331084 ; =0x02359988 + ldr r2, [r2, #0x60] + blx ov00_022D4ED4 + cmp r0, #3 + bne _02331074 + ldr r0, _02331080 ; =0x023594D0 + mov r1, #6 + str r1, [r0, #0x2c] + add r0, r7, #0 + blx SetIrqFlag + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0233105C: + bl ov02_02330F00 + cmp r0, #1 + bne _02331074 + ldr r0, _02331080 ; =0x023594D0 + mov r1, #6 + str r1, [r0, #0x2c] + add r0, r7, #0 + blx SetIrqFlag + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02331074: + add r0, r7, #0 + blx SetIrqFlag + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02331080: .word 0x023594D0 +_02331084: .word 0x02359988 +_02331088: .word 0x02318158 +_0233108C: .word 0x023599C0 +_02331090: .word 0x02318160 + thumb_func_end ov02_02330FAC + + thumb_func_start ov02_02331094 +ov02_02331094: ; 0x02331094 + push {r4, lr} + blx EnableIrqFlag + add r4, r0, #0 + ldr r0, _023310C8 ; =0x023594D0 + ldr r0, [r0, #0x2c] + cmp r0, #7 + bne _023310BC + blx ov00_022D5314 + cmp r0, #3 + bne _023310BC + ldr r0, _023310C8 ; =0x023594D0 + mov r1, #4 + str r1, [r0, #0x2c] + add r0, r4, #0 + blx SetIrqFlag + mov r0, #1 + pop {r4, pc} +_023310BC: + add r0, r4, #0 + blx SetIrqFlag + mov r0, #0 + pop {r4, pc} + nop +_023310C8: .word 0x023594D0 + thumb_func_end ov02_02331094 thumb_func_start ov02_023310CC ov02_023310CC: ; 0x023310CC @@ -11463,16 +12412,71 @@ _02331116: .align 2, 0 _02331120: .word 0x023594D0 thumb_func_end ov02_023310CC -_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 + + thumb_func_start ov02_02331124 +ov02_02331124: ; 0x02331124 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r5, r1, #0 + add r6, r2, #0 + blx EnableIrqFlag + ldr r1, _023311A4 ; =0x023594D0 + add r4, r0, #0 + str r6, [r1, #0x58] + cmp r5, #0 + beq _02331146 + ldr r1, [r1, #0x28] + add r0, r5, #0 + mov r2, #0x60 + blx sub_0207C4C8 + b _02331150 +_02331146: + ldr r0, [r1, #0x28] + mov r1, #0 + mov r2, #0x60 + blx sub_0207C40C +_02331150: + ldr r1, _023311A4 ; =0x023594D0 + add r0, r7, #0 + ldr r1, [r1, #0x4c] + mov r2, #0xc0 + blx sub_0207C330 + bl ov02_02330F00 + cmp r0, #1 + bne _02331174 + ldr r0, _023311A4 ; =0x023594D0 + mov r1, #8 + str r1, [r0, #0x2c] + add r0, r4, #0 + blx SetIrqFlag + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02331174: + ldr r2, _023311A4 ; =0x023594D0 + ldr r0, [r2, #0x2c] + cmp r0, #3 + bne _0233119A + ldr r0, [r2, #0x4c] + ldr r1, [r2, #0x28] + ldr r2, [r2, #0x58] + blx ov00_022D5110 + cmp r0, #3 + bne _0233119A + ldr r0, _023311A4 ; =0x023594D0 + mov r1, #8 + str r1, [r0, #0x2c] + add r0, r4, #0 + blx SetIrqFlag + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0233119A: + add r0, r4, #0 + blx SetIrqFlag + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_023311A4: .word 0x023594D0 + thumb_func_end ov02_02331124 thumb_func_start ov02_023311A8 ov02_023311A8: ; 0x023311A8 @@ -11565,14 +12569,62 @@ _02331258: .word 0x0000231F _0233125C: .word 0x02359550 _02331260: .word 0x02330BF5 thumb_func_end ov02_023311A8 -_02331264: - .byte 0x01, 0x48, 0xC0, 0x6A, 0x70, 0x47, 0xC0, 0x46, 0xD0, 0x94, 0x35, 0x02 - .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 - .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 + + thumb_func_start ov02_02331264 +ov02_02331264: ; 0x02331264 + ldr r0, _0233126C ; =0x023594D0 + ldr r0, [r0, #0x2c] + bx lr + nop +_0233126C: .word 0x023594D0 + thumb_func_end ov02_02331264 + + thumb_func_start ov02_02331270 +ov02_02331270: ; 0x02331270 + push {r4, lr} + add r4, r1, #0 + cmp r4, #0 + ble _02331292 + ldr r0, _02331298 ; =0x02359564 + blx sub_0207A048 + ldr r1, _0233129C ; =0x023594D0 + add r0, r4, #0 + ldr r1, [r1, #4] + blx r1 + add r4, r0, #0 + ldr r0, _02331298 ; =0x02359564 + blx sub_0207A0CC + add r0, r4, #0 + pop {r4, pc} +_02331292: + mov r0, #0 + pop {r4, pc} + nop +_02331298: .word 0x02359564 +_0233129C: .word 0x023594D0 + thumb_func_end ov02_02331270 + + thumb_func_start ov02_023312A0 +ov02_023312A0: ; 0x023312A0 + push {r4, lr} + add r4, r1, #0 + beq _023312BE + cmp r2, #0 + ble _023312BE + ldr r0, _023312C0 ; =0x02359564 + blx sub_0207A048 + ldr r1, _023312C4 ; =0x023594D0 + add r0, r4, #0 + ldr r1, [r1, #0xc] + blx r1 + ldr r0, _023312C0 ; =0x02359564 + blx sub_0207A0CC +_023312BE: + pop {r4, pc} + .align 2, 0 +_023312C0: .word 0x02359564 +_023312C4: .word 0x023594D0 + thumb_func_end ov02_023312A0 thumb_func_start ov02_023312C8 ov02_023312C8: ; 0x023312C8 @@ -11625,12 +12677,43 @@ _02331316: _02331320: .word 0x023594D0 _02331324: .word 0x02359554 thumb_func_end ov02_023312F0 -_02331328: - .byte 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 + + thumb_func_start ov02_02331328 +ov02_02331328: ; 0x02331328 + push {r3, r4} + ldr r1, _02331350 ; =0x023594D0 + ldr r3, [r1, #0x68] + ldr r2, [r1, #0x6c] + add r4, r3, #1 + cmp r4, r2 + beq _0233134C + add r2, r2, #3 + cmp r3, r2 + beq _0233134C + ldr r2, _02331354 ; =0x02359554 + lsl r3, r3, #2 + str r0, [r2, r3] + str r4, [r1, #0x68] + cmp r4, #4 + blt _0233134C + mov r0, #0 + str r0, [r1, #0x68] +_0233134C: + pop {r3, r4} + bx lr + .align 2, 0 +_02331350: .word 0x023594D0 +_02331354: .word 0x02359554 + thumb_func_end ov02_02331328 + + thumb_func_start ov02_02331358 +ov02_02331358: ; 0x02331358 + ldr r3, _02331360 ; =ov02_02331328 + mov r1, #0 + bx r3 + nop +_02331360: .word ov02_02331328 + thumb_func_end ov02_02331358 thumb_func_start ov02_02331364 ov02_02331364: ; 0x02331364 @@ -11767,725 +12850,5858 @@ _02331458: .align 2, 0 _0233145C: .word 0x023594D0 thumb_func_end ov02_02331408 -_02331460: - .byte 0xF8, 0xB5, 0x8C, 0xB0, 0x42, 0x48, 0x01, 0x24, 0xC3, 0x6D, 0x80, 0x69, 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, 0xF8, 0xB5, 0x17, 0x48, 0x01, 0x25, 0x00, 0x6A, 0x00, 0x28, 0x1F, 0xD0 - .byte 0xFF, 0xF7, 0x80, 0xFD, 0x00, 0x28, 0x18, 0xD0, 0x00, 0x26, 0x34, 0x1C, 0x0A, 0x27, 0x38, 0x1C - .byte 0x48, 0xF5, 0xB8, 0xEA, 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, 0xF0, 0xB5, 0x9B, 0xB0, 0x00, 0x90, 0x00, 0x20 - .byte 0x08, 0x90, 0x07, 0x90, 0x00, 0x98, 0x01, 0x91, 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, 0xF8, 0xB5, 0x9C, 0xB0, 0x00, 0x20, 0x02, 0x90, 0x08, 0x90, 0x9B, 0x48 - .byte 0x00, 0x24, 0x01, 0x6F, 0x30, 0x20, 0x48, 0x43, 0x04, 0x90, 0x34, 0x30, 0x04, 0x90, 0x04, 0x99 - .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, 0x08, 0xB5, 0x02, 0x9A, 0x00, 0x91, 0x19, 0x1C - .byte 0x00, 0x23, 0x9D, 0xF7, 0x72, 0xEC, 0x00, 0x28, 0x01, 0xDA, 0x03, 0x20, 0xC0, 0x43, 0x08, 0xBD - .byte 0x70, 0xB5, 0x84, 0xB0, 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, 0x11, 0x1C, 0x1A, 0x1C - .byte 0x00, 0x4B, 0x18, 0x47, 0x61, 0x1A, 0x33, 0x02, 0x78, 0xB4, 0x05, 0x88, 0x00, 0x23, 0x2C, 0x12 - .byte 0x24, 0x06, 0x26, 0x0E, 0x2C, 0x02, 0xFF, 0x25, 0x2D, 0x02, 0x2C, 0x40, 0x34, 0x43, 0x24, 0x04 - .byte 0x24, 0x0C, 0x0C, 0x60, 0x46, 0x88, 0x31, 0x12, 0x09, 0x06, 0x0C, 0x0E, 0x31, 0x02, 0x29, 0x40 - .byte 0x21, 0x43, 0x09, 0x04, 0x0C, 0x0C, 0x81, 0x1D, 0x14, 0x60, 0x0A, 0x19, 0x04, 0x1C, 0x90, 0x42 - .byte 0x04, 0xD2, 0x21, 0x78, 0x64, 0x1C, 0x5B, 0x18, 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, 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, 0x78, 0xB5, 0x81, 0xB0, 0x05, 0x1C, 0x08, 0x35 - .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, 0xF8, 0xB5, 0x82, 0xB0 - .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 - .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 - .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, 0xF0, 0xB5, 0x87, 0xB0, 0x00, 0x91, 0x06, 0xA9 - .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, 0x78, 0xB5, 0x83, 0xB0 - .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, 0x10, 0xB5, 0x84, 0xB0 - .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, 0x08, 0xB5, 0x49, 0xF5, 0xA0, 0xED, 0x01, 0x20 - .byte 0x08, 0xBD, 0x00, 0x00, 0x18, 0xB5, 0x93, 0xB0, 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 - .byte 0xF8, 0xB5, 0x86, 0xB0, 0x01, 0x1C, 0x01, 0x91, 0x08, 0x31, 0x01, 0x91, 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, 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, 0xF8, 0xB5, 0x8A, 0xB0, 0x01, 0x20, 0x00, 0x90 - .byte 0x57, 0x48, 0x58, 0x49, 0x57, 0xF5, 0x26, 0xEA, 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 - .byte 0xF0, 0xB5, 0x8B, 0xB0, 0x00, 0x24, 0x60, 0x1F, 0x02, 0x90, 0xCF, 0x48, 0x01, 0x21, 0x03, 0x94 - .byte 0x01, 0x94, 0x26, 0x1C, 0xC1, 0x61, 0xCC, 0xE1, 0x7D, 0x20, 0x80, 0x00, 0x47, 0xF5, 0x9A, 0xEB - .byte 0xC9, 0x48, 0xC0, 0x69, 0x0A, 0x28, 0x00, 0xD9, 0xC3, 0xE1, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88 - .byte 0x00, 0x04, 0x00, 0x14, 0x87, 0x44, 0x7A, 0x03, 0x14, 0x00, 0x34, 0x00, 0x4A, 0x00, 0x98, 0x00 - .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, 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, 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, 0x18, 0xB4, 0x04, 0x78 - .byte 0x0B, 0x78, 0x63, 0x40, 0x13, 0x70, 0x44, 0x78, 0x4B, 0x78, 0x63, 0x40, 0x53, 0x70, 0x84, 0x78 - .byte 0x8B, 0x78, 0x63, 0x40, 0x93, 0x70, 0xC4, 0x78, 0xCB, 0x78, 0x63, 0x40, 0xD3, 0x70, 0x04, 0x79 - .byte 0x0B, 0x79, 0x63, 0x40, 0x13, 0x71, 0x44, 0x79, 0x4B, 0x79, 0x63, 0x40, 0x53, 0x71, 0x84, 0x79 - .byte 0x8B, 0x79, 0x63, 0x40, 0x93, 0x71, 0xC3, 0x79, 0xC8, 0x79, 0x58, 0x40, 0xD0, 0x71, 0x18, 0xBC - .byte 0x70, 0x47, 0x00, 0x00, 0xF8, 0xB5, 0x86, 0xB0, 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, 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, 0xF0, 0xB5, 0x93, 0xB0 - .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, 0xF8, 0xB5, 0x92, 0xB0, 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, 0x00, 0x21, 0x41, 0x61, 0x01, 0x61, 0x04, 0x49, 0x01, 0x60, 0x04, 0x49 - .byte 0x41, 0x60, 0x04, 0x49, 0x81, 0x60, 0x04, 0x49, 0xC1, 0x60, 0x70, 0x47, 0x01, 0x23, 0x45, 0x67 - .byte 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10, 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, 0x38, 0xB5, 0x82, 0xB0, 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, 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 - .byte 0x30, 0xB4, 0x00, 0x24, 0x00, 0x2A, 0x0F, 0xD9, 0x0D, 0x68, 0x03, 0x19, 0x05, 0x55, 0x0D, 0x68 - .byte 0x24, 0x1D, 0x2D, 0x0A, 0x5D, 0x70, 0x0D, 0x68, 0x2D, 0x0C, 0x9D, 0x70, 0x0D, 0x68, 0x09, 0x1D - .byte 0x2D, 0x0E, 0xDD, 0x70, 0x94, 0x42, 0xEF, 0xD3, 0x30, 0xBC, 0x70, 0x47, 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, 0x18, 0xB4, 0x00, 0x24, 0x00, 0x2A, 0x04, 0xD9 - .byte 0x0B, 0x5D, 0x03, 0x55, 0x64, 0x1C, 0x94, 0x42, 0xFA, 0xD3, 0x18, 0xBC, 0x70, 0x47, 0x00, 0x00 - .byte 0x00, 0x23, 0x00, 0x2A, 0x06, 0xD9, 0x09, 0x06, 0x09, 0x16, 0x5B, 0x1C, 0x01, 0x70, 0x40, 0x1C - .byte 0x93, 0x42, 0xFA, 0xD3, 0x70, 0x47, 0x00, 0x00, 0x70, 0xB5, 0x96, 0xB0, 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 + + thumb_func_start ov02_02331460 +ov02_02331460: ; 0x02331460 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + ldr r0, _02331570 ; =0x023594D0 + mov r4, #1 + ldr r3, [r0, #0x5c] + ldr r0, [r0, #0x18] + mov r2, #0xc0 + add r1, r0, #0 + mul r1, r2 + sub r5, r4, #3 + add r6, r3, r1 + bne _0233147E + add sp, #0x30 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_0233147E: + add r0, r6, #0 + mov r1, #0 + lsl r2, r2, #0xa + bl ov02_02331124 + cmp r0, #0 + bne _02331492 + add sp, #0x30 + sub r0, r4, #3 + pop {r3, r4, r5, r6, r7, pc} +_02331492: + add r0, sp, #4 + blx sub_0207B040 + mov r0, #0x12 + str r0, [sp] + ldr r1, _02331574 ; =0x003FEC42 + ldr r3, _02331578 ; =ov02_02331358 + add r0, sp, #4 + mov r2, #0 + blx sub_0207B17C + mov r7, #0 +_023314AA: + bl ov02_02334140 + ldr r1, _0233157C ; =0x02353008 + ldr r1, [r1, #0xc] + cmp r0, r1 + blo _023314BC + mov r5, #2 + mvn r5, r5 + b _0233153C +_023314BC: + ldr r0, _02331570 ; =0x023594D0 + ldr r0, [r0, #0x10] + cmp r0, #0 + beq _023314CA + mov r5, #7 + mvn r5, r5 + b _0233153C +_023314CA: + mov r0, #0xa + blx sub_02079B14 + bl ov02_023312F0 + cmp r0, #0 + beq _02331538 +_023314D8: + cmp r0, #0xc + bgt _023314EE + bge _02331502 + cmp r0, #5 + bgt _0233152E + cmp r0, #4 + blt _0233152E + beq _02331530 + cmp r0, #5 + beq _02331530 + b _0233152E +_023314EE: + cmp r0, #0x13 + bgt _0233152E + cmp r0, #0xd + blt _0233152E + beq _02331508 + cmp r0, #0x12 + beq _02331530 + cmp r0, #0x13 + beq _02331530 + b _0233152E +_02331502: + add r4, r7, #0 + mov r5, #1 + b _02331530 +_02331508: + ldr r0, _02331570 ; =0x023594D0 + ldr r0, [r0, #0x10] + cmp r0, #0 + beq _02331518 + mov r4, #0 + add r5, r4, #0 + sub r5, #8 + b _02331530 +_02331518: + mov r2, #3 + add r0, r6, #0 + mov r1, #0 + lsl r2, r2, #0x10 + bl ov02_02331124 + cmp r0, #0 + bne _02331530 + add sp, #0x30 + add r0, r5, #0 + pop {r3, r4, r5, r6, r7, pc} +_0233152E: + mov r4, #0 +_02331530: + bl ov02_023312F0 + cmp r0, #0 + bne _023314D8 +_02331538: + cmp r4, #0 + bne _023314AA +_0233153C: + add r0, sp, #4 + blx sub_0207B1E8 +_02331542: + bl ov02_023312F0 + cmp r0, #0 + bne _02331542 + cmp r5, #0 + ble _0233156A + ldr r0, _02331570 ; =0x023594D0 + mov r1, #1 + str r1, [r0, #0x20] + ldr r0, _02331580 ; =0x0235301C + blx ov00_022CF674 + cmp r0, #0 + bge _02331564 + mov r5, #1 + mvn r5, r5 + b _0233156A +_02331564: + ldr r0, _02331570 ; =0x023594D0 + mov r1, #1 + str r1, [r0, #0x24] +_0233156A: + add r0, r5, #0 + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02331570: .word 0x023594D0 +_02331574: .word 0x003FEC42 +_02331578: .word ov02_02331358 +_0233157C: .word 0x02353008 +_02331580: .word 0x0235301C + thumb_func_end ov02_02331460 + + thumb_func_start ov02_02331584 +ov02_02331584: ; 0x02331584 + push {r3, r4, r5, r6, r7, lr} + ldr r0, _023315E4 ; =0x023594D0 + mov r5, #1 + ldr r0, [r0, #0x20] + cmp r0, #0 + beq _023315D0 + bl ov02_02331094 + cmp r0, #0 + beq _023315CA + mov r6, #0 + add r4, r6, #0 + mov r7, #0xa +_0233159E: + add r0, r7, #0 + blx sub_02079B14 + bl ov02_023312F0 + cmp r0, #0 + beq _023315C6 +_023315AC: + cmp r0, #4 + beq _023315BE + cmp r0, #5 + beq _023315BE + cmp r0, #0xe + bne _023315BC + add r5, r4, #0 + b _023315BE +_023315BC: + add r5, r6, #0 +_023315BE: + bl ov02_023312F0 + cmp r0, #0 + bne _023315AC +_023315C6: + cmp r5, #0 + bne _0233159E +_023315CA: + ldr r0, _023315E4 ; =0x023594D0 + mov r1, #0 + str r1, [r0, #0x20] +_023315D0: + ldr r0, _023315E4 ; =0x023594D0 + ldr r1, [r0, #0x24] + cmp r1, #0 + beq _023315E0 + mov r1, #0 + str r1, [r0, #0x24] + blx ov00_022CF7E8 +_023315E0: + pop {r3, r4, r5, r6, r7, pc} + nop +_023315E4: .word 0x023594D0 + thumb_func_end ov02_02331584 + + thumb_func_start ov02_023315E8 +ov02_023315E8: ; 0x023315E8 + push {r4, r5, r6, r7, lr} + sub sp, #0x6c + str r0, [sp] + mov r0, #0 + str r0, [sp, #0x20] + str r0, [sp, #0x1c] + ldr r0, [sp] + str r1, [sp, #4] + add r6, r0, #4 + add r0, r1, #0 + add r4, r0, #4 + ldr r0, [sp, #0x20] + str r2, [sp, #8] + str r0, [sp, #0xc] + ldr r0, [sp] + ldr r0, [r0] + cmp r0, #0 + bls _023316BC +_0233160C: + add r2, sp, #0x48 + add r2, #2 + mov r1, #0x22 + mov r0, #0 +_02331614: + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _02331614 + add r0, sp, #0x48 + add r0, #2 + add r1, r6, #4 + mov r2, #0x20 + blx Memcpy + add r0, sp, #0x48 + ldr r1, [r6] + mov r7, #0 + add r0, #2 + strb r7, [r0, r1] + ldr r0, [sp, #4] + ldr r0, [r0] + str r0, [sp, #0x10] + cmp r0, #0 + bls _023316A0 + add r0, r6, #0 + str r0, [sp, #0x24] + add r0, #0x28 + ldr r5, [r6] + str r0, [sp, #0x24] +_02331646: + cmp r5, #0 + beq _023316A0 + cmp r5, #0x20 + bhi _023316A0 + cmp r5, #1 + bne _0233165C + ldrb r0, [r6, #4] + cmp r0, #0 + beq _023316A0 + cmp r0, #0x20 + beq _023316A0 +_0233165C: + add r0, sp, #0x48 + add r0, #2 + blx Strlen + add r2, r0, #0 + add r0, sp, #0x48 + add r0, #2 + add r1, r4, #4 + blx Memcmp + cmp r0, #0 + bne _02331696 + add r1, r4, #0 + ldr r0, [sp, #0x24] + add r1, #0x28 + mov r2, #6 + blx Memcmp + cmp r0, #0 + bne _02331696 + ldrh r1, [r6, #0x2e] + ldrh r0, [r4, #0x2e] + cmp r1, r0 + beq _02331696 + cmp r1, #0 + bne _02331696 + mov r0, #1 + str r0, [sp, #0x20] + b _023316A0 +_02331696: + ldr r0, [sp, #0x10] + add r7, r7, #1 + add r4, #0x30 + cmp r7, r0 + blo _02331646 +_023316A0: + ldr r0, [sp, #0x20] + cmp r0, #0 + bne _023316BC + ldr r0, [sp, #4] + add r6, #0x30 + add r4, r0, #4 + ldr r0, [sp, #0xc] + add r0, r0, #1 + str r0, [sp, #0xc] + ldr r0, [sp] + ldr r1, [r0] + ldr r0, [sp, #0xc] + cmp r0, r1 + blo _0233160C +_023316BC: + ldr r0, [sp, #0x20] + cmp r0, #0 + bne _02331798 + add r2, sp, #0x28 + mov r1, #0x22 + mov r0, #0 +_023316C8: + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _023316C8 + mov r0, #0 + str r0, [sp, #0x18] + str r0, [sp, #0x14] + ldr r0, [sp] + ldr r6, [sp, #0x18] + add r4, r0, #4 + ldr r0, [sp, #4] + add r5, r0, #4 + ldr r0, [r0] + cmp r0, #0 + bls _02331724 + add r7, sp, #0x28 +_023316E8: + add r0, r7, #0 + add r1, r5, #4 + mov r2, #0x20 + blx Memcpy + ldr r1, [r5] + mov r0, #0 + strb r0, [r7, r1] + ldr r0, _023317B0 ; =0x02353074 + blx Strlen + add r2, r0, #0 + ldr r1, _023317B0 ; =0x02353074 + add r0, r7, #0 + blx Memcmp + cmp r0, #0 + bne _02331718 + ldrh r0, [r5, #0x2e] + cmp r0, #0 + bne _02331718 + mov r0, #1 + str r0, [sp, #0x14] + b _02331724 +_02331718: + ldr r0, [sp, #4] + add r6, r6, #1 + ldr r0, [r0] + add r5, #0x30 + cmp r6, r0 + blo _023316E8 +_02331724: + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [sp] + ldr r0, [r0] + cmp r0, #0 + bls _02331788 + ldr r7, _023317B0 ; =0x02353074 + add r5, sp, #0x28 +_02331734: + add r0, r5, #0 + add r1, r4, #4 + mov r2, #0x20 + blx Memcpy + ldr r1, [r4] + mov r0, #0 + strb r0, [r5, r1] + add r0, r5, #0 + blx Strlen + add r6, r0, #0 + add r0, r7, #0 + blx Strlen + cmp r6, r0 + bne _02331776 + add r0, r7, #0 + blx Strlen + add r2, r0, #0 + add r0, r5, #0 + add r1, r7, #0 + blx Memcmp + cmp r0, #0 + bne _02331776 + ldrh r0, [r4, #0x2e] + cmp r0, #0 + bne _02331776 + mov r0, #1 + str r0, [sp, #0x18] + b _02331788 +_02331776: + ldr r0, [sp, #0xc] + add r4, #0x30 + add r0, r0, #1 + str r0, [sp, #0xc] + ldr r0, [sp] + ldr r1, [r0] + ldr r0, [sp, #0xc] + cmp r0, r1 + blo _02331734 +_02331788: + ldr r0, [sp, #0x18] + cmp r0, #0 + beq _02331798 + ldr r0, [sp, #0x14] + cmp r0, #0 + bne _02331798 + mov r0, #1 + str r0, [sp, #0x20] +_02331798: + ldr r0, [sp, #0x20] + cmp r0, #0 + beq _023317A8 + ldr r1, [sp, #0xc] + ldr r0, [sp, #8] + str r1, [r0] + mov r0, #1 + str r0, [sp, #0x1c] +_023317A8: + ldr r0, [sp, #0x1c] + add sp, #0x6c + pop {r4, r5, r6, r7, pc} + nop +_023317B0: .word 0x02353074 + thumb_func_end ov02_023315E8 + + thumb_func_start ov02_023317B4 +ov02_023317B4: ; 0x023317B4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x70 + mov r0, #0 + str r0, [sp, #8] + str r0, [sp, #0x20] + ldr r0, _02331A2C ; =0x023594D0 + mov r4, #0 + ldr r1, [r0, #0x70] + mov r0, #0x30 + mul r0, r1 + str r0, [sp, #0x10] + add r0, #0x34 + str r0, [sp, #0x10] + ldr r1, [sp, #0x10] + mov r0, #1 + mvn r4, r4 + bl ov02_0233415C + str r0, [sp, #0xc] + cmp r0, #0 + beq _023317EC + ldr r1, [sp, #0x10] + mov r0, #1 + bl ov02_0233415C + str r0, [sp, #8] + cmp r0, #0 + bne _023317EE +_023317EC: + b _02331A12 +_023317EE: + mov r0, #0 + str r0, [sp, #0x1c] + b _023319DA +_023317F4: + bl ov02_02334140 + ldr r1, _02331A30 ; =0x02353008 + ldr r1, [r1, #0xc] + cmp r0, r1 + bhs _023318DE + mov r0, #0 + ldr r3, _02331A34 ; =0x0030BFFE + add r1, r0, #0 + add r2, r0, #0 + bl ov02_02330FAC + cmp r0, #0 + bne _02331816 + mov r4, #1 + mvn r4, r4 + b _02331A12 +_02331816: + add r0, sp, #0x24 + blx sub_0207B040 + mov r0, #0x13 + str r0, [sp] + ldr r1, _02331A38 ; =0x000FFB10 + ldr r3, _02331A3C ; =ov02_02331358 + add r0, sp, #0x24 + mov r2, #0 + blx sub_0207B17C + ldr r7, _02331A2C ; =0x023594D0 + mov r5, #1 + mov r4, #0 + add r6, sp, #0x24 +_02331834: + mov r0, #0xa + blx sub_02079B14 + bl ov02_02334140 + ldr r1, _02331A30 ; =0x02353008 + ldr r1, [r1, #0xc] + cmp r0, r1 + bhs _023318C8 + ldr r0, [r7, #0x10] + cmp r0, #0 + bne _023318C8 + bl ov02_023312F0 + cmp r0, #0 + beq _023318C4 +_02331854: + cmp r0, #0x13 + bhi _023318BA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02331864: ; jump table + .hword _023318BA - _02331864 - 2 ; case 0 + .hword _023318BA - _02331864 - 2 ; case 1 + .hword _023318BA - _02331864 - 2 ; case 2 + .hword _023318BA - _02331864 - 2 ; case 3 + .hword _023318BC - _02331864 - 2 ; case 4 + .hword _02331890 - _02331864 - 2 ; case 5 + .hword _023318BA - _02331864 - 2 ; case 6 + .hword _023318BA - _02331864 - 2 ; case 7 + .hword _023318BC - _02331864 - 2 ; case 8 + .hword _023318BA - _02331864 - 2 ; case 9 + .hword _023318B6 - _02331864 - 2 ; case 10 + .hword _023318BA - _02331864 - 2 ; case 11 + .hword _023318BA - _02331864 - 2 ; case 12 + .hword _023318BA - _02331864 - 2 ; case 13 + .hword _023318BA - _02331864 - 2 ; case 14 + .hword _023318BA - _02331864 - 2 ; case 15 + .hword _023318BA - _02331864 - 2 ; case 16 + .hword _023318BA - _02331864 - 2 ; case 17 + .hword _023318BC - _02331864 - 2 ; case 18 + .hword _0233188C - _02331864 - 2 ; case 19 +_0233188C: + mov r5, #0 + b _023318BC +_02331890: + ldr r0, [r7, #0x5c] + ldr r1, [r7, #0x70] + bl ov02_02330F68 + cmp r0, r4 + ble _023318BC + add r4, r0, #0 + add r0, r6, #0 + blx sub_0207B1E8 + mov r0, #0x13 + str r0, [sp] + ldr r1, _02331A38 ; =0x000FFB10 + ldr r3, _02331A3C ; =ov02_02331358 + add r0, r6, #0 + mov r2, #0 + blx sub_0207B17C + b _023318BC +_023318B6: + mov r5, #0 + b _023318BC +_023318BA: + mov r5, #0 +_023318BC: + bl ov02_023312F0 + cmp r0, #0 + bne _02331854 +_023318C4: + cmp r5, #0 + bne _02331834 +_023318C8: + add r0, sp, #0x24 + blx sub_0207B1E8 +_023318CE: + bl ov02_023312F0 + cmp r0, #0 + bne _023318CE + ldr r1, _02331A2C ; =0x023594D0 + ldr r0, [r1, #0x10] + cmp r0, #0 + beq _023318E0 +_023318DE: + b _023319EA +_023318E0: + mov r0, #0 + str r0, [sp, #0x14] + ldr r0, [r1, #0x70] + cmp r4, r0 + blt _023318F0 + ldr r0, [sp, #0x14] + sub r4, r0, #6 + b _02331A12 +_023318F0: + ldr r0, [sp, #0x14] + ldr r5, [r1, #0x5c] + str r0, [sp, #0x18] + cmp r4, #0 + ble _02331966 + ble _02331966 + ldr r0, [sp, #0xc] + ldr r7, [sp, #0xc] + str r0, [sp, #4] + add r0, #8 + add r6, r7, #0 + str r0, [sp, #4] + add r6, #0x2c +_0233190A: + add r1, r5, #0 + ldr r0, [sp, #4] + add r1, #0xc + mov r2, #0x20 + blx Memcpy + ldrh r0, [r5, #0xa] + str r0, [r7, #4] + ldrh r0, [r5, #0xa] + add r1, r7, r0 + mov r0, #0 + strb r0, [r1, #8] + ldrh r1, [r5, #0x2c] + mov r0, #0x10 + tst r0, r1 + beq _0233192E + mov r0, #1 + b _02331930 +_0233192E: + mov r0, #0 +_02331930: + strh r0, [r7, #0x32] + ldrb r0, [r5, #4] + add r7, #0x30 + strb r0, [r6] + ldrb r0, [r5, #5] + strb r0, [r6, #1] + ldrb r0, [r5, #6] + strb r0, [r6, #2] + ldrb r0, [r5, #7] + strb r0, [r6, #3] + ldrb r0, [r5, #8] + strb r0, [r6, #4] + ldrb r0, [r5, #9] + add r5, #0xc0 + strb r0, [r6, #5] + ldr r0, [sp, #4] + add r6, #0x30 + add r0, #0x30 + str r0, [sp, #4] + ldr r0, [sp, #0x14] + add r0, r0, #1 + str r0, [sp, #0x14] + ldr r0, [sp, #0x18] + add r0, r0, #1 + str r0, [sp, #0x18] + cmp r0, r4 + blt _0233190A +_02331966: + ldr r0, [sp, #0xc] + str r4, [r0] + ldr r0, _02331A2C ; =0x023594D0 + ldr r0, [r0, #0x38] + cmp r0, #1 + beq _023319C0 + ldr r0, [sp, #0xc] + ldr r1, [sp, #8] + add r2, sp, #0x20 + bl ov02_023315E8 + cmp r0, #0 + beq _023319C0 + ldr r0, [sp, #0xc] + ldr r2, [sp, #0x20] + add r1, r0, #4 + mov r0, #0x30 + mul r0, r2 + add r4, r1, r0 + ldr r0, _02331A2C ; =0x023594D0 + add r1, r4, #4 + str r2, [r0, #0x18] + ldr r0, _02331A40 ; =0x023599E0 + blx Strcpy + add r0, r4, #0 + add r4, #0x28 + ldrb r2, [r4] + ldr r1, _02331A44 ; =0x02359980 + add r0, #0x28 + strb r2, [r1] + ldrb r2, [r0, #1] + strb r2, [r1, #1] + ldrb r2, [r0, #2] + strb r2, [r1, #2] + ldrb r2, [r0, #3] + strb r2, [r1, #3] + ldrb r2, [r0, #4] + strb r2, [r1, #4] + ldrb r0, [r0, #5] + strb r0, [r1, #5] + add r0, sp, #0x50 + bl ov02_023341C4 + b _023319EA +_023319C0: + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x10] + blx Memcpy + ldr r0, _02331A2C ; =0x023594D0 + mov r1, #2 + str r1, [r0, #0x38] + bl ov02_023343C0 + ldr r0, [sp, #0x1c] + add r0, r0, #1 + str r0, [sp, #0x1c] +_023319DA: + ldr r0, [sp, #0x1c] + cmp r0, #0x1e + bge _023319EA + ldr r0, _02331A2C ; =0x023594D0 + ldr r0, [r0, #0x10] + cmp r0, #0 + bne _023319EA + b _023317F4 +_023319EA: + ldr r0, [sp, #0x1c] + cmp r0, #0x1e + bge _023319FC + bl ov02_02334140 + ldr r1, _02331A30 ; =0x02353008 + ldr r1, [r1, #0xc] + cmp r0, r1 + bls _02331A02 +_023319FC: + mov r4, #2 + mvn r4, r4 + b _02331A12 +_02331A02: + ldr r0, _02331A2C ; =0x023594D0 + ldr r0, [r0, #0x10] + cmp r0, #0 + beq _02331A10 + mov r4, #7 + mvn r4, r4 + b _02331A12 +_02331A10: + mov r4, #1 +_02331A12: + ldr r0, [sp, #0xc] + cmp r0, #0 + beq _02331A1C + bl ov02_02334180 +_02331A1C: + ldr r0, [sp, #8] + cmp r0, #0 + beq _02331A26 + bl ov02_02334180 +_02331A26: + add r0, r4, #0 + add sp, #0x70 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02331A2C: .word 0x023594D0 +_02331A30: .word 0x02353008 +_02331A34: .word 0x0030BFFE +_02331A38: .word 0x000FFB10 +_02331A3C: .word ov02_02331358 +_02331A40: .word 0x023599E0 +_02331A44: .word 0x02359980 + thumb_func_end ov02_023317B4 + + thumb_func_start ov02_02331A48 +ov02_02331A48: ; 0x02331A48 + push {r3, lr} + ldr r2, [sp, #8] + str r1, [sp] + add r1, r3, #0 + mov r3, #0 + blx ov00_022CF338 + cmp r0, #0 + bge _02331A5E + mov r0, #3 + mvn r0, r0 +_02331A5E: + pop {r3, pc} + thumb_func_end ov02_02331A48 + + thumb_func_start ov02_02331A60 +ov02_02331A60: ; 0x02331A60 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + add r6, r1, #0 + mov r1, #8 + add r0, sp, #4 + strb r1, [r0, #4] + mov r1, #2 + strb r1, [r0, #5] + sub r1, r1, #3 + str r1, [sp, #0xc] + ldr r1, _02331A98 ; =0x000001E6 + add r4, r2, #0 + strh r1, [r0, #6] + blx ov00_022CEF10 + add r1, sp, #4 + blx ov00_022CF8F8 + add r0, r5, #0 + add r1, sp, #8 + add r2, sp, #4 + add r3, r6, #0 + str r4, [sp] + bl ov02_02331A48 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_02331A98: .word 0x000001E6 + thumb_func_end ov02_02331A60 + + thumb_func_start ov02_02331A9C +ov02_02331A9C: ; 0x02331A9C + add r1, r2, #0 + add r2, r3, #0 + ldr r3, _02331AA4 ; =ov02_02331A60 + bx r3 + .align 2, 0 +_02331AA4: .word ov02_02331A60 + thumb_func_end ov02_02331A9C + + thumb_func_start ov02_02331AA8 +ov02_02331AA8: ; 0x02331AA8 + push {r3, r4, r5, r6} + ldrh r5, [r0] + mov r3, #0 + asr r4, r5, #8 + lsl r4, r4, #0x18 + lsr r6, r4, #0x18 + lsl r4, r5, #8 + mov r5, #0xff + lsl r5, r5, #8 + and r4, r5 + orr r4, r6 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + str r4, [r1] + ldrh r6, [r0, #2] + asr r1, r6, #8 + lsl r1, r1, #0x18 + lsr r4, r1, #0x18 + lsl r1, r6, #8 + and r1, r5 + orr r1, r4 + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + add r1, r0, #6 + str r4, [r2] + add r2, r1, r4 + add r4, r0, #0 + cmp r0, r2 + bhs _02331AEC +_02331AE2: + ldrb r1, [r4] + add r4, r4, #1 + add r3, r3, r1 + cmp r4, r2 + blo _02331AE2 +_02331AEC: + ldrh r5, [r2] + lsl r1, r3, #0x10 + lsr r1, r1, #0x10 + asr r2, r5, #8 + lsl r2, r2, #0x18 + lsr r4, r2, #0x18 + mov r2, #0xff + lsl r3, r5, #8 + lsl r2, r2, #8 + and r2, r3 + orr r2, r4 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + cmp r1, r2 + beq _02331B10 + mov r0, #0 + pop {r3, r4, r5, r6} + bx lr +_02331B10: + add r0, r0, #6 + pop {r3, r4, r5, r6} + bx lr + .align 2, 0 + thumb_func_end ov02_02331AA8 + + thumb_func_start ov02_02331B18 +ov02_02331B18: ; 0x02331B18 + push {r3, r4, r5, r6} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, r1 + blo _02331B28 + mov r0, #0 + pop {r3, r4, r5, r6} + bx lr +_02331B28: + ldrh r5, [r0] + asr r1, r5, #8 + lsl r1, r1, #0x18 + lsr r6, r1, #0x18 + lsl r1, r5, #8 + mov r5, #0xff + lsl r5, r5, #8 + and r1, r5 + orr r1, r6 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + str r1, [r2] + ldrh r6, [r0, #2] + add r0, r0, #4 + asr r1, r6, #8 + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + lsl r1, r6, #8 + and r1, r5 + orr r1, r2 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + str r2, [r3] + add r2, #0xb + mov r1, #7 + bic r2, r1 + sub r1, r2, #4 + add r1, r0, r1 + str r1, [r4] + pop {r3, r4, r5, r6} + bx lr + .align 2, 0 + thumb_func_end ov02_02331B18 + + thumb_func_start ov02_02331B68 +ov02_02331B68: ; 0x02331B68 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + add r5, #8 + str r5, [sp] + add r3, r2, #0 + ldrh r2, [r0] + add r4, r1, #0 + add r0, sp, #0 + asr r1, r2, #8 + lsl r6, r2, #8 + mov r2, #0xff + lsl r1, r1, #0x18 + lsl r2, r2, #8 + lsr r1, r1, #0x18 + and r2, r6 + orr r1, r2 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r1, r5, r1 + add r2, r4, #0 + bl ov02_02331B18 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end ov02_02331B68 + + thumb_func_start ov02_02331B9C +ov02_02331B9C: ; 0x02331B9C + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r3, #0 + add r6, r0, #0 + add r0, r7, #0 + sub r0, #8 + str r1, [sp, #4] + lsl r0, r0, #0x10 + add r1, r2, #0 + mov r5, #0 + strb r5, [r1] + lsr r0, r0, #0x10 + strb r5, [r1, #1] + asr r2, r0, #8 + strb r5, [r1, #2] + lsl r2, r2, #0x18 + strb r5, [r1, #3] + lsr r3, r2, #0x18 + lsl r2, r0, #8 + mov r0, #0xff + strb r5, [r1, #4] + lsl r0, r0, #8 + strb r5, [r1, #5] + and r0, r2 + strb r5, [r1, #6] + orr r0, r3 + strb r5, [r1, #7] + ldr r3, [sp, #0x20] + add r4, r6, #0 + strh r0, [r1] + cmp r3, #0 + beq _02331BEC + mov r0, #0x10 + str r0, [sp] + add r0, r6, #6 + add r2, r7, #0 + bl ov02_023327DC + add r7, #8 + b _02331BF4 +_02331BEC: + add r0, r6, #6 + add r2, r7, #0 + blx Memcpy +_02331BF4: + mov r0, #0 + strb r0, [r6] + strb r0, [r6, #1] + strb r0, [r6, #2] + strb r0, [r6, #3] + strb r0, [r6, #4] + strb r0, [r6, #5] + ldr r0, [sp, #4] + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + asr r0, r1, #8 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + mov r0, #0xff + lsl r1, r1, #8 + lsl r0, r0, #8 + and r1, r0 + orr r1, r2 + strh r1, [r6] + lsl r1, r7, #0x10 + lsr r2, r1, #0x10 + asr r1, r2, #8 + lsl r1, r1, #0x18 + lsl r2, r2, #8 + lsr r1, r1, #0x18 + and r0, r2 + orr r0, r1 + strh r0, [r6, #2] + add r0, r4, #6 + add r4, r0, r7 + add r1, r6, #0 + cmp r6, r4 + bhs _02331C40 +_02331C36: + ldrb r0, [r1] + add r1, r1, #1 + add r5, r5, r0 + cmp r1, r4 + blo _02331C36 +_02331C40: + lsl r0, r5, #0x10 + lsr r1, r0, #0x10 + asr r0, r1, #8 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + mov r0, #0xff + lsl r1, r1, #8 + lsl r0, r0, #8 + and r0, r1 + orr r0, r2 + strh r0, [r4] + add r0, r4, #2 + sub r0, r0, r6 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end ov02_02331B9C + + thumb_func_start ov02_02331C60 +ov02_02331C60: ; 0x02331C60 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + lsl r0, r1, #0x10 + add r4, r3, #0 + mov r3, #0 + lsr r0, r0, #0x10 + add r7, r2, #0 + strb r3, [r5] + asr r1, r0, #8 + lsl r2, r0, #8 + mov r0, #0xff + strb r3, [r5, #1] + lsl r1, r1, #0x18 + lsl r0, r0, #8 + strb r3, [r5, #2] + lsr r1, r1, #0x18 + and r2, r0 + orr r1, r2 + strb r3, [r5, #3] + add r2, r4, #0 + strh r1, [r5] + add r2, #0xb + mov r1, #7 + bic r2, r1 + lsl r1, r4, #0x10 + sub r6, r2, #4 + lsr r2, r1, #0x10 + asr r1, r2, #8 + lsl r1, r1, #0x18 + lsl r2, r2, #8 + and r0, r2 + lsr r1, r1, #0x18 + orr r0, r1 + strh r0, [r5, #2] + add r5, r5, #4 + add r0, r5, #0 + add r1, r3, #0 + add r2, r6, #0 + blx Memset + add r0, r5, #0 + add r1, r7, #0 + add r2, r4, #0 + blx Memcpy + add r0, r5, r6 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end ov02_02331C60 + + thumb_func_start ov02_02331CC0 +ov02_02331CC0: ; 0x02331CC0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + strb r0, [r4] + strb r0, [r4, #1] + strb r0, [r4, #2] + strb r0, [r4, #3] + strb r0, [r4, #4] + strb r0, [r4, #5] + strb r0, [r4, #6] + strb r0, [r4, #7] + add r0, r4, #0 + add r0, #8 + bl ov02_02331C60 + sub r0, r0, r4 + add r1, r0, #0 + sub r1, #8 + strh r1, [r4] + pop {r4, pc} + thumb_func_end ov02_02331CC0 + + thumb_func_start ov02_02331CE8 +ov02_02331CE8: ; 0x02331CE8 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + str r1, [sp] + add r1, sp, #0x18 + add r2, sp, #0x14 + bl ov02_02331AA8 + mov r6, #0 + add r5, r0, #0 + add r7, r6, #0 + str r5, [sp, #8] + str r6, [sp, #4] + cmp r5, #0 + bne _02331D0A + add sp, #0x1c + add r0, r6, #0 + pop {r4, r5, r6, r7, pc} +_02331D0A: + ldr r0, [sp, #0x18] + cmp r0, #1 + beq _02331D16 + add sp, #0x1c + add r0, r6, #0 + pop {r4, r5, r6, r7, pc} +_02331D16: + ldr r4, [sp, #0x14] + add r0, r5, #0 + add r0, #8 + str r0, [sp, #8] + add r0, sp, #8 + add r1, r5, r4 + add r2, sp, #0x10 + add r3, sp, #0xc + bl ov02_02331B18 + cmp r0, #0 + beq _02331D96 +_02331D2E: + ldr r1, [sp, #0x10] + cmp r1, #1 + beq _02331D3E + cmp r1, #2 + beq _02331D56 + cmp r1, #5 + beq _02331D70 + b _02331D86 +_02331D3E: + ldrh r1, [r0] + asr r0, r1, #8 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + mov r0, #0xff + lsl r1, r1, #8 + lsl r0, r0, #8 + and r0, r1 + orr r0, r2 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + b _02331D86 +_02331D56: + ldrh r1, [r0] + asr r0, r1, #8 + lsl r2, r1, #8 + mov r1, #0xff + lsl r0, r0, #0x18 + lsl r1, r1, #8 + lsr r0, r0, #0x18 + and r1, r2 + orr r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #4] + b _02331D86 +_02331D70: + ldrh r1, [r0] + asr r0, r1, #8 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + mov r0, #0xff + lsl r1, r1, #8 + lsl r0, r0, #8 + and r0, r1 + orr r0, r2 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 +_02331D86: + add r0, sp, #8 + add r1, r5, r4 + add r2, sp, #0x10 + add r3, sp, #0xc + bl ov02_02331B18 + cmp r0, #0 + bne _02331D2E +_02331D96: + cmp r6, #1 + bne _02331DA0 + ldr r0, [sp, #4] + cmp r0, #1 + beq _02331DA6 +_02331DA0: + add sp, #0x1c + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_02331DA6: + cmp r7, #1 + blt _02331DB0 + mov r1, #1 + ldr r0, [sp] + b _02331DB4 +_02331DB0: + ldr r0, [sp] + mov r1, #0 +_02331DB4: + str r1, [r0] + mov r0, #1 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + thumb_func_end ov02_02331CE8 + + thumb_func_start ov02_02331DBC +ov02_02331DBC: ; 0x02331DBC + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + add r6, r2, #0 + add r1, sp, #8 + add r2, sp, #4 + add r4, r3, #0 + bl ov02_02331AA8 + add r1, r0, #0 + bne _02331DD8 + add sp, #0xc + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_02331DD8: + ldr r0, [sp, #8] + cmp r0, r5 + beq _02331DE4 + add sp, #0xc + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_02331DE4: + cmp r4, #0 + beq _02331DFE + mov r0, #0x10 + str r0, [sp] + ldr r2, [sp, #4] + add r0, r6, #0 + add r3, r4, #0 + bl ov02_02332994 + ldr r0, [sp, #4] + sub r0, #8 + str r0, [sp, #4] + b _02331E06 +_02331DFE: + ldr r2, [sp, #4] + add r0, r6, #0 + blx Memcpy +_02331E06: + ldr r0, [sp, #4] + add sp, #0xc + pop {r3, r4, r5, r6, pc} + thumb_func_end ov02_02331DBC + + thumb_func_start ov02_02331E0C +ov02_02331E0C: ; 0x02331E0C + push {r4, lr} + sub sp, #0x10 + mov r1, #1 + add r4, r0, #0 + add r2, sp, #4 + lsl r1, r1, #8 + add r0, sp, #4 + strh r1, [r0] + ldr r3, _02331E94 ; =0x0234FC5C + add r2, #2 + mov r1, #7 +_02331E22: + ldrb r0, [r3] + add r3, r3, #1 + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _02331E22 + ldr r0, _02331E98 ; =0x02353008 + mov r1, #1 + ldr r0, [r0] + add r2, sp, #4 + mov r3, #2 + bl ov02_02331C60 + mov r1, #2 + add r2, sp, #4 + add r3, r1, #0 + bl ov02_02331C60 + ldr r1, _02331E9C ; =0x023594D0 + ldr r1, [r1, #0x50] + cmp r1, #0 + beq _02331E58 + mov r1, #5 + add r2, sp, #4 + mov r3, #2 + bl ov02_02331C60 +_02331E58: + add r2, sp, #4 + mov r1, #3 + add r2, #2 + mov r3, #7 + bl ov02_02331C60 + ldr r1, _02331E9C ; =0x023594D0 + add r3, r0, #0 + ldr r1, [r1, #0x50] + cmp r1, #0 + beq _02331E7A + ldr r2, _02331EA0 ; =0x02359978 + mov r1, #4 + mov r3, #6 + bl ov02_02331C60 + add r3, r0, #0 +_02331E7A: + mov r0, #0 + str r0, [sp] + add r0, r4, #0 + ldr r4, _02331E98 ; =0x02353008 + ldr r2, _02331EA4 ; =0x02359A04 + ldr r4, [r4] + mov r1, #2 + sub r3, r3, r4 + add r3, #8 + bl ov02_02331B9C + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02331E94: .word 0x0234FC5C +_02331E98: .word 0x02353008 +_02331E9C: .word 0x023594D0 +_02331EA0: .word 0x02359978 +_02331EA4: .word 0x02359A04 + thumb_func_end ov02_02331E0C + + thumb_func_start ov02_02331EA8 +ov02_02331EA8: ; 0x02331EA8 + push {r3, lr} + blx sub_0207B9EC + mov r0, #1 + pop {r3, pc} + .align 2, 0 + thumb_func_end ov02_02331EA8 + + thumb_func_start ov02_02331EB4 +ov02_02331EB4: ; 0x02331EB4 + push {r3, r4, lr} + sub sp, #0x4c + ldr r1, _02331FA0 ; =0x023530C8 + add r4, r0, #0 + ldrb r0, [r1] + add r2, r4, #0 + add r2, #0xc + strb r0, [r4, #0xc] + ldrb r0, [r1, #1] + strb r0, [r2, #1] + ldrb r0, [r1, #2] + strb r0, [r2, #2] + ldrb r0, [r1, #3] + add r1, sp, #4 + add r1, #2 + strb r0, [r2, #3] + ldr r0, _02331FA4 ; =0x02359980 + ldrb r2, [r0] + strb r2, [r1] + ldrb r2, [r0, #1] + strb r2, [r1, #1] + ldrb r2, [r0, #2] + strb r2, [r1, #2] + ldrb r2, [r0, #3] + strb r2, [r1, #3] + ldrb r2, [r0, #4] + ldrb r0, [r0, #5] + strb r2, [r1, #4] + strb r0, [r1, #5] + add r1, sp, #0 + ldrb r2, [r1, #6] + mov r0, #0xfd + and r0, r2 + strb r0, [r1, #6] + add r0, sp, #0 + bl ov02_02331EA8 + add r1, sp, #0 + ldrb r2, [r1] + ldr r0, _02331FA8 ; =0x02359978 + strb r2, [r0] + ldrb r2, [r1, #1] + strb r2, [r0, #1] + ldrb r2, [r1, #2] + strb r2, [r0, #2] + ldrb r2, [r1, #3] + strb r2, [r0, #3] + ldrb r2, [r1, #4] + strb r2, [r0, #4] + ldrb r2, [r1, #5] + strb r2, [r0, #5] + add r0, sp, #4 + add r0, #2 + mov r2, #6 + blx Memcmp + cmp r0, #0 + bgt _02331F48 + add r1, sp, #0 + ldrb r0, [r1] + strb r0, [r4] + ldrb r0, [r1, #1] + strb r0, [r4, #1] + ldrb r0, [r1, #2] + strb r0, [r4, #2] + ldrb r0, [r1, #3] + strb r0, [r4, #3] + ldrb r0, [r1, #4] + strb r0, [r4, #4] + ldrb r0, [r1, #5] + add r1, sp, #4 + add r1, #2 + strb r0, [r4, #5] + b _02331F66 +_02331F48: + add r1, sp, #4 + add r1, #2 + ldrb r0, [r1] + strb r0, [r4] + ldrb r0, [r1, #1] + strb r0, [r4, #1] + ldrb r0, [r1, #2] + strb r0, [r4, #2] + ldrb r0, [r1, #3] + strb r0, [r4, #3] + ldrb r0, [r1, #4] + strb r0, [r4, #4] + ldrb r0, [r1, #5] + add r1, sp, #0 + strb r0, [r4, #5] +_02331F66: + ldrb r0, [r1] + strb r0, [r4, #6] + ldrb r0, [r1, #1] + strb r0, [r4, #7] + ldrb r0, [r1, #2] + strb r0, [r4, #8] + ldrb r0, [r1, #3] + strb r0, [r4, #9] + ldrb r0, [r1, #4] + strb r0, [r4, #0xa] + ldrb r0, [r1, #5] + strb r0, [r4, #0xb] + ldr r0, _02331FAC ; =0x02353008 + ldr r0, [r0, #4] + cmp r0, #0 + beq _02331F98 + add r0, sp, #0x2c + add r1, sp, #0 + bl ov02_023341C4 + add r1, sp, #4 + add r0, sp, #0xc + add r1, #2 + bl ov02_023341C4 +_02331F98: + mov r0, #1 + add sp, #0x4c + pop {r3, r4, pc} + nop +_02331FA0: .word 0x023530C8 +_02331FA4: .word 0x02359980 +_02331FA8: .word 0x02359978 +_02331FAC: .word 0x02353008 + thumb_func_end ov02_02331EB4 + + thumb_func_start ov02_02331FB0 +ov02_02331FB0: ; 0x02331FB0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r1, r0, #0 + str r1, [sp, #4] + add r1, #8 + str r1, [sp, #4] + str r1, [sp, #0x14] + mov r1, #0 + str r1, [sp] + ldrh r1, [r0] + add r3, sp, #0xc + asr r0, r1, #8 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + mov r0, #0xff + lsl r1, r1, #8 + lsl r0, r0, #8 + and r0, r1 + orr r0, r2 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #8] + ldr r2, [sp, #4] + ldr r1, [sp, #8] + add r0, sp, #0x14 + add r1, r2, r1 + add r2, sp, #0x10 + bl ov02_02331B18 + add r5, r0, #0 + bne _02331FF0 + b _02332160 +_02331FF0: + ldr r2, [sp, #0x10] + ldr r0, _02332168 ; =0x00000201 + sub r1, r2, r0 + cmp r1, #9 + bhi _0233207E + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02332006: ; jump table + .hword _0233201A - _02332006 - 2 ; case 0 + .hword _0233203A - _02332006 - 2 ; case 1 + .hword _02332056 - _02332006 - 2 ; case 2 + .hword _02332080 - _02332006 - 2 ; case 3 + .hword _023320AA - _02332006 - 2 ; case 4 + .hword _023320C6 - _02332006 - 2 ; case 5 + .hword _023320C6 - _02332006 - 2 ; case 6 + .hword _023320C6 - _02332006 - 2 ; case 7 + .hword _023320C6 - _02332006 - 2 ; case 8 + .hword _02332126 - _02332006 - 2 ; case 9 +_0233201A: + ldr r3, _0233216C ; =0x02359824 + mov r0, #0 + add r2, r3, #0 + add r1, r0, #0 + stmia r2!, {r0, r1} + stmia r2!, {r0, r1} + stmia r2!, {r0, r1} + stmia r2!, {r0, r1} + ldr r2, [sp, #0xc] + add r0, r3, #0 + add r1, r5, #0 + blx Memcpy + mov r0, #1 + str r0, [sp] + b _0233214A +_0233203A: + ldrh r1, [r5] + asr r0, r1, #8 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + mov r0, #0xff + lsl r1, r1, #8 + lsl r0, r0, #8 + and r0, r1 + orr r0, r2 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, _02332170 ; =0x02359850 + str r1, [r0] + b _0233214A +_02332056: + ldrh r3, [r5] + ldr r1, _02332174 ; =0x02359724 + mov r0, #0 + asr r2, r3, #8 + lsl r2, r2, #0x18 + lsr r4, r2, #0x18 + mov r2, #0xff + lsl r3, r3, #8 + lsl r2, r2, #8 + and r2, r3 + orr r2, r4 + lsl r2, r2, #0x10 + lsr r3, r2, #0x10 + mov r2, #0x57 + lsl r2, r2, #2 +_02332074: + add r0, r0, #1 + str r3, [r1, r2] + add r1, #0x28 + cmp r0, #4 + blt _02332074 +_0233207E: + b _0233214A +_02332080: + ldrh r3, [r5] + ldr r0, _02332174 ; =0x02359724 + mov r1, #0 + asr r2, r3, #8 + lsl r2, r2, #0x18 + lsr r4, r2, #0x18 + mov r2, #0xff + lsl r3, r3, #8 + lsl r2, r2, #8 + and r2, r3 + orr r2, r4 + lsl r2, r2, #0x10 + lsr r3, r2, #0x10 + mov r2, #0x16 + lsl r2, r2, #4 +_0233209E: + add r1, r1, #1 + str r3, [r0, r2] + add r0, #0x28 + cmp r1, #4 + blt _0233209E + b _0233214A +_023320AA: + ldrh r1, [r5] + asr r0, r1, #8 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + mov r0, #0xff + lsl r1, r1, #8 + lsl r0, r0, #8 + and r0, r1 + orr r0, r2 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, _02332170 ; =0x02359850 + str r1, [r0, #4] + b _0233214A +_023320C6: + add r0, r0, #5 + sub r2, r2, r0 + mov r0, #0x28 + mul r0, r2 + ldr r1, _02332178 ; =0x02359888 + mov r2, #0x20 + add r0, r1, r0 + mov r1, #0 + blx Memset + ldr r0, _02332170 ; =0x02359850 + ldr r1, _0233217C ; =0x00000206 + ldr r0, [r0, #0x30] + cmp r0, #1 + bne _02332110 + ldr r2, [sp, #0x10] + ldr r0, _02332178 ; =0x02359888 + sub r2, r2, r1 + mov r1, #0x28 + mul r1, r2 + add r4, r0, r1 + ldr r0, [sp, #0xc] + mov r6, #0 + cmp r0, #0 + ble _0233214A + add r7, r6, #0 +_023320FA: + ldrsb r1, [r5, r7] + add r0, r4, #0 + add r5, r5, #1 + bl ov02_02334190 + add r4, r4, r0 + ldr r0, [sp, #0xc] + add r6, r6, #1 + cmp r6, r0 + blt _023320FA + b _0233214A +_02332110: + ldr r2, [sp, #0x10] + ldr r0, _02332178 ; =0x02359888 + sub r2, r2, r1 + mov r1, #0x28 + mul r1, r2 + add r0, r0, r1 + ldr r2, [sp, #0xc] + add r1, r5, #0 + blx Memcpy + b _0233214A +_02332126: + ldr r3, _02332180 ; =0x02359920 + mov r0, #0 + add r2, r3, #0 + add r1, r0, #0 + stmia r2!, {r0, r1} + stmia r2!, {r0, r1} + stmia r2!, {r0, r1} + stmia r2!, {r0, r1} + stmia r2!, {r0, r1} + stmia r2!, {r0, r1} + stmia r2!, {r0, r1} + stmia r2!, {r0, r1} + stmia r2!, {r0, r1} + ldr r2, [sp, #0xc] + add r0, r3, #0 + add r1, r5, #0 + blx Memcpy +_0233214A: + ldr r2, [sp, #4] + ldr r1, [sp, #8] + add r0, sp, #0x14 + add r1, r2, r1 + add r2, sp, #0x10 + add r3, sp, #0xc + bl ov02_02331B18 + add r5, r0, #0 + beq _02332160 + b _02331FF0 +_02332160: + ldr r0, [sp] + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_02332168: .word 0x00000201 +_0233216C: .word 0x02359824 +_02332170: .word 0x02359850 +_02332174: .word 0x02359724 +_02332178: .word 0x02359888 +_0233217C: .word 0x00000206 +_02332180: .word 0x02359920 + thumb_func_end ov02_02331FB0 + + thumb_func_start ov02_02332184 +ov02_02332184: ; 0x02332184 + push {r4, r5, r6, r7} + add r4, r2, #0 + mov r2, #0 + add r5, r1, #0 + add r3, r2, #0 + cmp r4, #0 + ble _02332232 + mov r7, #0x1f +_02332194: + ldrsb r1, [r5, r3] + cmp r1, #0x63 + bgt _023321EA + bge _02332202 + cmp r1, #0x61 + bgt _023321E4 + bge _02332202 + add r6, r1, #0 + sub r6, #0x30 + cmp r6, #0x16 + bhi _0233220E + add r6, r6, r6 + add r6, pc + ldrh r6, [r6, #6] + lsl r6, r6, #0x10 + asr r6, r6, #0x10 + add pc, r6 +_023321B6: ; jump table + .hword _023321FC - _023321B6 - 2 ; case 0 + .hword _023321FC - _023321B6 - 2 ; case 1 + .hword _023321FC - _023321B6 - 2 ; case 2 + .hword _023321FC - _023321B6 - 2 ; case 3 + .hword _023321FC - _023321B6 - 2 ; case 4 + .hword _023321FC - _023321B6 - 2 ; case 5 + .hword _023321FC - _023321B6 - 2 ; case 6 + .hword _023321FC - _023321B6 - 2 ; case 7 + .hword _023321FC - _023321B6 - 2 ; case 8 + .hword _023321FC - _023321B6 - 2 ; case 9 + .hword _0233220E - _023321B6 - 2 ; case 10 + .hword _0233220E - _023321B6 - 2 ; case 11 + .hword _0233220E - _023321B6 - 2 ; case 12 + .hword _0233220E - _023321B6 - 2 ; case 13 + .hword _0233220E - _023321B6 - 2 ; case 14 + .hword _0233220E - _023321B6 - 2 ; case 15 + .hword _0233220E - _023321B6 - 2 ; case 16 + .hword _02332208 - _023321B6 - 2 ; case 17 + .hword _02332208 - _023321B6 - 2 ; case 18 + .hword _02332208 - _023321B6 - 2 ; case 19 + .hword _02332208 - _023321B6 - 2 ; case 20 + .hword _02332208 - _023321B6 - 2 ; case 21 + .hword _02332208 - _023321B6 - 2 ; case 22 +_023321E4: + cmp r1, #0x62 + beq _02332202 + b _0233220E +_023321EA: + cmp r1, #0x65 + bgt _023321F6 + bge _02332202 + cmp r1, #0x64 + beq _02332202 + b _0233220E +_023321F6: + cmp r1, #0x66 + beq _02332202 + b _0233220E +_023321FC: + sub r1, #0x30 + add r2, r2, r1 + b _02332214 +_02332202: + sub r1, #0x57 + add r2, r2, r1 + b _02332214 +_02332208: + sub r1, #0x37 + add r2, r2, r1 + b _02332214 +_0233220E: + mov r0, #0 + pop {r4, r5, r6, r7} + bx lr +_02332214: + lsr r6, r3, #0x1f + lsl r1, r3, #0x1f + sub r1, r1, r6 + ror r1, r7 + add r1, r6, r1 + bne _02332224 + lsl r2, r2, #4 + b _0233222C +_02332224: + add r6, r3, r6 + asr r1, r6, #1 + strb r2, [r0, r1] + mov r2, #0 +_0233222C: + add r3, r3, #1 + cmp r3, r4 + blt _02332194 +_02332232: + mov r0, #1 + pop {r4, r5, r6, r7} + bx lr + thumb_func_end ov02_02332184 + + thumb_func_start ov02_02332238 +ov02_02332238: ; 0x02332238 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + mov r0, #1 + str r0, [sp] + ldr r0, _023323A0 ; =0x0235963C + ldr r1, _023323A4 ; =0x02359824 + blx Strcpy + ldr r1, _023323A8 ; =0x02359850 + ldr r0, [r1] + cmp r0, #3 + bls _02332252 + b _02332392 +_02332252: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0233225E: ; jump table + .hword _02332266 - _0233225E - 2 ; case 0 + .hword _0233226E - _0233225E - 2 ; case 1 + .hword _02332366 - _0233225E - 2 ; case 2 + .hword _0233237C - _0233225E - 2 ; case 3 +_02332266: + ldr r0, _023323AC ; =0x02359650 + mov r1, #0 + str r1, [r0, #0xc] + b _02332398 +_0233226E: + ldr r1, [r1, #4] + cmp r1, #0 + bne _0233227C + mov r0, #6 + mvn r0, r0 + str r0, [sp] + b _02332398 +_0233227C: + ldr r0, _023323AC ; =0x02359650 + ldr r6, _023323B0 ; =0x02359888 + ldr r5, _023323B4 ; =0x02359664 + str r1, [r0, #0x10] + mov r7, #0 + add r4, sp, #4 +_02332288: + add r0, sp, #4 + add r1, r6, #0 + mov r2, #0x20 + blx Memcpy + mov r1, #0 + add r0, sp, #0x24 + strb r1, [r0] + add r0, sp, #4 + blx Strlen + cmp r0, #0x10 + bhi _023322C0 + cmp r0, #0xa + blo _023322B2 + beq _023322EA + cmp r0, #0xd + beq _023322FC + cmp r0, #0x10 + beq _02332328 + b _02332354 +_023322B2: + cmp r0, #0 + bhi _023322BA + beq _0233235A + b _02332354 +_023322BA: + cmp r0, #5 + beq _023322CE + b _02332354 +_023322C0: + cmp r0, #0x1a + bhi _023322C8 + beq _02332316 + b _02332354 +_023322C8: + cmp r0, #0x20 + beq _02332342 + b _02332354 +_023322CE: + ldr r0, _023323AC ; =0x02359650 + mov r1, #1 + str r1, [r0, #0xc] + ldrb r0, [r4] + strb r0, [r5] + ldrb r0, [r4, #1] + strb r0, [r5, #1] + ldrb r0, [r4, #2] + strb r0, [r5, #2] + ldrb r0, [r4, #3] + strb r0, [r5, #3] + ldrb r0, [r4, #4] + strb r0, [r5, #4] + b _0233235A +_023322EA: + ldr r0, _023323AC ; =0x02359650 + mov r1, #1 + str r1, [r0, #0xc] + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0xa + bl ov02_02332184 + b _0233235A +_023322FC: + ldr r0, _023323AC ; =0x02359650 + mov r1, #2 + str r1, [r0, #0xc] + add r3, r4, #0 + add r2, r5, #0 + mov r1, #0xd +_02332308: + ldrb r0, [r3] + add r3, r3, #1 + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _02332308 + b _0233235A +_02332316: + ldr r0, _023323AC ; =0x02359650 + mov r1, #2 + str r1, [r0, #0xc] + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x1a + bl ov02_02332184 + b _0233235A +_02332328: + ldr r0, _023323AC ; =0x02359650 + mov r1, #3 + str r1, [r0, #0xc] + add r3, r4, #0 + add r2, r5, #0 + mov r1, #0x10 +_02332334: + ldrb r0, [r3] + add r3, r3, #1 + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _02332334 + b _0233235A +_02332342: + ldr r0, _023323AC ; =0x02359650 + mov r1, #3 + str r1, [r0, #0xc] + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x20 + bl ov02_02332184 + b _0233235A +_02332354: + mov r0, #6 + mvn r0, r0 + str r0, [sp] +_0233235A: + add r7, r7, #1 + add r6, #0x28 + add r5, #0x20 + cmp r7, #4 + blt _02332288 + b _02332398 +_02332366: + ldr r0, _023323AC ; =0x02359650 + mov r1, #4 + ldr r4, _023323B8 ; =0x023596E4 + ldr r3, _023323BC ; =0x02359920 + str r1, [r0, #0xc] + mov r2, #8 +_02332372: + ldmia r3!, {r0, r1} + stmia r4!, {r0, r1} + sub r2, r2, #1 + bne _02332372 + b _02332398 +_0233237C: + ldr r0, _023323AC ; =0x02359650 + mov r1, #5 + ldr r4, _023323B8 ; =0x023596E4 + ldr r3, _023323BC ; =0x02359920 + str r1, [r0, #0xc] + mov r2, #8 +_02332388: + ldmia r3!, {r0, r1} + stmia r4!, {r0, r1} + sub r2, r2, #1 + bne _02332388 + b _02332398 +_02332392: + mov r0, #6 + mvn r0, r0 + str r0, [sp] +_02332398: + ldr r0, [sp] + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + nop +_023323A0: .word 0x0235963C +_023323A4: .word 0x02359824 +_023323A8: .word 0x02359850 +_023323AC: .word 0x02359650 +_023323B0: .word 0x02359888 +_023323B4: .word 0x02359664 +_023323B8: .word 0x023596E4 +_023323BC: .word 0x02359920 + thumb_func_end ov02_02332238 + + thumb_func_start ov02_023323C0 +ov02_023323C0: ; 0x023323C0 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + mov r4, #0 + sub r0, r4, #5 + str r0, [sp, #8] + ldr r0, _02332708 ; =0x023594D0 + mov r1, #1 + str r4, [sp, #0xc] + str r4, [sp, #4] + add r6, r4, #0 + str r1, [r0, #0x1c] + b _02332772 +_023323D8: + mov r0, #0x7d + lsl r0, r0, #2 + blx sub_02079B14 + ldr r0, _02332708 ; =0x023594D0 + ldr r0, [r0, #0x1c] + cmp r0, #0xa + bls _023323EA + b _02332772 +_023323EA: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_023323F6: ; jump table + .hword _02332772 - _023323F6 - 2 ; case 0 + .hword _0233240C - _023323F6 - 2 ; case 1 + .hword _0233242C - _023323F6 - 2 ; case 2 + .hword _02332442 - _023323F6 - 2 ; case 3 + .hword _02332490 - _023323F6 - 2 ; case 4 + .hword _023324F8 - _023323F6 - 2 ; case 5 + .hword _0233251C - _023323F6 - 2 ; case 6 + .hword _023325C6 - _023323F6 - 2 ; case 7 + .hword _02332622 - _023323F6 - 2 ; case 8 + .hword _023326AA - _023323F6 - 2 ; case 9 + .hword _02332748 - _023323F6 - 2 ; case 10 +_0233240C: + bl ov02_023317B4 + str r0, [sp, #8] + cmp r0, #1 + beq _0233241A + mov r6, #1 + b _02332772 +_0233241A: + ldr r0, _02332708 ; =0x023594D0 + mov r1, #3 + str r1, [r0, #0x38] + bl ov02_023343C0 + ldr r0, _02332708 ; =0x023594D0 + mov r1, #2 + str r1, [r0, #0x1c] + b _02332772 +_0233242C: + bl ov02_02331460 + str r0, [sp, #8] + cmp r0, #1 + beq _0233243A + mov r6, #1 + b _02332772 +_0233243A: + ldr r0, _02332708 ; =0x023594D0 + mov r1, #3 + str r1, [r0, #0x1c] + b _02332772 +_02332442: + mov r0, #2 + add r1, r0, #0 + mov r2, #0 + blx ov00_022CF1AC + add r4, r0, #0 + bpl _0233245A + mov r0, #1 + mvn r0, r0 + str r0, [sp, #8] + mov r6, #1 + b _02332772 +_0233245A: + add r5, sp, #0x24 + mov r1, #0 + str r1, [r5] + str r1, [r5, #4] + mov r3, #8 + add r2, sp, #0x10 + strb r3, [r2, #0x14] + mov r3, #2 + strb r3, [r2, #0x15] + ldr r3, _0233270C ; =0x000001E6 + strh r3, [r2, #0x16] + str r1, [sp, #0x28] + add r1, r5, #0 + blx ov00_022CF1D8 + str r0, [sp, #8] + cmp r0, #0 + bge _02332488 + mov r0, #1 + mvn r0, r0 + str r0, [sp, #8] + mov r6, #1 + b _02332772 +_02332488: + ldr r0, _02332708 ; =0x023594D0 + mov r1, #4 + str r1, [r0, #0x1c] + b _02332772 +_02332490: + bl ov02_02334140 + ldr r1, _02332710 ; =0x02353008 + ldr r1, [r1, #0xc] + cmp r0, r1 + blo _023324AC + add r0, r4, #0 + blx ov00_022CF3C8 + mov r0, #2 + mvn r0, r0 + str r0, [sp, #8] + mov r6, #1 + b _02332772 +_023324AC: + mov r1, #8 + add r0, sp, #0x10 + strb r1, [r0, #0xc] + ldr r0, _02332714 ; =0x02359990 + add r1, sp, #0x1c + bl ov02_02331EB4 + add r0, sp, #0x1c + mov r2, #2 + str r0, [sp] + ldr r1, _02332718 ; =0x0235A204 + add r0, r4, #0 + lsl r2, r2, #0xa + mov r3, #4 + blx ov00_022CF284 + cmp r0, #0 + ble _023325AA + ldr r0, _02332718 ; =0x0235A204 + ldr r1, _0233271C ; =0x02359520 + bl ov02_02331CE8 + cmp r0, #0 + beq _023325AA + bl ov02_02334140 + ldr r1, _02332720 ; =0x00007530 + add r1, r0, r1 + ldr r0, _02332710 ; =0x02353008 + str r1, [r0, #0xc] + ldr r0, _02332708 ; =0x023594D0 + mov r1, #5 + str r1, [r0, #0x1c] + mov r1, #4 + str r1, [r0, #0x38] + bl ov02_023343C0 + b _02332772 +_023324F8: + ldr r0, _02332718 ; =0x0235A204 + bl ov02_02331E0C + add r3, r0, #0 + ldr r0, _02332708 ; =0x023594D0 + ldr r2, _02332718 ; =0x0235A204 + str r3, [r0, #0x14] + add r0, r4, #0 + add r1, sp, #0x1c + bl ov02_02331A9C + bl ov02_02334140 + str r0, [sp, #0xc] + ldr r0, _02332708 ; =0x023594D0 + mov r1, #6 + str r1, [r0, #0x1c] + b _02332772 +_0233251C: + bl ov02_02334140 + ldr r1, _02332710 ; =0x02353008 + ldr r1, [r1, #0xc] + cmp r0, r1 + blo _02332538 + add r0, r4, #0 + blx ov00_022CF3C8 + mov r0, #3 + mvn r0, r0 + str r0, [sp, #8] + mov r6, #1 + b _02332772 +_02332538: + add r0, sp, #0x1c + mov r2, #2 + str r0, [sp] + ldr r1, _02332718 ; =0x0235A204 + add r0, r4, #0 + lsl r2, r2, #0xa + mov r3, #4 + blx ov00_022CF284 + cmp r0, #0 + ble _023325AC + ldr r0, _02332718 ; =0x0235A204 + ldr r2, _02332724 ; =0x02359A04 + ldr r3, _02332714 ; =0x02359990 + mov r1, #3 + bl ov02_02331DBC + cmp r0, #0 + beq _023325AC + ldr r0, _02332724 ; =0x02359A04 + add r1, sp, #0x18 + add r2, sp, #0x14 + bl ov02_02331B68 + add r5, r0, #0 + ldr r1, [sp, #0x18] + ldr r0, _02332728 ; =0x00000101 + cmp r1, r0 + bne _023325AA + bl ov02_02334140 + ldr r2, _0233272C ; =0x023599A0 + str r0, [sp, #0x10] + mov r1, #8 +_0233257C: + ldrb r0, [r5] + add r5, r5, #1 + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _0233257C + ldr r0, _02332730 ; =0x023599A8 + add r1, sp, #0x10 + mov r2, #4 + bl ov02_02334118 + mov r0, #0 + str r0, [sp, #4] + ldr r0, _02332708 ; =0x023594D0 + mov r1, #7 + str r1, [r0, #0x1c] + mov r1, #5 + str r1, [r0, #0x38] + ldr r0, _02332710 ; =0x02353008 + sub r1, r1, #6 + str r1, [r0, #0xc] + bl ov02_023343C0 +_023325AA: + b _02332772 +_023325AC: + bl ov02_02334140 + mov r2, #0xfa + ldr r1, [sp, #0xc] + lsl r2, r2, #2 + add r1, r1, r2 + cmp r0, r1 + bhs _023325BE + b _02332772 +_023325BE: + ldr r0, _02332708 ; =0x023594D0 + mov r1, #5 + str r1, [r0, #0x1c] + b _02332772 +_023325C6: + ldr r0, _02332724 ; =0x02359A04 + ldr r1, _02332734 ; =0x00000102 + ldr r2, _02332730 ; =0x023599A8 + mov r3, #8 + bl ov02_02331CC0 + ldr r3, _02332708 ; =0x023594D0 + ldr r2, _02332724 ; =0x02359A04 + str r0, [r3, #0x34] + ldr r0, _02332714 ; =0x02359990 + mov r1, #4 + str r0, [sp] + ldr r0, _02332718 ; =0x0235A204 + ldr r3, [r3, #0x34] + bl ov02_02331B9C + add r3, r0, #0 + ldr r0, _02332708 ; =0x023594D0 + ldr r2, _02332718 ; =0x0235A204 + str r3, [r0, #0x14] + add r0, r4, #0 + add r1, sp, #0x1c + bl ov02_02331A9C + bl ov02_02334140 + str r0, [sp, #0xc] + mov r0, #0 + mov r5, #0x12 + ldr r7, _02332738 ; =0x02359724 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + mov ip, r5 +_0233260A: + stmia r7!, {r0, r1, r2, r3} + mov r5, ip + sub r5, r5, #1 + stmia r7!, {r0, r1, r2, r3} + mov ip, r5 + bne _0233260A + stmia r7!, {r0, r1, r2, r3} + str r0, [r7] + ldr r0, _02332708 ; =0x023594D0 + mov r1, #8 + str r1, [r0, #0x1c] + b _02332772 +_02332622: + add r0, sp, #0x1c + mov r2, #2 + str r0, [sp] + ldr r1, _02332718 ; =0x0235A204 + add r0, r4, #0 + lsl r2, r2, #0xa + mov r3, #4 + blx ov00_022CF284 + cmp r0, #0 + ble _02332678 + ldr r0, _02332718 ; =0x0235A204 + ldr r2, _02332724 ; =0x02359A04 + ldr r3, _0233272C ; =0x023599A0 + mov r1, #5 + bl ov02_02331DBC + ldr r1, _02332708 ; =0x023594D0 + cmp r0, #0 + str r0, [r1, #0x34] + beq _02332678 + ldr r0, _02332724 ; =0x02359A04 + bl ov02_02331FB0 + cmp r0, #0 + beq _02332678 + ldr r1, _0233273C ; =0x02359810 + mov r0, #0x14 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _02332666 + mov r1, #1 + ldr r0, _02332708 ; =0x023594D0 + b _0233266A +_02332666: + ldr r0, _02332708 ; =0x023594D0 + mov r1, #0 +_0233266A: + strb r1, [r0] + mov r0, #0 + str r0, [sp, #4] + ldr r0, _02332708 ; =0x023594D0 + mov r1, #9 + str r1, [r0, #0x1c] + b _02332772 +_02332678: + bl ov02_02334140 + mov r2, #0xfa + ldr r1, [sp, #0xc] + lsl r2, r2, #2 + add r1, r1, r2 + cmp r0, r1 + blo _02332772 + ldr r0, [sp, #4] + add r0, r0, #1 + str r0, [sp, #4] + cmp r0, #0xa + blt _023326A2 + add r0, r4, #0 + blx ov00_022CF3C8 + mov r0, #1 + mvn r0, r0 + str r0, [sp, #8] + mov r6, #1 + b _02332772 +_023326A2: + ldr r0, _02332708 ; =0x023594D0 + mov r1, #7 + str r1, [r0, #0x1c] + b _02332772 +_023326AA: + ldr r0, _02332724 ; =0x02359A04 + ldr r1, _02332740 ; =0x00000301 + ldr r2, _02332744 ; =0x023594D0 + mov r3, #1 + bl ov02_02331CC0 + ldr r3, _02332708 ; =0x023594D0 + ldr r2, _02332724 ; =0x02359A04 + str r0, [r3, #0x34] + ldr r0, _0233272C ; =0x023599A0 + mov r1, #6 + str r0, [sp] + ldr r0, _02332718 ; =0x0235A204 + ldr r3, [r3, #0x34] + bl ov02_02331B9C + ldr r1, _02332708 ; =0x023594D0 + str r0, [r1, #0x14] + bl ov02_02331264 + cmp r0, #7 + beq _023326EC + bl ov02_02334140 + mov r1, #0xfa + lsl r1, r1, #2 + add r0, r0, r1 + str r0, [sp, #0xc] + mov r0, #0xa + ldr r1, _02332708 ; =0x023594D0 + str r0, [sp, #4] + str r0, [r1, #0x1c] + b _02332772 +_023326EC: + ldr r3, _02332708 ; =0x023594D0 + ldr r2, _02332718 ; =0x0235A204 + ldr r3, [r3, #0x14] + add r0, r4, #0 + add r1, sp, #0x1c + bl ov02_02331A9C + bl ov02_02334140 + str r0, [sp, #0xc] + ldr r0, _02332708 ; =0x023594D0 + mov r1, #0xa + str r1, [r0, #0x1c] + b _02332772 + .align 2, 0 +_02332708: .word 0x023594D0 +_0233270C: .word 0x000001E6 +_02332710: .word 0x02353008 +_02332714: .word 0x02359990 +_02332718: .word 0x0235A204 +_0233271C: .word 0x02359520 +_02332720: .word 0x00007530 +_02332724: .word 0x02359A04 +_02332728: .word 0x00000101 +_0233272C: .word 0x023599A0 +_02332730: .word 0x023599A8 +_02332734: .word 0x00000102 +_02332738: .word 0x02359724 +_0233273C: .word 0x02359810 +_02332740: .word 0x00000301 +_02332744: .word 0x023594D0 +_02332748: + bl ov02_02334140 + mov r2, #0xfa + ldr r1, [sp, #0xc] + lsl r2, r2, #2 + add r1, r1, r2 + cmp r0, r1 + blo _02332772 + ldr r0, [sp, #4] + add r0, r0, #1 + str r0, [sp, #4] + cmp r0, #0xa + blt _0233276C + mov r6, #1 + bl ov02_02332238 + str r0, [sp, #8] + b _02332772 +_0233276C: + ldr r0, _023327A0 ; =0x023594D0 + mov r1, #9 + str r1, [r0, #0x1c] +_02332772: + cmp r6, #0 + bne _02332780 + ldr r0, _023327A0 ; =0x023594D0 + ldr r0, [r0, #0x10] + cmp r0, #0 + bne _02332780 + b _023323D8 +_02332780: + cmp r4, #0 + beq _0233278A + add r0, r4, #0 + blx ov00_022CF3C8 +_0233278A: + ldr r0, _023327A0 ; =0x023594D0 + ldr r0, [r0, #0x10] + cmp r0, #0 + beq _02332798 + mov r0, #7 + mvn r0, r0 + str r0, [sp, #8] +_02332798: + ldr r0, [sp, #8] + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + nop +_023327A0: .word 0x023594D0 + thumb_func_end ov02_023323C0 + + thumb_func_start ov02_023327A4 +ov02_023327A4: ; 0x023327A4 + push {r4, lr} + bl ov02_023323C0 + add r4, r0, #0 + ldr r0, _023327D4 ; =0x023594D0 + str r4, [r0, #0x78] + bl ov02_02331584 + cmp r4, #1 + bne _023327BE + mov r1, #6 + ldr r0, _023327D4 ; =0x023594D0 + b _023327C2 +_023327BE: + ldr r0, _023327D4 ; =0x023594D0 + mov r1, #7 +_023327C2: + str r1, [r0, #0x38] + mov r1, #0 + ldr r0, _023327D8 ; =0x02353008 + mvn r1, r1 + str r1, [r0, #0xc] + bl ov02_023343C0 + pop {r4, pc} + nop +_023327D4: .word 0x023594D0 +_023327D8: .word 0x02353008 + thumb_func_end ov02_023327A4 + + thumb_func_start ov02_023327DC +ov02_023327DC: ; 0x023327DC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x1a8 + str r0, [sp] + ldr r0, _02332990 ; =0xA6A6A6A6 + add r4, r2, #0 + add r5, r1, #0 + str r0, [sp, #0x48] + str r0, [sp, #0x4c] + mov r0, #7 + add r1, r4, #0 + tst r1, r0 + bne _023327FA + ldr r2, [sp, #0x1c0] + tst r0, r2 + beq _02332800 +_023327FA: + add sp, #0x1a8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_02332800: + lsr r0, r4, #3 + str r0, [sp, #0x14] + cmp r0, #2 + bge _0233280E + add sp, #0x1a8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_0233280E: + add r0, sp, #0x68 + add r1, r3, #0 + lsl r2, r2, #3 + bl ov02_02332B94 + str r0, [sp, #0x1c] + ldr r0, [sp] + add r1, r5, #0 + add r0, #8 + add r2, r4, #0 + blx Memcpy + add r3, sp, #0x58 + add r2, sp, #0x48 + mov r1, #8 +_0233282C: + ldrb r0, [r2] + add r2, r2, #1 + strb r0, [r3] + add r3, r3, #1 + sub r1, r1, #1 + bne _0233282C + mov r0, #0 + str r0, [sp, #0x20] + ldr r0, [sp, #0x14] + asr r0, r0, #0x1f + str r0, [sp, #0x18] +_02332842: + ldr r0, [sp, #0x14] + mov r4, #1 + cmp r0, #1 + bge _0233284C + b _02332968 +_0233284C: + ldr r2, [sp, #0x20] + ldr r1, [sp, #0x18] + asr r3, r2, #0x1f + blx sub_0208FE84 + str r0, [sp, #0xc] + mov r0, #0 + str r1, [sp, #8] + str r0, [sp, #0x28] + mov r0, #0 + mov r1, #0 + str r0, [sp, #0x30] + add r0, r1, #0 + orr r0, r1 + str r0, [sp, #0x40] +_0233286A: + ldr r0, [sp] + lsl r1, r4, #3 + add r5, r0, r1 + add r3, r5, #0 + add r2, sp, #0x60 + mov r1, #8 +_02332876: + ldrb r0, [r3] + add r3, r3, #1 + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _02332876 + add r2, sp, #0x58 + ldr r1, [sp, #0x1c] + add r0, sp, #0x68 + add r3, r2, #0 + bl ov02_02332FDC + ldr r0, [sp, #0xc] + asr r1, r4, #0x1f + add r3, r4, r0 + ldr r0, [sp, #8] + adc r1, r0 + mov r0, #0xff + lsl r0, r0, #0x18 + and r0, r1 + lsr r0, r0, #0x18 + str r0, [sp, #0x24] + mov r0, #0xff + lsl r0, r0, #0x10 + and r0, r1 + lsr r0, r0, #8 + str r0, [sp, #0x2c] + mov r0, #0xff + lsl r0, r0, #8 + mov r2, #0 + and r0, r1 + and r2, r3 + lsl r6, r0, #8 + lsr r2, r2, #0x18 + str r2, [sp, #0x34] + orr r2, r6 + lsr r0, r0, #0x18 + str r2, [sp, #0x34] + str r0, [sp, #0x38] + mov r0, #0xff + mov r2, #0 + and r0, r1 + and r2, r3 + lsl r6, r0, #0x18 + lsr r2, r2, #8 + str r2, [sp, #0x44] + orr r2, r6 + lsr r0, r0, #8 + str r2, [sp, #0x44] + str r0, [sp, #0x3c] + mov r0, #0 + add r2, r1, #0 + and r2, r0 + mov r0, #0xff + lsl r0, r0, #0x18 + and r0, r3 + lsr r6, r0, #0x18 + lsl r0, r0, #8 + mov ip, r0 + mov r0, #0 + and r1, r0 + mov r0, #0xff + lsl r0, r0, #0x10 + lsl r2, r2, #8 + and r0, r3 + orr r2, r6 + lsr r6, r0, #8 + lsl r7, r0, #0x18 + mov r0, #0xff + lsl r1, r1, #0x18 + and r0, r3 + orr r1, r6 + lsl r6, r0, #0x18 + mov r0, #0xff + lsl r0, r0, #8 + and r0, r3 + lsl r0, r0, #8 + orr r0, r6 + orr r1, r0 + ldr r0, [sp, #0x40] + add r3, r7, #0 + orr r3, r0 + mov r0, ip + orr r1, r2 + add r2, r0, #0 + ldr r0, [sp, #0x3c] + orr r2, r3 + orr r1, r0 + ldr r0, [sp, #0x44] + orr r2, r0 + ldr r0, [sp, #0x38] + orr r1, r0 + ldr r0, [sp, #0x34] + orr r2, r0 + ldr r0, [sp, #0x30] + orr r1, r0 + ldr r0, [sp, #0x2c] + orr r2, r0 + ldr r0, [sp, #0x28] + orr r1, r0 + ldr r0, [sp, #0x24] + str r1, [sp, #0x54] + orr r0, r2 + str r0, [sp, #0x50] + add r0, sp, #0x58 + add r1, sp, #0x50 + add r2, r0, #0 + bl ov02_02332B4C + add r2, sp, #0x60 + mov r1, #8 +_02332954: + ldrb r0, [r2] + add r2, r2, #1 + strb r0, [r5] + add r5, r5, #1 + sub r1, r1, #1 + bne _02332954 + ldr r0, [sp, #0x14] + add r4, r4, #1 + cmp r4, r0 + ble _0233286A +_02332968: + ldr r0, [sp, #0x20] + add r0, r0, #1 + str r0, [sp, #0x20] + cmp r0, #6 + bge _02332974 + b _02332842 +_02332974: + add r3, sp, #0x58 + mov r2, #8 +_02332978: + ldrb r1, [r3] + ldr r0, [sp] + add r3, r3, #1 + strb r1, [r0] + add r0, r0, #1 + str r0, [sp] + sub r2, r2, #1 + bne _02332978 + mov r0, #1 + add sp, #0x1a8 + pop {r3, r4, r5, r6, r7, pc} + nop +_02332990: .word 0xA6A6A6A6 + thumb_func_end ov02_023327DC + + thumb_func_start ov02_02332994 +ov02_02332994: ; 0x02332994 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x1a8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #0x1c] + ldr r0, _02332B48 ; =0xA6A6A6A6 + add r4, r2, #0 + add r5, r1, #0 + str r0, [sp, #0x48] + str r0, [sp, #0x4c] + mov r0, #7 + add r1, r4, #0 + tst r1, r0 + bne _023329B6 + ldr r2, [sp, #0x1c0] + tst r0, r2 + beq _023329BC +_023329B6: + add sp, #0x1a8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_023329BC: + sub r0, r4, #1 + lsr r0, r0, #3 + str r0, [sp, #0x14] + cmp r0, #2 + bge _023329CC + add sp, #0x1a8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_023329CC: + add r0, sp, #0x68 + add r1, r3, #0 + lsl r2, r2, #3 + bl ov02_02332E4C + str r0, [sp, #0x20] + add r3, sp, #0x58 + add r2, r5, #0 + mov r1, #8 +_023329DE: + ldrb r0, [r2] + add r2, r2, #1 + strb r0, [r3] + add r3, r3, #1 + sub r1, r1, #1 + bne _023329DE + add r5, #8 + ldr r0, [sp] + add r1, r5, #0 + sub r2, r4, #1 + blx Memcpy + mov r0, #5 + str r0, [sp, #0x24] + ldr r0, [sp, #0x14] + asr r0, r0, #0x1f + str r0, [sp, #0x18] +_02332A00: + ldr r4, [sp, #0x14] + add r0, r4, #0 + cmp r0, #0 + bgt _02332A0A + b _02332B24 +_02332A0A: + ldr r2, [sp, #0x24] + ldr r1, [sp, #0x18] + asr r3, r2, #0x1f + blx sub_0208FE84 + str r0, [sp, #0xc] + mov r0, #0 + str r1, [sp, #8] + str r0, [sp, #0x2c] + mov r0, #0 + mov r1, #0 + str r0, [sp, #0x34] + add r0, r1, #0 + orr r0, r1 + str r0, [sp, #0x40] +_02332A28: + ldr r0, [sp, #0xc] + asr r1, r4, #0x1f + add r5, r4, r0 + ldr r0, [sp, #8] + adc r1, r0 + mov r0, #0xff + lsl r0, r0, #0x18 + and r0, r1 + lsr r0, r0, #0x18 + str r0, [sp, #0x28] + mov r0, #0xff + lsl r0, r0, #0x10 + and r0, r1 + lsr r0, r0, #8 + str r0, [sp, #0x30] + mov r0, #0xff + lsl r0, r0, #8 + add r2, r1, #0 + and r2, r0 + mov r0, #0 + add r3, r5, #0 + and r3, r0 + lsl r0, r2, #8 + lsr r3, r3, #0x18 + orr r3, r0 + lsr r0, r2, #0x18 + str r0, [sp, #0x38] + mov r0, #0xff + mov r2, #0 + and r0, r1 + and r2, r5 + lsl r6, r0, #0x18 + lsr r2, r2, #8 + str r2, [sp, #0x44] + orr r2, r6 + lsr r0, r0, #8 + str r2, [sp, #0x44] + str r0, [sp, #0x3c] + mov r0, #0 + add r2, r1, #0 + and r2, r0 + mov r0, #0xff + lsl r0, r0, #0x18 + and r0, r5 + lsr r6, r0, #0x18 + lsl r0, r0, #8 + mov ip, r0 + mov r0, #0 + and r1, r0 + mov r0, #0xff + lsl r0, r0, #0x10 + lsl r2, r2, #8 + and r0, r5 + orr r2, r6 + lsr r6, r0, #8 + lsl r7, r0, #0x18 + mov r0, #0xff + lsl r1, r1, #0x18 + and r0, r5 + orr r1, r6 + lsl r6, r0, #0x18 + mov r0, #0xff + lsl r0, r0, #8 + and r0, r5 + lsl r0, r0, #8 + orr r0, r6 + orr r1, r0 + ldr r0, [sp, #0x40] + add r5, r7, #0 + orr r5, r0 + mov r0, ip + orr r1, r2 + add r2, r0, #0 + ldr r0, [sp, #0x3c] + orr r2, r5 + orr r1, r0 + ldr r0, [sp, #0x44] + orr r2, r0 + ldr r0, [sp, #0x38] + orr r2, r3 + orr r1, r0 + ldr r0, [sp, #0x34] + orr r1, r0 + ldr r0, [sp, #0x30] + orr r2, r0 + ldr r0, [sp, #0x2c] + orr r1, r0 + ldr r0, [sp, #0x28] + str r1, [sp, #0x54] + orr r0, r2 + str r0, [sp, #0x50] + add r0, sp, #0x58 + add r1, sp, #0x50 + add r2, r0, #0 + bl ov02_02332B4C + sub r0, r4, #1 + lsl r1, r0, #3 + ldr r0, [sp] + add r2, sp, #0x60 + add r5, r0, r1 + add r3, r5, #0 + mov r1, #8 +_02332AF6: + ldrb r0, [r3] + add r3, r3, #1 + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _02332AF6 + add r2, sp, #0x58 + ldr r1, [sp, #0x20] + add r0, sp, #0x68 + add r3, r2, #0 + bl ov02_02333398 + add r2, sp, #0x60 + mov r1, #8 +_02332B12: + ldrb r0, [r2] + add r2, r2, #1 + strb r0, [r5] + add r5, r5, #1 + sub r1, r1, #1 + bne _02332B12 + sub r4, r4, #1 + cmp r4, #0 + bgt _02332A28 +_02332B24: + ldr r0, [sp, #0x24] + sub r0, r0, #1 + str r0, [sp, #0x24] + bmi _02332B2E + b _02332A00 +_02332B2E: + add r0, sp, #0x48 + add r1, sp, #0x58 + mov r2, #8 + blx Memcmp + cmp r0, #0 + beq _02332B40 + mov r0, #0 + str r0, [sp, #0x1c] +_02332B40: + ldr r0, [sp, #0x1c] + add sp, #0x1a8 + pop {r3, r4, r5, r6, r7, pc} + nop +_02332B48: .word 0xA6A6A6A6 + thumb_func_end ov02_02332994 + + thumb_func_start ov02_02332B4C +ov02_02332B4C: ; 0x02332B4C + push {r3, r4} + ldrb r4, [r0] + ldrb r3, [r1] + eor r3, r4 + strb r3, [r2] + ldrb r4, [r0, #1] + ldrb r3, [r1, #1] + eor r3, r4 + strb r3, [r2, #1] + ldrb r4, [r0, #2] + ldrb r3, [r1, #2] + eor r3, r4 + strb r3, [r2, #2] + ldrb r4, [r0, #3] + ldrb r3, [r1, #3] + eor r3, r4 + strb r3, [r2, #3] + ldrb r4, [r0, #4] + ldrb r3, [r1, #4] + eor r3, r4 + strb r3, [r2, #4] + ldrb r4, [r0, #5] + ldrb r3, [r1, #5] + eor r3, r4 + strb r3, [r2, #5] + ldrb r4, [r0, #6] + ldrb r3, [r1, #6] + eor r3, r4 + strb r3, [r2, #6] + ldrb r3, [r0, #7] + ldrb r0, [r1, #7] + eor r0, r3 + strb r0, [r2, #7] + pop {r3, r4} + bx lr + .align 2, 0 + thumb_func_end ov02_02332B4C + + thumb_func_start ov02_02332B94 +ov02_02332B94: ; 0x02332B94 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r3, r1, #0 + add r1, r2, #0 + mov r2, #0 + str r2, [sp] + ldrb r2, [r3, #2] + ldrb r6, [r3, #1] + ldrb r5, [r3, #3] + lsl r4, r2, #8 + ldrb r2, [r3] + lsl r6, r6, #0x10 + lsl r2, r2, #0x18 + eor r2, r6 + eor r2, r4 + eor r2, r5 + str r2, [r0] + ldrb r2, [r3, #6] + ldrb r6, [r3, #5] + ldrb r5, [r3, #7] + lsl r4, r2, #8 + ldrb r2, [r3, #4] + lsl r6, r6, #0x10 + lsl r2, r2, #0x18 + eor r2, r6 + eor r2, r4 + eor r2, r5 + str r2, [r0, #4] + ldrb r2, [r3, #0xa] + ldrb r6, [r3, #9] + ldrb r5, [r3, #0xb] + lsl r4, r2, #8 + ldrb r2, [r3, #8] + lsl r6, r6, #0x10 + lsl r2, r2, #0x18 + eor r2, r6 + eor r2, r4 + eor r2, r5 + str r2, [r0, #8] + ldrb r2, [r3, #0xe] + ldrb r6, [r3, #0xd] + ldrb r5, [r3, #0xf] + lsl r4, r2, #8 + ldrb r2, [r3, #0xc] + lsl r6, r6, #0x10 + lsl r2, r2, #0x18 + eor r2, r6 + eor r2, r4 + eor r2, r5 + str r2, [r0, #0xc] + cmp r1, #0x80 + bne _02332C78 + ldr r5, _02332E44 ; =0x0234FC64 + ldr r2, _02332E48 ; =0x0235188C +_02332C00: + ldr r4, [r0, #0xc] + ldr r3, [r5] + lsr r1, r4, #0x18 + lsl r1, r1, #2 + ldr r1, [r2, r1] + add r5, r5, #4 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #8] + lsl r1, r4, #0x18 + lsr r1, r1, #0x16 + ldr r6, [r2, r1] + mov r1, #0xff + lsl r1, r1, #8 + add r7, r6, #0 + and r7, r1 + ldr r1, [r0] + str r1, [sp, #4] + lsr r1, r4, #0x10 + lsl r1, r1, #0x18 + lsr r1, r1, #0x16 + ldr r6, [r2, r1] + mov r1, #0xff + lsl r1, r1, #0x18 + lsr r4, r4, #8 + and r6, r1 + ldr r1, [sp, #4] + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + eor r1, r6 + ldr r6, [r2, r4] + mov r4, #0xff + lsl r4, r4, #0x10 + and r4, r6 + eor r1, r4 + add r4, r7, #0 + eor r4, r1 + ldr r1, [sp, #8] + eor r1, r4 + eor r3, r1 + str r3, [r0, #0x10] + ldr r1, [r0, #4] + eor r3, r1 + str r3, [r0, #0x14] + ldr r1, [r0, #8] + eor r3, r1 + str r3, [r0, #0x18] + ldr r1, [r0, #0xc] + eor r1, r3 + str r1, [r0, #0x1c] + ldr r1, [sp] + add r1, r1, #1 + str r1, [sp] + cmp r1, #0xa + blt _02332C74 + add sp, #0x18 + mov r0, #0xa + pop {r3, r4, r5, r6, r7, pc} +_02332C74: + add r0, #0x10 + b _02332C00 +_02332C78: + ldrb r2, [r3, #0x12] + ldrb r6, [r3, #0x11] + ldrb r5, [r3, #0x13] + lsl r4, r2, #8 + ldrb r2, [r3, #0x10] + lsl r6, r6, #0x10 + lsl r2, r2, #0x18 + eor r2, r6 + eor r2, r4 + eor r2, r5 + str r2, [r0, #0x10] + ldrb r2, [r3, #0x16] + ldrb r6, [r3, #0x15] + ldrb r5, [r3, #0x17] + lsl r4, r2, #8 + ldrb r2, [r3, #0x14] + lsl r6, r6, #0x10 + lsl r2, r2, #0x18 + eor r2, r6 + eor r2, r4 + eor r2, r5 + str r2, [r0, #0x14] + cmp r1, #0xc0 + bne _02332D34 + ldr r5, _02332E44 ; =0x0234FC64 + ldr r3, _02332E48 ; =0x0235188C +_02332CAC: + ldr r4, [r0, #0x14] + ldr r6, [r5] + lsr r1, r4, #0x18 + lsl r1, r1, #2 + ldr r1, [r3, r1] + add r5, r5, #4 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0xc] + lsl r1, r4, #0x18 + lsr r1, r1, #0x16 + ldr r2, [r3, r1] + mov r1, #0xff + lsl r1, r1, #8 + add r7, r2, #0 + and r7, r1 + ldr r1, [r0] + mov lr, r1 + lsr r1, r4, #0x10 + lsl r1, r1, #0x18 + lsr r1, r1, #0x16 + ldr r2, [r3, r1] + mov r1, #0xff + lsl r1, r1, #0x18 + and r1, r2 + mov r2, lr + eor r1, r2 + lsr r2, r4, #8 + lsl r2, r2, #0x18 + lsr r2, r2, #0x16 + ldr r4, [r3, r2] + mov r2, #0xff + lsl r2, r2, #0x10 + and r2, r4 + eor r1, r2 + add r2, r7, #0 + eor r2, r1 + ldr r1, [sp, #0xc] + eor r1, r2 + add r2, r6, #0 + eor r2, r1 + str r2, [r0, #0x18] + ldr r1, [r0, #4] + eor r2, r1 + str r2, [r0, #0x1c] + ldr r1, [r0, #8] + eor r2, r1 + str r2, [r0, #0x20] + ldr r1, [r0, #0xc] + eor r1, r2 + str r1, [r0, #0x24] + ldr r1, [sp] + add r1, r1, #1 + str r1, [sp] + cmp r1, #8 + blt _02332D22 + add sp, #0x18 + mov r0, #0xc + pop {r3, r4, r5, r6, r7, pc} +_02332D22: + ldr r2, [r0, #0x10] + ldr r1, [r0, #0x24] + eor r2, r1 + str r2, [r0, #0x28] + ldr r1, [r0, #0x14] + eor r1, r2 + str r1, [r0, #0x2c] + add r0, #0x18 + b _02332CAC +_02332D34: + ldrb r2, [r3, #0x1a] + ldrb r6, [r3, #0x19] + ldrb r5, [r3, #0x1b] + lsl r4, r2, #8 + ldrb r2, [r3, #0x18] + lsl r6, r6, #0x10 + lsl r2, r2, #0x18 + eor r2, r6 + eor r2, r4 + eor r2, r5 + str r2, [r0, #0x18] + ldrb r2, [r3, #0x1e] + ldrb r5, [r3, #0x1f] + lsl r4, r2, #8 + ldrb r2, [r3, #0x1c] + ldrb r3, [r3, #0x1d] + lsl r2, r2, #0x18 + lsl r3, r3, #0x10 + eor r2, r3 + eor r2, r4 + eor r2, r5 + str r2, [r0, #0x1c] + mov r2, #1 + lsl r2, r2, #8 + cmp r1, r2 + bne _02332E3E + ldr r5, _02332E44 ; =0x0234FC64 + ldr r3, _02332E48 ; =0x0235188C +_02332D6C: + ldr r4, [r0, #0x1c] + ldr r6, [r5] + lsr r1, r4, #0x18 + lsl r1, r1, #2 + ldr r1, [r3, r1] + add r5, r5, #4 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x10] + lsl r1, r4, #0x18 + lsr r1, r1, #0x16 + ldr r2, [r3, r1] + mov r1, #0xff + lsl r1, r1, #8 + add r7, r2, #0 + and r7, r1 + ldr r1, [r0] + mov ip, r1 + lsr r1, r4, #0x10 + lsl r1, r1, #0x18 + lsr r1, r1, #0x16 + ldr r2, [r3, r1] + mov r1, #0xff + lsl r1, r1, #0x18 + and r1, r2 + mov r2, ip + eor r1, r2 + lsr r2, r4, #8 + lsl r2, r2, #0x18 + lsr r2, r2, #0x16 + ldr r4, [r3, r2] + mov r2, #0xff + lsl r2, r2, #0x10 + and r2, r4 + eor r1, r2 + add r2, r7, #0 + eor r2, r1 + ldr r1, [sp, #0x10] + eor r1, r2 + add r2, r6, #0 + eor r2, r1 + str r2, [r0, #0x20] + ldr r1, [r0, #4] + eor r2, r1 + str r2, [r0, #0x24] + ldr r1, [r0, #8] + eor r2, r1 + str r2, [r0, #0x28] + ldr r1, [r0, #0xc] + eor r1, r2 + str r1, [r0, #0x2c] + ldr r1, [sp] + add r1, r1, #1 + str r1, [sp] + cmp r1, #7 + blt _02332DE2 + add sp, #0x18 + mov r0, #0xe + pop {r3, r4, r5, r6, r7, pc} +_02332DE2: + ldr r6, [r0, #0x2c] + ldr r7, [r0, #0x10] + lsl r1, r6, #0x18 + lsr r1, r1, #0x16 + ldr r1, [r3, r1] + lsl r1, r1, #0x18 + lsr r4, r1, #0x18 + lsr r1, r6, #8 + lsl r1, r1, #0x18 + lsr r1, r1, #0x16 + ldr r2, [r3, r1] + mov r1, #0xff + lsl r1, r1, #8 + and r1, r2 + str r1, [sp, #0x14] + lsr r1, r6, #0x18 + lsl r1, r1, #2 + ldr r2, [r3, r1] + mov r1, #0xff + lsl r1, r1, #0x18 + and r1, r2 + lsr r2, r6, #0x10 + lsl r2, r2, #0x18 + lsr r2, r2, #0x16 + ldr r6, [r3, r2] + mov r2, #0xff + lsl r2, r2, #0x10 + eor r1, r7 + and r2, r6 + eor r2, r1 + ldr r1, [sp, #0x14] + eor r1, r2 + add r2, r4, #0 + eor r2, r1 + str r2, [r0, #0x30] + ldr r1, [r0, #0x14] + eor r2, r1 + str r2, [r0, #0x34] + ldr r1, [r0, #0x18] + eor r2, r1 + str r2, [r0, #0x38] + ldr r1, [r0, #0x1c] + eor r1, r2 + str r1, [r0, #0x3c] + add r0, #0x20 + b _02332D6C +_02332E3E: + ldr r0, [sp] + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02332E44: .word 0x0234FC64 +_02332E48: .word 0x0235188C + thumb_func_end ov02_02332B94 + + thumb_func_start ov02_02332E4C +ov02_02332E4C: ; 0x02332E4C + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + bl ov02_02332B94 + mov ip, r0 + mov r1, ip + lsl r6, r1, #2 + mov r0, #0 + cmp r6, #0 + ble _02332E92 + lsl r2, r6, #2 + add r1, r4, #0 + add r2, r4, r2 +_02332E66: + ldr r5, [r1] + ldr r3, [r2] + add r0, r0, #4 + str r3, [r1] + str r5, [r2] + ldr r5, [r1, #4] + ldr r3, [r2, #4] + sub r6, r6, #4 + str r3, [r1, #4] + str r5, [r2, #4] + ldr r5, [r1, #8] + ldr r3, [r2, #8] + str r3, [r1, #8] + str r5, [r2, #8] + ldr r5, [r1, #0xc] + ldr r3, [r2, #0xc] + str r3, [r1, #0xc] + str r5, [r2, #0xc] + add r1, #0x10 + sub r2, #0x10 + cmp r0, r6 + blt _02332E66 +_02332E92: + mov r0, #1 + str r0, [sp] + mov r0, ip + cmp r0, #1 + bgt _02332E9E + b _02332FC2 +_02332E9E: + ldr r2, _02332FC8 ; =0x0235188C + ldr r7, _02332FCC ; =0x0235008C +_02332EA2: + add r4, #0x10 + ldr r3, [r4] + lsl r0, r3, #0x18 + lsr r0, r0, #0x16 + ldr r0, [r2, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x16 + ldr r1, [r7, r0] + lsr r0, r3, #8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x16 + ldr r0, [r2, r0] + lsl r0, r0, #0x18 + lsr r5, r0, #0x16 + ldr r0, _02332FD0 ; =0x0234FC8C + ldr r6, [r0, r5] + lsr r0, r3, #0x18 + lsl r0, r0, #2 + lsr r3, r3, #0x10 + ldr r0, [r2, r0] + lsl r3, r3, #0x18 + lsr r3, r3, #0x16 + lsl r0, r0, #0x18 + ldr r3, [r2, r3] + lsr r5, r0, #0x16 + ldr r0, _02332FD4 ; =0x02351C8C + lsl r3, r3, #0x18 + ldr r0, [r0, r5] + lsr r5, r3, #0x16 + ldr r3, _02332FD8 ; =0x0235208C + ldr r3, [r3, r5] + eor r0, r3 + eor r0, r6 + eor r0, r1 + str r0, [r4] + ldr r3, [r4, #4] + lsl r0, r3, #0x18 + lsr r0, r0, #0x16 + ldr r0, [r2, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x16 + ldr r1, [r7, r0] + lsr r0, r3, #8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x16 + ldr r0, [r2, r0] + lsl r0, r0, #0x18 + lsr r5, r0, #0x16 + ldr r0, _02332FD0 ; =0x0234FC8C + ldr r6, [r0, r5] + lsr r0, r3, #0x18 + lsl r0, r0, #2 + lsr r3, r3, #0x10 + ldr r0, [r2, r0] + lsl r3, r3, #0x18 + lsr r3, r3, #0x16 + lsl r0, r0, #0x18 + ldr r3, [r2, r3] + lsr r5, r0, #0x16 + ldr r0, _02332FD4 ; =0x02351C8C + lsl r3, r3, #0x18 + ldr r0, [r0, r5] + lsr r5, r3, #0x16 + ldr r3, _02332FD8 ; =0x0235208C + ldr r3, [r3, r5] + eor r0, r3 + eor r0, r6 + eor r0, r1 + str r0, [r4, #4] + ldr r3, [r4, #8] + lsl r0, r3, #0x18 + lsr r0, r0, #0x16 + ldr r0, [r2, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x16 + ldr r1, [r7, r0] + lsr r0, r3, #8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x16 + ldr r0, [r2, r0] + lsl r0, r0, #0x18 + lsr r5, r0, #0x16 + ldr r0, _02332FD0 ; =0x0234FC8C + ldr r6, [r0, r5] + lsr r0, r3, #0x18 + lsl r0, r0, #2 + lsr r3, r3, #0x10 + ldr r0, [r2, r0] + lsl r3, r3, #0x18 + lsr r3, r3, #0x16 + lsl r0, r0, #0x18 + ldr r3, [r2, r3] + lsr r5, r0, #0x16 + ldr r0, _02332FD4 ; =0x02351C8C + lsl r3, r3, #0x18 + ldr r0, [r0, r5] + lsr r5, r3, #0x16 + ldr r3, _02332FD8 ; =0x0235208C + ldr r3, [r3, r5] + eor r0, r3 + eor r0, r6 + eor r0, r1 + str r0, [r4, #8] + ldr r3, [r4, #0xc] + lsl r0, r3, #0x18 + lsr r0, r0, #0x16 + ldr r0, [r2, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x16 + ldr r1, [r7, r0] + lsr r0, r3, #8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x16 + ldr r0, [r2, r0] + lsl r0, r0, #0x18 + lsr r5, r0, #0x16 + ldr r0, _02332FD0 ; =0x0234FC8C + ldr r6, [r0, r5] + lsr r0, r3, #0x18 + lsl r0, r0, #2 + lsr r3, r3, #0x10 + ldr r0, [r2, r0] + lsl r3, r3, #0x18 + lsr r3, r3, #0x16 + lsl r0, r0, #0x18 + ldr r3, [r2, r3] + lsr r5, r0, #0x16 + ldr r0, _02332FD4 ; =0x02351C8C + lsl r3, r3, #0x18 + ldr r0, [r0, r5] + lsr r5, r3, #0x16 + ldr r3, _02332FD8 ; =0x0235208C + ldr r3, [r3, r5] + eor r0, r3 + eor r0, r6 + eor r0, r1 + str r0, [r4, #0xc] + ldr r0, [sp] + add r1, r0, #1 + mov r0, ip + str r1, [sp] + cmp r1, r0 + bge _02332FC2 + b _02332EA2 +_02332FC2: + mov r0, ip + pop {r3, r4, r5, r6, r7, pc} + nop +_02332FC8: .word 0x0235188C +_02332FCC: .word 0x0235008C +_02332FD0: .word 0x0234FC8C +_02332FD4: .word 0x02351C8C +_02332FD8: .word 0x0235208C + thumb_func_end ov02_02332E4C + + thumb_func_start ov02_02332FDC +ov02_02332FDC: ; 0x02332FDC + push {r4, r5, r6, r7, lr} + sub sp, #0x4c + add r7, r1, #0 + add r1, r2, #0 + ldrb r2, [r1, #2] + str r3, [sp] + ldrb r6, [r1, #1] + lsl r3, r2, #8 + ldrb r2, [r1] + ldrb r4, [r1, #3] + lsl r6, r6, #0x10 + lsl r2, r2, #0x18 + eor r2, r6 + eor r2, r3 + eor r2, r4 + ldr r5, [r0] + ldrb r6, [r1, #5] + eor r2, r5 + str r2, [sp, #0xc] + ldrb r2, [r1, #6] + ldrb r4, [r1, #7] + lsl r6, r6, #0x10 + lsl r3, r2, #8 + ldrb r2, [r1, #4] + ldr r5, [r0, #4] + lsl r2, r2, #0x18 + eor r2, r6 + eor r2, r3 + eor r2, r4 + eor r2, r5 + str r2, [sp, #8] + ldrb r2, [r1, #0xa] + ldrb r6, [r1, #9] + ldrb r4, [r1, #0xb] + lsl r3, r2, #8 + ldrb r2, [r1, #8] + lsl r6, r6, #0x10 + ldr r5, [r0, #8] + lsl r2, r2, #0x18 + eor r2, r6 + eor r2, r3 + eor r2, r4 + eor r5, r2 + ldrb r2, [r1, #0xe] + ldrb r4, [r1, #0xf] + ldr r6, [r0, #0xc] + lsl r3, r2, #8 + ldrb r2, [r1, #0xc] + ldrb r1, [r1, #0xd] + lsl r2, r2, #0x18 + lsl r1, r1, #0x10 + eor r1, r2 + eor r1, r3 + eor r1, r4 + eor r6, r1 + asr r1, r7, #1 + str r1, [sp, #4] +_0233304E: + lsl r1, r6, #0x18 + lsr r2, r1, #0x16 + ldr r1, _02333384 ; =0x0235148C + ldr r4, [r0, #0x10] + ldr r3, [r1, r2] + lsr r1, r5, #8 + lsl r1, r1, #0x18 + lsr r2, r1, #0x16 + ldr r1, _02333388 ; =0x0235108C + ldr r1, [r1, r2] + str r1, [sp, #0x40] + ldr r1, [sp, #0xc] + lsr r1, r1, #0x18 + lsl r2, r1, #2 + ldr r1, _0233338C ; =0x0235088C + ldr r7, [r1, r2] + ldr r1, [sp, #8] + lsr r1, r1, #0x10 + lsl r1, r1, #0x18 + lsr r2, r1, #0x16 + ldr r1, _02333390 ; =0x02350C8C + ldr r1, [r1, r2] + add r2, r7, #0 + eor r2, r1 + ldr r1, [sp, #0x40] + eor r1, r2 + eor r1, r3 + eor r1, r4 + str r1, [sp, #0x10] + ldr r1, [sp, #0xc] + ldr r4, [r0, #0x14] + lsl r1, r1, #0x18 + lsr r2, r1, #0x16 + ldr r1, _02333384 ; =0x0235148C + ldr r3, [r1, r2] + lsr r1, r6, #8 + lsl r1, r1, #0x18 + lsr r2, r1, #0x16 + ldr r1, _02333388 ; =0x0235108C + ldr r1, [r1, r2] + str r1, [sp, #0x48] + ldr r1, [sp, #8] + lsr r1, r1, #0x18 + lsl r2, r1, #2 + ldr r1, _0233338C ; =0x0235088C + ldr r7, [r1, r2] + lsr r1, r5, #0x10 + lsl r1, r1, #0x18 + lsr r2, r1, #0x16 + ldr r1, _02333390 ; =0x02350C8C + ldr r1, [r1, r2] + add r2, r7, #0 + eor r2, r1 + ldr r1, [sp, #0x48] + eor r1, r2 + eor r1, r3 + eor r1, r4 + str r1, [sp, #0x44] + ldr r1, [sp, #8] + ldr r4, [r0, #0x18] + lsl r1, r1, #0x18 + lsr r2, r1, #0x16 + ldr r1, _02333384 ; =0x0235148C + ldr r3, [r1, r2] + ldr r1, [sp, #0xc] + lsr r1, r1, #8 + lsl r1, r1, #0x18 + lsr r2, r1, #0x16 + ldr r1, _02333388 ; =0x0235108C + ldr r1, [r1, r2] + str r1, [sp, #0x14] + lsr r1, r5, #0x18 + lsl r2, r1, #2 + ldr r1, _0233338C ; =0x0235088C + ldr r7, [r1, r2] + lsr r1, r6, #0x10 + lsl r1, r1, #0x18 + lsr r2, r1, #0x16 + ldr r1, _02333390 ; =0x02350C8C + ldr r1, [r1, r2] + add r2, r7, #0 + eor r2, r1 + ldr r1, [sp, #0x14] + ldr r7, [r0, #0x1c] + eor r1, r2 + eor r1, r3 + add r2, r4, #0 + eor r2, r1 + lsl r1, r5, #0x18 + lsr r3, r1, #0x16 + ldr r1, _02333384 ; =0x0235148C + add r0, #0x20 + ldr r3, [r1, r3] + ldr r1, [sp, #8] + lsr r1, r1, #8 + lsl r1, r1, #0x18 + lsr r4, r1, #0x16 + ldr r1, _02333388 ; =0x0235108C + ldr r1, [r1, r4] + lsr r4, r6, #0x18 + lsl r5, r4, #2 + ldr r4, _0233338C ; =0x0235088C + ldr r6, [r4, r5] + ldr r4, [sp, #0xc] + lsr r4, r4, #0x10 + lsl r4, r4, #0x18 + lsr r5, r4, #0x16 + ldr r4, _02333390 ; =0x02350C8C + ldr r4, [r4, r5] + eor r4, r6 + eor r1, r4 + eor r1, r3 + ldr r3, [sp, #4] + eor r1, r7 + sub r3, r3, #1 + str r3, [sp, #4] + beq _02333218 + lsl r3, r1, #0x18 + lsr r5, r3, #0x16 + ldr r3, _02333384 ; =0x0235148C + ldr r4, [r0] + ldr r3, [r3, r5] + lsr r5, r2, #8 + lsl r5, r5, #0x18 + lsr r6, r5, #0x16 + ldr r5, _02333388 ; =0x0235108C + ldr r7, [r5, r6] + ldr r5, [sp, #0x10] + lsr r5, r5, #0x18 + lsl r6, r5, #2 + ldr r5, _0233338C ; =0x0235088C + ldr r5, [r5, r6] + str r5, [sp, #0x18] + ldr r5, [sp, #0x44] + lsr r5, r5, #0x10 + lsl r5, r5, #0x18 + lsr r6, r5, #0x16 + ldr r5, _02333390 ; =0x02350C8C + ldr r6, [r5, r6] + ldr r5, [sp, #0x18] + eor r5, r6 + eor r5, r7 + eor r3, r5 + eor r3, r4 + str r3, [sp, #0xc] + ldr r3, [sp, #0x10] + ldr r4, [r0, #4] + lsl r3, r3, #0x18 + lsr r5, r3, #0x16 + ldr r3, _02333384 ; =0x0235148C + ldr r3, [r3, r5] + lsr r5, r1, #8 + lsl r5, r5, #0x18 + lsr r6, r5, #0x16 + ldr r5, _02333388 ; =0x0235108C + ldr r7, [r5, r6] + ldr r5, [sp, #0x44] + lsr r5, r5, #0x18 + lsl r6, r5, #2 + ldr r5, _0233338C ; =0x0235088C + ldr r5, [r5, r6] + str r5, [sp, #0x1c] + lsr r5, r2, #0x10 + lsl r5, r5, #0x18 + lsr r6, r5, #0x16 + ldr r5, _02333390 ; =0x02350C8C + ldr r6, [r5, r6] + ldr r5, [sp, #0x1c] + eor r5, r6 + eor r5, r7 + eor r3, r5 + eor r3, r4 + str r3, [sp, #8] + ldr r3, [sp, #0x44] + ldr r6, [r0, #8] + lsl r3, r3, #0x18 + lsr r4, r3, #0x16 + ldr r3, _02333384 ; =0x0235148C + ldr r5, [r3, r4] + ldr r3, [sp, #0x10] + lsr r3, r3, #8 + lsl r3, r3, #0x18 + lsr r4, r3, #0x16 + ldr r3, _02333388 ; =0x0235108C + ldr r3, [r3, r4] + str r3, [sp, #0x20] + lsr r3, r2, #0x18 + lsl r4, r3, #2 + ldr r3, _0233338C ; =0x0235088C + lsl r2, r2, #0x18 + ldr r7, [r3, r4] + lsr r3, r1, #0x10 + lsl r3, r3, #0x18 + lsr r4, r3, #0x16 + ldr r3, _02333390 ; =0x02350C8C + lsr r1, r1, #0x18 + ldr r3, [r3, r4] + add r4, r7, #0 + eor r4, r3 + ldr r3, [sp, #0x20] + ldr r7, [r0, #0xc] + eor r3, r4 + eor r3, r5 + add r5, r6, #0 + eor r5, r3 + lsr r3, r2, #0x16 + ldr r2, _02333384 ; =0x0235148C + ldr r3, [r2, r3] + ldr r2, [sp, #0x44] + lsr r2, r2, #8 + lsl r2, r2, #0x18 + lsr r4, r2, #0x16 + ldr r2, _02333388 ; =0x0235108C + ldr r2, [r2, r4] + lsl r4, r1, #2 + ldr r1, _0233338C ; =0x0235088C + ldr r6, [r1, r4] + ldr r1, [sp, #0x10] + lsr r1, r1, #0x10 + lsl r1, r1, #0x18 + lsr r4, r1, #0x16 + ldr r1, _02333390 ; =0x02350C8C + ldr r1, [r1, r4] + eor r1, r6 + eor r1, r2 + eor r1, r3 + add r6, r7, #0 + eor r6, r1 + b _0233304E +_02333218: + ldr r3, [r0] + mov r6, #0xff + str r3, [sp, #0x24] + lsl r3, r1, #0x18 + lsr r4, r3, #0x16 + ldr r3, _02333394 ; =0x0235188C + lsl r6, r6, #0x10 + ldr r4, [r3, r4] + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + str r4, [sp, #0x28] + lsr r4, r2, #8 + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + ldr r5, [r3, r4] + mov r4, #0xff + lsl r4, r4, #8 + and r4, r5 + str r4, [sp, #0x2c] + ldr r4, [sp, #0x10] + lsr r4, r4, #0x18 + lsl r4, r4, #2 + ldr r5, [r3, r4] + mov r4, #0xff + lsl r4, r4, #0x18 + and r5, r4 + ldr r4, [sp, #0x44] + lsr r4, r4, #0x10 + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + ldr r4, [r3, r4] + and r4, r6 + eor r5, r4 + ldr r4, [sp, #0x2c] + eor r5, r4 + ldr r4, [sp, #0x28] + eor r5, r4 + ldr r4, [sp, #0x24] + eor r4, r5 + ldr r5, [sp] + lsr r6, r4, #0x18 + strb r6, [r5] + lsr r6, r4, #0x10 + strb r6, [r5, #1] + lsr r6, r4, #8 + strb r6, [r5, #2] + strb r4, [r5, #3] + ldr r4, [r0, #4] + mov r6, #0xff + str r4, [sp, #0x30] + ldr r4, [sp, #0x10] + lsl r6, r6, #0x10 + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + ldr r4, [r3, r4] + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + str r4, [sp, #0x34] + lsr r4, r1, #8 + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + ldr r5, [r3, r4] + mov r4, #0xff + lsl r4, r4, #8 + and r4, r5 + str r4, [sp, #0x38] + ldr r4, [sp, #0x44] + lsr r4, r4, #0x18 + lsl r4, r4, #2 + ldr r5, [r3, r4] + mov r4, #0xff + lsl r4, r4, #0x18 + and r5, r4 + lsr r4, r2, #0x10 + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + ldr r4, [r3, r4] + and r4, r6 + eor r5, r4 + ldr r4, [sp, #0x38] + eor r5, r4 + ldr r4, [sp, #0x34] + eor r5, r4 + ldr r4, [sp, #0x30] + eor r4, r5 + ldr r5, [sp] + lsr r6, r4, #0x18 + strb r6, [r5, #4] + lsr r6, r4, #0x10 + strb r6, [r5, #5] + lsr r6, r4, #8 + strb r6, [r5, #6] + strb r4, [r5, #7] + ldr r4, [r0, #8] + str r4, [sp, #0x3c] + ldr r4, [sp, #0x44] + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + ldr r4, [r3, r4] + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + mov lr, r4 + ldr r4, [sp, #0x10] + lsr r4, r4, #8 + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + ldr r5, [r3, r4] + mov r4, #0xff + lsl r4, r4, #8 + and r4, r5 + mov ip, r4 + lsr r4, r2, #0x18 + lsl r4, r4, #2 + ldr r5, [r3, r4] + mov r4, #0xff + lsl r4, r4, #0x18 + add r6, r5, #0 + and r6, r4 + lsr r4, r1, #0x10 + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + ldr r5, [r3, r4] + mov r4, #0xff + lsl r4, r4, #0x10 + and r4, r5 + eor r4, r6 + mov r5, ip + eor r5, r4 + mov r4, lr + eor r5, r4 + ldr r4, [sp, #0x3c] + eor r4, r5 + ldr r5, [sp] + lsr r6, r4, #0x18 + strb r6, [r5, #8] + lsr r6, r4, #0x10 + strb r6, [r5, #9] + lsr r6, r4, #8 + strb r6, [r5, #0xa] + strb r4, [r5, #0xb] + ldr r5, [r0, #0xc] + lsl r0, r2, #0x18 + lsr r0, r0, #0x16 + ldr r0, [r3, r0] + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, [sp, #0x44] + lsr r0, r0, #8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x16 + ldr r2, [r3, r0] + mov r0, #0xff + lsl r0, r0, #8 + and r2, r0 + lsr r0, r1, #0x18 + lsl r0, r0, #2 + ldr r1, [r3, r0] + mov r0, #0xff + lsl r0, r0, #0x18 + and r0, r1 + ldr r1, [sp, #0x10] + lsr r1, r1, #0x10 + lsl r1, r1, #0x18 + lsr r1, r1, #0x16 + ldr r3, [r3, r1] + mov r1, #0xff + lsl r1, r1, #0x10 + and r1, r3 + eor r0, r1 + eor r0, r2 + eor r0, r4 + eor r0, r5 + ldr r1, [sp] + lsr r2, r0, #0x18 + strb r2, [r1, #0xc] + lsr r2, r0, #0x10 + strb r2, [r1, #0xd] + lsr r2, r0, #8 + strb r2, [r1, #0xe] + strb r0, [r1, #0xf] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02333384: .word 0x0235148C +_02333388: .word 0x0235108C +_0233338C: .word 0x0235088C +_02333390: .word 0x02350C8C +_02333394: .word 0x0235188C + thumb_func_end ov02_02332FDC + + thumb_func_start ov02_02333398 +ov02_02333398: ; 0x02333398 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x48 + add r7, r1, #0 + add r1, r2, #0 + ldrb r2, [r1, #2] + str r3, [sp] + ldrb r6, [r1, #1] + lsl r3, r2, #8 + ldrb r2, [r1] + ldrb r4, [r1, #3] + lsl r6, r6, #0x10 + lsl r2, r2, #0x18 + eor r2, r6 + eor r2, r3 + eor r2, r4 + ldr r5, [r0] + ldrb r6, [r1, #5] + eor r2, r5 + str r2, [sp, #0xc] + ldrb r2, [r1, #6] + ldrb r4, [r1, #7] + lsl r6, r6, #0x10 + lsl r3, r2, #8 + ldrb r2, [r1, #4] + ldr r5, [r0, #4] + lsl r2, r2, #0x18 + eor r2, r6 + eor r2, r3 + eor r2, r4 + eor r2, r5 + str r2, [sp, #8] + ldrb r2, [r1, #0xa] + ldrb r6, [r1, #9] + ldrb r4, [r1, #0xb] + lsl r3, r2, #8 + ldrb r2, [r1, #8] + lsl r6, r6, #0x10 + ldr r5, [r0, #8] + lsl r2, r2, #0x18 + eor r2, r6 + eor r2, r3 + eor r2, r4 + eor r2, r5 + str r2, [sp, #0x40] + ldrb r2, [r1, #0xe] + ldr r5, [r0, #0xc] + ldrb r4, [r1, #0xf] + lsl r3, r2, #8 + ldrb r2, [r1, #0xc] + ldrb r1, [r1, #0xd] + add r6, r5, #0 + lsl r2, r2, #0x18 + lsl r1, r1, #0x10 + eor r1, r2 + eor r1, r3 + eor r1, r4 + eor r6, r1 + asr r1, r7, #1 + str r1, [sp, #4] +_0233340E: + ldr r1, [sp, #8] + ldr r5, [r0, #0x10] + lsl r1, r1, #0x18 + lsr r2, r1, #0x16 + ldr r1, _02333740 ; =0x0235008C + ldr r4, [r1, r2] + ldr r1, [sp, #0x40] + lsr r1, r1, #8 + lsl r1, r1, #0x18 + lsr r2, r1, #0x16 + ldr r1, _02333744 ; =0x0234FC8C + ldr r3, [r1, r2] + ldr r1, [sp, #0xc] + lsr r1, r1, #0x18 + lsl r2, r1, #2 + ldr r1, _02333748 ; =0x02351C8C + ldr r7, [r1, r2] + lsr r1, r6, #0x10 + lsl r1, r1, #0x18 + lsr r2, r1, #0x16 + ldr r1, _0233374C ; =0x0235208C + ldr r1, [r1, r2] + eor r1, r7 + eor r1, r3 + eor r1, r4 + eor r1, r5 + str r1, [sp, #0x10] + ldr r1, [sp, #0x40] + ldr r5, [r0, #0x14] + lsl r1, r1, #0x18 + lsr r2, r1, #0x16 + ldr r1, _02333740 ; =0x0235008C + ldr r4, [r1, r2] + lsr r1, r6, #8 + lsl r1, r1, #0x18 + lsr r2, r1, #0x16 + ldr r1, _02333744 ; =0x0234FC8C + ldr r3, [r1, r2] + ldr r1, [sp, #8] + lsr r1, r1, #0x18 + lsl r2, r1, #2 + ldr r1, _02333748 ; =0x02351C8C + ldr r7, [r1, r2] + ldr r1, [sp, #0xc] + lsr r1, r1, #0x10 + lsl r1, r1, #0x18 + lsr r2, r1, #0x16 + ldr r1, _0233374C ; =0x0235208C + ldr r1, [r1, r2] + eor r1, r7 + eor r1, r3 + eor r1, r4 + eor r1, r5 + str r1, [sp, #0x44] + lsl r1, r6, #0x18 + lsr r2, r1, #0x16 + ldr r1, _02333740 ; =0x0235008C + ldr r3, [r0, #0x18] + ldr r2, [r1, r2] + ldr r1, [sp, #0xc] + lsr r1, r1, #8 + lsl r1, r1, #0x18 + lsr r4, r1, #0x16 + ldr r1, _02333744 ; =0x0234FC8C + ldr r1, [r1, r4] + str r1, [sp, #0x14] + ldr r1, [sp, #0x40] + lsr r1, r1, #0x18 + lsl r4, r1, #2 + ldr r1, _02333748 ; =0x02351C8C + ldr r1, [r1, r4] + ldr r4, [sp, #8] + lsr r4, r4, #0x10 + lsl r4, r4, #0x18 + lsr r5, r4, #0x16 + ldr r4, _0233374C ; =0x0235208C + ldr r4, [r4, r5] + eor r4, r1 + ldr r1, [sp, #0x14] + eor r1, r4 + eor r1, r2 + add r2, r3, #0 + eor r2, r1 + ldr r1, [sp, #0xc] + ldr r3, [r0, #0x1c] + lsl r1, r1, #0x18 + lsr r4, r1, #0x16 + ldr r1, _02333740 ; =0x0235008C + add r0, #0x20 + ldr r1, [r1, r4] + ldr r4, [sp, #8] + lsr r4, r4, #8 + lsl r4, r4, #0x18 + lsr r5, r4, #0x16 + ldr r4, _02333744 ; =0x0234FC8C + ldr r7, [r4, r5] + lsr r4, r6, #0x18 + lsl r5, r4, #2 + ldr r4, _02333748 ; =0x02351C8C + ldr r6, [r4, r5] + ldr r4, [sp, #0x40] + lsr r4, r4, #0x10 + lsl r4, r4, #0x18 + lsr r5, r4, #0x16 + ldr r4, _0233374C ; =0x0235208C + ldr r4, [r4, r5] + eor r4, r6 + eor r4, r7 + eor r1, r4 + eor r1, r3 + ldr r3, [sp, #4] + sub r3, r3, #1 + str r3, [sp, #4] + beq _023335D2 + ldr r3, [sp, #0x44] + ldr r4, [r0] + lsl r3, r3, #0x18 + lsr r5, r3, #0x16 + ldr r3, _02333740 ; =0x0235008C + ldr r3, [r3, r5] + lsr r5, r2, #8 + lsl r5, r5, #0x18 + lsr r6, r5, #0x16 + ldr r5, _02333744 ; =0x0234FC8C + ldr r7, [r5, r6] + ldr r5, [sp, #0x10] + lsr r5, r5, #0x18 + lsl r6, r5, #2 + ldr r5, _02333748 ; =0x02351C8C + ldr r5, [r5, r6] + str r5, [sp, #0x18] + lsr r5, r1, #0x10 + lsl r5, r5, #0x18 + lsr r6, r5, #0x16 + ldr r5, _0233374C ; =0x0235208C + ldr r6, [r5, r6] + ldr r5, [sp, #0x18] + eor r5, r6 + eor r5, r7 + eor r3, r5 + eor r3, r4 + str r3, [sp, #0xc] + lsl r3, r2, #0x18 + lsr r5, r3, #0x16 + ldr r3, _02333740 ; =0x0235008C + ldr r4, [r0, #4] + ldr r3, [r3, r5] + lsr r5, r1, #8 + lsl r5, r5, #0x18 + lsr r6, r5, #0x16 + ldr r5, _02333744 ; =0x0234FC8C + ldr r7, [r5, r6] + ldr r5, [sp, #0x44] + lsr r5, r5, #0x18 + lsl r6, r5, #2 + ldr r5, _02333748 ; =0x02351C8C + ldr r5, [r5, r6] + str r5, [sp, #0x1c] + ldr r5, [sp, #0x10] + lsr r5, r5, #0x10 + lsl r5, r5, #0x18 + lsr r6, r5, #0x16 + ldr r5, _0233374C ; =0x0235208C + ldr r6, [r5, r6] + ldr r5, [sp, #0x1c] + eor r5, r6 + eor r5, r7 + eor r3, r5 + eor r3, r4 + str r3, [sp, #8] + lsl r3, r1, #0x18 + lsr r4, r3, #0x16 + ldr r3, _02333740 ; =0x0235008C + ldr r6, [r0, #8] + ldr r5, [r3, r4] + ldr r3, [sp, #0x10] + lsr r1, r1, #0x18 + lsr r3, r3, #8 + lsl r3, r3, #0x18 + lsr r4, r3, #0x16 + ldr r3, _02333744 ; =0x0234FC8C + ldr r3, [r3, r4] + str r3, [sp, #0x20] + lsr r3, r2, #0x18 + lsl r4, r3, #2 + ldr r3, _02333748 ; =0x02351C8C + lsr r2, r2, #0x10 + ldr r7, [r3, r4] + ldr r3, [sp, #0x44] + lsl r2, r2, #0x18 + lsr r3, r3, #0x10 + lsl r3, r3, #0x18 + lsr r4, r3, #0x16 + ldr r3, _0233374C ; =0x0235208C + ldr r3, [r3, r4] + add r4, r7, #0 + eor r4, r3 + ldr r3, [sp, #0x20] + eor r3, r4 + eor r3, r5 + eor r3, r6 + str r3, [sp, #0x40] + ldr r3, [sp, #0x10] + ldr r5, [r0, #0xc] + lsl r3, r3, #0x18 + lsr r4, r3, #0x16 + ldr r3, _02333740 ; =0x0235008C + ldr r4, [r3, r4] + ldr r3, [sp, #0x44] + lsr r3, r3, #8 + lsl r3, r3, #0x18 + lsr r6, r3, #0x16 + ldr r3, _02333744 ; =0x0234FC8C + ldr r3, [r3, r6] + lsl r6, r1, #2 + ldr r1, _02333748 ; =0x02351C8C + ldr r1, [r1, r6] + lsr r6, r2, #0x16 + ldr r2, _0233374C ; =0x0235208C + ldr r2, [r2, r6] + add r6, r5, #0 + eor r1, r2 + eor r1, r3 + eor r1, r4 + eor r6, r1 + b _0233340E +_023335D2: + ldr r3, [r0] + mov r6, #0xff + str r3, [sp, #0x24] + ldr r3, [sp, #0x44] + lsl r6, r6, #0x10 + lsl r3, r3, #0x18 + lsr r4, r3, #0x16 + ldr r3, _02333750 ; =0x0235048C + ldr r4, [r3, r4] + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + str r4, [sp, #0x28] + lsr r4, r2, #8 + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + ldr r5, [r3, r4] + mov r4, #0xff + lsl r4, r4, #8 + and r4, r5 + str r4, [sp, #0x2c] + ldr r4, [sp, #0x10] + lsr r4, r4, #0x18 + lsl r4, r4, #2 + ldr r5, [r3, r4] + mov r4, #0xff + lsl r4, r4, #0x18 + and r5, r4 + lsr r4, r1, #0x10 + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + ldr r4, [r3, r4] + and r4, r6 + eor r5, r4 + ldr r4, [sp, #0x2c] + eor r5, r4 + ldr r4, [sp, #0x28] + eor r5, r4 + ldr r4, [sp, #0x24] + eor r4, r5 + ldr r5, [sp] + lsr r6, r4, #0x18 + strb r6, [r5] + lsr r6, r4, #0x10 + strb r6, [r5, #1] + lsr r6, r4, #8 + strb r6, [r5, #2] + strb r4, [r5, #3] + ldr r4, [r0, #4] + mov r6, #0xff + str r4, [sp, #0x30] + lsl r4, r2, #0x18 + lsr r4, r4, #0x16 + ldr r4, [r3, r4] + lsl r6, r6, #0x10 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + str r4, [sp, #0x34] + lsr r4, r1, #8 + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + ldr r5, [r3, r4] + mov r4, #0xff + lsl r4, r4, #8 + and r4, r5 + str r4, [sp, #0x38] + ldr r4, [sp, #0x44] + lsr r4, r4, #0x18 + lsl r4, r4, #2 + ldr r5, [r3, r4] + mov r4, #0xff + lsl r4, r4, #0x18 + and r5, r4 + ldr r4, [sp, #0x10] + lsr r4, r4, #0x10 + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + ldr r4, [r3, r4] + and r4, r6 + eor r5, r4 + ldr r4, [sp, #0x38] + eor r5, r4 + ldr r4, [sp, #0x34] + eor r5, r4 + ldr r4, [sp, #0x30] + eor r4, r5 + ldr r5, [sp] + lsr r6, r4, #0x18 + strb r6, [r5, #4] + lsr r6, r4, #0x10 + strb r6, [r5, #5] + lsr r6, r4, #8 + strb r6, [r5, #6] + strb r4, [r5, #7] + ldr r4, [r0, #8] + str r4, [sp, #0x3c] + lsl r4, r1, #0x18 + lsr r4, r4, #0x16 + ldr r4, [r3, r4] + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + mov lr, r4 + ldr r4, [sp, #0x10] + lsr r4, r4, #8 + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + ldr r5, [r3, r4] + mov r4, #0xff + lsl r4, r4, #8 + and r4, r5 + mov ip, r4 + lsr r4, r2, #0x18 + lsl r4, r4, #2 + ldr r5, [r3, r4] + mov r4, #0xff + lsl r4, r4, #0x18 + add r6, r5, #0 + and r6, r4 + ldr r4, [sp, #0x44] + lsr r4, r4, #0x10 + lsl r4, r4, #0x18 + lsr r4, r4, #0x16 + ldr r5, [r3, r4] + mov r4, #0xff + lsl r4, r4, #0x10 + and r4, r5 + eor r4, r6 + mov r5, ip + eor r5, r4 + mov r4, lr + eor r5, r4 + ldr r4, [sp, #0x3c] + eor r4, r5 + ldr r5, [sp] + lsr r6, r4, #0x18 + strb r6, [r5, #8] + lsr r6, r4, #0x10 + strb r6, [r5, #9] + lsr r6, r4, #8 + strb r6, [r5, #0xa] + strb r4, [r5, #0xb] + ldr r5, [r0, #0xc] + ldr r0, [sp, #0x10] + lsr r2, r2, #0x10 + lsl r0, r0, #0x18 + lsr r0, r0, #0x16 + ldr r0, [r3, r0] + lsr r1, r1, #0x18 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, [sp, #0x44] + lsl r2, r2, #0x18 + lsr r0, r0, #8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x16 + ldr r6, [r3, r0] + mov r0, #0xff + lsl r0, r0, #8 + lsl r1, r1, #2 + and r0, r6 + mov r6, #0xff + lsr r2, r2, #0x16 + ldr r1, [r3, r1] + ldr r3, [r3, r2] + mov r2, #0xff + lsl r6, r6, #0x18 + lsl r2, r2, #0x10 + and r1, r6 + and r2, r3 + eor r1, r2 + eor r0, r1 + eor r0, r4 + eor r0, r5 + ldr r1, [sp] + lsr r2, r0, #0x18 + strb r2, [r1, #0xc] + lsr r2, r0, #0x10 + strb r2, [r1, #0xd] + lsr r2, r0, #8 + strb r2, [r1, #0xe] + strb r0, [r1, #0xf] + add sp, #0x48 + pop {r3, r4, r5, r6, r7, pc} + nop +_02333740: .word 0x0235008C +_02333744: .word 0x0234FC8C +_02333748: .word 0x02351C8C +_0233374C: .word 0x0235208C +_02333750: .word 0x0235048C + thumb_func_end ov02_02333398 + + thumb_func_start ov02_02333754 +ov02_02333754: ; 0x02333754 + mov r1, #0 + str r1, [r0, #0x14] + str r1, [r0, #0x10] + ldr r1, _0233376C ; =0x67452301 + str r1, [r0] + ldr r1, _02333770 ; =0xEFCDAB89 + str r1, [r0, #4] + ldr r1, _02333774 ; =0x98BADCFE + str r1, [r0, #8] + ldr r1, _02333778 ; =0x10325476 + str r1, [r0, #0xc] + bx lr + .align 2, 0 +_0233376C: .word 0x67452301 +_02333770: .word 0xEFCDAB89 +_02333774: .word 0x98BADCFE +_02333778: .word 0x10325476 + thumb_func_end ov02_02333754 + + thumb_func_start ov02_0233377C +ov02_0233377C: ; 0x0233377C + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + ldr r1, [r5, #0x10] + add r6, r2, #0 + lsr r2, r1, #3 + mov r0, #0x3f + and r0, r2 + lsl r2, r6, #3 + add r1, r1, r2 + str r1, [r5, #0x10] + cmp r1, r2 + bhs _0233379C + ldr r1, [r5, #0x14] + add r1, r1, #1 + str r1, [r5, #0x14] +_0233379C: + ldr r2, [r5, #0x14] + lsr r1, r6, #0x1d + add r1, r2, r1 + str r1, [r5, #0x14] + mov r1, #0x40 + sub r4, r1, r0 + cmp r6, r4 + blo _023337E2 + add r1, r5, #0 + add r1, #0x18 + add r0, r1, r0 + add r1, r7, #0 + add r2, r4, #0 + bl ov02_023340E8 + add r1, r5, #0 + add r0, r5, #0 + add r1, #0x18 + bl ov02_02333848 + add r0, r4, #0 + add r0, #0x3f + cmp r0, r6 + bhs _023337DE +_023337CC: + add r0, r5, #0 + add r1, r7, r4 + bl ov02_02333848 + add r4, #0x40 + add r0, r4, #0 + add r0, #0x3f + cmp r0, r6 + blo _023337CC +_023337DE: + mov r0, #0 + b _023337E4 +_023337E2: + mov r4, #0 +_023337E4: + add r5, #0x18 + add r0, r5, r0 + add r1, r7, r4 + sub r2, r6, r4 + bl ov02_023340E8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end ov02_0233377C + + thumb_func_start ov02_023337F4 +ov02_023337F4: ; 0x023337F4 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + add r4, r1, #0 + add r0, sp, #0 + add r1, #0x10 + mov r2, #8 + bl ov02_02334090 + ldr r0, [r4, #0x10] + lsr r1, r0, #3 + mov r0, #0x3f + and r1, r0 + cmp r1, #0x38 + bhs _02333816 + mov r0, #0x38 + b _02333818 +_02333816: + mov r0, #0x78 +_02333818: + sub r2, r0, r1 + ldr r1, _02333844 ; =0x02353088 + add r0, r4, #0 + bl ov02_0233377C + add r0, r4, #0 + add r1, sp, #0 + mov r2, #8 + bl ov02_0233377C + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x10 + bl ov02_02334090 + add r0, r4, #0 + mov r1, #0 + mov r2, #0x58 + bl ov02_02334100 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_02333844: .word 0x02353088 + thumb_func_end ov02_023337F4 + + thumb_func_start ov02_02333848 +ov02_02333848: ; 0x02333848 + push {r4, r5, r6, r7, lr} + sub sp, #0x84 + add r7, r0, #0 + ldr r0, [r7] + mov r2, #0x40 + str r0, [sp] + add r0, sp, #0x44 + ldr r4, [r7, #4] + ldr r5, [r7, #8] + ldr r6, [r7, #0xc] + bl ov02_023340BC + ldr r0, [sp, #0x44] + add r1, r4, #0 + str r0, [sp, #4] + mvn r0, r4 + and r1, r5 + and r0, r6 + orr r1, r0 + ldr r0, [sp, #4] + add r1, r0, r1 + ldr r0, _02333C20 ; =0x28955B88 + sub r1, r1, r0 + ldr r0, [sp] + add r0, r0, r1 + lsl r1, r0, #7 + lsr r0, r0, #0x19 + orr r0, r1 + add r3, r0, r4 + ldr r0, [sp, #0x48] + mvn r1, r3 + str r0, [sp, #8] + add r0, r3, #0 + and r0, r4 + and r1, r5 + orr r1, r0 + ldr r0, [sp, #8] + add r1, r0, r1 + ldr r0, _02333C24 ; =0x173848AA + sub r0, r1, r0 + add r0, r6, r0 + lsl r1, r0, #0xc + lsr r0, r0, #0x14 + orr r0, r1 + add r2, r0, r3 + ldr r0, [sp, #0x4c] + mvn r1, r2 + str r0, [sp, #0xc] + add r0, r2, #0 + and r0, r3 + and r1, r4 + orr r1, r0 + ldr r0, [sp, #0xc] + add r1, r0, r1 + ldr r0, _02333C28 ; =0x242070DB + add r0, r1, r0 + add r0, r5, r0 + lsl r1, r0, #0x11 + lsr r0, r0, #0xf + orr r0, r1 + add r1, r0, r2 + ldr r0, [sp, #0x50] + mvn r5, r1 + str r0, [sp, #0x10] + add r0, r1, #0 + and r0, r2 + and r5, r3 + orr r5, r0 + ldr r0, [sp, #0x10] + add r5, r0, r5 + ldr r0, _02333C2C ; =0x3E423112 + sub r0, r5, r0 + add r0, r4, r0 + lsl r4, r0, #0x16 + lsr r0, r0, #0xa + orr r0, r4 + ldr r4, [sp, #0x54] + add r0, r0, r1 + str r4, [sp, #0x14] + add r4, r0, #0 + mvn r5, r0 + and r4, r1 + and r5, r2 + orr r5, r4 + ldr r4, [sp, #0x14] + add r5, r4, r5 + ldr r4, _02333C30 ; =0x0A83F051 + sub r4, r5, r4 + add r3, r3, r4 + lsl r4, r3, #7 + lsr r3, r3, #0x19 + orr r3, r4 + ldr r4, [sp, #0x58] + add r3, r3, r0 + str r4, [sp, #0x18] + add r4, r3, #0 + mvn r5, r3 + and r4, r0 + and r5, r1 + orr r5, r4 + ldr r4, [sp, #0x18] + add r5, r4, r5 + ldr r4, _02333C34 ; =0x4787C62A + add r4, r5, r4 + add r2, r2, r4 + lsl r4, r2, #0xc + lsr r2, r2, #0x14 + orr r2, r4 + ldr r4, [sp, #0x5c] + add r2, r2, r3 + str r4, [sp, #0x1c] + add r4, r2, #0 + mvn r5, r2 + and r4, r3 + and r5, r0 + orr r5, r4 + ldr r4, [sp, #0x1c] + add r5, r4, r5 + ldr r4, _02333C38 ; =0x57CFB9ED + sub r4, r5, r4 + add r1, r1, r4 + lsl r4, r1, #0x11 + lsr r1, r1, #0xf + orr r1, r4 + ldr r4, [sp, #0x60] + add r1, r1, r2 + str r4, [sp, #0x20] + add r4, r1, #0 + mvn r5, r1 + and r4, r2 + and r5, r3 + orr r5, r4 + ldr r4, [sp, #0x20] + add r5, r4, r5 + ldr r4, _02333C3C ; =0x02B96AFF + sub r4, r5, r4 + add r0, r0, r4 + lsl r4, r0, #0x16 + lsr r0, r0, #0xa + orr r0, r4 + ldr r4, [sp, #0x64] + add r0, r0, r1 + str r4, [sp, #0x24] + add r4, r0, #0 + mvn r5, r0 + and r4, r1 + and r5, r2 + orr r5, r4 + ldr r4, [sp, #0x24] + add r5, r4, r5 + ldr r4, _02333C40 ; =0x698098D8 + add r4, r5, r4 + add r3, r3, r4 + lsl r4, r3, #7 + lsr r3, r3, #0x19 + orr r3, r4 + ldr r4, [sp, #0x68] + add r3, r3, r0 + str r4, [sp, #0x28] + add r4, r3, #0 + mvn r5, r3 + and r4, r0 + and r5, r1 + orr r5, r4 + ldr r4, [sp, #0x28] + add r5, r4, r5 + ldr r4, _02333C44 ; =0x74BB0851 + sub r4, r5, r4 + add r2, r2, r4 + lsl r4, r2, #0xc + lsr r2, r2, #0x14 + orr r2, r4 + ldr r4, [sp, #0x6c] + add r2, r2, r3 + str r4, [sp, #0x2c] + add r4, r2, #0 + mvn r5, r2 + and r4, r3 + and r5, r0 + orr r5, r4 + ldr r4, [sp, #0x2c] + add r5, r4, r5 + ldr r4, _02333C48 ; =0x0000A44F + sub r4, r5, r4 + add r1, r1, r4 + lsl r4, r1, #0x11 + lsr r1, r1, #0xf + orr r1, r4 + ldr r4, [sp, #0x70] + add r1, r1, r2 + str r4, [sp, #0x30] + add r4, r1, #0 + mvn r5, r1 + and r4, r2 + and r5, r3 + orr r5, r4 + ldr r4, [sp, #0x30] + add r5, r4, r5 + ldr r4, _02333C4C ; =0x76A32842 + sub r4, r5, r4 + add r0, r0, r4 + lsl r4, r0, #0x16 + lsr r0, r0, #0xa + orr r0, r4 + add r0, r0, r1 + ldr r4, [sp, #0x74] + mvn r5, r0 + str r4, [sp, #0x34] + add r4, r0, #0 + and r4, r1 + and r5, r2 + orr r5, r4 + ldr r4, [sp, #0x34] + add r5, r4, r5 + ldr r4, _02333C50 ; =0x6B901122 + add r4, r5, r4 + add r3, r3, r4 + lsl r4, r3, #7 + lsr r3, r3, #0x19 + orr r3, r4 + add r4, r3, r0 + ldr r3, [sp, #0x78] + mvn r5, r4 + str r3, [sp, #0x38] + add r3, r4, #0 + and r3, r0 + and r5, r1 + orr r5, r3 + ldr r3, [sp, #0x38] + add r5, r3, r5 + ldr r3, _02333C54 ; =0x02678E6D + sub r3, r5, r3 + add r2, r2, r3 + lsl r3, r2, #0xc + lsr r2, r2, #0x14 + orr r2, r3 + add r3, r2, r4 + mvn r2, r3 + str r2, [sp, #0x3c] + ldr r2, [sp, #0x7c] + ldr r5, [sp, #0x3c] + str r2, [sp, #0x40] + add r2, r3, #0 + and r2, r4 + and r5, r0 + orr r5, r2 + ldr r2, [sp, #0x40] + add r5, r2, r5 + ldr r2, _02333C58 ; =0x5986BC72 + sub r2, r5, r2 + add r1, r1, r2 + lsl r2, r1, #0x11 + lsr r1, r1, #0xf + orr r1, r2 + add r2, r1, r3 + ldr r1, [sp, #0x80] + add r5, r2, #0 + mvn r6, r2 + mov ip, r1 + add r1, r6, #0 + and r5, r3 + and r1, r4 + orr r5, r1 + mov r1, ip + add r5, r1, r5 + ldr r1, _02333C5C ; =0x49B40821 + add r1, r5, r1 + add r0, r0, r1 + lsl r1, r0, #0x16 + lsr r0, r0, #0xa + orr r0, r1 + add r1, r0, r2 + ldr r5, [sp, #0x3c] + add r0, r1, #0 + and r0, r3 + and r5, r2 + orr r5, r0 + ldr r0, [sp, #8] + add r5, r0, r5 + ldr r0, _02333C60 ; =0x09E1DA9E + sub r0, r5, r0 + add r0, r4, r0 + lsl r4, r0, #5 + lsr r0, r0, #0x1b + orr r0, r4 + add r0, r0, r1 + add r4, r0, #0 + add r5, r1, #0 + and r4, r2 + bic r5, r2 + orr r5, r4 + ldr r4, [sp, #0x1c] + add r5, r4, r5 + ldr r4, _02333C64 ; =0x3FBF4CC0 + sub r4, r5, r4 + add r3, r3, r4 + lsl r4, r3, #9 + lsr r3, r3, #0x17 + orr r3, r4 + add r3, r3, r0 + add r4, r3, #0 + mvn r5, r1 + and r4, r1 + and r5, r0 + orr r5, r4 + ldr r4, [sp, #0x30] + add r5, r4, r5 + ldr r4, _02333C68 ; =0x265E5A51 + add r4, r5, r4 + add r2, r2, r4 + lsl r4, r2, #0xe + lsr r2, r2, #0x12 + orr r2, r4 + add r2, r2, r3 + add r4, r2, #0 + mvn r5, r0 + and r4, r0 + and r5, r3 + orr r5, r4 + ldr r4, [sp, #4] + add r5, r4, r5 + ldr r4, _02333C6C ; =0x16493856 + sub r4, r5, r4 + add r1, r1, r4 + lsl r4, r1, #0x14 + lsr r1, r1, #0xc + orr r1, r4 + add r1, r1, r2 + add r4, r1, #0 + mvn r5, r3 + and r4, r3 + and r5, r2 + orr r5, r4 + ldr r4, [sp, #0x18] + add r5, r4, r5 + ldr r4, _02333C70 ; =0x29D0EFA3 + sub r4, r5, r4 + add r0, r0, r4 + lsl r4, r0, #5 + lsr r0, r0, #0x1b + orr r0, r4 + add r4, r0, r1 + add r0, r4, #0 + mvn r5, r2 + and r0, r2 + and r5, r1 + orr r5, r0 + ldr r0, [sp, #0x2c] + add r5, r0, r5 + ldr r0, _02333C74 ; =0x02441453 + add r0, r5, r0 + add r0, r3, r0 + lsl r3, r0, #9 + lsr r0, r0, #0x17 + orr r0, r3 + add r3, r0, r4 + add r0, r3, #0 + mvn r5, r1 + and r0, r1 + and r5, r4 + orr r5, r0 + mov r0, ip + add r5, r0, r5 + ldr r0, _02333C78 ; =0x275E197F + sub r0, r5, r0 + add r0, r2, r0 + lsl r2, r0, #0xe + lsr r0, r0, #0x12 + orr r0, r2 + add r0, r0, r3 + add r2, r0, #0 + mvn r5, r4 + and r2, r4 + and r5, r3 + orr r5, r2 + ldr r2, [sp, #0x14] + add r5, r2, r5 + ldr r2, _02333C7C ; =0x182C0438 + sub r2, r5, r2 + add r1, r1, r2 + lsl r2, r1, #0x14 + lsr r1, r1, #0xc + orr r1, r2 + add r5, r1, r0 + add r1, r5, #0 + mvn r2, r3 + and r1, r3 + and r2, r0 + orr r2, r1 + ldr r1, [sp, #0x28] + add r2, r1, r2 + ldr r1, _02333C80 ; =0x21E1CDE6 + add r1, r2, r1 + add r1, r4, r1 + lsl r2, r1, #5 + lsr r1, r1, #0x1b + orr r1, r2 + add r2, r1, r5 + add r1, r2, #0 + mvn r4, r0 + and r1, r0 + and r4, r5 + orr r4, r1 + ldr r1, [sp, #0x40] + add r4, r1, r4 + ldr r1, _02333C84 ; =0x3CC8F82A + sub r1, r4, r1 + add r1, r3, r1 + lsl r3, r1, #9 + lsr r1, r1, #0x17 + orr r1, r3 + add r1, r1, r2 + add r3, r1, #0 + mvn r4, r5 + and r3, r5 + and r4, r2 + orr r4, r3 + ldr r3, [sp, #0x10] + add r4, r3, r4 + ldr r3, _02333C88 ; =0x0B2AF279 + sub r3, r4, r3 + add r0, r0, r3 + lsl r3, r0, #0xe + lsr r0, r0, #0x12 + orr r0, r3 + add r4, r0, r1 + add r0, r4, #0 + mvn r3, r2 + and r0, r2 + and r3, r1 + orr r3, r0 + ldr r0, [sp, #0x24] + add r3, r0, r3 + ldr r0, _02333C8C ; =0x455A14ED + add r0, r3, r0 + add r0, r5, r0 + lsl r3, r0, #0x14 + lsr r0, r0, #0xc + orr r0, r3 + add r3, r0, r4 + add r0, r3, #0 + mvn r5, r1 + and r0, r1 + and r5, r4 + orr r5, r0 + ldr r0, [sp, #0x38] + add r5, r0, r5 + ldr r0, _02333C90 ; =0x561C16FB + sub r0, r5, r0 + add r0, r2, r0 + lsl r2, r0, #5 + lsr r0, r0, #0x1b + orr r0, r2 + add r0, r0, r3 + add r2, r0, #0 + mvn r5, r4 + and r2, r4 + and r5, r3 + orr r5, r2 + ldr r2, [sp, #0xc] + add r5, r2, r5 + ldr r2, _02333C94 ; =0x03105C08 + sub r2, r5, r2 + add r1, r1, r2 + lsl r2, r1, #9 + lsr r1, r1, #0x17 + orr r1, r2 + add r5, r1, r0 + add r1, r5, #0 + mvn r2, r3 + and r1, r3 + and r2, r0 + orr r2, r1 + ldr r1, [sp, #0x20] + add r2, r1, r2 + ldr r1, _02333C98 ; =0x676F02D9 + add r1, r2, r1 + add r1, r4, r1 + lsl r2, r1, #0xe + lsr r1, r1, #0x12 + orr r1, r2 + add r2, r1, r5 + add r1, r2, #0 + mvn r4, r0 + and r1, r0 + and r4, r5 + orr r4, r1 + ldr r1, [sp, #0x34] + add r4, r1, r4 + ldr r1, _02333C9C ; =0x72D5B376 + b _02333CA0 + nop +_02333C20: .word 0x28955B88 +_02333C24: .word 0x173848AA +_02333C28: .word 0x242070DB +_02333C2C: .word 0x3E423112 +_02333C30: .word 0x0A83F051 +_02333C34: .word 0x4787C62A +_02333C38: .word 0x57CFB9ED +_02333C3C: .word 0x02B96AFF +_02333C40: .word 0x698098D8 +_02333C44: .word 0x74BB0851 +_02333C48: .word 0x0000A44F +_02333C4C: .word 0x76A32842 +_02333C50: .word 0x6B901122 +_02333C54: .word 0x02678E6D +_02333C58: .word 0x5986BC72 +_02333C5C: .word 0x49B40821 +_02333C60: .word 0x09E1DA9E +_02333C64: .word 0x3FBF4CC0 +_02333C68: .word 0x265E5A51 +_02333C6C: .word 0x16493856 +_02333C70: .word 0x29D0EFA3 +_02333C74: .word 0x02441453 +_02333C78: .word 0x275E197F +_02333C7C: .word 0x182C0438 +_02333C80: .word 0x21E1CDE6 +_02333C84: .word 0x3CC8F82A +_02333C88: .word 0x0B2AF279 +_02333C8C: .word 0x455A14ED +_02333C90: .word 0x561C16FB +_02333C94: .word 0x03105C08 +_02333C98: .word 0x676F02D9 +_02333C9C: .word 0x72D5B376 +_02333CA0: + sub r1, r4, r1 + add r1, r3, r1 + lsl r3, r1, #0x14 + lsr r1, r1, #0xc + orr r1, r3 + add r1, r1, r2 + add r3, r1, #0 + eor r3, r2 + add r4, r5, #0 + eor r4, r3 + ldr r3, [sp, #0x18] + add r4, r3, r4 + ldr r3, _02334010 ; =0x0005C6BE + sub r3, r4, r3 + add r0, r0, r3 + lsl r3, r0, #4 + lsr r0, r0, #0x1c + orr r0, r3 + add r4, r0, r1 + add r0, r4, #0 + eor r0, r1 + add r3, r2, #0 + eor r3, r0 + ldr r0, [sp, #0x24] + add r3, r0, r3 + ldr r0, _02334014 ; =0x788E097F + sub r0, r3, r0 + add r0, r5, r0 + lsl r3, r0, #0xb + lsr r0, r0, #0x15 + orr r0, r3 + add r3, r0, r4 + add r0, r3, #0 + eor r0, r4 + add r5, r1, #0 + eor r5, r0 + ldr r0, [sp, #0x30] + add r5, r0, r5 + ldr r0, _02334018 ; =0x6D9D6122 + add r0, r5, r0 + add r0, r2, r0 + lsl r2, r0, #0x10 + lsr r0, r0, #0x10 + orr r0, r2 + add r0, r0, r3 + add r2, r0, #0 + eor r2, r3 + add r5, r4, #0 + eor r5, r2 + ldr r2, [sp, #0x40] + add r5, r2, r5 + ldr r2, _0233401C ; =0x021AC7F4 + sub r2, r5, r2 + add r1, r1, r2 + lsl r2, r1, #0x17 + lsr r1, r1, #9 + orr r1, r2 + add r5, r1, r0 + add r1, r5, #0 + eor r1, r0 + add r2, r3, #0 + eor r2, r1 + ldr r1, [sp, #8] + add r2, r1, r2 + ldr r1, _02334020 ; =0x5B4115BC + sub r1, r2, r1 + add r1, r4, r1 + lsl r2, r1, #4 + lsr r1, r1, #0x1c + orr r1, r2 + add r2, r1, r5 + add r1, r2, #0 + eor r1, r5 + add r4, r0, #0 + eor r4, r1 + ldr r1, [sp, #0x14] + add r4, r1, r4 + ldr r1, _02334024 ; =0x4BDECFA9 + add r1, r4, r1 + add r1, r3, r1 + lsl r3, r1, #0xb + lsr r1, r1, #0x15 + orr r1, r3 + add r1, r1, r2 + add r3, r1, #0 + eor r3, r2 + add r4, r5, #0 + eor r4, r3 + ldr r3, [sp, #0x20] + add r4, r3, r4 + ldr r3, _02334028 ; =0x0944B4A0 + sub r3, r4, r3 + add r0, r0, r3 + lsl r3, r0, #0x10 + lsr r0, r0, #0x10 + orr r0, r3 + add r4, r0, r1 + add r0, r4, #0 + eor r0, r1 + add r3, r2, #0 + eor r3, r0 + ldr r0, [sp, #0x2c] + add r3, r0, r3 + ldr r0, _0233402C ; =0x41404390 + sub r0, r3, r0 + add r0, r5, r0 + lsl r3, r0, #0x17 + lsr r0, r0, #9 + orr r0, r3 + add r3, r0, r4 + add r0, r3, #0 + eor r0, r4 + add r5, r1, #0 + eor r5, r0 + ldr r0, [sp, #0x38] + add r5, r0, r5 + ldr r0, _02334030 ; =0x289B7EC6 + add r0, r5, r0 + add r0, r2, r0 + lsl r2, r0, #4 + lsr r0, r0, #0x1c + orr r0, r2 + add r0, r0, r3 + add r2, r0, #0 + eor r2, r3 + add r5, r4, #0 + eor r5, r2 + ldr r2, [sp, #4] + add r5, r2, r5 + ldr r2, _02334034 ; =0x155ED806 + sub r2, r5, r2 + add r1, r1, r2 + lsl r2, r1, #0xb + lsr r1, r1, #0x15 + orr r1, r2 + add r5, r1, r0 + add r1, r5, #0 + eor r1, r0 + add r2, r3, #0 + eor r2, r1 + ldr r1, [sp, #0x10] + add r2, r1, r2 + ldr r1, _02334038 ; =0x2B10CF7B + sub r1, r2, r1 + add r1, r4, r1 + lsl r2, r1, #0x10 + lsr r1, r1, #0x10 + orr r1, r2 + add r2, r1, r5 + add r1, r2, #0 + eor r1, r5 + add r4, r0, #0 + eor r4, r1 + ldr r1, [sp, #0x1c] + add r4, r1, r4 + ldr r1, _0233403C ; =0x04881D05 + add r1, r4, r1 + add r1, r3, r1 + lsl r3, r1, #0x17 + lsr r1, r1, #9 + orr r1, r3 + add r1, r1, r2 + add r3, r1, #0 + eor r3, r2 + add r4, r5, #0 + eor r4, r3 + ldr r3, [sp, #0x28] + add r4, r3, r4 + ldr r3, _02334040 ; =0x262B2FC7 + sub r3, r4, r3 + add r0, r0, r3 + lsl r3, r0, #4 + lsr r0, r0, #0x1c + orr r0, r3 + add r4, r0, r1 + add r0, r4, #0 + eor r0, r1 + add r3, r2, #0 + eor r3, r0 + ldr r0, [sp, #0x34] + add r3, r0, r3 + ldr r0, _02334044 ; =0x1924661B + sub r0, r3, r0 + add r0, r5, r0 + lsl r3, r0, #0xb + lsr r0, r0, #0x15 + orr r0, r3 + add r3, r0, r4 + add r0, r3, #0 + eor r0, r4 + add r5, r1, #0 + eor r5, r0 + mov r0, ip + add r5, r0, r5 + ldr r0, _02334048 ; =0x1FA27CF8 + add r0, r5, r0 + add r0, r2, r0 + lsl r2, r0, #0x10 + lsr r0, r0, #0x10 + orr r0, r2 + add r0, r0, r3 + add r2, r0, #0 + eor r2, r3 + add r5, r4, #0 + eor r5, r2 + ldr r2, [sp, #0xc] + add r5, r2, r5 + ldr r2, _0233404C ; =0x3B53A99B + sub r2, r5, r2 + add r1, r1, r2 + lsl r2, r1, #0x17 + lsr r1, r1, #9 + orr r1, r2 + add r5, r1, r0 + mvn r1, r3 + orr r1, r5 + add r2, r0, #0 + eor r2, r1 + ldr r1, [sp, #4] + add r2, r1, r2 + ldr r1, _02334050 ; =0x0BD6DDBC + sub r1, r2, r1 + add r1, r4, r1 + lsl r2, r1, #6 + lsr r1, r1, #0x1a + orr r1, r2 + add r2, r1, r5 + mvn r1, r0 + orr r1, r2 + add r4, r5, #0 + eor r4, r1 + ldr r1, [sp, #0x20] + add r4, r1, r4 + ldr r1, _02334054 ; =0x432AFF97 + add r1, r4, r1 + add r1, r3, r1 + lsl r3, r1, #0xa + lsr r1, r1, #0x16 + orr r1, r3 + add r1, r1, r2 + mvn r3, r5 + orr r3, r1 + add r4, r2, #0 + eor r4, r3 + ldr r3, [sp, #0x40] + add r4, r3, r4 + ldr r3, _02334058 ; =0x546BDC59 + sub r3, r4, r3 + add r0, r0, r3 + lsl r3, r0, #0xf + lsr r0, r0, #0x11 + orr r0, r3 + add r4, r0, r1 + mvn r0, r2 + orr r0, r4 + add r3, r1, #0 + eor r3, r0 + ldr r0, [sp, #0x18] + add r3, r0, r3 + ldr r0, _0233405C ; =0x036C5FC7 + sub r0, r3, r0 + add r0, r5, r0 + lsl r3, r0, #0x15 + lsr r0, r0, #0xb + orr r0, r3 + add r3, r0, r4 + mvn r0, r1 + orr r0, r3 + add r5, r4, #0 + eor r5, r0 + ldr r0, [sp, #0x34] + add r5, r0, r5 + ldr r0, _02334060 ; =0x655B59C3 + add r0, r5, r0 + add r0, r2, r0 + lsl r2, r0, #6 + lsr r0, r0, #0x1a + orr r0, r2 + add r0, r0, r3 + mvn r2, r4 + orr r2, r0 + add r5, r3, #0 + eor r5, r2 + ldr r2, [sp, #0x10] + add r5, r2, r5 + ldr r2, _02334064 ; =0x70F3336E + sub r2, r5, r2 + add r1, r1, r2 + lsl r2, r1, #0xa + lsr r1, r1, #0x16 + orr r1, r2 + add r5, r1, r0 + mvn r1, r3 + orr r1, r5 + add r2, r0, #0 + eor r2, r1 + ldr r1, [sp, #0x2c] + add r2, r1, r2 + ldr r1, _02334068 ; =0x00100B83 + sub r1, r2, r1 + add r1, r4, r1 + lsl r2, r1, #0xf + lsr r1, r1, #0x11 + orr r1, r2 + add r2, r1, r5 + mvn r1, r0 + orr r1, r2 + add r4, r5, #0 + eor r4, r1 + ldr r1, [sp, #8] + add r4, r1, r4 + ldr r1, _0233406C ; =0x7A7BA22F + sub r1, r4, r1 + add r1, r3, r1 + lsl r3, r1, #0x15 + lsr r1, r1, #0xb + orr r1, r3 + add r1, r1, r2 + mvn r3, r5 + orr r3, r1 + add r4, r2, #0 + eor r4, r3 + ldr r3, [sp, #0x24] + add r4, r3, r4 + ldr r3, _02334070 ; =0x6FA87E4F + add r3, r4, r3 + add r0, r0, r3 + lsl r3, r0, #6 + lsr r0, r0, #0x1a + orr r0, r3 + add r3, r0, r1 + mvn r0, r2 + orr r0, r3 + eor r0, r1 + mov r4, ip + add r4, r4, r0 + ldr r0, _02334074 ; =0x01D31920 + sub r0, r4, r0 + add r0, r5, r0 + lsl r4, r0, #0xa + lsr r0, r0, #0x16 + orr r0, r4 + add r0, r0, r3 + mvn r4, r1 + orr r4, r0 + add r5, r3, #0 + eor r5, r4 + ldr r4, [sp, #0x1c] + add r5, r4, r5 + ldr r4, _02334078 ; =0x5CFEBCEC + sub r4, r5, r4 + add r2, r2, r4 + lsl r4, r2, #0xf + lsr r2, r2, #0x11 + orr r2, r4 + add r4, r2, r0 + mvn r2, r3 + orr r2, r4 + add r5, r0, #0 + eor r5, r2 + ldr r2, [sp, #0x38] + add r5, r2, r5 + ldr r2, _0233407C ; =0x4E0811A1 + add r2, r5, r2 + add r1, r1, r2 + lsl r2, r1, #0x15 + lsr r1, r1, #0xb + orr r1, r2 + add r2, r1, r4 + mvn r1, r0 + orr r1, r2 + add r5, r4, #0 + eor r5, r1 + ldr r1, [sp, #0x14] + add r5, r1, r5 + ldr r1, _02334080 ; =0x08AC817E + sub r1, r5, r1 + add r1, r3, r1 + lsl r3, r1, #6 + lsr r1, r1, #0x1a + orr r1, r3 + add r1, r1, r2 + mvn r3, r4 + orr r3, r1 + add r5, r2, #0 + eor r5, r3 + ldr r3, [sp, #0x30] + add r5, r3, r5 + ldr r3, _02334084 ; =0x42C50DCB + sub r3, r5, r3 + add r0, r0, r3 + lsl r3, r0, #0xa + lsr r0, r0, #0x16 + orr r0, r3 + add r5, r0, r1 + mvn r0, r2 + orr r0, r5 + add r3, r1, #0 + eor r3, r0 + ldr r0, [sp, #0xc] + add r3, r0, r3 + ldr r0, _02334088 ; =0x2AD7D2BB + add r0, r3, r0 + add r0, r4, r0 + lsl r3, r0, #0xf + lsr r0, r0, #0x11 + orr r0, r3 + add r3, r0, r5 + mvn r0, r1 + orr r0, r3 + add r4, r5, #0 + eor r4, r0 + ldr r0, [sp, #0x28] + add r4, r0, r4 + ldr r0, _0233408C ; =0x14792C6F + sub r0, r4, r0 + add r0, r2, r0 + lsl r2, r0, #0x15 + lsr r0, r0, #0xb + orr r0, r2 + ldr r2, [r7] + add r0, r0, r3 + add r1, r2, r1 + str r1, [r7] + ldr r1, [r7, #4] + mov r2, #0x40 + add r0, r1, r0 + str r0, [r7, #4] + ldr r0, [r7, #8] + mov r1, #0 + add r0, r0, r3 + str r0, [r7, #8] + ldr r0, [r7, #0xc] + add r0, r0, r5 + str r0, [r7, #0xc] + add r0, sp, #0x44 + bl ov02_02334100 + add sp, #0x84 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02334010: .word 0x0005C6BE +_02334014: .word 0x788E097F +_02334018: .word 0x6D9D6122 +_0233401C: .word 0x021AC7F4 +_02334020: .word 0x5B4115BC +_02334024: .word 0x4BDECFA9 +_02334028: .word 0x0944B4A0 +_0233402C: .word 0x41404390 +_02334030: .word 0x289B7EC6 +_02334034: .word 0x155ED806 +_02334038: .word 0x2B10CF7B +_0233403C: .word 0x04881D05 +_02334040: .word 0x262B2FC7 +_02334044: .word 0x1924661B +_02334048: .word 0x1FA27CF8 +_0233404C: .word 0x3B53A99B +_02334050: .word 0x0BD6DDBC +_02334054: .word 0x432AFF97 +_02334058: .word 0x546BDC59 +_0233405C: .word 0x036C5FC7 +_02334060: .word 0x655B59C3 +_02334064: .word 0x70F3336E +_02334068: .word 0x00100B83 +_0233406C: .word 0x7A7BA22F +_02334070: .word 0x6FA87E4F +_02334074: .word 0x01D31920 +_02334078: .word 0x5CFEBCEC +_0233407C: .word 0x4E0811A1 +_02334080: .word 0x08AC817E +_02334084: .word 0x42C50DCB +_02334088: .word 0x2AD7D2BB +_0233408C: .word 0x14792C6F + thumb_func_end ov02_02333848 + + thumb_func_start ov02_02334090 +ov02_02334090: ; 0x02334090 + push {r4, r5} + mov r4, #0 + cmp r2, #0 + bls _023340B8 +_02334098: + ldr r5, [r1] + add r3, r0, r4 + strb r5, [r0, r4] + ldr r5, [r1] + add r4, r4, #4 + lsr r5, r5, #8 + strb r5, [r3, #1] + ldr r5, [r1] + lsr r5, r5, #0x10 + strb r5, [r3, #2] + ldr r5, [r1] + add r1, r1, #4 + lsr r5, r5, #0x18 + strb r5, [r3, #3] + cmp r4, r2 + blo _02334098 +_023340B8: + pop {r4, r5} + bx lr + thumb_func_end ov02_02334090 + + thumb_func_start ov02_023340BC +ov02_023340BC: ; 0x023340BC + push {r4, r5, r6, r7} + mov r7, #0 + cmp r2, #0 + bls _023340E2 +_023340C4: + add r6, r1, r7 + ldrb r3, [r6, #3] + lsl r5, r3, #0x18 + ldrb r3, [r6, #2] + ldrb r6, [r6, #1] + lsl r4, r3, #0x10 + ldrb r3, [r1, r7] + lsl r6, r6, #8 + add r7, r7, #4 + orr r3, r6 + orr r3, r4 + orr r3, r5 + stmia r0!, {r3} + cmp r7, r2 + blo _023340C4 +_023340E2: + pop {r4, r5, r6, r7} + bx lr + .align 2, 0 + thumb_func_end ov02_023340BC + + thumb_func_start ov02_023340E8 +ov02_023340E8: ; 0x023340E8 + push {r3, r4} + mov r4, #0 + cmp r2, #0 + bls _023340FA +_023340F0: + ldrb r3, [r1, r4] + strb r3, [r0, r4] + add r4, r4, #1 + cmp r4, r2 + blo _023340F0 +_023340FA: + pop {r3, r4} + bx lr + .align 2, 0 + thumb_func_end ov02_023340E8 + + thumb_func_start ov02_02334100 +ov02_02334100: ; 0x02334100 + mov r3, #0 + cmp r2, #0 + bls _02334114 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 +_0233410A: + add r3, r3, #1 + strb r1, [r0] + add r0, r0, #1 + cmp r3, r2 + blo _0233410A +_02334114: + bx lr + .align 2, 0 + thumb_func_end ov02_02334100 + + thumb_func_start ov02_02334118 +ov02_02334118: ; 0x02334118 + push {r4, r5, r6, lr} + sub sp, #0x58 + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + add r0, sp, #0 + bl ov02_02333754 + add r0, sp, #0 + add r1, r4, #0 + add r2, r6, #0 + bl ov02_0233377C + add r0, r5, #0 + add r1, sp, #0 + bl ov02_023337F4 + add sp, #0x58 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end ov02_02334118 thumb_func_start ov02_02334140 ov02_02334140: ; 0x02334140 @@ -12502,18 +18718,102 @@ ov02_02334140: ; 0x02334140 .align 2, 0 _02334158: .word 0x000082EA thumb_func_end ov02_02334140 -_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 - .byte 0x08, 0xB5, 0x02, 0x49, 0xC9, 0x68, 0x88, 0x47, 0x08, 0xBD, 0xC0, 0x46, 0xD0, 0x94, 0x35, 0x02 - .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, 0xF8, 0xB5, 0x00, 0x90, 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_0233415C +ov02_0233415C: ; 0x0233415C + push {r3, r4, r5, lr} + add r4, r0, #0 + mul r4, r1 + ldr r1, _0233417C ; =0x023594D0 + add r0, r4, #0 + ldr r1, [r1, #4] + blx r1 + add r5, r0, #0 + beq _02334176 + mov r1, #0 + add r2, r4, #0 + blx Memset +_02334176: + add r0, r5, #0 + pop {r3, r4, r5, pc} + nop +_0233417C: .word 0x023594D0 + thumb_func_end ov02_0233415C + + thumb_func_start ov02_02334180 +ov02_02334180: ; 0x02334180 + push {r3, lr} + ldr r1, _0233418C ; =0x023594D0 + ldr r1, [r1, #0xc] + blx r1 + pop {r3, pc} + nop +_0233418C: .word 0x023594D0 + thumb_func_end ov02_02334180 + + thumb_func_start ov02_02334190 +ov02_02334190: ; 0x02334190 + push {r4, r5} + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + mov r1, #0xf0 + and r1, r3 + asr r5, r1, #4 + mov r1, #0xf + add r2, r0, #0 + mov r4, #0 + and r1, r3 +_023341A4: + cmp r5, #9 + bgt _023341AC + add r5, #0x30 + b _023341AE +_023341AC: + add r5, #0x37 +_023341AE: + add r4, r4, #1 + strb r5, [r2] + add r2, r2, #1 + add r5, r1, #0 + cmp r4, #2 + blt _023341A4 + mov r1, #0 + strb r1, [r2] + sub r0, r2, r0 + pop {r4, r5} + bx lr + thumb_func_end ov02_02334190 + + thumb_func_start ov02_023341C4 +ov02_023341C4: ; 0x023341C4 + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + add r6, r1, #0 + add r4, r0, #0 + mov r5, #0 + mov r7, #0x3a +_023341D0: + mov r1, #0 + ldrsb r1, [r6, r1] + add r0, r4, #0 + add r6, r6, #1 + bl ov02_02334190 + add r0, r4, r0 + add r4, r0, #0 + cmp r5, #5 + bge _023341E8 + add r4, r0, #1 + strb r7, [r0] +_023341E8: + add r5, r5, #1 + cmp r5, #6 + blt _023341D0 + mov r0, #0 + strb r0, [r4] + ldr r0, [sp] + sub r0, r4, r0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end ov02_023341C4 thumb_func_start ov02_023341F8 ov02_023341F8: ; 0x023341F8 @@ -14568,18 +20868,25 @@ _02335B70: ldrb r0, [r0, #0x11d] bl ov02_02336574 bl ov02_0233693C - ldr r1, _02335BA0 ; =0x02335BA4 + ldr r1, _02335BA0 ; =ov02_02335BA4 mov r0, r4 bl ov02_0234FB38 add sp, sp, #8 ldmia sp!, {r4, pc} .align 2, 0 _02335B9C: .word 0x0235AA5C -_02335BA0: .word 0x02335BA4 +_02335BA0: .word ov02_02335BA4 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_02335BA4 +ov02_02335BA4: ; 0x02335BA4 + stmdb sp!, {r3, lr} + bl ov02_02335BBC + bl ov02_02335DA4 + bl ov02_023360EC + bl ov02_02336344 + ldmia sp!, {r3, pc} + arm_func_end ov02_02335BA4 arm_func_start ov02_02335BBC ov02_02335BBC: ; 0x02335BBC @@ -16656,18 +22963,25 @@ _023377BC: mov r1, #0xaa bl ov02_02337F80 bl ov02_023382A8 - ldr r1, _023377E0 ; =0x023377E4 + ldr r1, _023377E0 ; =ov02_023377E4 mov r0, r4 bl ov02_0234FB38 add sp, sp, #8 ldmia sp!, {r4, pc} .align 2, 0 _023377DC: .word 0x0235AA60 -_023377E0: .word 0x023377E4 +_023377E0: .word ov02_023377E4 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_023377E4 +ov02_023377E4: ; 0x023377E4 + stmdb sp!, {r3, lr} + bl ov02_023377FC + bl ov02_023379D8 + bl ov02_02337BA8 + bl ov02_02337DE4 + ldmia sp!, {r3, pc} + arm_func_end ov02_023377E4 arm_func_start ov02_023377FC ov02_023377FC: ; 0x023377FC @@ -17821,7 +24135,7 @@ _02338744: ldr r0, [r1, #4] add r0, r0, #0x110 bl sub_0207B9EC - ldr r0, _023387E0 ; =0x02338898 + ldr r0, _023387E0 ; =ov02_02338898 ldr r1, _023387E4 ; =0x023388A8 blx ov02_023300A0 cmp r0, #0 @@ -17833,7 +24147,7 @@ _02338744: .align 2, 0 _023387D8: .word 0x0235AA64 _023387DC: .word 0x023528FC -_023387E0: .word 0x02338898 +_023387E0: .word ov02_02338898 _023387E4: .word 0x023388A8 arm_func_end ov02_023386D8 @@ -17894,10 +24208,23 @@ _0233888C: .align 2, 0 _02338894: .word 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_02338898 +ov02_02338898: ; 0x02338898 + ldr ip, _023388A4 ; =ov02_0234E7B4 + mov r1, #0x20 + bx ip + .align 2, 0 +_023388A4: .word ov02_0234E7B4 + arm_func_end ov02_02338898 + + arm_func_start ov02_023388A8 +ov02_023388A8: ; 0x023388A8 + ldr ip, _023388B0 ; =ov02_0234E81C + bx ip + .align 2, 0 +_023388B0: .word ov02_0234E81C + arm_func_end ov02_023388A8 arm_func_start ov02_023388B4 ov02_023388B4: ; 0x023388B4 @@ -18786,10 +25113,10 @@ ov02_023393E0: ; 0x023393E0 sub r1, r0, #0x10 bl ov02_0234E7B4 ldr r1, _0233943C ; =0x0235AA94 - ldr ip, _02339440 ; =0x02339580 + ldr ip, _02339440 ; =ov02_02339580 str r0, [r1] - ldr r2, _02339444 ; =0x02339558 - ldr r3, _02339448 ; =0x02339570 + ldr r2, _02339444 ; =ov02_02339558 + ldr r3, _02339448 ; =ov02_02339570 str ip, [sp] mov ip, #0x800 mov r0, #0xf @@ -18806,9 +25133,9 @@ _0233942C: ldmia sp!, {r3, pc} .align 2, 0 _0233943C: .word 0x0235AA94 -_02339440: .word 0x02339580 -_02339444: .word 0x02339558 -_02339448: .word 0x02339570 +_02339440: .word ov02_02339580 +_02339444: .word ov02_02339558 +_02339448: .word ov02_02339570 arm_func_end ov02_023393E0 arm_func_start ov02_0233944C @@ -18902,11 +25229,34 @@ _02339548: add sp, sp, #0xe8 ldmia sp!, {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_02339558 +ov02_02339558: ; 0x02339558 + ldr r3, _0233956C ; =0x0235AA94 + ldmia r0, {r0, r1, r2} + ldr r3, [r3] + stmia r3, {r0, r1, r2} + bx lr + .align 2, 0 +_0233956C: .word 0x0235AA94 + arm_func_end ov02_02339558 + + arm_func_start ov02_02339570 +ov02_02339570: ; 0x02339570 + ldr ip, _0233957C ; =ov02_0234E7B4 + mov r1, #0x20 + bx ip + .align 2, 0 +_0233957C: .word ov02_0234E7B4 + arm_func_end ov02_02339570 + + arm_func_start ov02_02339580 +ov02_02339580: ; 0x02339580 + ldr ip, _02339588 ; =ov02_0234E81C + bx ip + .align 2, 0 +_02339588: .word ov02_0234E81C + arm_func_end ov02_02339580 arm_func_start ov02_0233958C ov02_0233958C: ; 0x0233958C @@ -19288,17 +25638,36 @@ ov02_02339A88: ; 0x02339A88 ldmneia sp!, {r3, pc} mov r0, #0 bl ov02_02334E38 - ldr r0, _02339AC0 ; =0x02339AC4 + ldr r0, _02339AC0 ; =ov02_02339AC4 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02339AC0: .word 0x02339AC4 +_02339AC0: .word ov02_02339AC4 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_02339AC4 +ov02_02339AC4: ; 0x02339AC4 + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _02339AE8 ; =ov02_02339AEC + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02339AE8: .word ov02_02339AEC + arm_func_end ov02_02339AC4 + + arm_func_start ov02_02339AEC +ov02_02339AEC: ; 0x02339AEC + stmdb sp!, {r3, lr} + bl ov02_02339B00 + bl ov02_02339C2C + bl ov02_02339C30 + ldmia sp!, {r3, pc} + arm_func_end ov02_02339AEC arm_func_start ov02_02339B00 ov02_02339B00: ; 0x02339B00 @@ -19411,16 +25780,26 @@ _02339C60: mov r0, #6 bl ov02_023480E0 bl ov02_02339E04 - ldr r0, _02339C7C ; =0x02339C80 + ldr r0, _02339C7C ; =ov02_02339C80 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 _02339C78: .word ov02_0233958C -_02339C7C: .word 0x02339C80 +_02339C7C: .word ov02_02339C80 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_02339C80 +ov02_02339C80: ; 0x02339C80 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _02339C9C ; =ov02_02339CA0 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02339C9C: .word ov02_02339CA0 + arm_func_end ov02_02339C80 arm_func_start ov02_02339CA0 ov02_02339CA0: ; 0x02339CA0 @@ -19648,18 +26027,36 @@ ov02_02339F60: ; 0x02339F60 ldmneia sp!, {r3, pc} mov r0, #3 bl ov02_02334E38 - ldr r0, _02339F98 ; =0x02339F9C + ldr r0, _02339F98 ; =ov02_02339F9C bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02339F98: .word 0x02339F9C +_02339F98: .word ov02_02339F9C 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_02339F9C +ov02_02339F9C: ; 0x02339F9C + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _02339FC0 ; =ov02_02339FC4 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02339FC0: .word ov02_02339FC4 + arm_func_end ov02_02339F9C + + arm_func_start ov02_02339FC4 +ov02_02339FC4: ; 0x02339FC4 + stmdb sp!, {r3, lr} + bl ov02_02339FD8 + bl ov02_0233A010 + bl ov02_0233A014 + ldmia sp!, {r3, pc} + arm_func_end ov02_02339FC4 arm_func_start ov02_02339FD8 ov02_02339FD8: ; 0x02339FD8 @@ -19697,7 +26094,7 @@ ov02_0233A014: ; 0x0233A014 _0233A030: mov r0, #7 bl ov02_023480E0 - ldr r0, _0233A074 ; =0x0233A07C + ldr r0, _0233A074 ; =ov02_0233A07C bl ov02_02338D68 ldmia sp!, {r3, pc} _0233A044: @@ -19714,13 +26111,22 @@ _0233A044: bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233A074: .word 0x0233A07C +_0233A074: .word ov02_0233A07C _0233A078: .word 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_0233A07C +ov02_0233A07C: ; 0x0233A07C + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _0233A098 ; =ov02_0233A09C + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233A098: .word ov02_0233A09C + arm_func_end ov02_0233A07C arm_func_start ov02_0233A09C ov02_0233A09C: ; 0x0233A09C @@ -19798,13 +26204,13 @@ _0233A168: ldmia sp!, {r3, pc} _0233A19C: bl ov02_02338D78 - ldr r0, _0233A1B4 ; =0x0233A228 + ldr r0, _0233A1B4 ; =ov02_0233A228 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 _0233A1AC: .word 0x0235AAA4 _0233A1B0: .word ov02_0233A904 -_0233A1B4: .word 0x0233A228 +_0233A1B4: .word ov02_0233A228 arm_func_end ov02_0233A100 arm_func_start ov02_0233A1B8 @@ -19826,19 +26232,40 @@ _0233A1E8: bl ov02_023480E0 _0233A1F0: bl ov02_023496C0 - ldr r0, _0233A204 ; =0x0233A208 + ldr r0, _0233A204 ; =ov02_0233A208 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 _0233A200: .word 0x0235AAA4 -_0233A204: .word 0x0233A208 +_0233A204: .word ov02_0233A208 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_0233A208 +ov02_0233A208: ; 0x0233A208 + stmdb sp!, {r3, lr} + bl ov02_02349718 + cmp r0, #0 + ldmneia sp!, {r3, pc} + ldr r0, _0233A224 ; =ov02_0233A07C + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233A224: .word ov02_0233A07C + arm_func_end ov02_0233A208 + + arm_func_start ov02_0233A228 +ov02_0233A228: ; 0x0233A228 + stmdb sp!, {r3, lr} + bl ov02_0233A24C + mov r0, #0x19 + bl ov02_02334E70 + bl ov02_02347D68 + ldr r0, _0233A248 ; =ov02_0233A2CC + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233A248: .word ov02_0233A2CC + arm_func_end ov02_0233A228 arm_func_start ov02_0233A24C ov02_0233A24C: ; 0x0233A24C @@ -19904,18 +26331,36 @@ ov02_0233A300: ; 0x0233A300 ldmneia sp!, {r3, pc} mov r0, #5 bl ov02_02334E38 - ldr r0, _0233A328 ; =0x0233A32C + ldr r0, _0233A328 ; =ov02_0233A32C bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233A328: .word 0x0233A32C +_0233A328: .word ov02_0233A32C 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_0233A32C +ov02_0233A32C: ; 0x0233A32C + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _0233A350 ; =ov02_0233A354 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233A350: .word ov02_0233A354 + arm_func_end ov02_0233A32C + + arm_func_start ov02_0233A354 +ov02_0233A354: ; 0x0233A354 + stmdb sp!, {r3, lr} + bl ov02_0233A368 + bl ov02_0233A388 + bl ov02_0233A38C + ldmia sp!, {r3, pc} + arm_func_end ov02_0233A354 arm_func_start ov02_0233A368 ov02_0233A368: ; 0x0233A368 @@ -19942,16 +26387,25 @@ ov02_0233A38C: ; 0x0233A38C ldmneia sp!, {r3, pc} mov r0, #6 bl ov02_023480E0 - ldr r0, _0233A3B0 ; =0x0233A3B4 + ldr r0, _0233A3B0 ; =ov02_0233A3B4 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233A3B0: .word 0x0233A3B4 +_0233A3B0: .word ov02_0233A3B4 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_0233A3B4 +ov02_0233A3B4: ; 0x0233A3B4 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _0233A3D0 ; =ov02_0233A3D4 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233A3D0: .word ov02_0233A3D4 + arm_func_end ov02_0233A3B4 arm_func_start ov02_0233A3D4 ov02_0233A3D4: ; 0x0233A3D4 @@ -20225,18 +26679,36 @@ ov02_0233A760: ; 0x0233A760 ldmneia sp!, {r3, pc} mov r0, #2 bl ov02_02334E38 - ldr r0, _0233A798 ; =0x0233A79C + ldr r0, _0233A798 ; =ov02_0233A79C bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233A798: .word 0x0233A79C +_0233A798: .word ov02_0233A79C 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_0233A79C +ov02_0233A79C: ; 0x0233A79C + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _0233A7C0 ; =ov02_0233A7C4 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233A7C0: .word ov02_0233A7C4 + arm_func_end ov02_0233A79C + + arm_func_start ov02_0233A7C4 +ov02_0233A7C4: ; 0x0233A7C4 + stmdb sp!, {r3, lr} + bl ov02_0233A7D8 + bl ov02_0233A7F8 + bl ov02_0233A7FC + ldmia sp!, {r3, pc} + arm_func_end ov02_0233A7C4 arm_func_start ov02_0233A7D8 ov02_0233A7D8: ; 0x0233A7D8 @@ -20263,16 +26735,25 @@ ov02_0233A7FC: ; 0x0233A7FC ldmneia sp!, {r3, pc} mov r0, #7 bl ov02_023480E0 - ldr r0, _0233A820 ; =0x0233A824 + ldr r0, _0233A820 ; =ov02_0233A824 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233A820: .word 0x0233A824 +_0233A820: .word ov02_0233A824 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_0233A824 +ov02_0233A824: ; 0x0233A824 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _0233A840 ; =ov02_0233A844 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233A840: .word ov02_0233A844 + arm_func_end ov02_0233A824 arm_func_start ov02_0233A844 ov02_0233A844: ; 0x0233A844 @@ -20538,18 +27019,36 @@ ov02_0233ABBC: ; 0x0233ABBC ldmneia sp!, {r3, pc} mov r0, #0 bl ov02_02334E38 - ldr r0, _0233ABF4 ; =0x0233ABF8 + ldr r0, _0233ABF4 ; =ov02_0233ABF8 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233ABF4: .word 0x0233ABF8 +_0233ABF4: .word ov02_0233ABF8 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_0233ABF8 +ov02_0233ABF8: ; 0x0233ABF8 + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _0233AC1C ; =ov02_0233AC20 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233AC1C: .word ov02_0233AC20 + arm_func_end ov02_0233ABF8 + + arm_func_start ov02_0233AC20 +ov02_0233AC20: ; 0x0233AC20 + stmdb sp!, {r3, lr} + bl ov02_0233AC34 + bl ov02_0233AD28 + bl ov02_0233AD2C + ldmia sp!, {r3, pc} + arm_func_end ov02_0233AC20 arm_func_start ov02_0233AC34 ov02_0233AC34: ; 0x0233AC34 @@ -20668,19 +27167,28 @@ _0233ADA0: mov r1, #1 strb r1, [r0, #1] _0233ADB8: - ldr r0, _0233ADCC ; =0x0233ADD0 + ldr r0, _0233ADCC ; =ov02_0233ADD0 bl ov02_02338D68 add sp, sp, #0x14 ldmia sp!, {pc} .align 2, 0 _0233ADC8: .word 0x0235AAA8 -_0233ADCC: .word 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: .word ov02_0233ADF0 +_0233ADCC: .word ov02_0233ADD0 arm_func_end ov02_0233AD2C + arm_func_start ov02_0233ADD0 +ov02_0233ADD0: ; 0x0233ADD0 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _0233ADEC ; =ov02_0233ADF0 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233ADEC: .word ov02_0233ADF0 + arm_func_end ov02_0233ADD0 + arm_func_start ov02_0233ADF0 ov02_0233ADF0: ; 0x0233ADF0 stmdb sp!, {r3, lr} @@ -20934,16 +27442,21 @@ ov02_0233B108: ; 0x0233B108 ldmneia sp!, {r3, pc} ldr r0, _0233B130 ; =ov02_0233B20C bl ov02_02339104 - ldr r0, _0233B134 ; =0x0233B138 + ldr r0, _0233B134 ; =ov02_0233B138 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 _0233B130: .word ov02_0233B20C -_0233B134: .word 0x0233B138 +_0233B134: .word ov02_0233B138 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_0233B138 +ov02_0233B138: ; 0x0233B138 + stmdb sp!, {r3, lr} + bl ov02_0233B148 + bl ov02_0233B14C + ldmia sp!, {r3, pc} + arm_func_end ov02_0233B138 arm_func_start ov02_0233B148 ov02_0233B148: ; 0x0233B148 @@ -21004,14 +27517,14 @@ _0233B1DC: bl ov02_02338D68 ldmia sp!, {r3, pc} _0233B1F0: - ldr r0, _0233B208 ; =0x0233B294 + ldr r0, _0233B208 ; =ov02_0233B294 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 _0233B1FC: .word 0x0235AAB4 _0233B200: .word ov02_0233BC04 _0233B204: .word ov02_0233BA1C -_0233B208: .word 0x0233B294 +_0233B208: .word ov02_0233B294 arm_func_end ov02_0233B178 arm_func_start ov02_0233B20C @@ -21055,10 +27568,19 @@ _0233B274: _0233B28C: .word 0x0235AAB4 _0233B290: .word 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_0233B294 +ov02_0233B294: ; 0x0233B294 + stmdb sp!, {r3, lr} + bl ov02_0233B2B4 + mov r0, #0x1f + bl ov02_02334E70 + ldr r0, _0233B2B0 ; =ov02_0233B31C + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233B2B0: .word ov02_0233B31C + arm_func_end ov02_0233B294 arm_func_start ov02_0233B2B4 ov02_0233B2B4: ; 0x0233B2B4 @@ -21118,18 +27640,36 @@ ov02_0233B350: ; 0x0233B350 ldmneia sp!, {r3, pc} mov r0, #5 bl ov02_02334E38 - ldr r0, _0233B378 ; =0x0233B37C + ldr r0, _0233B378 ; =ov02_0233B37C bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233B378: .word 0x0233B37C +_0233B378: .word ov02_0233B37C 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_0233B37C +ov02_0233B37C: ; 0x0233B37C + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _0233B3A0 ; =ov02_0233B3A4 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233B3A0: .word ov02_0233B3A4 + arm_func_end ov02_0233B37C + + arm_func_start ov02_0233B3A4 +ov02_0233B3A4: ; 0x0233B3A4 + stmdb sp!, {r3, lr} + bl ov02_0233B3B8 + bl ov02_0233B3D8 + bl ov02_0233B3DC + ldmia sp!, {r3, pc} + arm_func_end ov02_0233B3A4 arm_func_start ov02_0233B3B8 ov02_0233B3B8: ; 0x0233B3B8 @@ -21156,16 +27696,25 @@ ov02_0233B3DC: ; 0x0233B3DC ldmneia sp!, {r3, pc} mov r0, #6 bl ov02_023480E0 - ldr r0, _0233B400 ; =0x0233B404 + ldr r0, _0233B400 ; =ov02_0233B404 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233B400: .word 0x0233B404 +_0233B400: .word ov02_0233B404 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_0233B404 +ov02_0233B404: ; 0x0233B404 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _0233B420 ; =ov02_0233B424 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233B420: .word ov02_0233B424 + arm_func_end ov02_0233B404 arm_func_start ov02_0233B424 ov02_0233B424: ; 0x0233B424 @@ -21283,18 +27832,36 @@ ov02_0233B560: ; 0x0233B560 ldmneia sp!, {r3, pc} mov r0, #4 bl ov02_02334E38 - ldr r0, _0233B598 ; =0x0233B59C + ldr r0, _0233B598 ; =ov02_0233B59C bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233B598: .word 0x0233B59C +_0233B598: .word ov02_0233B59C 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_0233B59C +ov02_0233B59C: ; 0x0233B59C + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _0233B5C0 ; =ov02_0233B5C4 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233B5C0: .word ov02_0233B5C4 + arm_func_end ov02_0233B59C + + arm_func_start ov02_0233B5C4 +ov02_0233B5C4: ; 0x0233B5C4 + stmdb sp!, {r3, lr} + bl ov02_0233B5D8 + bl ov02_0233B5F8 + bl ov02_0233B5FC + ldmia sp!, {r3, pc} + arm_func_end ov02_0233B5C4 arm_func_start ov02_0233B5D8 ov02_0233B5D8: ; 0x0233B5D8 @@ -21321,16 +27888,25 @@ ov02_0233B5FC: ; 0x0233B5FC ldmneia sp!, {r3, pc} mov r0, #6 bl ov02_023480E0 - ldr r0, _0233B620 ; =0x0233B624 + ldr r0, _0233B620 ; =ov02_0233B624 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233B620: .word 0x0233B624 +_0233B620: .word ov02_0233B624 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_0233B624 +ov02_0233B624: ; 0x0233B624 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _0233B640 ; =ov02_0233B644 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233B640: .word ov02_0233B644 + arm_func_end ov02_0233B624 arm_func_start ov02_0233B644 ov02_0233B644: ; 0x0233B644 @@ -21472,18 +28048,36 @@ ov02_0233B7EC: ; 0x0233B7EC ldmneia sp!, {r3, pc} mov r0, #3 bl ov02_02334E38 - ldr r0, _0233B814 ; =0x0233B818 + ldr r0, _0233B814 ; =ov02_0233B818 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233B814: .word 0x0233B818 +_0233B814: .word ov02_0233B818 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_0233B818 +ov02_0233B818: ; 0x0233B818 + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _0233B83C ; =ov02_0233B840 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233B83C: .word ov02_0233B840 + arm_func_end ov02_0233B818 + + arm_func_start ov02_0233B840 +ov02_0233B840: ; 0x0233B840 + stmdb sp!, {r3, lr} + bl ov02_0233B854 + bl ov02_0233B88C + bl ov02_0233B890 + ldmia sp!, {r3, pc} + arm_func_end ov02_0233B840 arm_func_start ov02_0233B854 ov02_0233B854: ; 0x0233B854 @@ -21529,16 +28123,26 @@ _0233B8B8: mov r1, #1 strb r1, [r0] _0233B8CC: - ldr r0, _0233B8DC ; =0x0233B8E0 + ldr r0, _0233B8DC ; =ov02_0233B8E0 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 _0233B8D8: .word 0x0235AAB8 -_0233B8DC: .word 0x0233B8E0 +_0233B8DC: .word ov02_0233B8E0 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_0233B8E0 +ov02_0233B8E0: ; 0x0233B8E0 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _0233B8FC ; =ov02_0233B900 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233B8FC: .word ov02_0233B900 + arm_func_end ov02_0233B8E0 arm_func_start ov02_0233B900 ov02_0233B900: ; 0x0233B900 @@ -21702,15 +28306,20 @@ ov02_0233BAEC: ; 0x0233BAEC bl ov02_023390E8 cmp r0, #0 ldmeqia sp!, {r3, pc} - ldr r0, _0233BB18 ; =0x0233BB1C + ldr r0, _0233BB18 ; =ov02_0233BB1C bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233BB18: .word 0x0233BB1C +_0233BB18: .word ov02_0233BB1C 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_0233BB1C +ov02_0233BB1C: ; 0x0233BB1C + stmdb sp!, {r3, lr} + bl ov02_0233BBD0 + bl ov02_0233BB2C + ldmia sp!, {r3, pc} + arm_func_end ov02_0233BB1C arm_func_start ov02_0233BB2C ov02_0233BB2C: ; 0x0233BB2C @@ -21905,15 +28514,21 @@ ov02_0233BD64: ; 0x0233BD64 cmp r0, #0 ldmeqia sp!, {r3, pc} bl ov02_02334750 - ldr r0, _0233BD94 ; =0x0233BD98 + ldr r0, _0233BD94 ; =ov02_0233BD98 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233BD94: .word 0x0233BD98 +_0233BD94: .word ov02_0233BD98 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_0233BD98 +ov02_0233BD98: ; 0x0233BD98 + stmdb sp!, {r3, lr} + bl ov02_0233BDAC + bl ov02_0233BDE4 + bl ov02_0233BDE8 + ldmia sp!, {r3, pc} + arm_func_end ov02_0233BD98 arm_func_start ov02_0233BDAC ov02_0233BDAC: ; 0x0233BDAC @@ -21960,16 +28575,26 @@ _0233BE18: strb r2, [r1, #1] bl ov02_023480E0 _0233BE2C: - ldr r0, _0233BE3C ; =0x0233BE40 + ldr r0, _0233BE3C ; =ov02_0233BE40 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 _0233BE38: .word 0x0235AAC0 -_0233BE3C: .word 0x0233BE40 +_0233BE3C: .word ov02_0233BE40 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_0233BE40 +ov02_0233BE40: ; 0x0233BE40 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _0233BE5C ; =ov02_0233BE60 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233BE5C: .word ov02_0233BE60 + arm_func_end ov02_0233BE40 arm_func_start ov02_0233BE60 ov02_0233BE60: ; 0x0233BE60 @@ -22090,7 +28715,7 @@ ov02_0233BF6C: ; 0x0233BF6C bl ov02_0234E1E8 mov r0, r4 bl ov02_0234E354 - ldr r0, _0233C034 ; =0x0233C330 + ldr r0, _0233C034 ; =ov02_0233C330 bl ov02_02339104 mov r1, #4 mov r2, #0 @@ -22104,7 +28729,7 @@ ov02_0233BF6C: ; 0x0233BF6C ldmia sp!, {r3, r4, r5, pc} .align 2, 0 _0233C030: .word 0x0235AAC4 -_0233C034: .word 0x0233C330 +_0233C034: .word ov02_0233C330 _0233C038: .word ov02_0233C0BC arm_func_end ov02_0233BF6C @@ -22156,18 +28781,40 @@ ov02_0233C0BC: ; 0x0233C0BC mov r0, #0 mov r1, #0x15 bl ov02_0234E3D0 - ldr r0, _0233C0EC ; =0x0233C0F0 + ldr r0, _0233C0EC ; =ov02_0233C0F0 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233C0EC: .word 0x0233C0F0 +_0233C0EC: .word ov02_0233C0F0 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_0233C0F0 +ov02_0233C0F0: ; 0x0233C0F0 + stmdb sp!, {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + ldmneia sp!, {r3, pc} + ldr r0, _0233C110 ; =ov02_0233C114 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233C110: .word ov02_0233C114 + arm_func_end ov02_0233C0F0 + + arm_func_start ov02_0233C114 +ov02_0233C114: ; 0x0233C114 + stmdb sp!, {r3, lr} + bl ov02_02349704 + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + ldr r0, _0233C134 ; =ov02_0233C138 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233C134: .word ov02_0233C138 + arm_func_end ov02_0233C114 arm_func_start ov02_0233C138 ov02_0233C138: ; 0x0233C138 @@ -22333,9 +28980,16 @@ _0233C324: .word ov02_0233BC04 _0233C328: .word ov02_0233A904 _0233C32C: .word 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_0233C330 +ov02_0233C330: ; 0x0233C330 + ldr r0, _0233C340 ; =0x0235AAC4 + mov r1, #1 + strb r1, [r0] + bx lr + .align 2, 0 +_0233C340: .word 0x0235AAC4 + arm_func_end ov02_0233C330 arm_func_start ov02_0233C344 ov02_0233C344: ; 0x0233C344 @@ -22438,17 +29092,35 @@ ov02_0233C464: ; 0x0233C464 ldmneia sp!, {r3, pc} mov r0, #1 bl ov02_02334E38 - ldr r0, _0233C48C ; =0x0233C490 + ldr r0, _0233C48C ; =ov02_0233C490 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233C48C: .word 0x0233C490 +_0233C48C: .word ov02_0233C490 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_0233C490 +ov02_0233C490: ; 0x0233C490 + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + ldr r0, _0233C4B0 ; =ov02_0233C4B4 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233C4B0: .word ov02_0233C4B4 + arm_func_end ov02_0233C490 + + arm_func_start ov02_0233C4B4 +ov02_0233C4B4: ; 0x0233C4B4 + stmdb sp!, {r3, lr} + bl ov02_0233C4C8 + bl ov02_0233C500 + bl ov02_0233C504 + ldmia sp!, {r3, pc} + arm_func_end ov02_0233C4B4 arm_func_start ov02_0233C4C8 ov02_0233C4C8: ; 0x0233C4C8 @@ -22793,7 +29465,7 @@ ov02_0233C8F4: ; 0x0233C8F4 mvn r1, #1 cmp r0, r1 ldmeqia sp!, {r3, pc} - ldr r1, _0233C930 ; =0x0233CC14 + ldr r1, _0233C930 ; =ov02_0233CC14 mov r0, #1 mov r2, #0 mov r3, #0x78 @@ -22804,7 +29476,7 @@ ov02_0233C8F4: ; 0x0233C8F4 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233C930: .word 0x0233CC14 +_0233C930: .word ov02_0233CC14 _0233C934: .word 0x0235AACC _0233C938: .word ov02_0233C93C arm_func_end ov02_0233C8F4 @@ -23046,9 +29718,17 @@ _0233CC08: .word 0x0235AACC _0233CC0C: .word ov02_02344AF0 _0233CC10: .word 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_0233CC14 +ov02_0233CC14: ; 0x0233CC14 + stmdb sp!, {r3, lr} + bl ov02_0234E90C + mov r0, #0 + bl ov02_0234F9E8 + bl ov02_0233CA10 + bl ov02_0233CA4C + ldmia sp!, {r3, pc} + arm_func_end ov02_0233CC14 arm_func_start ov02_0233CC30 ov02_0233CC30: ; 0x0233CC30 @@ -23059,16 +29739,25 @@ ov02_0233CC30: ; 0x0233CC30 mov r0, #6 bl ov02_023480E0 bl ov02_023496C0 - ldr r0, _0233CC58 ; =0x0233CC5C + ldr r0, _0233CC58 ; =ov02_0233CC5C bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233CC58: .word 0x0233CC5C +_0233CC58: .word ov02_0233CC5C 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_0233CC5C +ov02_0233CC5C: ; 0x0233CC5C + stmdb sp!, {r3, lr} + bl ov02_02349718 + cmp r0, #0 + ldmneia sp!, {r3, pc} + ldr r0, _0233CC78 ; =ov02_0233CA98 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233CC78: .word ov02_0233CA98 + arm_func_end ov02_0233CC5C arm_func_start ov02_0233CC7C ov02_0233CC7C: ; 0x0233CC7C @@ -23174,7 +29863,7 @@ ov02_0233CDA0: ; 0x0233CDA0 mov r0, #0 mov r1, #0x15 bl ov02_0234E3D0 - ldr r0, _0233CDD0 ; =0x0233CDD4 + ldr r0, _0233CDD0 ; =ov02_0233CDD4 arm_func_end ov02_0233CDA0 arm_func_start ov02_0233CDC8 @@ -23182,10 +29871,13 @@ ov02_0233CDC8: ; 0x0233CDC8 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233CDD0: .word 0x0233CDD4 +_0233CDD0: .word ov02_0233CDD4 arm_func_end ov02_0233CDC8 -_0233CDD4: - .byte 0x08, 0x40, 0x2D, 0xE9 + + arm_func_start ov02_0233CDD4 +ov02_0233CDD4: ; 0x0233CDD4 + stmdb sp!, {r3, lr} + arm_func_end ov02_0233CDD4 arm_func_start ov02_0233CDD8 ov02_0233CDD8: ; 0x0233CDD8 @@ -23197,15 +29889,20 @@ ov02_0233CDD8: ; 0x0233CDD8 arm_func_start ov02_0233CDE4 ov02_0233CDE4: ; 0x0233CDE4 ldmneia sp!, {r3, pc} - ldr r0, _0233CDF4 ; =0x0233CDF8 + ldr r0, _0233CDF4 ; =ov02_0233CDF8 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233CDF4: .word 0x0233CDF8 +_0233CDF4: .word ov02_0233CDF8 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_0233CDF8 +ov02_0233CDF8: ; 0x0233CDF8 + stmdb sp!, {r3, lr} + bl ov02_0233CEB8 + bl ov02_0233CE08 + ldmia sp!, {r3, pc} + arm_func_end ov02_0233CDF8 arm_func_start ov02_0233CE08 ov02_0233CE08: ; 0x0233CE08 @@ -23626,17 +30323,36 @@ ov02_0233D388: ; 0x0233D388 ldmneia sp!, {r3, pc} mov r0, #0 bl ov02_02334E38 - ldr r0, _0233D3C0 ; =0x0233D3C4 + ldr r0, _0233D3C0 ; =ov02_0233D3C4 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233D3C0: .word 0x0233D3C4 +_0233D3C0: .word ov02_0233D3C4 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_0233D3C4 +ov02_0233D3C4: ; 0x0233D3C4 + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _0233D3E8 ; =ov02_0233D3EC + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233D3E8: .word ov02_0233D3EC + arm_func_end ov02_0233D3C4 + + arm_func_start ov02_0233D3EC +ov02_0233D3EC: ; 0x0233D3EC + stmdb sp!, {r3, lr} + bl ov02_0233D400 + bl ov02_0233D654 + bl ov02_0233D8C4 + ldmia sp!, {r3, pc} + arm_func_end ov02_0233D3EC arm_func_start ov02_0233D400 ov02_0233D400: ; 0x0233D400 @@ -24050,17 +30766,27 @@ _0233D9A0: strb lr, [r1, #0x52] bl ov02_023480E0 _0233D9B8: - ldr r0, _0233D9CC ; =0x0233D9D0 + ldr r0, _0233D9CC ; =ov02_0233D9D0 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 _0233D9C4: .word 0x0235AAD8 _0233D9C8: .word ov02_0233E434 -_0233D9CC: .word 0x0233D9D0 +_0233D9CC: .word ov02_0233D9D0 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_0233D9D0 +ov02_0233D9D0: ; 0x0233D9D0 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _0233D9EC ; =ov02_0233D9F0 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233D9EC: .word ov02_0233D9F0 + arm_func_end ov02_0233D9D0 arm_func_start ov02_0233D9F0 ov02_0233D9F0: ; 0x0233D9F0 @@ -24831,16 +31557,27 @@ ov02_0233E434: ; 0x0233E434 mov r0, #6 bl ov02_023480E0 bl ov02_023496C0 - ldr r0, _0233E45C ; =0x0233E460 + ldr r0, _0233E45C ; =ov02_0233E460 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0233E45C: .word 0x0233E460 +_0233E45C: .word ov02_0233E460 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_0233E460 +ov02_0233E460: ; 0x0233E460 + stmdb sp!, {r3, lr} + bl ov02_02349718 + cmp r0, #0 + ldmneia sp!, {r3, pc} + bl ov02_02334750 + bl ov02_02346AAC + ldr r0, _0233E484 ; =ov02_0233D3EC + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233E484: .word ov02_0233D3EC + arm_func_end ov02_0233E460 arm_func_start ov02_0233E488 ov02_0233E488: ; 0x0233E488 @@ -25035,18 +31772,34 @@ _0233E718: mov r0, #0 bl ov02_02335898 _0233E734: - ldr r0, _0233E744 ; =0x0233E748 + ldr r0, _0233E744 ; =ov02_0233E748 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 _0233E740: .word 0x0235AAE0 -_0233E744: .word 0x0233E748 +_0233E744: .word ov02_0233E748 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_0233E748 +ov02_0233E748: ; 0x0233E748 + stmdb sp!, {r3, lr} + bl ov02_02335870 + cmp r0, #0xff + ldmeqia sp!, {r3, pc} + ldr r0, _0233E764 ; =ov02_0233E768 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233E764: .word ov02_0233E768 + arm_func_end ov02_0233E748 + + arm_func_start ov02_0233E768 +ov02_0233E768: ; 0x0233E768 + stmdb sp!, {r3, lr} + bl ov02_0233E778 + bl ov02_0233E938 + ldmia sp!, {r3, pc} + arm_func_end ov02_0233E768 arm_func_start ov02_0233E778 ov02_0233E778: ; 0x0233E778 @@ -25892,18 +32645,34 @@ _0233F2BC: mov r0, #0 bl ov02_02337530 _0233F2C4: - ldr r0, _0233F2D4 ; =0x0233F2D8 + ldr r0, _0233F2D4 ; =ov02_0233F2D8 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 _0233F2D0: .word 0x0235AAE4 -_0233F2D4: .word 0x0233F2D8 +_0233F2D4: .word ov02_0233F2D8 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_0233F2D8 +ov02_0233F2D8: ; 0x0233F2D8 + stmdb sp!, {r3, lr} + bl ov02_023374F4 + cmp r0, #0x1f + ldmeqia sp!, {r3, pc} + ldr r0, _0233F2F4 ; =ov02_0233F2F8 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233F2F4: .word ov02_0233F2F8 + arm_func_end ov02_0233F2D8 + + arm_func_start ov02_0233F2F8 +ov02_0233F2F8: ; 0x0233F2F8 + stmdb sp!, {r3, lr} + bl ov02_0233F308 + bl ov02_0233F6AC + ldmia sp!, {r3, pc} + arm_func_end ov02_0233F2F8 arm_func_start ov02_0233F308 ov02_0233F308: ; 0x0233F308 @@ -26624,9 +33393,18 @@ _0233FC84: .word 0x0235AAE4 _0233FC88: .word 0xC1FFFCFF _0233FC8C: .word 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_0233FC90 +ov02_0233FC90: ; 0x0233FC90 + stmdb sp!, {r3, lr} + bl ov02_0233FCAC + bl ov02_0233FD2C + ldr r0, _0233FCA8 ; =ov02_023400A0 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0233FCA8: .word ov02_023400A0 + arm_func_end ov02_0233FC90 arm_func_start ov02_0233FCAC ov02_0233FCAC: ; 0x0233FCAC @@ -26926,17 +33704,36 @@ ov02_023400D4: ; 0x023400D4 ldmneia sp!, {r3, pc} mov r0, #4 bl ov02_02334E38 - ldr r0, _0234010C ; =0x02340110 + ldr r0, _0234010C ; =ov02_02340110 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0234010C: .word 0x02340110 +_0234010C: .word ov02_02340110 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_02340110 +ov02_02340110: ; 0x02340110 + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _02340134 ; =ov02_02340138 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02340134: .word ov02_02340138 + arm_func_end ov02_02340110 + + arm_func_start ov02_02340138 +ov02_02340138: ; 0x02340138 + stmdb sp!, {r3, lr} + bl ov02_0234014C + bl ov02_0234016C + bl ov02_02340170 + ldmia sp!, {r3, pc} + arm_func_end ov02_02340138 arm_func_start ov02_0234014C ov02_0234014C: ; 0x0234014C @@ -26963,16 +33760,25 @@ ov02_02340170: ; 0x02340170 ldmneia sp!, {r3, pc} mov r0, #6 bl ov02_023480E0 - ldr r0, _02340194 ; =0x02340198 + ldr r0, _02340194 ; =ov02_02340198 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02340194: .word 0x02340198 +_02340194: .word ov02_02340198 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_02340198 +ov02_02340198: ; 0x02340198 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _023401B4 ; =ov02_023401B8 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_023401B4: .word ov02_023401B8 + arm_func_end ov02_02340198 arm_func_start ov02_023401B8 ov02_023401B8: ; 0x023401B8 @@ -27395,14 +34201,20 @@ ov02_0234076C: ; 0x0234076C bl ov02_0234D8BC cmp r0, #0 ldmneia sp!, {r3, pc} - ldr r0, _0234079C ; =0x023407A0 + ldr r0, _0234079C ; =ov02_023407A0 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0234079C: .word 0x023407A0 +_0234079C: .word ov02_023407A0 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_023407A0 +ov02_023407A0: ; 0x023407A0 + stmdb sp!, {r3, lr} + bl ov02_023407B0 + bl ov02_02340CD8 + ldmia sp!, {r3, pc} + arm_func_end ov02_023407A0 arm_func_start ov02_023407B0 ov02_023407B0: ; 0x023407B0 @@ -27433,7 +34245,7 @@ _023407FC: mov r0, #7 bl ov02_023480E0 ldr r1, _02340A20 ; =0x0235AAEC - ldr r0, _02340A24 ; =0x02340F34 + ldr r0, _02340A24 ; =ov02_02340F34 ldr r1, [r1, #8] mov r2, #0xd strb r2, [r1, #0x40] @@ -27577,7 +34389,7 @@ _02340A04: ldmia sp!, {r3, pc} .align 2, 0 _02340A20: .word 0x0235AAEC -_02340A24: .word 0x02340F34 +_02340A24: .word ov02_02340F34 _02340A28: .word ov02_02341F7C _02340A2C: .word ov02_02341EB4 arm_func_end ov02_023407B0 @@ -27723,7 +34535,7 @@ _02340BE8: bl ov02_023419C8 _02340C10: bl ov02_02346AC4 - ldr r0, _02340C30 ; =0x02340F34 + ldr r0, _02340C30 ; =ov02_02340F34 bl ov02_02338D68 add sp, sp, #4 ldmia sp!, {r3, r4, pc} @@ -27731,7 +34543,7 @@ _02340C10: _02340C24: .word 0x0235AAEC _02340C28: .word ov02_02342738 _02340C2C: .word 0x02352BD0 -_02340C30: .word 0x02340F34 +_02340C30: .word ov02_02340F34 arm_func_end ov02_02340AB4 arm_func_start ov02_02340C34 @@ -27953,10 +34765,19 @@ _02340F28: .word 0x094F2095 _02340F2C: .word ov02_02341EB4 _02340F30: .word 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_02340F34 +ov02_02340F34: ; 0x02340F34 + stmdb sp!, {r3, lr} + bl ov02_02346AC4 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _02340F50 ; =ov02_02340F54 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02340F50: .word ov02_02340F54 + arm_func_end ov02_02340F34 arm_func_start ov02_02340F54 ov02_02340F54: ; 0x02340F54 @@ -28150,7 +34971,7 @@ _023411E0: _02341204: mov r0, r1 bl ov02_02338D78 - ldr r0, _02341284 ; =0x023427A8 + ldr r0, _02341284 ; =ov02_023427A8 bl ov02_02338D68 b _0234125C _02341218: @@ -28184,7 +35005,7 @@ _02341274: .word 0x04000010 _02341278: .word ov02_0233E488 _0234127C: .word ov02_0233EFC8 _02341280: .word ov02_023452A8 -_02341284: .word 0x023427A8 +_02341284: .word ov02_023427A8 _02341288: .word ov02_02343DB0 _0234128C: .word ov02_02344AF0 _02341290: .word 0x0235AAF4 @@ -29721,17 +36542,26 @@ ov02_02342738: ; 0x02342738 ldr r0, [r0, #8] ldr r0, [r0, #0xc] bl ov02_02346908 - ldr r0, _02342774 ; =0x02342778 + ldr r0, _02342774 ; =ov02_02342778 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 _02342770: .word 0x0235AAEC -_02342774: .word 0x02342778 +_02342774: .word ov02_02342778 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_02342778 +ov02_02342778: ; 0x02342778 + stmdb sp!, {r3, lr} + bl ov02_02349718 + cmp r0, #0 + ldmneia sp!, {r3, pc} + ldr r0, _02342794 ; =ov02_023407A0 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02342794: .word ov02_023407A0 + arm_func_end ov02_02342778 arm_func_start ov02_02342798 ov02_02342798: ; 0x02342798 @@ -29741,10 +36571,19 @@ ov02_02342798: ; 0x02342798 .align 2, 0 _023427A4: .word 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_023427A8 +ov02_023427A8: ; 0x023427A8 + stmdb sp!, {r3, lr} + bl ov02_023427C8 + bl ov02_023352C4 + bl ov02_02347A1C + ldr r0, _023427C4 ; =ov02_0234285C + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_023427C4: .word ov02_0234285C + arm_func_end ov02_023427A8 arm_func_start ov02_023427C8 ov02_023427C8: ; 0x023427C8 @@ -29832,16 +36671,27 @@ ov02_023428B0: ; 0x023428B0 mov r1, #5 str ip, [sp] bl ov02_02349394 - ldr r0, _023428FC ; =0x02342900 + ldr r0, _023428FC ; =ov02_02342900 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_023428FC: .word 0x02342900 +_023428FC: .word ov02_02342900 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_02342900 +ov02_02342900: ; 0x02342900 + stmdb sp!, {r3, lr} + bl ov02_02342928 + bl ov02_0234292C + bl ov02_02349718 + cmp r0, #0 + ldmneia sp!, {r3, pc} + ldr r0, _02342924 ; =ov02_02342930 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02342924: .word ov02_02342930 + arm_func_end ov02_02342900 arm_func_start ov02_02342928 ov02_02342928: ; 0x02342928 @@ -29998,18 +36848,39 @@ ov02_02342AD8: ; 0x02342AD8 ldmneia sp!, {r3, pc} mov r0, #1 bl ov02_02334E38 - ldr r0, _02342B00 ; =0x02342B04 + ldr r0, _02342B00 ; =ov02_02342B04 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02342B00: .word 0x02342B04 +_02342B00: .word ov02_02342B04 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_02342B04 +ov02_02342B04: ; 0x02342B04 + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _02342B28 ; =ov02_02342B2C + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02342B28: .word ov02_02342B2C + arm_func_end ov02_02342B04 + + arm_func_start ov02_02342B2C +ov02_02342B2C: ; 0x02342B2C + stmdb sp!, {r3, lr} + mov r0, #0xa + bl sub_02079B14 + bl ov02_02342D10 + bl ov02_02342B4C + bl ov02_02342B84 + bl ov02_02342B88 + ldmia sp!, {r3, pc} + arm_func_end ov02_02342B2C arm_func_start ov02_02342B4C ov02_02342B4C: ; 0x02342B4C @@ -30044,16 +36915,25 @@ ov02_02342B88: ; 0x02342B88 bl ov02_02348148 mov r0, #7 bl ov02_023480E0 - ldr r0, _02342BB0 ; =0x02342BB4 + ldr r0, _02342BB0 ; =ov02_02342BB4 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02342BB0: .word 0x02342BB4 +_02342BB0: .word ov02_02342BB4 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_02342BB4 +ov02_02342BB4: ; 0x02342BB4 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _02342BD0 ; =ov02_02342BD4 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02342BD0: .word ov02_02342BD4 + arm_func_end ov02_02342BB4 arm_func_start ov02_02342BD4 ov02_02342BD4: ; 0x02342BD4 @@ -30161,7 +37041,7 @@ ov02_02342D10: ; 0x02342D10 _02342D2C: ldr r1, _02342D88 ; =0x0235AAF8 mov r2, #1 - ldr r0, _02342D8C ; =0x02342BB4 + ldr r0, _02342D8C ; =ov02_02342BB4 strb r2, [r1] bl ov02_02338D68 ldmia sp!, {r3, pc} @@ -30185,7 +37065,7 @@ _02342D44: ldmia sp!, {r3, pc} .align 2, 0 _02342D88: .word 0x0235AAF8 -_02342D8C: .word 0x02342BB4 +_02342D8C: .word ov02_02342BB4 _02342D90: .word ov02_02342D94 arm_func_end ov02_02342D10 @@ -30198,15 +37078,25 @@ ov02_02342D94: ; 0x02342D94 mov r0, #6 bl ov02_023480E0 bl ov02_023496C0 - ldr r0, _02342DBC ; =0x02342DC0 + ldr r0, _02342DBC ; =ov02_02342DC0 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02342DBC: .word 0x02342DC0 +_02342DBC: .word ov02_02342DC0 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_02342DC0 +ov02_02342DC0: ; 0x02342DC0 + stmdb sp!, {r3, lr} + bl ov02_02349718 + cmp r0, #0 + ldmneia sp!, {r3, pc} + ldr r0, _02342DDC ; =ov02_02342BB4 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02342DDC: .word ov02_02342BB4 + arm_func_end ov02_02342DC0 arm_func_start ov02_02342DE0 ov02_02342DE0: ; 0x02342DE0 @@ -30305,19 +37195,39 @@ ov02_02342EF0: ; 0x02342EF0 ldmneia sp!, {r3, pc} mov r0, #1 bl ov02_02334E38 - ldr r0, _02342F18 ; =0x02342F1C + ldr r0, _02342F18 ; =ov02_02342F1C bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02342F18: .word 0x02342F1C +_02342F18: .word ov02_02342F1C 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_02342F1C +ov02_02342F1C: ; 0x02342F1C + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _02342F40 ; =ov02_02342F44 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02342F40: .word ov02_02342F44 + arm_func_end ov02_02342F1C + + arm_func_start ov02_02342F44 +ov02_02342F44: ; 0x02342F44 + stmdb sp!, {r3, lr} + mov r0, #0xa + bl sub_02079B14 + bl ov02_0234310C + bl ov02_02342F64 + bl ov02_02342F9C + bl ov02_02342FA0 + ldmia sp!, {r3, pc} + arm_func_end ov02_02342F44 arm_func_start ov02_02342F64 ov02_02342F64: ; 0x02342F64 @@ -30352,16 +37262,25 @@ ov02_02342FA0: ; 0x02342FA0 bl ov02_02348148 mov r0, #7 bl ov02_023480E0 - ldr r0, _02342FC8 ; =0x02342FCC + ldr r0, _02342FC8 ; =ov02_02342FCC bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02342FC8: .word 0x02342FCC +_02342FC8: .word ov02_02342FCC 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_02342FCC +ov02_02342FCC: ; 0x02342FCC + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _02342FE8 ; =ov02_02342FEC + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02342FE8: .word ov02_02342FEC + arm_func_end ov02_02342FCC arm_func_start ov02_02342FEC ov02_02342FEC: ; 0x02342FEC @@ -30466,7 +37385,7 @@ _02343130: strb r1, [r0] bl ov02_02348148 bl ov02_0233952C - ldr r0, _023431DC ; =0x02342FCC + ldr r0, _023431DC ; =ov02_02342FCC bl ov02_02338D68 ldmia sp!, {r3, pc} _02343150: @@ -30507,7 +37426,7 @@ _02343194: ldmia sp!, {r3, pc} .align 2, 0 _023431D8: .word 0x0235AAFC -_023431DC: .word 0x02342FCC +_023431DC: .word ov02_02342FCC _023431E0: .word ov02_023431E4 arm_func_end ov02_0234310C @@ -30520,15 +37439,25 @@ ov02_023431E4: ; 0x023431E4 mov r0, #6 bl ov02_023480E0 bl ov02_023496C0 - ldr r0, _0234320C ; =0x02343210 + ldr r0, _0234320C ; =ov02_02343210 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0234320C: .word 0x02343210 +_0234320C: .word ov02_02343210 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_02343210 +ov02_02343210: ; 0x02343210 + stmdb sp!, {r3, lr} + bl ov02_02349718 + cmp r0, #0 + ldmneia sp!, {r3, pc} + ldr r0, _0234322C ; =ov02_02342FCC + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_0234322C: .word ov02_02342FCC + arm_func_end ov02_02343210 arm_func_start ov02_02343230 ov02_02343230: ; 0x02343230 @@ -30598,17 +37527,34 @@ ov02_023432EC: ; 0x023432EC mov r0, #0 mov r1, #0x15 bl ov02_0234E3D0 - ldr r0, _0234331C ; =0x02343320 + ldr r0, _0234331C ; =ov02_02343320 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0234331C: .word 0x02343320 +_0234331C: .word ov02_02343320 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_02343320 +ov02_02343320: ; 0x02343320 + stmdb sp!, {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + ldmneia sp!, {r3, pc} + ldr r0, _02343340 ; =ov02_02343344 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02343340: .word ov02_02343344 + arm_func_end ov02_02343320 + + arm_func_start ov02_02343344 +ov02_02343344: ; 0x02343344 + stmdb sp!, {r3, lr} + bl ov02_02343404 + bl ov02_02343354 + ldmia sp!, {r3, pc} + arm_func_end ov02_02343344 arm_func_start ov02_02343354 ov02_02343354: ; 0x02343354 @@ -30814,18 +37760,39 @@ ov02_023435B0: ; 0x023435B0 bl ov02_023393E0 mov r0, #1 bl ov02_02334E38 - ldr r0, _023435EC ; =0x023435F0 + ldr r0, _023435EC ; =ov02_023435F0 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_023435EC: .word 0x023435F0 +_023435EC: .word ov02_023435F0 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_023435F0 +ov02_023435F0: ; 0x023435F0 + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _02343614 ; =ov02_02343618 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02343614: .word ov02_02343618 + arm_func_end ov02_023435F0 + + arm_func_start ov02_02343618 +ov02_02343618: ; 0x02343618 + stmdb sp!, {r3, lr} + mov r0, #0xa + bl sub_02079B14 + bl ov02_023437FC + bl ov02_02343638 + bl ov02_02343670 + bl ov02_02343674 + ldmia sp!, {r3, pc} + arm_func_end ov02_02343618 arm_func_start ov02_02343638 ov02_02343638: ; 0x02343638 @@ -30860,15 +37827,25 @@ ov02_02343674: ; 0x02343674 bl ov02_02348148 mov r0, #7 bl ov02_023480E0 - ldr r0, _0234369C ; =0x023436A0 + ldr r0, _0234369C ; =ov02_023436A0 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0234369C: .word 0x023436A0 +_0234369C: .word ov02_023436A0 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_023436A0 +ov02_023436A0: ; 0x023436A0 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _023436BC ; =ov02_023436C0 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_023436BC: .word ov02_023436C0 + arm_func_end ov02_023436A0 arm_func_start ov02_023436C0 ov02_023436C0: ; 0x023436C0 @@ -30976,7 +37953,7 @@ ov02_023437FC: ; 0x023437FC _02343818: ldr r1, _02343874 ; =0x0235AB04 mov r2, #1 - ldr r0, _02343878 ; =0x023436A0 + ldr r0, _02343878 ; =ov02_023436A0 strb r2, [r1] bl ov02_02338D68 ldmia sp!, {r3, pc} @@ -31000,7 +37977,7 @@ _02343830: ldmia sp!, {r3, pc} .align 2, 0 _02343874: .word 0x0235AB04 -_02343878: .word 0x023436A0 +_02343878: .word ov02_023436A0 _0234387C: .word ov02_02343880 arm_func_end ov02_023437FC @@ -31013,16 +37990,25 @@ ov02_02343880: ; 0x02343880 mov r0, #6 bl ov02_023480E0 bl ov02_023496C0 - ldr r0, _023438A8 ; =0x023438AC + ldr r0, _023438A8 ; =ov02_023438AC bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_023438A8: .word 0x023438AC +_023438A8: .word ov02_023438AC 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_023438AC +ov02_023438AC: ; 0x023438AC + stmdb sp!, {r3, lr} + bl ov02_02349718 + cmp r0, #0 + ldmneia sp!, {r3, pc} + ldr r0, _023438C8 ; =ov02_023436A0 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_023438C8: .word ov02_023436A0 + arm_func_end ov02_023438AC arm_func_start ov02_023438CC ov02_023438CC: ; 0x023438CC @@ -31141,18 +38127,37 @@ ov02_02343A30: ; 0x02343A30 ldmneia sp!, {r3, pc} mov r0, #1 bl ov02_02334E38 - ldr r0, _02343A68 ; =0x02343A6C + ldr r0, _02343A68 ; =ov02_02343A6C bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02343A68: .word 0x02343A6C +_02343A68: .word ov02_02343A6C 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_02343A6C +ov02_02343A6C: ; 0x02343A6C + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _02343A90 ; =ov02_02343A94 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02343A90: .word ov02_02343A94 + arm_func_end ov02_02343A6C + + arm_func_start ov02_02343A94 +ov02_02343A94: ; 0x02343A94 + stmdb sp!, {r3, lr} + bl ov02_02343BD4 + bl ov02_02343BF8 + bl ov02_02343BFC + bl ov02_02343AAC + ldmia sp!, {r3, pc} + arm_func_end ov02_02343A94 arm_func_start ov02_02343AAC ov02_02343AAC: ; 0x02343AAC @@ -31227,14 +38232,14 @@ _02343BA4: mov r0, #0xf strb r2, [r1] bl ov02_023480E0 - ldr r0, _02343BD0 ; =0x02343C28 + ldr r0, _02343BD0 ; =ov02_02343C28 bl ov02_02338D68 add sp, sp, #8 ldmia sp!, {r3, pc} .align 2, 0 _02343BC8: .word 0x0235AB08 _02343BCC: .word ov02_02343D64 -_02343BD0: .word 0x02343C28 +_02343BD0: .word ov02_02343C28 arm_func_end ov02_02343AAC arm_func_start ov02_02343BD4 @@ -31264,16 +38269,25 @@ ov02_02343BFC: ; 0x02343BFC bl ov02_02348148 mov r0, #7 bl ov02_023480E0 - ldr r0, _02343C24 ; =0x02343C28 + ldr r0, _02343C24 ; =ov02_02343C28 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02343C24: .word 0x02343C28 +_02343C24: .word ov02_02343C28 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_02343C28 +ov02_02343C28: ; 0x02343C28 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _02343C44 ; =ov02_02343C48 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02343C44: .word ov02_02343C48 + arm_func_end ov02_02343C28 arm_func_start ov02_02343C48 ov02_02343C48: ; 0x02343C48 @@ -31367,15 +38381,25 @@ ov02_02343D64: ; 0x02343D64 mov r0, #6 bl ov02_023480E0 bl ov02_023496C0 - ldr r0, _02343D8C ; =0x02343D90 + ldr r0, _02343D8C ; =ov02_02343D90 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02343D8C: .word 0x02343D90 +_02343D8C: .word ov02_02343D90 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_02343D90 +ov02_02343D90: ; 0x02343D90 + stmdb sp!, {r3, lr} + bl ov02_02349718 + cmp r0, #0 + ldmneia sp!, {r3, pc} + ldr r0, _02343DAC ; =ov02_02343C28 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02343DAC: .word ov02_02343C28 + arm_func_end ov02_02343D90 arm_func_start ov02_02343DB0 ov02_02343DB0: ; 0x02343DB0 @@ -31610,15 +38634,21 @@ ov02_023440B8: ; 0x023440B8 cmp r0, #1 ldmeqia sp!, {r3, pc} bl ov02_02334750 - ldr r0, _023440E8 ; =0x023440EC + ldr r0, _023440E8 ; =ov02_023440EC bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_023440E8: .word 0x023440EC +_023440E8: .word ov02_023440EC 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_023440EC +ov02_023440EC: ; 0x023440EC + stmdb sp!, {r3, lr} + bl ov02_02344100 + bl ov02_023441F4 + bl ov02_023441F8 + ldmia sp!, {r3, pc} + arm_func_end ov02_023440EC arm_func_start ov02_02344100 ov02_02344100: ; 0x02344100 @@ -32274,19 +39304,29 @@ _02344960: bl ov02_0234D530 _023449DC: bl ov02_023496C0 - ldr r0, _023449F8 ; =0x023449FC + ldr r0, _023449F8 ; =ov02_023449FC bl ov02_02338D68 ldmia sp!, {r4, pc} .align 2, 0 _023449EC: .word 0x0235AB0C _023449F0: .word 0x02352BFE _023449F4: .word 0x02352C00 -_023449F8: .word 0x023449FC +_023449F8: .word ov02_023449FC 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_023449FC +ov02_023449FC: ; 0x023449FC + stmdb sp!, {r3, lr} + bl ov02_02349718 + cmp r0, #0 + ldmneia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _02344A1C ; =ov02_023440EC + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02344A1C: .word ov02_023440EC + arm_func_end ov02_023449FC arm_func_start ov02_02344A20 ov02_02344A20: ; 0x02344A20 @@ -32528,17 +39568,36 @@ ov02_02344D54: ; 0x02344D54 ldmneia sp!, {r3, pc} mov r0, #0 bl ov02_02334E38 - ldr r0, _02344D8C ; =0x02344D90 + ldr r0, _02344D8C ; =ov02_02344D90 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02344D8C: .word 0x02344D90 +_02344D8C: .word ov02_02344D90 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_02344D90 +ov02_02344D90: ; 0x02344D90 + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _02344DB4 ; =ov02_02344DB8 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02344DB4: .word ov02_02344DB8 + arm_func_end ov02_02344D90 + + arm_func_start ov02_02344DB8 +ov02_02344DB8: ; 0x02344DB8 + stmdb sp!, {r3, lr} + bl ov02_02344DCC + bl ov02_02344F50 + bl ov02_02344F54 + ldmia sp!, {r3, pc} + arm_func_end ov02_02344DB8 arm_func_start ov02_02344DCC ov02_02344DCC: ; 0x02344DCC @@ -32675,17 +39734,26 @@ _02344F7C: mov r1, #1 strb r1, [r0, #2] _02344F94: - ldr r0, _02344FA4 ; =0x02344FA8 + ldr r0, _02344FA4 ; =ov02_02344FA8 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 _02344FA0: .word 0x0235AB14 -_02344FA4: .word 0x02344FA8 +_02344FA4: .word ov02_02344FA8 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_02344FA8 +ov02_02344FA8: ; 0x02344FA8 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _02344FC4 ; =ov02_02344FC8 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02344FC4: .word ov02_02344FC8 + arm_func_end ov02_02344FA8 arm_func_start ov02_02344FC8 ov02_02344FC8: ; 0x02344FC8 @@ -33078,15 +40146,21 @@ ov02_023454E8: ; 0x023454E8 bl ov02_0234D8BC cmp r0, #0 ldmneia sp!, {r3, pc} - ldr r0, _02345518 ; =0x0234551C + ldr r0, _02345518 ; =ov02_0234551C bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02345518: .word 0x0234551C +_02345518: .word ov02_0234551C 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_0234551C +ov02_0234551C: ; 0x0234551C + stmdb sp!, {r3, lr} + bl ov02_02345530 + bl ov02_02345534 + bl ov02_02345538 + ldmia sp!, {r3, pc} + arm_func_end ov02_0234551C arm_func_start ov02_02345530 ov02_02345530: ; 0x02345530 @@ -33111,16 +40185,26 @@ ov02_0234553C: ; 0x0234553C mov r2, #0x15 mov r3, #8 bl ov02_0234D8E0 - ldr r0, _02345560 ; =0x02345564 + ldr r0, _02345560 ; =ov02_02345564 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02345560: .word 0x02345564 +_02345560: .word ov02_02345564 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_02345564 +ov02_02345564: ; 0x02345564 + stmdb sp!, {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + ldmneia sp!, {r3, pc} + ldr r0, _02345584 ; =ov02_02345588 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02345584: .word ov02_02345588 + arm_func_end ov02_02345564 arm_func_start ov02_02345588 ov02_02345588: ; 0x02345588 @@ -33156,7 +40240,7 @@ _023455B0: mov r0, #0 bne _02345610 bl ov02_02338D78 - ldr r0, _02345624 ; =0x0233FC90 + ldr r0, _02345624 ; =ov02_0233FC90 bl ov02_02338D68 ldmia sp!, {r4, pc} _02345610: @@ -33166,7 +40250,7 @@ _02345610: ldmia sp!, {r4, pc} .align 2, 0 _02345620: .word 0x0235AB1C -_02345624: .word 0x0233FC90 +_02345624: .word ov02_0233FC90 _02345628: .word ov02_023456F4 arm_func_end ov02_02345588 @@ -33219,10 +40303,25 @@ _023456C4: .word 0x0235AB1C _023456C8: .word 0xFFFF3BE9 _023456CC: .word 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_023456D0 +ov02_023456D0: ; 0x023456D0 + ldr ip, _023456E0 ; =ov02_0234E7B4 + mov r0, r1 + mov r1, #0x20 + bx ip + .align 2, 0 +_023456E0: .word ov02_0234E7B4 + arm_func_end ov02_023456D0 + + arm_func_start ov02_023456E4 +ov02_023456E4: ; 0x023456E4 + ldr ip, _023456F0 ; =ov02_0234E81C + mov r0, r1 + bx ip + .align 2, 0 +_023456F0: .word ov02_0234E81C + arm_func_end ov02_023456E4 arm_func_start ov02_023456F4 ov02_023456F4: ; 0x023456F4 @@ -33284,17 +40383,34 @@ ov02_02345790: ; 0x02345790 mov r0, #0 mov r1, #0x15 bl ov02_0234E3D0 - ldr r0, _023457C0 ; =0x023457C4 + ldr r0, _023457C0 ; =ov02_023457C4 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_023457C0: .word 0x023457C4 +_023457C0: .word ov02_023457C4 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_023457C4 +ov02_023457C4: ; 0x023457C4 + stmdb sp!, {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + ldmneia sp!, {r3, pc} + ldr r0, _023457E4 ; =ov02_023457E8 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_023457E4: .word ov02_023457E8 + arm_func_end ov02_023457C4 + + arm_func_start ov02_023457E8 +ov02_023457E8: ; 0x023457E8 + stmdb sp!, {r3, lr} + bl ov02_023458F8 + bl ov02_023457F8 + ldmia sp!, {r3, pc} + arm_func_end ov02_023457E8 arm_func_start ov02_023457F8 ov02_023457F8: ; 0x023457F8 @@ -33673,17 +40789,34 @@ ov02_02345C7C: ; 0x02345C7C mov r0, #0 mov r1, #0x15 bl ov02_0234E3D0 - ldr r0, _02345CAC ; =0x02345CB0 + ldr r0, _02345CAC ; =ov02_02345CB0 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02345CAC: .word 0x02345CB0 +_02345CAC: .word ov02_02345CB0 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_02345CB0 +ov02_02345CB0: ; 0x02345CB0 + stmdb sp!, {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + ldmneia sp!, {r3, pc} + ldr r0, _02345CD0 ; =ov02_02345CD4 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02345CD0: .word ov02_02345CD4 + arm_func_end ov02_02345CB0 + + arm_func_start ov02_02345CD4 +ov02_02345CD4: ; 0x02345CD4 + stmdb sp!, {r3, lr} + bl ov02_02345D94 + bl ov02_02345CE4 + ldmia sp!, {r3, pc} + arm_func_end ov02_02345CD4 arm_func_start ov02_02345CE4 ov02_02345CE4: ; 0x02345CE4 @@ -33872,17 +41005,36 @@ ov02_02345F14: ; 0x02345F14 ldmneia sp!, {r3, pc} mov r0, #6 bl ov02_02334E38 - ldr r0, _02345F4C ; =0x02345F50 + ldr r0, _02345F4C ; =ov02_02345F50 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02345F4C: .word 0x02345F50 +_02345F4C: .word ov02_02345F50 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_02345F50 +ov02_02345F50: ; 0x02345F50 + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _02345F74 ; =ov02_02345F78 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02345F74: .word ov02_02345F78 + arm_func_end ov02_02345F50 + + arm_func_start ov02_02345F78 +ov02_02345F78: ; 0x02345F78 + stmdb sp!, {r3, lr} + bl ov02_02345F8C + bl ov02_02345FC4 + bl ov02_02345FC8 + ldmia sp!, {r3, pc} + arm_func_end ov02_02345F78 arm_func_start ov02_02345F8C ov02_02345F8C: ; 0x02345F8C @@ -33928,17 +41080,26 @@ _02345FF0: mov r1, #1 strb r1, [r0] _02346004: - ldr r0, _02346014 ; =0x02346018 + ldr r0, _02346014 ; =ov02_02346018 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 _02346010: .word 0x0235AB2C -_02346014: .word 0x02346018 +_02346014: .word ov02_02346018 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_02346018 +ov02_02346018: ; 0x02346018 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _02346034 ; =ov02_02346038 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02346034: .word ov02_02346038 + arm_func_end ov02_02346018 arm_func_start ov02_02346038 ov02_02346038: ; 0x02346038 @@ -34066,7 +41227,7 @@ ov02_02346174: ; 0x02346174 bl ov02_02334EE4 mov r0, #0 bl ov02_023343DC - ldr r0, _02346200 ; =0x02346554 + ldr r0, _02346200 ; =ov02_02346554 bl ov02_02348CB0 mov r0, #0xb bl ov02_023480E0 @@ -34076,7 +41237,7 @@ ov02_02346174: ; 0x02346174 ldmia sp!, {pc} .align 2, 0 _023461FC: .word 0x0235AB30 -_02346200: .word 0x02346554 +_02346200: .word ov02_02346554 _02346204: .word ov02_023462B0 arm_func_end ov02_02346174 @@ -34154,17 +41315,36 @@ ov02_023462E4: ; 0x023462E4 ldmneia sp!, {r3, pc} mov r0, #2 bl ov02_02334E38 - ldr r0, _0234630C ; =0x02346310 + ldr r0, _0234630C ; =ov02_02346310 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_0234630C: .word 0x02346310 +_0234630C: .word ov02_02346310 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_02346310 +ov02_02346310: ; 0x02346310 + stmdb sp!, {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + ldmeqia sp!, {r3, pc} + bl ov02_02334750 + ldr r0, _02346334 ; =ov02_02346338 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02346334: .word ov02_02346338 + arm_func_end ov02_02346310 + + arm_func_start ov02_02346338 +ov02_02346338: ; 0x02346338 + stmdb sp!, {r3, lr} + bl ov02_0234634C + bl ov02_02346384 + bl ov02_02346388 + ldmia sp!, {r3, pc} + arm_func_end ov02_02346338 arm_func_start ov02_0234634C ov02_0234634C: ; 0x0234634C @@ -34206,17 +41386,26 @@ ov02_02346388: ; 0x02346388 bl ov02_02348148 mov r0, #7 bl ov02_023480E0 - ldr r0, _023463D0 ; =0x023463D4 + ldr r0, _023463D0 ; =ov02_023463D4 bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 _023463CC: .word 0x0235AB30 -_023463D0: .word 0x023463D4 +_023463D0: .word ov02_023463D4 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_023463D4 +ov02_023463D4: ; 0x023463D4 + stmdb sp!, {r3, lr} + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _023463F0 ; =ov02_023463F4 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_023463F0: .word ov02_023463F4 + arm_func_end ov02_023463D4 arm_func_start ov02_023463F4 ov02_023463F4: ; 0x023463F4 @@ -34320,22 +41509,75 @@ _02346548: .word ov02_02343DB0 _0234654C: .word ov02_02345DC8 _02346550: .word 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_02346554 +ov02_02346554: ; 0x02346554 + stmdb sp!, {r3, lr} + ldr r1, _02346630 ; =0x0235AB30 + ldrb r2, [r1] + cmp r2, #0 + ldmneia sp!, {r3, pc} + cmp r0, #3 + addls pc, pc, r0, lsl #2 + ldmia sp!, {r3, pc} +_02346574: ; jump table + b _02346584 ; case 0 + b _023465C4 ; case 1 + b _023465DC ; case 2 + b _02346610 ; case 3 +_02346584: + mov r0, #3 + strb r0, [r1] + bl ov02_02348148 + mov r0, #0x12 + bl ov02_023480E0 + mov r1, #1 + mov ip, #0 + mov r2, r1 + sub r3, r1, #2 + mov r0, #0x10 + str ip, [sp] + bl ov02_02349394 + bl ov02_02334768 + ldr r0, _02346634 ; =ov02_02346640 + bl ov02_02338D68 + ldmia sp!, {r3, pc} +_023465C4: + mov r0, #1 + strb r0, [r1] + bl ov02_02348148 + ldr r0, _02346638 ; =ov02_023463D4 + bl ov02_02338D68 + ldmia sp!, {r3, pc} +_023465DC: + bl ov02_02348148 + mov r0, #0 + bl ov02_02348F4C + mov r2, #1 + mov r1, #0 + sub r3, r2, #2 + mov r0, #0x11 + str r1, [sp] + bl ov02_02349394 + bl ov02_02334768 + ldr r0, _0234663C ; =ov02_0234668C + bl ov02_02338D68 + ldmia sp!, {r3, pc} +_02346610: + mov r0, #2 + strb r0, [r1] + bl ov02_02348148 + mov r0, #9 + bl ov02_023480E0 + ldr r0, _02346638 ; =ov02_023463D4 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02346630: .word 0x0235AB30 +_02346634: .word ov02_02346640 +_02346638: .word ov02_023463D4 +_0234663C: .word ov02_0234668C + arm_func_end ov02_02346554 arm_func_start ov02_02346640 ov02_02346640: ; 0x02346640 @@ -34346,16 +41588,25 @@ ov02_02346640: ; 0x02346640 mov r0, #6 bl ov02_023480E0 bl ov02_023496C0 - ldr r0, _02346668 ; =0x0234666C + ldr r0, _02346668 ; =ov02_0234666C bl ov02_02338D68 ldmia sp!, {r3, pc} .align 2, 0 -_02346668: .word 0x0234666C +_02346668: .word ov02_0234666C 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_0234666C +ov02_0234666C: ; 0x0234666C + stmdb sp!, {r3, lr} + bl ov02_02349718 + cmp r0, #0 + ldmneia sp!, {r3, pc} + ldr r0, _02346688 ; =ov02_023463D4 + bl ov02_02338D68 + ldmia sp!, {r3, pc} + .align 2, 0 +_02346688: .word ov02_023463D4 + arm_func_end ov02_0234666C arm_func_start ov02_0234668C ov02_0234668C: ; 0x0234668C @@ -34397,7 +41648,7 @@ ov02_023466E8: ; 0x023466E8 ldrb r0, [r0] cmp r0, #1 bne _02346714 - ldr r0, _02346744 ; =0x023463D4 + ldr r0, _02346744 ; =ov02_023463D4 bl ov02_02338D68 ldmia sp!, {r3, pc} _02346714: @@ -34406,7 +41657,7 @@ _02346714: bl ov02_02334750 ldr r1, _02346740 ; =0x0235AB30 mov r2, #0 - ldr r0, _02346748 ; =0x02346554 + ldr r0, _02346748 ; =ov02_02346554 strb r2, [r1] bl ov02_02348F4C ldr r0, _0234674C ; =0x02346338 @@ -34414,8 +41665,8 @@ _02346714: ldmia sp!, {r3, pc} .align 2, 0 _02346740: .word 0x0235AB30 -_02346744: .word 0x023463D4 -_02346748: .word 0x02346554 +_02346744: .word ov02_023463D4 +_02346748: .word ov02_02346554 _0234674C: .word 0x02346338 arm_func_end ov02_023466E8 @@ -35685,18 +42936,69 @@ _023476FC: .align 2, 0 _02347718: .word 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_0234771C +ov02_0234771C: ; 0x0234771C + ldr r1, _02347730 ; =0x0235AB48 + ldr ip, _02347734 ; =ov02_02347F80 + ldr r1, [r1] + add r1, r1, #0x4c0 + bx ip + .align 2, 0 +_02347730: .word 0x0235AB48 +_02347734: .word ov02_02347F80 + arm_func_end ov02_0234771C + + arm_func_start ov02_02347738 +ov02_02347738: ; 0x02347738 + ldr r1, _0234774C ; =0x0235AB48 + ldr ip, _02347750 ; =ov02_02347F80 + ldr r1, [r1] + add r1, r1, #0x4f0 + bx ip + .align 2, 0 +_0234774C: .word 0x0235AB48 +_02347750: .word ov02_02347F80 + arm_func_end ov02_02347738 + + arm_func_start ov02_02347754 +ov02_02347754: ; 0x02347754 + ldr r1, _0234776C ; =0x0235AB48 + ldr ip, _02347770 ; =ov02_02347F80 + ldr r1, [r1] + add r1, r1, #0xc4 + add r1, r1, #0x400 + bx ip + .align 2, 0 +_0234776C: .word 0x0235AB48 +_02347770: .word ov02_02347F80 + arm_func_end ov02_02347754 + + arm_func_start ov02_02347774 +ov02_02347774: ; 0x02347774 + ldr r1, _0234778C ; =0x0235AB48 + ldr ip, _02347790 ; =ov02_02347F80 + ldr r1, [r1] + add r1, r1, #0xc8 + add r1, r1, #0x400 + bx ip + .align 2, 0 +_0234778C: .word 0x0235AB48 +_02347790: .word ov02_02347F80 + arm_func_end ov02_02347774 + + arm_func_start ov02_02347794 +ov02_02347794: ; 0x02347794 + ldr r1, _023477AC ; =0x0235AB48 + ldr ip, _023477B0 ; =ov02_02347F80 + ldr r1, [r1] + add r1, r1, #0xcc + add r1, r1, #0x400 + bx ip + .align 2, 0 +_023477AC: .word 0x0235AB48 +_023477B0: .word ov02_02347F80 + arm_func_end ov02_02347794 arm_func_start ov02_023477B4 ov02_023477B4: ; 0x023477B4 @@ -36373,7 +43675,7 @@ ov02_02348024: ; 0x02348024 add r0, r0, #0x94 bl ov02_0232BF78 mov r0, #0 - ldr r1, _023480B0 ; =0x02348168 + ldr r1, _023480B0 ; =ov02_02348168 mov r2, r0 mov r3, #0xc8 bl ov02_0234FA98 @@ -36384,7 +43686,7 @@ ov02_02348024: ; 0x02348024 .align 2, 0 _023480A8: .word 0x0235AB4C _023480AC: .word 0x02353D54 -_023480B0: .word 0x02348168 +_023480B0: .word ov02_02348168 arm_func_end ov02_02348024 arm_func_start ov02_023480B4 @@ -36456,9 +43758,14 @@ ov02_02348148: ; 0x02348148 _02348160: .word 0x0235AB4C _02348164: .word ov02_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_02348168 +ov02_02348168: ; 0x02348168 + ldr ip, _02348170 ; =ov02_0232BDA0 + bx ip + .align 2, 0 +_02348170: .word ov02_0232BDA0 + arm_func_end ov02_02348168 arm_func_start ov02_02348174 ov02_02348174: ; 0x02348174 @@ -36839,10 +44146,21 @@ _02348664: _02348698: .word 0x0235AB50 _0234869C: .word 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_023486A0 +ov02_023486A0: ; 0x023486A0 + stmdb sp!, {r3, lr} + mov r1, r0 + mov r0, #0 + bl ov02_0234FB40 + ldr r0, _023486C4 ; =0x0235AB50 + mov r1, #0 + ldr r0, [r0, #4] + str r1, [r0, #0x14] + ldmia sp!, {r3, pc} + .align 2, 0 +_023486C4: .word 0x0235AB50 + arm_func_end ov02_023486A0 arm_func_start ov02_023486C8 ov02_023486C8: ; 0x023486C8 @@ -38716,7 +46034,7 @@ _0234A030: mov r0, #0x100 mov r1, #1 bl ov00_022C7150 - ldr r0, _0234A058 ; =0x0234A64C + ldr r0, _0234A058 ; =ov02_0234A64C bl ov00_022C3270 mov r0, #1 bl ov02_0234A970 @@ -38724,7 +46042,7 @@ _0234A030: ldmia sp!, {r4, r5, pc} .align 2, 0 _0234A054: .word 0x0235AB60 -_0234A058: .word 0x0234A64C +_0234A058: .word ov02_0234A64C arm_func_end ov02_02349F3C arm_func_start ov02_0234A05C @@ -39168,58 +46486,227 @@ ov02_0234A61C: ; 0x0234A61C .align 2, 0 _0234A648: .word 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_0234A64C +ov02_0234A64C: ; 0x0234A64C + stmdb sp!, {r4, r5, r6, lr} + mov r5, r0 + mov r4, r2 + cmp r1, #0xe + addls pc, pc, r1, lsl #2 + b _0234A964 +_0234A664: ; jump table + b _0234A964 ; case 0 + ldmia sp!, {r4, r5, r6, pc} ; case 1 + b _0234A6A0 ; case 2 + b _0234A728 ; case 3 + ldmia sp!, {r4, r5, r6, pc} ; case 4 + ldmia sp!, {r4, r5, r6, pc} ; case 5 + ldmia sp!, {r4, r5, r6, pc} ; case 6 + b _0234A864 ; case 7 + ldmia sp!, {r4, r5, r6, pc} ; case 8 + b _0234A894 ; case 9 + b _0234A7B4 ; case 10 + ldmia sp!, {r4, r5, r6, pc} ; case 11 + b _0234A8C8 ; case 12 + b _0234A924 ; case 13 + b _0234A820 ; case 14 +_0234A6A0: + bl ov02_0234A984 + cmp r0, #2 + ldmneia sp!, {r4, r5, r6, pc} + ldr r0, _0234A96C ; =0x0235AB60 + ldr r6, [r0] + bl EnableIrqFlag + ldrh r2, [r6, #2] + mov r1, #1 + orr r1, r2, r1, lsl r5 + strh r1, [r6, #2] + bl SetIrqFlag + ldr r1, _0234A96C ; =0x0235AB60 + sub r3, r5, #1 + mov r0, #0x1e + mul r0, r3, r0 + ldr r2, [r1] + add r3, r2, #0x24 + ldrb r2, [r4, #0xa] + add ip, r3, r0 + strb r2, [r3, r0] + ldrb r2, [r4, #0xb] + strb r2, [ip, #1] + ldrb r2, [r4, #0xc] + strb r2, [ip, #2] + ldrb r2, [r4, #0xd] + strb r2, [ip, #3] + ldrb r2, [r4, #0xe] + strb r2, [ip, #4] + ldrb r2, [r4, #0xf] + strb r2, [ip, #5] + ldr r1, [r1] + add r0, r1, r0 + strh r5, [r0, #0x2a] + ldmia sp!, {r4, r5, r6, pc} +_0234A728: + bl ov02_0234A9F0 + cmp r0, #6 + ldmeqia sp!, {r4, r5, r6, pc} + mov r0, #1 + mvn r0, r0, lsl r5 + mov r4, r0, lsl #0x10 + bl EnableIrqFlag + ldr r1, _0234A96C ; =0x0235AB60 + ldr r3, [r1] + ldrh r2, [r3, #2] + and r2, r2, r4, lsr #16 + strh r2, [r3, #2] + ldr r3, [r1] + ldrh r2, [r3, #4] + and r2, r2, r4, lsr #16 + strh r2, [r3, #4] + ldr r3, [r1] + ldrh r2, [r3, #6] + and r2, r2, r4, lsr #16 + strh r2, [r3, #6] + ldr r3, [r1] + ldrh r2, [r3, #8] + and r2, r2, r4, lsr #16 + strh r2, [r3, #8] + ldr r3, [r1] + ldrh r2, [r3, #0xa] + and r2, r2, r4, lsr #16 + strh r2, [r3, #0xa] + ldr r2, [r1] + ldrh r1, [r2, #0xc] + and r1, r1, r4, lsr #16 + strh r1, [r2, #0xc] + bl SetIrqFlag + bl ov02_0234A61C + ldmia sp!, {r4, r5, r6, pc} +_0234A7B4: + bl ov02_0234A984 + cmp r0, #2 + beq _0234A7CC + mov r0, r5 + bl ov02_0234A218 + ldmia sp!, {r4, r5, r6, pc} +_0234A7CC: + ldr r0, _0234A96C ; =0x0235AB60 + mov r1, #1 + ldr r3, [r0] + mov r0, r5 + ldrh r2, [r3, #4] + orr r1, r2, r1, lsl r5 + strh r1, [r3, #4] + bl ov02_0234A178 + mov r0, r5 + bl ov00_022C32E4 + cmp r0, #0 + ldmeqia sp!, {r4, r5, r6, pc} + ldr r1, _0234A96C ; =0x0235AB60 + sub r2, r5, #1 + ldr r3, [r1] + mov r1, #0x1e + add r3, r3, #0xe + mla r1, r2, r1, r3 + mov r2, #0x16 + bl sub_0207C4C8 + ldmia sp!, {r4, r5, r6, pc} +_0234A820: + ldr r0, _0234A96C ; =0x0235AB60 + mov r4, #1 + ldr r3, [r0] + mvn r1, r4, lsl r5 + ldrh r2, [r3, #4] + and r1, r2, r1 + strh r1, [r3, #4] + ldr r1, [r0] + ldrh r0, [r1, #6] + orr r0, r0, r4, lsl r5 + strh r0, [r1, #6] + bl ov02_0234A984 + cmp r0, #3 + ldmneia sp!, {r4, r5, r6, pc} + mov r0, r5 + bl ov02_0234A2F0 + ldmia sp!, {r4, r5, r6, pc} +_0234A864: + ldr r0, _0234A96C ; =0x0235AB60 + mov r4, #1 + ldr r3, [r0] + mvn r1, r4, lsl r5 + ldrh r2, [r3, #8] + and r1, r2, r1 + strh r1, [r3, #8] + ldr r1, [r0] + ldrh r0, [r1, #0xa] + orr r0, r0, r4, lsl r5 + strh r0, [r1, #0xa] + ldmia sp!, {r4, r5, r6, pc} +_0234A894: + ldr r0, _0234A96C ; =0x0235AB60 + mov r4, #1 + ldr r3, [r0] + mvn r1, r4, lsl r5 + ldrh r2, [r3, #0xa] + and r1, r2, r1 + strh r1, [r3, #0xa] + ldr r1, [r0] + ldrh r0, [r1, #0xc] + orr r0, r0, r4, lsl r5 + strh r0, [r1, #0xc] + bl ov02_0234A61C + ldmia sp!, {r4, r5, r6, pc} +_0234A8C8: + bl ov02_0234A984 + cmp r0, #4 + bne _0234A8E0 + mov r0, #5 + bl ov02_0234A970 + b _0234A8E8 +_0234A8E0: + mov r0, #0 + bl ov02_0234A970 +_0234A8E8: + ldr r0, _0234A96C ; =0x0235AB60 + ldr r0, [r0] + add r0, r0, #0x1b000 + ldr r1, [r0, #0x144] + cmp r1, #0 + movne r1, #0 + strne r1, [r0, #0x144] + ldr r0, _0234A96C ; =0x0235AB60 + ldr r0, [r0] + add r0, r0, #0x1b000 + ldr r1, [r0, #0x140] + cmp r1, #0 + movne r1, #0 + strne r1, [r0, #0x140] + ldmia sp!, {r4, r5, r6, pc} +_0234A924: + ldrh r0, [r4] + cmp r0, #8 + bgt _0234A950 + ldmgeia sp!, {r4, r5, r6, pc} + cmp r0, #2 + ldmgtia sp!, {r4, r5, r6, pc} + cmp r0, #1 + ldmltia sp!, {r4, r5, r6, pc} + cmpne r0, #2 + beq _0234A958 + ldmia sp!, {r4, r5, r6, pc} +_0234A950: + cmp r0, #9 + ldmneia sp!, {r4, r5, r6, pc} +_0234A958: + mov r0, #7 + bl ov02_0234A970 + ldmia sp!, {r4, r5, r6, pc} +_0234A964: + bl WaitForever2 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 +_0234A96C: .word 0x0235AB60 + arm_func_end ov02_0234A64C arm_func_start ov02_0234A970 ov02_0234A970: ; 0x0234A970 @@ -39920,7 +47407,7 @@ _0234B23C: .word 0x023542E8 arm_func_start ov02_0234B240 ov02_0234B240: ; 0x0234B240 stmdb sp!, {r3, lr} - ldr r0, _0234B264 ; =0x0234B268 + ldr r0, _0234B264 ; =ov02_0234B268 bl ov00_022BFDAC cmp r0, #2 moveq r0, #1 @@ -39929,12 +47416,22 @@ ov02_0234B240: ; 0x0234B240 mov r0, #0 ldmia sp!, {r3, pc} .align 2, 0 -_0234B264: .word 0x0234B268 +_0234B264: .word ov02_0234B268 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_0234B268 +ov02_0234B268: ; 0x0234B268 + stmdb sp!, {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0234B280 + bl ov02_0234AC4C + ldmia sp!, {r3, pc} +_0234B280: + mov r0, #1 + bl ov02_0234ABD0 + ldmia sp!, {r3, pc} + arm_func_end ov02_0234B268 arm_func_start ov02_0234B28C ov02_0234B28C: ; 0x0234B28C @@ -40001,7 +47498,7 @@ ov02_0234B340: ; 0x0234B340 stmdb sp!, {r3, lr} mov r0, #3 bl ov02_0234ABD0 - ldr r0, _0234B374 ; =0x0234B378 + ldr r0, _0234B374 ; =ov02_0234B378 mov r1, #0 bl ov00_022C0134 cmp r0, #2 @@ -40012,12 +47509,22 @@ ov02_0234B340: ; 0x0234B340 mov r0, #0 ldmia sp!, {r3, pc} .align 2, 0 -_0234B374: .word 0x0234B378 +_0234B374: .word ov02_0234B378 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_0234B378 +ov02_0234B378: ; 0x0234B378 + stmdb sp!, {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0234B390 + bl ov02_0234AC4C + ldmia sp!, {r3, pc} +_0234B390: + mov r0, #1 + bl ov02_0234ABD0 + ldmia sp!, {r3, pc} + arm_func_end ov02_0234B378 arm_func_start ov02_0234B39C ov02_0234B39C: ; 0x0234B39C @@ -40422,10 +47929,18 @@ ov02_0234B830: ; 0x0234B830 .align 2, 0 _0234B8A4: .word 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_0234B8A8 +ov02_0234B8A8: ; 0x0234B8A8 + stmdb sp!, {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #8 + ldmneia sp!, {r3, pc} + mov r0, #9 + bl ov02_0234ABD0 + bl WaitForever2 + ldmia sp!, {r3, pc} + arm_func_end ov02_0234B8A8 arm_func_start ov02_0234B8C8 ov02_0234B8C8: ; 0x0234B8C8 @@ -40462,7 +47977,7 @@ ov02_0234B914: ; 0x0234B914 bl ov02_0234ABD0 ldmia sp!, {r3, pc} _0234B934: - ldr r0, _0234B960 ; =0x0234B8A8 + ldr r0, _0234B960 ; =ov02_0234B8A8 bl ov00_022BF2C4 cmp r0, #0 beq _0234B954 @@ -40475,7 +47990,7 @@ _0234B954: bl ov02_0234ABD0 ldmia sp!, {r3, pc} .align 2, 0 -_0234B960: .word 0x0234B8A8 +_0234B960: .word ov02_0234B8A8 arm_func_end ov02_0234B914 arm_func_start ov02_0234B964 @@ -42072,13 +49587,15 @@ ov02_0234CE2C: ; 0x0234CE2C .align 2, 0 _0234CE68: .word 0x0234CE6C _0234CE6C: - .byte 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1 + ldr ip, _0234CE78 ; =sub_0207F338 + mov r1, #0 + bx ip + .align 2, 0 _0234CE78: .word sub_0207F338 arm_func_end ov02_0234CE2C _0234CE7C: - .byte 0x01, 0x00, 0xA0, 0xE3 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #1 + bx lr arm_func_start ov02_0234CE84 ov02_0234CE84: ; 0x0234CE84 @@ -44062,12 +51579,26 @@ ov02_0234E7D8: ; 0x0234E7D8 .align 2, 0 _0234E818: .word 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_0234E81C +ov02_0234E81C: ; 0x0234E81C + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + mov r0, #1 + bl sub_02078C98 + mov r4, r0 + cmp r5, #0 + ldmeqia sp!, {r3, r4, r5, pc} + ldr r0, _0234E854 ; =0x0235AB88 + mov r1, r5 + ldr r0, [r0] + bl ov02_02329DC8 + mov r0, r4 + bl sub_02078C68 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 +_0234E854: .word 0x0235AB88 + arm_func_end ov02_0234E81C arm_func_start ov02_0234E858 ov02_0234E858: ; 0x0234E858 @@ -44653,7 +52184,7 @@ ov02_0234EFE8: ; 0x0234EFE8 mov r0, #1 bl sub_02078B20 ldr r2, _0234F04C ; =0x0235ABA4 - ldr r1, _0234F054 ; =0x0234F098 + ldr r1, _0234F054 ; =ov02_0234F098 str r0, [r2] mov r0, #1 bl sub_02078A98 @@ -44669,7 +52200,7 @@ ov02_0234EFE8: ; 0x0234EFE8 _0234F048: .word 0x04000210 _0234F04C: .word 0x0235ABA4 _0234F050: .word 0x00040018 -_0234F054: .word 0x0234F098 +_0234F054: .word ov02_0234F098 _0234F058: .word 0x04000208 arm_func_end ov02_0234EFE8 @@ -44692,10 +52223,21 @@ ov02_0234F05C: ; 0x0234F05C _0234F090: .word 0x04000208 _0234F094: .word 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_0234F098 +ov02_0234F098: ; 0x0234F098 + stmdb sp!, {r3, lr} + mov r0, #1 + bl ov02_0234F9E8 + ldr r0, _0234F0BC ; =0x027E0000 + add r0, r0, #0x3000 + ldr r1, [r0, #0xff8] + orr r1, r1, #1 + str r1, [r0, #0xff8] + ldmia sp!, {r3, pc} + .align 2, 0 +_0234F0BC: .word 0x027E0000 + arm_func_end ov02_0234F098 arm_func_start ov02_0234F0C0 ov02_0234F0C0: ; 0x0234F0C0