All pastes #993686 Raw Edit

Stuff

public text v1 · immutable
#993686 ·published 2008-04-22 19:53 UTC
rendered paste body
Asuka bin # ./arm-mingw32ce-objdump -D /md0/rockbox/PBuilder/winceMCfiles/i2c.dll

/md0/rockbox/PBuilder/winceMCfiles/i2c.dll:     file format pei-arm-wince-little

Disassembly of section .text:

02f51000 <.text>:
 2f51000:       00000000        andeq   r0, r0, r0
 2f51004:       44d9b5ed        ldrbmi  fp, [r9], #1517
 2f51008:       00000000        andeq   r0, r0, r0
 2f5100c:       00000002        andeq   r0, r0, r2
 2f51010:       00000052        andeq   r0, r0, r2, asr r0
 2f51014:       000011bc        strheq  r1, [r0], -ip
 2f51018:       000005bc        strheq  r0, [r0], -ip
 2f5101c:       00000000        andeq   r0, r0, r0
 2f51020:       0020001e        eoreq   r0, r0, lr, lsl r0
 2f51024:       002a0024        eoreq   r0, sl, r4, lsr #32
 2f51028:       00340030        eorseq  r0, r4, r0, lsr r0
 2f5102c:       0048003c        subeq   r0, r8, ip, lsr r0
 2f51030:       00580050        subseq  r0, r8, r0, asr r0
 2f51034:       00800068        addeq   r0, r0, r8, rrx
 2f51038:       00a00090        umlaleq r0, r0, r0, r0
 2f5103c:       00f000c0        rscseq  r0, r0, r0, asr #1
 2f51040:       01400120        cmpeq   r0, r0, lsr #2
 2f51044:       01e00180        mvneq   r0, r0, lsl #3
 2f51048:       02800240        addeq   r0, r0, #4      ; 0x4
 2f5104c:       03c00300        biceq   r0, r0, #0      ; 0x0
 2f51050:       05000480        streq   r0, [r0, #-1152]
 2f51054:       07800600        streq   r0, [r0, r0, lsl #12]
 2f51058:       0a000900        beq     0x2f53460
 2f5105c:       0f000c00        svceq   0x00000c00
 2f51060:       00180016        andseq  r0, r8, r6, lsl r0
 2f51064:       001c001a        andseq  r0, ip, sl, lsl r0
 2f51068:       00240020        eoreq   r0, r4, r0, lsr #32
 2f5106c:       002c0028        eoreq   r0, ip, r8, lsr #32
 2f51070:       00380030        eorseq  r0, r8, r0, lsr r0
 2f51074:       00480040        subeq   r0, r8, r0, asr #32
 2f51078:       00600050        rsbeq   r0, r0, r0, asr r0
 2f5107c:       00800070        addeq   r0, r0, r0, ror r0
 2f51080:       00c000a0        sbceq   r0, r0, r0, lsr #1
 2f51084:       010000e0        smlatteq        r0, r0, r0, r0
 2f51088:       01800140        orreq   r0, r0, r0, asr #2
 2f5108c:       020001c0        andeq   r0, r0, #48     ; 0x30
 2f51090:       03000280        movweq  r0, #640        ; 0x280
 2f51094:       04000380        streq   r0, [r0], #-896
 2f51098:       06000500        streq   r0, [r0], -r0, lsl #10
 2f5109c:       08000700        stmdaeq r0, {r8, r9, sl}
 2f510a0:       00000000        andeq   r0, r0, r0
 2f510a4:       00004033        andeq   r4, r0, r3, lsr r0
 2f510a8:       44410001        strbmi  r0, [r1], #-1
 2f510ac:       00000000        andeq   r0, r0, r0
 2f510b0:       09401050        stmdbeq r0, {r4, r6, ip}^
 2f510b4:       00004005        andeq   r4, r0, r5
 2f510b8:       534c0001        movtpl  r0, #49153      ; 0xc001
 2f510bc:       00000000        andeq   r0, r0, r0
 2f510c0:       09401050        stmdbeq r0, {r4, r6, ip}^
 2f510c4:       00002078        andeq   r2, r0, r8, ror r0
 2f510c8:       534c0001        movtpl  r0, #49153      ; 0xc001
 2f510cc:       00000000        andeq   r0, r0, r0
 2f510d0:       802910ec        eorhi   r1, r9, ip, ror #1
 2f510d4:       0000c0f0        strdeq  ip, [r0], -r0
 2f510d8:       534b0001        movtpl  r0, #45057      ; 0xb001
 2f510dc:       00000000        andeq   r0, r0, r0
 2f510e0:       812910ec        teqhi   r9, ip, ror #1
 2f510e4:       00000000        andeq   r0, r0, r0
 2f510e8:       54520004        ldrbpl  r0, [r2], #-4
 2f510ec:       00000000        andeq   r0, r0, r0
 2f510f0:       813910ec        teqhi   r9, ip, ror #1
 2f510f4:       0000900b        andeq   r9, r0, fp
 2f510f8:       54520004        ldrbpl  r0, [r2], #-4
 2f510fc:       00000000        andeq   r0, r0, r0
 2f51100:       813910ec        teqhi   r9, ip, ror #1
 2f51104:       0000d0c9        andeq   sp, r0, r9, asr #1
 2f51108:       54520004        ldrbpl  r0, [r2], #-4
 2f5110c:       00000000        andeq   r0, r0, r0
 2f51110:       813910ec        teqhi   r9, ip, ror #1
 2f51114:       0000e04c        andeq   lr, r0, ip, asr #32
 2f51118:       54520004        ldrbpl  r0, [r2], #-4
 2f5111c:       00000000        andeq   r0, r0, r0
 2f51120:       13001186        movwne  r1, #390        ; 0x186
 2f51124:       000050ba        strheq  r5, [r0], -sl
 2f51128:       4c440004        mcrrmi  0, 0, r0, r4, cr4
 2f5112c:       00000000        andeq   r0, r0, r0
 2f51130:       0020100b        eoreq   r1, r0, fp
 2f51134:       0000a0cc        andeq   sl, r0, ip, asr #1
 2f51138:       474e0005        strbmi  r0, [lr, -r5]
 2f5113c:       00000000        andeq   r0, r0, r0
 2f51140:       905010b7        ldrhls  r1, [r0], #-7
 2f51144:       00006008        andeq   r6, r0, r8
 2f51148:       43330006        teqmi   r3, #6  ; 0x6
 2f5114c:       00000000        andeq   r0, r0, r0
 2f51150:       920010b7        andls   r1, r0, #183    ; 0xb7
 2f51154:       00000476        andeq   r0, r0, r6, ror r4
 2f51158:       43330006        teqmi   r3, #6  ; 0x6
 2f5115c:       00000000        andeq   r0, r0, r0
 2f51160:       10398086        eorsne  r8, r9, r6, lsl #1
 2f51164:       00004033        andeq   r4, r0, r3, lsr r0
 2f51168:       4e490107        dvfmie  f0, f1, f7
 2f5116c:       00000000        andeq   r0, r0, r0
 2f51170:       103a8086        eorsne  r8, sl, r6, lsl #1
 2f51174:       00004033        andeq   r4, r0, r3, lsr r0
 2f51178:       4e490107        dvfmie  f0, f1, f7
 2f5117c:       00000000        andeq   r0, r0, r0
 2f51180:       10518086        subsne  r8, r1, r6, lsl #1
 2f51184:       00004033        andeq   r4, r0, r3, lsr r0
 2f51188:       4e490107        dvfmie  f0, f1, f7
 2f5118c:       00000000        andeq   r0, r0, r0
 2f51190:       12298086        eorne   r8, r9, #134    ; 0x86
 2f51194:       00004033        andeq   r4, r0, r3, lsr r0
 2f51198:       4e490107        dvfmie  f0, f1, f7
 2f5119c:       00000000        andeq   r0, r0, r0
 2f511a0:       24498086        strbcs  r8, [r9], #-134
 2f511a4:       00004033        andeq   r4, r0, r3, lsr r0
 2f511a8:       4e490107        dvfmie  f0, f1, f7
 2f511ac:       00000000        andeq   r0, r0, r0
 2f511b0:       006e0049        rsbeq   r0, lr, r9, asr #32
 2f511b4:       00650064        rsbeq   r0, r5, r4, rrx
 2f511b8:       00000078        andeq   r0, r0, r8, ror r0
 2f511bc:       53445352        movtpl  r5, #17234      ; 0x4352
 2f511c0:       b4b9221c        ldrtlt  r2, [r9], #540
 2f511c4:       43faaa75        mvnsmi  sl, #479232     ; 0x75000
 2f511c8:       1e86d99c        mcrne   9, 4, sp, cr6, cr12, {4}
 2f511cc:       2e2cf2b9        mcrcs   2, 1, pc, cr12, cr9, {5}
 2f511d0:       00000006        andeq   r0, r0, r6
 2f511d4:       575c3a43        ldrbpl  r3, [ip, -r3, asr #20]
 2f511d8:       45434e49        strbmi  r4, [r3, #-3657]
 2f511dc:       5c303035        ldcpl   0, cr3, [r0], #-212
 2f511e0:       74616c70        strbtvc r6, [r1], #-3184
 2f511e4:       6d726f66        ldclvs  15, cr6, [r2, #-408]!
 2f511e8:       74744f5c        ldrbtvc r4, [r4], #-3932
 2f511ec:       6e616d6f        cdpvs   13, 6, cr6, cr1, cr15, {3}
 2f511f0:       7261745c        rsbvc   r7, r1, #1543503872     ; 0x5c000000
 2f511f4:       5c746567        cfldr64pl       mvdx6, [r4], #-412
 2f511f8:       564d5241        strbpl  r5, [sp], -r1, asr #4
 2f511fc:       725c4934        subsvc  r4, ip, #851968 ; 0xd0000
 2f51200:       69617465        stmdbvs r1!, {r0, r2, r5, r6, sl, ip, sp, lr}^
 2f51204:       32695c6c        rsbcc   r5, r9, #27648  ; 0x6c00
 2f51208:       64702e63        ldrbtvs r2, [r0], #-3683
 2f5120c:       00000062        andeq   r0, r0, r2, rrx
 2f51210:       e92d4030        push    {r4, r5, lr}
 2f51214:       e24dd004        sub     sp, sp, #4      ; 0x4
 2f51218:       e1a04000        mov     r4, r0
 2f5121c:       e28d1000        add     r1, sp, #0      ; 0x0
 2f51220:       e3a0000f        mov     r0, #15 ; 0xf
 2f51224:       eb0003f3        bl      0x2f521f8
 2f51228:       e59d1000        ldr     r1, [sp]
 2f5122c:       e1a00004        mov     r0, r4
 2f51230:       eb000388        bl      0x2f52058
 2f51234:       e59f50b0        ldr     r5, [pc, #176]  ; 0x2f512ec
 2f51238:       e1a0e800        lsl     lr, r0, #16
 2f5123c:       e1a0e82e        lsr     lr, lr, #16
 2f51240:       e1a02005        mov     r2, r5
 2f51244:       e3a00000        mov     r0, #0  ; 0x0
 2f51248:       e1d230b0        ldrh    r3, [r2]
 2f5124c:       e15e0003        cmp     lr, r3
 2f51250:       9a000003        bls     0x2f51264
 2f51254:       e2800001        add     r0, r0, #1      ; 0x1
 2f51258:       e350001f        cmp     r0, #31 ; 0x1f
 2f5125c:       e2822002        add     r2, r2, #2      ; 0x2
 2f51260:       bafffff8        blt     0x2f51248
 2f51264:       e0853080        add     r3, r5, r0, lsl #1
 2f51268:       e1d340b0        ldrh    r4, [r3]
 2f5126c:       e15e0004        cmp     lr, r4
 2f51270:       0a000014        beq     0x2f512c8
 2f51274:       e3a01020        mov     r1, #32 ; 0x20
 2f51278:       e2852040        add     r2, r5, #64     ; 0x40
 2f5127c:       e1d230b0        ldrh    r3, [r2]
 2f51280:       e15e0003        cmp     lr, r3
 2f51284:       9a000003        bls     0x2f51298
 2f51288:       e2811001        add     r1, r1, #1      ; 0x1
 2f5128c:       e351003f        cmp     r1, #63 ; 0x3f
 2f51290:       e2822002        add     r2, r2, #2      ; 0x2
 2f51294:       bafffff8        blt     0x2f5127c
 2f51298:       e0853081        add     r3, r5, r1, lsl #1
 2f5129c:       e1d330b0        ldrh    r3, [r3]
 2f512a0:       e15e0003        cmp     lr, r3
 2f512a4:       0a00000e        beq     0x2f512e4
 2f512a8:       e154000e        cmp     r4, lr
 2f512ac:       9a00000a        bls     0x2f512dc
 2f512b0:       e153000e        cmp     r3, lr
 2f512b4:       9a000003        bls     0x2f512c8
 2f512b8:       e043200e        sub     r2, r3, lr
 2f512bc:       e044300e        sub     r3, r4, lr
 2f512c0:       e1530002        cmp     r3, r2
 2f512c4:       aa000006        bge     0x2f512e4
 2f512c8:       e1a00800        lsl     r0, r0, #16
 2f512cc:       e1a00820        lsr     r0, r0, #16
 2f512d0:       e28dd004        add     sp, sp, #4      ; 0x4
 2f512d4:       e8bd4030        pop     {r4, r5, lr}
 2f512d8:       e12fff1e        bx      lr
 2f512dc:       e153000e        cmp     r3, lr
 2f512e0:       9afffff8        bls     0x2f512c8
 2f512e4:       e1a00801        lsl     r0, r1, #16
 2f512e8:       eafffff7        b       0x2f512cc
 2f512ec:       02f51020        rscseq  r1, r5, #32     ; 0x20
 2f512f0:       e3500001        cmp     r0, #1  ; 0x1
 2f512f4:       0a000003        beq     0x2f51308
 2f512f8:       e3500002        cmp     r0, #2  ; 0x2
 2f512fc:       13500003        cmpne   r0, #3  ; 0x3
 2f51300:       13a00000        movne   r0, #0  ; 0x0
 2f51304:       112fff1e        bxne    lr
 2f51308:       e3a00001        mov     r0, #1  ; 0x1
 2f5130c:       e12fff1e        bx      lr
 2f51310:       e52de004        push    {lr}            ; (str lr, [sp, #-4]!)
 2f51314:       e3500001        cmp     r0, #1  ; 0x1
 2f51318:       0a000009        beq     0x2f51344
 2f5131c:       e3500002        cmp     r0, #2  ; 0x2
 2f51320:       0a000005        beq     0x2f5133c
 2f51324:       e3500003        cmp     r0, #3  ; 0x3
 2f51328:       13a00000        movne   r0, #0  ; 0x0
 2f5132c:       149de004        popne   {lr}            ; (ldrne lr, [sp], #4)
 2f51330:       112fff1e        bxne    lr
 2f51334:       e3a0000f        mov     r0, #15 ; 0xf
 2f51338:       ea000002        b       0x2f51348
 2f5133c:       e3a0000e        mov     r0, #14 ; 0xe
 2f51340:       ea000000        b       0x2f51348
 2f51344:       e3a0000d        mov     r0, #13 ; 0xd
 2f51348:       e3510000        cmp     r1, #0  ; 0x0
 2f5134c:       13a01003        movne   r1, #3  ; 0x3
 2f51350:       03a01000        moveq   r1, #0  ; 0x0
 2f51354:       eb0003ab        bl      0x2f52208
 2f51358:       e49de004        pop     {lr}            ; (ldr lr, [sp], #4)
 2f5135c:       e12fff1e        bx      lr
 2f51360:       e3a00ffa        mov     r0, #1000       ; 0x3e8
 2f51364:       e12fff1e        bx      lr
 2f51368:       e92d4010        push    {r4, lr}
 2f5136c:       e1b04000        movs    r4, r0
 2f51370:       0a000003        beq     0x2f51384
 2f51374:       e1a00004        mov     r0, r4
 2f51378:       eb0000df        bl      0x2f516fc
 2f5137c:       e1a00004        mov     r0, r4
 2f51380:       eb000338        bl      0x2f52068
 2f51384:       e3a00001        mov     r0, #1  ; 0x1
 2f51388:       e8bd4010        pop     {r4, lr}
 2f5138c:       e12fff1e        bx      lr
 2f51390:       e12fff1e        bx      lr
 2f51394:       e3a00001        mov     r0, #1  ; 0x1
 2f51398:       e12fff1e        bx      lr
 2f5139c:       e12fff1e        bx      lr
 2f513a0:       e12fff1e        bx      lr
 2f513a4:       e3a00000        mov     r0, #0  ; 0x0
 2f513a8:       e12fff1e        bx      lr
 2f513ac:       e3a00000        mov     r0, #0  ; 0x0
 2f513b0:       e12fff1e        bx      lr
 2f513b4:       e3e00000        mvn     r0, #0  ; 0x0
 2f513b8:       e12fff1e        bx      lr
 2f513bc:       e92d41f0        push    {r4, r5, r6, r7, r8, lr}
 2f513c0:       e1a05003        mov     r5, r3
 2f513c4:       e1a06002        mov     r6, r2
 2f513c8:       e1b04000        movs    r4, r0
 2f513cc:       e3a0e000        mov     lr, #0  ; 0x0
 2f513d0:       0a000089        beq     0x2f515fc
 2f513d4:       e59f3250        ldr     r3, [pc, #592]  ; 0x2f5162c
 2f513d8:       e1510003        cmp     r1, r3
 2f513dc:       8a000040        bhi     0x2f514e4
 2f513e0:       0a000037        beq     0x2f514c4
 2f513e4:       e59f323c        ldr     r3, [pc, #572]  ; 0x2f51628
 2f513e8:       e1510003        cmp     r1, r3
 2f513ec:       0a000031        beq     0x2f514b8
 2f513f0:       e59f322c        ldr     r3, [pc, #556]  ; 0x2f51624
 2f513f4:       e1510003        cmp     r1, r3
 2f513f8:       0a00002b        beq     0x2f514ac
 2f513fc:       e59f321c        ldr     r3, [pc, #540]  ; 0x2f51620
 2f51400:       e1510003        cmp     r1, r3
 2f51404:       0a00001a        beq     0x2f51474
 2f51408:       e59f320c        ldr     r3, [pc, #524]  ; 0x2f5161c
 2f5140c:       e1510003        cmp     r1, r3
 2f51410:       0a00000b        beq     0x2f51444
 2f51414:       e59f31fc        ldr     r3, [pc, #508]  ; 0x2f51618
 2f51418:       e1510003        cmp     r1, r3
 2f5141c:       1a000017        bne     0x2f51480
 2f51420:       e59d301c        ldr     r3, [sp, #28]
 2f51424:       e3530002        cmp     r3, #2  ; 0x2
 2f51428:       1a000014        bne     0x2f51480
 2f5142c:       e59d0018        ldr     r0, [sp, #24]
 2f51430:       e3a01002        mov     r1, #2  ; 0x2
 2f51434:       eb00030f        bl      0x2f52078
 2f51438:       e1d431b0        ldrh    r3, [r4, #16]
 2f5143c:       e1c030b0        strh    r3, [r0]
 2f51440:       ea00006c        b       0x2f515f8
 2f51444:       e59d301c        ldr     r3, [sp, #28]
 2f51448:       e3530004        cmp     r3, #4  ; 0x4
 2f5144c:       1a00000b        bne     0x2f51480
 2f51450:       e59d0018        ldr     r0, [sp, #24]
 2f51454:       e3a01004        mov     r1, #4  ; 0x4
 2f51458:       eb000306        bl      0x2f52078
 2f5145c:       e5d43018        ldrb    r3, [r4, #24]
 2f51460:       e3530002        cmp     r3, #2  ; 0x2
 2f51464:       1a00000d        bne     0x2f514a0
 2f51468:       e3a03001        mov     r3, #1  ; 0x1
 2f5146c:       e5803000        str     r3, [r0]
 2f51470:       ea000060        b       0x2f515f8
 2f51474:       e59d301c        ldr     r3, [sp, #28]
 2f51478:       e3530004        cmp     r3, #4  ; 0x4
 2f5147c:       0a000001        beq     0x2f51488
 2f51480:       e3a0e000        mov     lr, #0  ; 0x0
 2f51484:       ea00005c        b       0x2f515fc
 2f51488:       e59d0018        ldr     r0, [sp, #24]
 2f5148c:       e3a01004        mov     r1, #4  ; 0x4
 2f51490:       eb0002f8        bl      0x2f52078
 2f51494:       e5d43018        ldrb    r3, [r4, #24]
 2f51498:       e3530001        cmp     r3, #1  ; 0x1
 2f5149c:       eafffff0        b       0x2f51464
 2f514a0:       e3a03000        mov     r3, #0  ; 0x0
 2f514a4:       e5803000        str     r3, [r0]
 2f514a8:       ea000052        b       0x2f515f8
 2f514ac:       e3a03001        mov     r3, #1  ; 0x1
 2f514b0:       e5c43018        strb    r3, [r4, #24]
 2f514b4:       ea00004f        b       0x2f515f8
 2f514b8:       e3a03002        mov     r3, #2  ; 0x2
 2f514bc:       e5c43018        strb    r3, [r4, #24]
 2f514c0:       ea00004c        b       0x2f515f8
 2f514c4:       e3550002        cmp     r5, #2  ; 0x2
 2f514c8:       1affffec        bne     0x2f51480
 2f514cc:       e3a01002        mov     r1, #2  ; 0x2
 2f514d0:       e1a00006        mov     r0, r6
 2f514d4:       eb0002e7        bl      0x2f52078
 2f514d8:       e1d030b0        ldrh    r3, [r0]
 2f514dc:       e1c431b0        strh    r3, [r4, #16]
 2f514e0:       ea000044        b       0x2f515f8
 2f514e4:       e59f3128        ldr     r3, [pc, #296]  ; 0x2f51614
 2f514e8:       e1510003        cmp     r1, r3
 2f514ec:       0a000039        beq     0x2f515d8
 2f514f0:       e59f3118        ldr     r3, [pc, #280]  ; 0x2f51610
 2f514f4:       e1510003        cmp     r1, r3
 2f514f8:       0a00002e        beq     0x2f515b8
 2f514fc:       e3a0382a        mov     r3, #2752512    ; 0x2a0000
 2f51500:       e3833c2f        orr     r3, r3, #12032  ; 0x2f00
 2f51504:       e1510003        cmp     r1, r3
 2f51508:       0a000021        beq     0x2f51594
 2f5150c:       e59f30f8        ldr     r3, [pc, #248]  ; 0x2f5160c
 2f51510:       e1510003        cmp     r1, r3
 2f51514:       0a000005        beq     0x2f51530
 2f51518:       e59f30e8        ldr     r3, [pc, #232]  ; 0x2f51608
 2f5151c:       e1510003        cmp     r1, r3
 2f51520:       1affffd6        bne     0x2f51480
 2f51524:       e1a00004        mov     r0, r4
 2f51528:       eb0000a2        bl      0x2f517b8
 2f5152c:       ea000031        b       0x2f515f8
 2f51530:       e5961004        ldr     r1, [r6, #4]
 2f51534:       e5960000        ldr     r0, [r6]
 2f51538:       e1a01201        lsl     r1, r1, #4
 2f5153c:       eb0002cd        bl      0x2f52078
 2f51540:       e5963004        ldr     r3, [r6, #4]
 2f51544:       e1a07000        mov     r7, r0
 2f51548:       e3a08000        mov     r8, #0  ; 0x0
 2f5154c:       e3530000        cmp     r3, #0  ; 0x0
 2f51550:       da000009        ble     0x2f5157c
 2f51554:       e1a05007        mov     r5, r7
 2f51558:       e1d510b8        ldrh    r1, [r5, #8]
 2f5155c:       e5950004        ldr     r0, [r5, #4]
 2f51560:       eb0002c4        bl      0x2f52078
 2f51564:       e5850004        str     r0, [r5, #4]
 2f51568:       e5963004        ldr     r3, [r6, #4]
 2f5156c:       e2888001        add     r8, r8, #1      ; 0x1
 2f51570:       e2855010        add     r5, r5, #16     ; 0x10
 2f51574:       e1580003        cmp     r8, r3
 2f51578:       bafffff6        blt     0x2f51558
 2f5157c:       e5962004        ldr     r2, [r6, #4]
 2f51580:       e1a01007        mov     r1, r7
 2f51584:       e1a00004        mov     r0, r4
 2f51588:       eb000186        bl      0x2f51ba8
 2f5158c:       e1a0e000        mov     lr, r0
 2f51590:       ea000019        b       0x2f515fc
 2f51594:       e59d301c        ldr     r3, [sp, #28]
 2f51598:       e3530001        cmp     r3, #1  ; 0x1
 2f5159c:       1affffb7        bne     0x2f51480
 2f515a0:       e59d0018        ldr     r0, [sp, #24]
 2f515a4:       e3a01001        mov     r1, #1  ; 0x1
 2f515a8:       eb0002b2        bl      0x2f52078
 2f515ac:       e5d43019        ldrb    r3, [r4, #25]
 2f515b0:       e5c03000        strb    r3, [r0]
 2f515b4:       ea00000f        b       0x2f515f8
 2f515b8:       e3550001        cmp     r5, #1  ; 0x1
 2f515bc:       1affffaf        bne     0x2f51480
 2f515c0:       e3a01001        mov     r1, #1  ; 0x1
 2f515c4:       e1a00006        mov     r0, r6
 2f515c8:       eb0002aa        bl      0x2f52078
 2f515cc:       e5d03000        ldrb    r3, [r0]
 2f515d0:       e5c43019        strb    r3, [r4, #25]
 2f515d4:       ea000007        b       0x2f515f8
 2f515d8:       e3550004        cmp     r5, #4  ; 0x4
 2f515dc:       1affffa7        bne     0x2f51480
 2f515e0:       e3a01004        mov     r1, #4  ; 0x4
 2f515e4:       e1a00006        mov     r0, r6
 2f515e8:       eb0002a2        bl      0x2f52078
 2f515ec:       e5900000        ldr     r0, [r0]
 2f515f0:       ebffff06        bl      0x2f51210
 2f515f4:       e1c401b0        strh    r0, [r4, #16]
 2f515f8:       e3a0e001        mov     lr, #1  ; 0x1
 2f515fc:       e1a0000e        mov     r0, lr
 2f51600:       e8bd41f0        pop     {r4, r5, r6, r7, r8, lr}
 2f51604:       e12fff1e        bx      lr
 2f51608:       002a2f08        eoreq   r2, sl, r8, lsl #30
 2f5160c:       002a2f04        eoreq   r2, sl, r4, lsl #30
 2f51610:       002a2efc        strdeq  r2, [sl], -ip
 2f51614:       002a2ef8        strdeq  r2, [sl], -r8
 2f51618:       002a2ef0        strdeq  r2, [sl], -r0
 2f5161c:       002a2eec        eoreq   r2, sl, ip, ror #29
 2f51620:       002a2ee8        eoreq   r2, sl, r8, ror #29
 2f51624:       002a2ee4        eoreq   r2, sl, r4, ror #29
 2f51628:       002a2ee0        eoreq   r2, sl, r0, ror #29
 2f5162c:       002a2ef4        strdeq  r2, [sl], -r4
 2f51630:       e52de004        push    {lr}            ; (str lr, [sp, #-4]!)
 2f51634:       e3510001        cmp     r1, #1  ; 0x1
 2f51638:       0b000292        bleq    0x2f52088
 2f5163c:       e3a00001        mov     r0, #1  ; 0x1
 2f51640:       e49de004        pop     {lr}            ; (ldr lr, [sp], #4)
 2f51644:       e12fff1e        bx      lr
 2f51648:       e92d4070        push    {r4, r5, r6, lr}
 2f5164c:       e24dd010        sub     sp, sp, #16     ; 0x10
 2f51650:       eb00029c        bl      0x2f520c8
 2f51654:       e1b05000        movs    r5, r0
 2f51658:       0a000021        beq     0x2f516e4
 2f5165c:       e59f1094        ldr     r1, [pc, #148]  ; 0x2f516f8
 2f51660:       e3a06004        mov     r6, #4  ; 0x4
 2f51664:       e28de008        add     lr, sp, #8      ; 0x8
 2f51668:       e28d400c        add     r4, sp, #12     ; 0xc
 2f5166c:       e3a03000        mov     r3, #0  ; 0x0
 2f51670:       e3a02000        mov     r2, #0  ; 0x0
 2f51674:       e1a00005        mov     r0, r5
 2f51678:       e58d6008        str     r6, [sp, #8]
 2f5167c:       e58de004        str     lr, [sp, #4]
 2f51680:       e58d4000        str     r4, [sp]
 2f51684:       eb00028b        bl      0x2f520b8
 2f51688:       e1a04000        mov     r4, r0
 2f5168c:       e1a00005        mov     r0, r5
 2f51690:       eb000284        bl      0x2f520a8
 2f51694:       e3540000        cmp     r4, #0  ; 0x0
 2f51698:       1a000011        bne     0x2f516e4
 2f5169c:       e3a00028        mov     r0, #40 ; 0x28
 2f516a0:       eb00027c        bl      0x2f52098
 2f516a4:       e3500000        cmp     r0, #0  ; 0x0
 2f516a8:       0a000003        beq     0x2f516bc
 2f516ac:       e59d100c        ldr     r1, [sp, #12]
 2f516b0:       eb0001eb        bl      0x2f51e64
 2f516b4:       e1a04000        mov     r4, r0
 2f516b8:       ea000000        b       0x2f516c0
 2f516bc:       e3a04000        mov     r4, #0  ; 0x0
 2f516c0:       e3540000        cmp     r4, #0  ; 0x0
 2f516c4:       0a000006        beq     0x2f516e4
 2f516c8:       e5943014        ldr     r3, [r4, #20]
 2f516cc:       e3530000        cmp     r3, #0  ; 0x0
 2f516d0:       aa000004        bge     0x2f516e8
 2f516d4:       e1a00004        mov     r0, r4
 2f516d8:       eb000007        bl      0x2f516fc
 2f516dc:       e1a00004        mov     r0, r4
 2f516e0:       eb000260        bl      0x2f52068
 2f516e4:       e3a04000        mov     r4, #0  ; 0x0
 2f516e8:       e1a00004        mov     r0, r4
 2f516ec:       e28dd010        add     sp, sp, #16     ; 0x10
 2f516f0:       e8bd4070        pop     {r4, r5, r6, lr}
 2f516f4:       e12fff1e        bx      lr
 2f516f8:       02f511b0        rscseq  r1, r5, #44     ; 0x2c
 2f516fc:       e92d4030        push    {r4, r5, lr}
 2f51700:       e24dd008        sub     sp, sp, #8      ; 0x8
 2f51704:       e1a04000        mov     r4, r0
 2f51708:       e5940024        ldr     r0, [r4, #36]
 2f5170c:       eb000285        bl      0x2f52128
 2f51710:       e5943004        ldr     r3, [r4, #4]
 2f51714:       e3a05000        mov     r5, #0  ; 0x0
 2f51718:       e3530000        cmp     r3, #0  ; 0x0
 2f5171c:       0a000005        beq     0x2f51738
 2f51720:       e3a01000        mov     r1, #0  ; 0x0
 2f51724:       e1a00003        mov     r0, r3
 2f51728:       eb00027a        bl      0x2f52118
 2f5172c:       e5940004        ldr     r0, [r4, #4]
 2f51730:       eb000274        bl      0x2f52108
 2f51734:       e5845004        str     r5, [r4, #4]
 2f51738:       e5940008        ldr     r0, [r4, #8]
 2f5173c:       eb000271        bl      0x2f52108
 2f51740:       e594000c        ldr     r0, [r4, #12]
 2f51744:       e5845008        str     r5, [r4, #8]
 2f51748:       eb00026e        bl      0x2f52108
 2f5174c:       e59f0060        ldr     r0, [pc, #96]   ; 0x2f517b4
 2f51750:       e3a03000        mov     r3, #0  ; 0x0
 2f51754:       e3a02004        mov     r2, #4  ; 0x4
 2f51758:       e2841024        add     r1, r4, #36     ; 0x24
 2f5175c:       e584500c        str     r5, [r4, #12]
 2f51760:       e58d5004        str     r5, [sp, #4]
 2f51764:       e58d5000        str     r5, [sp]
 2f51768:       eb000262        bl      0x2f520f8
 2f5176c:       e59f003c        ldr     r0, [pc, #60]   ; 0x2f517b0
 2f51770:       eb00025c        bl      0x2f520e8
 2f51774:       e59f0030        ldr     r0, [pc, #48]   ; 0x2f517ac
 2f51778:       eb00025a        bl      0x2f520e8
 2f5177c:       e5943008        ldr     r3, [r4, #8]
 2f51780:       e3530000        cmp     r3, #0  ; 0x0
 2f51784:       11a00003        movne   r0, r3
 2f51788:       1b00025e        blne    0x2f52108
 2f5178c:       e5943020        ldr     r3, [r4, #32]
 2f51790:       e3530000        cmp     r3, #0  ; 0x0
 2f51794:       13a01014        movne   r1, #20 ; 0x14
 2f51798:       11a00003        movne   r0, r3
 2f5179c:       1b000289        blne    0x2f521c8
 2f517a0:       e28dd008        add     sp, sp, #8      ; 0x8
 2f517a4:       e8bd4030        pop     {r4, r5, lr}
 2f517a8:       e12fff1e        bx      lr
 2f517ac:       01ee2090        strbeq  r2, [lr]!
 2f517b0:       01ee207c        mvneq   r2, ip, ror r0
 2f517b4:       010100d8        ldrdeq  r0, [r1, -r8]
 2f517b8:       e5903020        ldr     r3, [r0, #32]
 2f517bc:       e3a02000        mov     r2, #0  ; 0x0
 2f517c0:       e1c320b8        strh    r2, [r3, #8]
 2f517c4:       e5802014        str     r2, [r0, #20]
 2f517c8:       e12fff1e        bx      lr
 2f517cc:       e5902020        ldr     r2, [r0, #32]
 2f517d0:       e1d230bc        ldrh    r3, [r2, #12]
 2f517d4:       e2033020        and     r3, r3, #32     ; 0x20
 2f517d8:       e3530020        cmp     r3, #32 ; 0x20
 2f517dc:       0afffffb        beq     0x2f517d0
 2f517e0:       e5902020        ldr     r2, [r0, #32]
 2f517e4:       e1d230b8        ldrh    r3, [r2, #8]
 2f517e8:       e3833020        orr     r3, r3, #32     ; 0x20
 2f517ec:       e1c230b8        strh    r3, [r2, #8]
 2f517f0:       e5902020        ldr     r2, [r0, #32]
 2f517f4:       e1d230b8        ldrh    r3, [r2, #8]
 2f517f8:       e3833010        orr     r3, r3, #16     ; 0x10
 2f517fc:       e1c230b8        strh    r3, [r2, #8]
 2f51800:       e5d13001        ldrb    r3, [r1, #1]
 2f51804:       e3530002        cmp     r3, #2  ; 0x2
 2f51808:       e5d13000        ldrb    r3, [r1]
 2f5180c:       03a02001        moveq   r2, #1  ; 0x1
 2f51810:       13a02000        movne   r2, #0  ; 0x0
 2f51814:       e1a03083        lsl     r3, r3, #1
 2f51818:       e5901020        ldr     r1, [r0, #32]
 2f5181c:       e20330ff        and     r3, r3, #255    ; 0xff
 2f51820:       e20220ff        and     r2, r2, #255    ; 0xff
 2f51824:       e1833002        orr     r3, r3, r2
 2f51828:       e1c131b0        strh    r3, [r1, #16]
 2f5182c:       e12fff1e        bx      lr
 2f51830:       e92d4030        push    {r4, r5, lr}
 2f51834:       e1a04001        mov     r4, r1
 2f51838:       e1a05000        mov     r5, r0
 2f5183c:       e5952020        ldr     r2, [r5, #32]
 2f51840:       e3a00003        mov     r0, #3  ; 0x3
 2f51844:       e1d230b8        ldrh    r3, [r2, #8]
 2f51848:       e3833004        orr     r3, r3, #4      ; 0x4
 2f5184c:       e1c230b8        strh    r3, [r2, #8]
 2f51850:       eb000260        bl      0x2f521d8
 2f51854:       e5d43001        ldrb    r3, [r4, #1]
 2f51858:       e5951020        ldr     r1, [r5, #32]
 2f5185c:       e3530002        cmp     r3, #2  ; 0x2
 2f51860:       e5d43000        ldrb    r3, [r4]
 2f51864:       03a02001        moveq   r2, #1  ; 0x1
 2f51868:       13a02000        movne   r2, #0  ; 0x0
 2f5186c:       e1a03083        lsl     r3, r3, #1
 2f51870:       e20330ff        and     r3, r3, #255    ; 0xff
 2f51874:       e20220ff        and     r2, r2, #255    ; 0xff
 2f51878:       e1833002        orr     r3, r3, r2
 2f5187c:       e1c131b0        strh    r3, [r1, #16]
 2f51880:       e8bd4030        pop     {r4, r5, lr}
 2f51884:       e12fff1e        bx      lr
 2f51888:       e92d4ff0        push    {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 2f5188c:       e1a09002        mov     r9, r2
 2f51890:       e1a05001        mov     r5, r1
 2f51894:       e1a04000        mov     r4, r0
 2f51898:       e594e020        ldr     lr, [r4, #32]
 2f5189c:       e595b004        ldr     fp, [r5, #4]
 2f518a0:       e3a07cff        mov     r7, #65280      ; 0xff00
 2f518a4:       e1de30b8        ldrh    r3, [lr, #8]
 2f518a8:       e3a06000        mov     r6, #0  ; 0x0
 2f518ac:       e38770df        orr     r7, r7, #223    ; 0xdf
 2f518b0:       e3833010        orr     r3, r3, #16     ; 0x10
 2f518b4:       e1ce30b8        strh    r3, [lr, #8]
 2f518b8:       e1d530b8        ldrh    r3, [r5, #8]
 2f518bc:       e3530000        cmp     r3, #0  ; 0x0
 2f518c0:       0a00003b        beq     0x2f519b4
 2f518c4:       e3a0ac01        mov     sl, #256        ; 0x100
 2f518c8:       e3a08cff        mov     r8, #65280      ; 0xff00
 2f518cc:       e38aa002        orr     sl, sl, #2      ; 0x2
 2f518d0:       e38880fd        orr     r8, r8, #253    ; 0xfd
 2f518d4:       e4db3001        ldrb    r3, [fp], #1
 2f518d8:       e594e020        ldr     lr, [r4, #32]
 2f518dc:       e3a01002        mov     r1, #2  ; 0x2
 2f518e0:       e1ce31b0        strh    r3, [lr, #16]
 2f518e4:       e594000c        ldr     r0, [r4, #12]
 2f518e8:       eb0001fa        bl      0x2f520d8
 2f518ec:       e5940024        ldr     r0, [r4, #36]
 2f518f0:       eb000214        bl      0x2f52148
 2f518f4:       e594101c        ldr     r1, [r4, #28]
 2f518f8:       e594000c        ldr     r0, [r4, #12]
 2f518fc:       eb00020d        bl      0x2f52138
 2f51900:       e150000a        cmp     r0, sl
 2f51904:       0a000011        beq     0x2f51950
 2f51908:       e5943020        ldr     r3, [r4, #32]
 2f5190c:       e1d330bc        ldrh    r3, [r3, #12]
 2f51910:       e3130010        tst     r3, #16 ; 0x10
 2f51914:       1a000016        bne     0x2f51974
 2f51918:       e5942020        ldr     r2, [r4, #32]
 2f5191c:       e1d230bc        ldrh    r3, [r2, #12]
 2f51920:       e0033008        and     r3, r3, r8
 2f51924:       e1c230bc        strh    r3, [r2, #12]
 2f51928:       e5943020        ldr     r3, [r4, #32]
 2f5192c:       e1d330bc        ldrh    r3, [r3, #12]
 2f51930:       e2033001        and     r3, r3, #1      ; 0x1
 2f51934:       e3530001        cmp     r3, #1  ; 0x1
 2f51938:       0a000016        beq     0x2f51998
 2f5193c:       e1d530b8        ldrh    r3, [r5, #8]
 2f51940:       e2866001        add     r6, r6, #1      ; 0x1
 2f51944:       e1560003        cmp     r6, r3
 2f51948:       baffffe1        blt     0x2f518d4
 2f5194c:       ea000018        b       0x2f519b4
 2f51950:       e5941020        ldr     r1, [r4, #32]
 2f51954:       e3a02cff        mov     r2, #65280      ; 0xff00
 2f51958:       e38220df        orr     r2, r2, #223    ; 0xdf
 2f5195c:       e1d130b8        ldrh    r3, [r1, #8]
 2f51960:       e3a00000        mov     r0, #0  ; 0x0
 2f51964:       e0033002        and     r3, r3, r2
 2f51968:       e1c130b8        strh    r3, [r1, #8]
 2f5196c:       e8bd4ff0        pop     {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 2f51970:       e12fff1e        bx      lr
 2f51974:       e5941020        ldr     r1, [r4, #32]
 2f51978:       e3a02cff        mov     r2, #65280      ; 0xff00
 2f5197c:       e38220ef        orr     r2, r2, #239    ; 0xef
 2f51980:       e1d130bc        ldrh    r3, [r1, #12]
 2f51984:       e3a00000        mov     r0, #0  ; 0x0
 2f51988:       e0033002        and     r3, r3, r2
 2f5198c:       e1c130bc        strh    r3, [r1, #12]
 2f51990:       e8bd4ff0        pop     {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 2f51994:       e12fff1e        bx      lr
 2f51998:       e5942020        ldr     r2, [r4, #32]
 2f5199c:       e3e01006        mvn     r1, #6  ; 0x6
 2f519a0:       e1d230b8        ldrh    r3, [r2, #8]
 2f519a4:       e0033007        and     r3, r3, r7
 2f519a8:       e1c230b8        strh    r3, [r2, #8]
 2f519ac:       e595300c        ldr     r3, [r5, #12]
 2f519b0:       e5831000        str     r1, [r3]
 2f519b4:       e3590000        cmp     r9, #0  ; 0x0
 2f519b8:       0a00000a        beq     0x2f519e8
 2f519bc:       e5942020        ldr     r2, [r4, #32]
 2f519c0:       e3a01000        mov     r1, #0  ; 0x0
 2f519c4:       e1d230b8        ldrh    r3, [r2, #8]
 2f519c8:       e0033007        and     r3, r3, r7
 2f519cc:       e1c230b8        strh    r3, [r2, #8]
 2f519d0:       e5942020        ldr     r2, [r4, #32]
 2f519d4:       e1d230b8        ldrh    r3, [r2, #8]
 2f519d8:       e3833010        orr     r3, r3, #16     ; 0x10
 2f519dc:       e1c230b8        strh    r3, [r2, #8]
 2f519e0:       e595300c        ldr     r3, [r5, #12]
 2f519e4:       e5831000        str     r1, [r3]
 2f519e8:       e3a00001        mov     r0, #1  ; 0x1
 2f519ec:       e8bd4ff0        pop     {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 2f519f0:       e12fff1e        bx      lr
 2f519f4:       e92d4ff0        push    {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 2f519f8:       e24dd004        sub     sp, sp, #4      ; 0x4
 2f519fc:       e1a06003        mov     r6, r3
 2f51a00:       e1a0b002        mov     fp, r2
 2f51a04:       e1a07001        mov     r7, r1
 2f51a08:       e1a05000        mov     r5, r0
 2f51a0c:       e5954020        ldr     r4, [r5, #32]
 2f51a10:       e3a0acff        mov     sl, #65280      ; 0xff00
 2f51a14:       e38aa0ef        orr     sl, sl, #239    ; 0xef
 2f51a18:       e1d4e0b8        ldrh    lr, [r4, #8]
 2f51a1c:       e5973004        ldr     r3, [r7, #4]
 2f51a20:       e00ee00a        and     lr, lr, sl
 2f51a24:       e1c4e0b8        strh    lr, [r4, #8]
 2f51a28:       e1d7e0b8        ldrh    lr, [r7, #8]
 2f51a2c:       e58d3000        str     r3, [sp]
 2f51a30:       e35e0001        cmp     lr, #1  ; 0x1
 2f51a34:       05954020        ldreq   r4, [r5, #32]
 2f51a38:       13a02cff        movne   r2, #65280      ; 0xff00
 2f51a3c:       138220f7        orrne   r2, r2, #247    ; 0xf7
 2f51a40:       01d4e0b8        ldrheq  lr, [r4, #8]
 2f51a44:       038ee008        orreq   lr, lr, #8      ; 0x8
 2f51a48:       01c4e0b8        strheq  lr, [r4, #8]
 2f51a4c:       15951020        ldrne   r1, [r5, #32]
 2f51a50:       11d130b8        ldrhne  r3, [r1, #8]
 2f51a54:       10033002        andne   r3, r3, r2
 2f51a58:       11c130b8        strhne  r3, [r1, #8]
 2f51a5c:       e3560000        cmp     r6, #0  ; 0x0
 2f51a60:       0a000006        beq     0x2f51a80
 2f51a64:       e5953020        ldr     r3, [r5, #32]
 2f51a68:       e595000c        ldr     r0, [r5, #12]
 2f51a6c:       e3a01002        mov     r1, #2  ; 0x2
 2f51a70:       e1d331b0        ldrh    r3, [r3, #16]
 2f51a74:       eb000197        bl      0x2f520d8
 2f51a78:       e5950024        ldr     r0, [r5, #36]
 2f51a7c:       eb0001b1        bl      0x2f52148
 2f51a80:       e1d730b8        ldrh    r3, [r7, #8]
 2f51a84:       e3a04000        mov     r4, #0  ; 0x0
 2f51a88:       e3530000        cmp     r3, #0  ; 0x0
 2f51a8c:       0a000038        beq     0x2f51b74
 2f51a90:       e3a06cff        mov     r6, #65280      ; 0xff00
 2f51a94:       e3a08c01        mov     r8, #256        ; 0x100
 2f51a98:       e3a09cff        mov     r9, #65280      ; 0xff00
 2f51a9c:       e38660df        orr     r6, r6, #223    ; 0xdf
 2f51aa0:       e3888002        orr     r8, r8, #2      ; 0x2
 2f51aa4:       e38990fd        orr     r9, r9, #253    ; 0xfd
 2f51aa8:       e595101c        ldr     r1, [r5, #28]
 2f51aac:       e595000c        ldr     r0, [r5, #12]
 2f51ab0:       eb0001a0        bl      0x2f52138
 2f51ab4:       e5952020        ldr     r2, [r5, #32]
 2f51ab8:       e1500008        cmp     r0, r8
 2f51abc:       0a000030        beq     0x2f51b84
 2f51ac0:       e1a03002        mov     r3, r2
 2f51ac4:       e1d330bc        ldrh    r3, [r3, #12]
 2f51ac8:       e3130010        tst     r3, #16 ; 0x10
 2f51acc:       e1d230bc        ldrh    r3, [r2, #12]
 2f51ad0:       1a000030        bne     0x2f51b98
 2f51ad4:       e0033009        and     r3, r3, r9
 2f51ad8:       e1c230bc        strh    r3, [r2, #12]
 2f51adc:       e1d720b8        ldrh    r2, [r7, #8]
 2f51ae0:       e2423002        sub     r3, r2, #2      ; 0x2
 2f51ae4:       e1540003        cmp     r4, r3
 2f51ae8:       05952020        ldreq   r2, [r5, #32]
 2f51aec:       01d230b8        ldrheq  r3, [r2, #8]
 2f51af0:       03833008        orreq   r3, r3, #8      ; 0x8
 2f51af4:       01c230b8        strheq  r3, [r2, #8]
 2f51af8:       0a00000f        beq     0x2f51b3c
 2f51afc:       e2423001        sub     r3, r2, #1      ; 0x1
 2f51b00:       e1540003        cmp     r4, r3
 2f51b04:       1a00000c        bne     0x2f51b3c
 2f51b08:       e35b0000        cmp     fp, #0  ; 0x0
 2f51b0c:       0a00000a        beq     0x2f51b3c
 2f51b10:       e5952020        ldr     r2, [r5, #32]
 2f51b14:       e1d230b8        ldrh    r3, [r2, #8]
 2f51b18:       e0033006        and     r3, r3, r6
 2f51b1c:       e1c230b8        strh    r3, [r2, #8]
 2f51b20:       e5952020        ldr     r2, [r5, #32]
 2f51b24:       e1d230b8        ldrh    r3, [r2, #8]
 2f51b28:       e3833010        orr     r3, r3, #16     ; 0x10
 2f51b2c:       e1c230b8        strh    r3, [r2, #8]
 2f51b30:       e597300c        ldr     r3, [r7, #12]
 2f51b34:       e3a02000        mov     r2, #0  ; 0x0
 2f51b38:       e5832000        str     r2, [r3]
 2f51b3c:       e5953020        ldr     r3, [r5, #32]
 2f51b40:       e59d2000        ldr     r2, [sp]
 2f51b44:       e3a01002        mov     r1, #2  ; 0x2
 2f51b48:       e1d331b0        ldrh    r3, [r3, #16]
 2f51b4c:       e4c23001        strb    r3, [r2], #1
 2f51b50:       e595000c        ldr     r0, [r5, #12]
 2f51b54:       e58d2000        str     r2, [sp]
 2f51b58:       eb00015e        bl      0x2f520d8
 2f51b5c:       e5950024        ldr     r0, [r5, #36]
 2f51b60:       eb000178        bl      0x2f52148
 2f51b64:       e1d730b8        ldrh    r3, [r7, #8]
 2f51b68:       e2844001        add     r4, r4, #1      ; 0x1
 2f51b6c:       e1540003        cmp     r4, r3
 2f51b70:       baffffcc        blt     0x2f51aa8
 2f51b74:       e3a00001        mov     r0, #1  ; 0x1
 2f51b78:       e28dd004        add     sp, sp, #4      ; 0x4
 2f51b7c:       e8bd4ff0        pop     {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 2f51b80:       e12fff1e        bx      lr
 2f51b84:       e1d230b8        ldrh    r3, [r2, #8]
 2f51b88:       e3a00000        mov     r0, #0  ; 0x0
 2f51b8c:       e0033006        and     r3, r3, r6
 2f51b90:       e1c230b8        strh    r3, [r2, #8]
 2f51b94:       eafffff7        b       0x2f51b78
 2f51b98:       e003300a        and     r3, r3, sl
 2f51b9c:       e1c230bc        strh    r3, [r2, #12]
 2f51ba0:       e3a00000        mov     r0, #0  ; 0x0
 2f51ba4:       eafffff3        b       0x2f51b78
 2f51ba8:       e92d47f0        push    {r4, r5, r6, r7, r8, r9, sl, lr}
 2f51bac:       e1a07002        mov     r7, r2
 2f51bb0:       e1a06001        mov     r6, r1
 2f51bb4:       e1a04000        mov     r4, r0
 2f51bb8:       e59f0274        ldr     r0, [pc, #628]  ; 0x2f51e34
 2f51bbc:       eb000169        bl      0x2f52168
 2f51bc0:       e5940000        ldr     r0, [r4]
 2f51bc4:       e3a01001        mov     r1, #1  ; 0x1
 2f51bc8:       ebfffdd0        bl      0x2f51310
 2f51bcc:       e3500000        cmp     r0, #0  ; 0x0
 2f51bd0:       03a00000        moveq   r0, #0  ; 0x0
 2f51bd4:       08bd47f0        popeq   {r4, r5, r6, r7, r8, r9, sl, lr}
 2f51bd8:       012fff1e        bxeq    lr
 2f51bdc:       e5943020        ldr     r3, [r4, #32]
 2f51be0:       e3a0a000        mov     sl, #0  ; 0x0
 2f51be4:       e3a05000        mov     r5, #0  ; 0x0
 2f51be8:       e1c3a0b8        strh    sl, [r3, #8]
 2f51bec:       e5942020        ldr     r2, [r4, #32]
 2f51bf0:       e1d431b0        ldrh    r3, [r4, #16]
 2f51bf4:       e3570000        cmp     r7, #0  ; 0x0
 2f51bf8:       e1c230b4        strh    r3, [r2, #4]
 2f51bfc:       e5d43019        ldrb    r3, [r4, #25]
 2f51c00:       e5942020        ldr     r2, [r4, #32]
 2f51c04:       e1a03083        lsl     r3, r3, #1
 2f51c08:       e1c230b0        strh    r3, [r2]
 2f51c0c:       e5942020        ldr     r2, [r4, #32]
 2f51c10:       e1d230b8        ldrh    r3, [r2, #8]
 2f51c14:       e3833080        orr     r3, r3, #128    ; 0x80
 2f51c18:       e1c230b8        strh    r3, [r2, #8]
 2f51c1c:       e5942020        ldr     r2, [r4, #32]
 2f51c20:       e1d230b8        ldrh    r3, [r2, #8]
 2f51c24:       e3833040        orr     r3, r3, #64     ; 0x40
 2f51c28:       e1c230b8        strh    r3, [r2, #8]
 2f51c2c:       da000050        ble     0x2f51d74
 2f51c30:       e3a09c01        mov     r9, #256        ; 0x100
 2f51c34:       e3a08cff        mov     r8, #65280      ; 0xff00
 2f51c38:       e3899002        orr     r9, r9, #2      ; 0x2
 2f51c3c:       e38880fd        orr     r8, r8, #253    ; 0xfd
 2f51c40:       e3a00000        mov     r0, #0  ; 0x0
 2f51c44:       e3550000        cmp     r5, #0  ; 0x0
 2f51c48:       1a000012        bne     0x2f51c98
 2f51c4c:       e1a01006        mov     r1, r6
 2f51c50:       e1a00004        mov     r0, r4
 2f51c54:       ebfffedc        bl      0x2f517cc
 2f51c58:       e594000c        ldr     r0, [r4, #12]
 2f51c5c:       e3a01002        mov     r1, #2  ; 0x2
 2f51c60:       eb00011c        bl      0x2f520d8
 2f51c64:       e5940024        ldr     r0, [r4, #36]
 2f51c68:       eb000136        bl      0x2f52148
 2f51c6c:       e594101c        ldr     r1, [r4, #28]
 2f51c70:       e594000c        ldr     r0, [r4, #12]
 2f51c74:       eb00012f        bl      0x2f52138
 2f51c78:       e1500009        cmp     r0, r9
 2f51c7c:       0a000046        beq     0x2f51d9c
 2f51c80:       e5943020        ldr     r3, [r4, #32]
 2f51c84:       e1d330bc        ldrh    r3, [r3, #12]
 2f51c88:       e3130010        tst     r3, #16 ; 0x10
 2f51c8c:       0a00001a        beq     0x2f51cfc
 2f51c90:       e596300c        ldr     r3, [r6, #12]
 2f51c94:       ea000054        b       0x2f51dec
 2f51c98:       e0861205        add     r1, r6, r5, lsl #4
 2f51c9c:       e5512010        ldrb    r2, [r1, #-16]
 2f51ca0:       e5d13000        ldrb    r3, [r1]
 2f51ca4:       e1530002        cmp     r3, r2
 2f51ca8:       1a000003        bne     0x2f51cbc
 2f51cac:       e551200f        ldrb    r2, [r1, #-15]
 2f51cb0:       e5d13001        ldrb    r3, [r1, #1]
 2f51cb4:       e1530002        cmp     r3, r2
 2f51cb8:       0a000014        beq     0x2f51d10
 2f51cbc:       e1a00004        mov     r0, r4
 2f51cc0:       ebfffeda        bl      0x2f51830
 2f51cc4:       e594000c        ldr     r0, [r4, #12]
 2f51cc8:       e3a01002        mov     r1, #2  ; 0x2
 2f51ccc:       eb000101        bl      0x2f520d8
 2f51cd0:       e5940024        ldr     r0, [r4, #36]
 2f51cd4:       eb00011b        bl      0x2f52148
 2f51cd8:       e594101c        ldr     r1, [r4, #28]
 2f51cdc:       e594000c        ldr     r0, [r4, #12]
 2f51ce0:       eb000114        bl      0x2f52138
 2f51ce4:       e1500009        cmp     r0, r9
 2f51ce8:       0a000034        beq     0x2f51dc0
 2f51cec:       e5943020        ldr     r3, [r4, #32]
 2f51cf0:       e1d330bc        ldrh    r3, [r3, #12]
 2f51cf4:       e3130010        tst     r3, #16 ; 0x10
 2f51cf8:       1a000039        bne     0x2f51de4
 2f51cfc:       e5942020        ldr     r2, [r4, #32]
 2f51d00:       e3a00001        mov     r0, #1  ; 0x1
 2f51d04:       e1d230bc        ldrh    r3, [r2, #12]
 2f51d08:       e0033008        and     r3, r3, r8
 2f51d0c:       e1c230bc        strh    r3, [r2, #12]
 2f51d10:       e5d43018        ldrb    r3, [r4, #24]
 2f51d14:       e3530001        cmp     r3, #1  ; 0x1
 2f51d18:       1a000012        bne     0x2f51d68
 2f51d1c:       e0861205        add     r1, r6, r5, lsl #4
 2f51d20:       e5d13001        ldrb    r3, [r1, #1]
 2f51d24:       e3530001        cmp     r3, #1  ; 0x1
 2f51d28:       e2853001        add     r3, r5, #1      ; 0x1
 2f51d2c:       1a000005        bne     0x2f51d48
 2f51d30:       e1530007        cmp     r3, r7
 2f51d34:       03a02001        moveq   r2, #1  ; 0x1
 2f51d38:       13a02000        movne   r2, #0  ; 0x0
 2f51d3c:       e1a00004        mov     r0, r4
 2f51d40:       ebfffed0        bl      0x2f51888
 2f51d44:       ea000005        b       0x2f51d60
 2f51d48:       e1530007        cmp     r3, r7
 2f51d4c:       03a02001        moveq   r2, #1  ; 0x1
 2f51d50:       e1a03000        mov     r3, r0
 2f51d54:       13a02000        movne   r2, #0  ; 0x0
 2f51d58:       e1a00004        mov     r0, r4
 2f51d5c:       ebffff24        bl      0x2f519f4
 2f51d60:       e3500000        cmp     r0, #0  ; 0x0
 2f51d64:       0a00002b        beq     0x2f51e18
 2f51d68:       e2855001        add     r5, r5, #1      ; 0x1
 2f51d6c:       e1550007        cmp     r5, r7
 2f51d70:       baffffb2        blt     0x2f51c40
 2f51d74:       e5943020        ldr     r3, [r4, #32]
 2f51d78:       e3a01000        mov     r1, #0  ; 0x0
 2f51d7c:       e1c3a0b8        strh    sl, [r3, #8]
 2f51d80:       e5940000        ldr     r0, [r4]
 2f51d84:       ebfffd61        bl      0x2f51310
 2f51d88:       e59f00a4        ldr     r0, [pc, #164]  ; 0x2f51e34
 2f51d8c:       eb0000f1        bl      0x2f52158
 2f51d90:       e3a00001        mov     r0, #1  ; 0x1
 2f51d94:       e8bd47f0        pop     {r4, r5, r6, r7, r8, r9, sl, lr}
 2f51d98:       e12fff1e        bx      lr
 2f51d9c:       e5941020        ldr     r1, [r4, #32]
 2f51da0:       e3a02cff        mov     r2, #65280      ; 0xff00
 2f51da4:       e38220df        orr     r2, r2, #223    ; 0xdf
 2f51da8:       e1d130b8        ldrh    r3, [r1, #8]
 2f51dac:       e3a00000        mov     r0, #0  ; 0x0
 2f51db0:       e0033002        and     r3, r3, r2
 2f51db4:       e1c130b8        strh    r3, [r1, #8]
 2f51db8:       e8bd47f0        pop     {r4, r5, r6, r7, r8, r9, sl, lr}
 2f51dbc:       e12fff1e        bx      lr
 2f51dc0:       e5941020        ldr     r1, [r4, #32]
 2f51dc4:       e3a02cff        mov     r2, #65280      ; 0xff00
 2f51dc8:       e38220ef        orr     r2, r2, #239    ; 0xef
 2f51dcc:       e1d130bc        ldrh    r3, [r1, #12]
 2f51dd0:       e3a00000        mov     r0, #0  ; 0x0
 2f51dd4:       e0033002        and     r3, r3, r2
 2f51dd8:       e1c130bc        strh    r3, [r1, #12]
 2f51ddc:       e8bd47f0        pop     {r4, r5, r6, r7, r8, r9, sl, lr}
 2f51de0:       e12fff1e        bx      lr
 2f51de4:       e0863205        add     r3, r6, r5, lsl #4
 2f51de8:       e593300c        ldr     r3, [r3, #12]
 2f51dec:       e3e0200c        mvn     r2, #12 ; 0xc
 2f51df0:       e5832000        str     r2, [r3]
 2f51df4:       e5942020        ldr     r2, [r4, #32]
 2f51df8:       e3a01cff        mov     r1, #65280      ; 0xff00
 2f51dfc:       e38110ef        orr     r1, r1, #239    ; 0xef
 2f51e00:       e1d230bc        ldrh    r3, [r2, #12]
 2f51e04:       e3a00000        mov     r0, #0  ; 0x0
 2f51e08:       e0033001        and     r3, r3, r1
 2f51e0c:       e1c230bc        strh    r3, [r2, #12]
 2f51e10:       e8bd47f0        pop     {r4, r5, r6, r7, r8, r9, sl, lr}
 2f51e14:       e12fff1e        bx      lr
 2f51e18:       e0863205        add     r3, r6, r5, lsl #4
 2f51e1c:       e593300c        ldr     r3, [r3, #12]
 2f51e20:       e3e0200b        mvn     r2, #11 ; 0xb
 2f51e24:       e3a00000        mov     r0, #0  ; 0x0
 2f51e28:       e5832000        str     r2, [r3]
 2f51e2c:       e8bd47f0        pop     {r4, r5, r6, r7, r8, r9, sl, lr}
 2f51e30:       e12fff1e        bx      lr
 2f51e34:       01ee2090        strbeq  r2, [lr]!
 2f51e38:       e92d4010        push    {r4, lr}
 2f51e3c:       e1a04000        mov     r4, r0
 2f51e40:       e5940008        ldr     r0, [r4, #8]
 2f51e44:       e3e01000        mvn     r1, #0  ; 0x0
 2f51e48:       eb0000ba        bl      0x2f52138
 2f51e4c:       e3500000        cmp     r0, #0  ; 0x0
 2f51e50:       1afffffa        bne     0x2f51e40
 2f51e54:       e594000c        ldr     r0, [r4, #12]
 2f51e58:       e3a01003        mov     r1, #3  ; 0x3
 2f51e5c:       eb00009d        bl      0x2f520d8
 2f51e60:       eafffff6        b       0x2f51e40
 2f51e64:       e92d40f0        push    {r4, r5, r6, r7, lr}
 2f51e68:       e24dd00c        sub     sp, sp, #12     ; 0xc
 2f51e6c:       e1a05000        mov     r5, r0
 2f51e70:       e1a00001        mov     r0, r1
 2f51e74:       e5851000        str     r1, [r5]
 2f51e78:       eb00005b        bl      0x2f51fec
 2f51e7c:       e3a01000        mov     r1, #0  ; 0x0
 2f51e80:       e3a03000        mov     r3, #0  ; 0x0
 2f51e84:       e3a02014        mov     r2, #20 ; 0x14
 2f51e88:       eb0000d6        bl      0x2f521e8
 2f51e8c:       e3500000        cmp     r0, #0  ; 0x0
 2f51e90:       03e03001        mvneq   r3, #1  ; 0x1
 2f51e94:       05853014        streq   r3, [r5, #20]
 2f51e98:       e5850020        str     r0, [r5, #32]
 2f51e9c:       0a00004a        beq     0x2f51fcc
 2f51ea0:       e3a03000        mov     r3, #0  ; 0x0
 2f51ea4:       e3a02000        mov     r2, #0  ; 0x0
 2f51ea8:       e3a01000        mov     r1, #0  ; 0x0
 2f51eac:       e3a00000        mov     r0, #0  ; 0x0
 2f51eb0:       eb0000c0        bl      0x2f521b8
 2f51eb4:       e3500000        cmp     r0, #0  ; 0x0
 2f51eb8:       e5850008        str     r0, [r5, #8]
 2f51ebc:       1a000002        bne     0x2f51ecc
 2f51ec0:       e3e03002        mvn     r3, #2  ; 0x2
 2f51ec4:       e5853014        str     r3, [r5, #20]
 2f51ec8:       ea00003f        b       0x2f51fcc
 2f51ecc:       e3a03000        mov     r3, #0  ; 0x0
 2f51ed0:       e3a02000        mov     r2, #0  ; 0x0
 2f51ed4:       e3a01001        mov     r1, #1  ; 0x1
 2f51ed8:       e3a00000        mov     r0, #0  ; 0x0
 2f51edc:       eb0000b5        bl      0x2f521b8
 2f51ee0:       e3500000        cmp     r0, #0  ; 0x0
 2f51ee4:       e585000c        str     r0, [r5, #12]
 2f51ee8:       0afffff4        beq     0x2f51ec0
 2f51eec:       e59f00f4        ldr     r0, [pc, #244]  ; 0x2f51fe8
 2f51ef0:       eb0000ac        bl      0x2f521a8
 2f51ef4:       e5950000        ldr     r0, [r5]
 2f51ef8:       ebfffcfc        bl      0x2f512f0
 2f51efc:       e3500000        cmp     r0, #0  ; 0x0
 2f51f00:       0a000031        beq     0x2f51fcc
 2f51f04:       e59f00d8        ldr     r0, [pc, #216]  ; 0x2f51fe4
 2f51f08:       eb0000a6        bl      0x2f521a8
 2f51f0c:       e1a04005        mov     r4, r5
 2f51f10:       e4940024        ldr     r0, [r4], #36
 2f51f14:       eb000043        bl      0x2f52028
 2f51f18:       e1a0e000        mov     lr, r0
 2f51f1c:       e59f00bc        ldr     r0, [pc, #188]  ; 0x2f51fe0
 2f51f20:       e3a06004        mov     r6, #4  ; 0x4
 2f51f24:       e3a07000        mov     r7, #0  ; 0x0
 2f51f28:       e1a03004        mov     r3, r4
 2f51f2c:       e3a02004        mov     r2, #4  ; 0x4
 2f51f30:       e28d1008        add     r1, sp, #8      ; 0x8
 2f51f34:       e58de008        str     lr, [sp, #8]
 2f51f38:       e58d7004        str     r7, [sp, #4]
 2f51f3c:       e58d6000        str     r6, [sp]
 2f51f40:       eb00006c        bl      0x2f520f8
 2f51f44:       e3500000        cmp     r0, #0  ; 0x0
 2f51f48:       03e03003        mvneq   r3, #3  ; 0x3
 2f51f4c:       05853014        streq   r3, [r5, #20]
 2f51f50:       0a00001d        beq     0x2f51fcc
 2f51f54:       e5951008        ldr     r1, [r5, #8]
 2f51f58:       e5950024        ldr     r0, [r5, #36]
 2f51f5c:       e3a03000        mov     r3, #0  ; 0x0
 2f51f60:       e3a02000        mov     r2, #0  ; 0x0
 2f51f64:       eb00008b        bl      0x2f52198
 2f51f68:       e3500000        cmp     r0, #0  ; 0x0
 2f51f6c:       0a00000c        beq     0x2f51fa4
 2f51f70:       ebfffcfa        bl      0x2f51360
 2f51f74:       e59f2060        ldr     r2, [pc, #96]   ; 0x2f51fdc
 2f51f78:       e1a03000        mov     r3, r0
 2f51f7c:       e585301c        str     r3, [r5, #28]
 2f51f80:       e1a03005        mov     r3, r5
 2f51f84:       e3a00000        mov     r0, #0  ; 0x0
 2f51f88:       e3a01000        mov     r1, #0  ; 0x0
 2f51f8c:       e58d7004        str     r7, [sp, #4]
 2f51f90:       e58d7000        str     r7, [sp]
 2f51f94:       eb00007b        bl      0x2f52188
 2f51f98:       e3500000        cmp     r0, #0  ; 0x0
 2f51f9c:       e5850004        str     r0, [r5, #4]
 2f51fa0:       1a000002        bne     0x2f51fb0
 2f51fa4:       e3e03004        mvn     r3, #4  ; 0x4
 2f51fa8:       e5853014        str     r3, [r5, #20]
 2f51fac:       ea000006        b       0x2f51fcc
 2f51fb0:       e3a01064        mov     r1, #100        ; 0x64
 2f51fb4:       eb00006f        bl      0x2f52178
 2f51fb8:       e5953020        ldr     r3, [r5, #32]
 2f51fbc:       e3a02001        mov     r2, #1  ; 0x1
 2f51fc0:       e1c370b8        strh    r7, [r3, #8]
 2f51fc4:       e5c52018        strb    r2, [r5, #24]
 2f51fc8:       e5857014        str     r7, [r5, #20]
 2f51fcc:       e1a00005        mov     r0, r5
 2f51fd0:       e28dd00c        add     sp, sp, #12     ; 0xc
 2f51fd4:       e8bd40f0        pop     {r4, r5, r6, r7, lr}
 2f51fd8:       e12fff1e        bx      lr
 2f51fdc:       02f51e38        rscseq  r1, r5, #896    ; 0x380
 2f51fe0:       01010098        swpeq   r0, r8, [r1]
 2f51fe4:       01ee2090        strbeq  r2, [lr]!
 2f51fe8:       01ee207c        mvneq   r2, ip, ror r0
 2f51fec:       e3500001        cmp     r0, #1  ; 0x1
 2f51ff0:       0a000009        beq     0x2f5201c
 2f51ff4:       e3500002        cmp     r0, #2  ; 0x2
 2f51ff8:       0a000004        beq     0x2f52010
 2f51ffc:       e3500003        cmp     r0, #3  ; 0x3
 2f52000:       13a00000        movne   r0, #0  ; 0x0
 2f52004:       03a00311        moveq   r0, #1140850688 ; 0x44000000
 2f52008:       0240091f        subeq   r0, r0, #507904 ; 0x7c000
 2f5200c:       e12fff1e        bx      lr
 2f52010:       e3a00311        mov     r0, #1140850688 ; 0x44000000
 2f52014:       e240091a        sub     r0, r0, #425984 ; 0x68000
 2f52018:       e12fff1e        bx      lr
 2f5201c:       e3a00443        mov     r0, #1124073472 ; 0x43000000
 2f52020:       e380073e        orr     r0, r0, #16252928       ; 0xf80000
 2f52024:       e12fff1e        bx      lr
 2f52028:       e3500001        cmp     r0, #1  ; 0x1
 2f5202c:       0a000007        beq     0x2f52050
 2f52030:       e3500002        cmp     r0, #2  ; 0x2
 2f52034:       0a000003        beq     0x2f52048
 2f52038:       e3500003        cmp     r0, #3  ; 0x3
 2f5203c:       13a00000        movne   r0, #0  ; 0x0
 2f52040:       03a00003        moveq   r0, #3  ; 0x3
 2f52044:       e12fff1e        bx      lr
 2f52048:       e3a00004        mov     r0, #4  ; 0x4
 2f5204c:       e12fff1e        bx      lr
 2f52050:       e3a0000a        mov     r0, #10 ; 0xa
 2f52054:       e12fff1e        bx      lr
 2f52058:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52064
 2f5205c:       e59cc000        ldr     ip, [ip]
 2f52060:       e12fff1c        bx      ip
 2f52064:       01ee2068        mvneq   r2, r8, rrx
 2f52068:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52074
 2f5206c:       e59cc000        ldr     ip, [ip]
 2f52070:       e12fff1c        bx      ip
 2f52074:       01ee2060        mvneq   r2, r0, rrx
 2f52078:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52084
 2f5207c:       e59cc000        ldr     ip, [ip]
 2f52080:       e12fff1c        bx      ip
 2f52084:       01ee205c        mvneq   r2, ip, asr r0
 2f52088:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52094
 2f5208c:       e59cc000        ldr     ip, [ip]
 2f52090:       e12fff1c        bx      ip
 2f52094:       01ee2034        mvneq   r2, r4, lsr r0
 2f52098:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f520a4
 2f5209c:       e59cc000        ldr     ip, [ip]
 2f520a0:       e12fff1c        bx      ip
 2f520a4:       01ee2010        mvneq   r2, r0, lsl r0
 2f520a8:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f520b4
 2f520ac:       e59cc000        ldr     ip, [ip]
 2f520b0:       e12fff1c        bx      ip
 2f520b4:       01ee2014        mvneq   r2, r4, lsl r0
 2f520b8:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f520c4
 2f520bc:       e59cc000        ldr     ip, [ip]
 2f520c0:       e12fff1c        bx      ip
 2f520c4:       01ee2018        mvneq   r2, r8, lsl r0
 2f520c8:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f520d4
 2f520cc:       e59cc000        ldr     ip, [ip]
 2f520d0:       e12fff1c        bx      ip
 2f520d4:       01ee201c        mvneq   r2, ip, lsl r0
 2f520d8:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f520e4
 2f520dc:       e59cc000        ldr     ip, [ip]
 2f520e0:       e12fff1c        bx      ip
 2f520e4:       01ee2020        mvneq   r2, r0, lsr #32
 2f520e8:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f520f4
 2f520ec:       e59cc000        ldr     ip, [ip]
 2f520f0:       e12fff1c        bx      ip
 2f520f4:       01ee2024        mvneq   r2, r4, lsr #32
 2f520f8:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52104
 2f520fc:       e59cc000        ldr     ip, [ip]
 2f52100:       e12fff1c        bx      ip
 2f52104:       01ee2028        mvneq   r2, r8, lsr #32
 2f52108:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52114
 2f5210c:       e59cc000        ldr     ip, [ip]
 2f52110:       e12fff1c        bx      ip
 2f52114:       01ee202c        mvneq   r2, ip, lsr #32
 2f52118:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52124
 2f5211c:       e59cc000        ldr     ip, [ip]
 2f52120:       e12fff1c        bx      ip
 2f52124:       01ee2030        mvneq   r2, r0, lsr r0
 2f52128:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52134
 2f5212c:       e59cc000        ldr     ip, [ip]
 2f52130:       e12fff1c        bx      ip
 2f52134:       01ee2064        mvneq   r2, r4, rrx
 2f52138:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52144
 2f5213c:       e59cc000        ldr     ip, [ip]
 2f52140:       e12fff1c        bx      ip
 2f52144:       01ee2038        mvneq   r2, r8, lsr r0
 2f52148:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52154
 2f5214c:       e59cc000        ldr     ip, [ip]
 2f52150:       e12fff1c        bx      ip
 2f52154:       01ee203c        mvneq   r2, ip, lsr r0
 2f52158:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52164
 2f5215c:       e59cc000        ldr     ip, [ip]
 2f52160:       e12fff1c        bx      ip
 2f52164:       01ee2040        mvneq   r2, r0, asr #32
 2f52168:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52174
 2f5216c:       e59cc000        ldr     ip, [ip]
 2f52170:       e12fff1c        bx      ip
 2f52174:       01ee2044        mvneq   r2, r4, asr #32
 2f52178:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52184
 2f5217c:       e59cc000        ldr     ip, [ip]
 2f52180:       e12fff1c        bx      ip
 2f52184:       01ee2048        mvneq   r2, r8, asr #32
 2f52188:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52194
 2f5218c:       e59cc000        ldr     ip, [ip]
 2f52190:       e12fff1c        bx      ip
 2f52194:       01ee204c        mvneq   r2, ip, asr #32
 2f52198:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f521a4
 2f5219c:       e59cc000        ldr     ip, [ip]
 2f521a0:       e12fff1c        bx      ip
 2f521a4:       01ee2050        mvneq   r2, r0, asr r0
 2f521a8:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f521b4
 2f521ac:       e59cc000        ldr     ip, [ip]
 2f521b0:       e12fff1c        bx      ip
 2f521b4:       01ee2054        mvneq   r2, r4, asr r0
 2f521b8:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f521c4
 2f521bc:       e59cc000        ldr     ip, [ip]
 2f521c0:       e12fff1c        bx      ip
 2f521c4:       01ee2058        mvneq   r2, r8, asr r0
 2f521c8:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f521d4
 2f521cc:       e59cc000        ldr     ip, [ip]
 2f521d0:       e12fff1c        bx      ip
 2f521d4:       01ee2004        mvneq   r2, r4
 2f521d8:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f521e4
 2f521dc:       e59cc000        ldr     ip, [ip]
 2f521e0:       e12fff1c        bx      ip
 2f521e4:       01ee2000        mvneq   r2, r0
 2f521e8:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f521f4
 2f521ec:       e59cc000        ldr     ip, [ip]
 2f521f0:       e12fff1c        bx      ip
 2f521f4:       01ee2008        mvneq   r2, r8
 2f521f8:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52204
 2f521fc:       e59cc000        ldr     ip, [ip]
 2f52200:       e12fff1c        bx      ip
 2f52204:       01ee2074        mvneq   r2, r4, ror r0
 2f52208:       e59fc004        ldr     ip, [pc, #4]    ; 0x2f52214
 2f5220c:       e59cc000        ldr     ip, [ip]
 2f52210:       e12fff1c        bx      ip
 2f52214:       01ee2070        mvneq   r2, r0, ror r0
 2f52218:       00002278        andeq   r2, r0, r8, ror r2
        ...
 2f52224:       000022e4        andeq   r2, r0, r4, ror #5
 2f52228:       fef92010        mrc2    0, 7, r2, cr9, cr0, {0}
 2f5222c:       00002268        andeq   r2, r0, r8, ror #4
        ...
 2f52238:       000022f0        strdeq  r2, [r0], -r0
 2f5223c:       fef92000        cdp2    0, 15, cr2, cr9, cr0, {0}
 2f52240:       000022d8        ldrdeq  r2, [r0], -r8
        ...
 2f5224c:       00002324        andeq   r2, r0, r4, lsr #6
 2f52250:       fef92070        mrc2    0, 7, r2, cr9, cr0, {3}
        ...
 2f52268:       80000016        andhi   r0, r0, r6, lsl r0
 2f5226c:       80000009        andhi   r0, r0, r9
 2f52270:       80000008        andhi   r0, r0, r8
 2f52274:       00000000        andeq   r0, r0, r0
 2f52278:       80000447        andhi   r0, r0, r7, asr #8
 2f5227c:       800001c7        andhi   r0, r0, r7, asr #3
 2f52280:       800001cf        andhi   r0, r0, pc, asr #3
 2f52284:       80000574        andhi   r0, r0, r4, ror r5
 2f52288:       800001ee        andhi   r0, r0, lr, ror #3
 2f5228c:       80000003        andhi   r0, r0, r3
 2f52290:       8000022d        andhi   r0, r0, sp, lsr #4
 2f52294:       80000229        andhi   r0, r0, r9, lsr #4
 2f52298:       800001eb        andhi   r0, r0, fp, ror #3
 2f5229c:       800004d0        ldrdhi  r0, [r0], -r0
 2f522a0:       800001f1        strdhi  r0, [r0], -r1
 2f522a4:       80000274        andhi   r0, r0, r4, ror r2
 2f522a8:       80000005        andhi   r0, r0, r5
 2f522ac:       80000004        andhi   r0, r0, r4
 2f522b0:       8000026d        andhi   r0, r0, sp, ror #4
 2f522b4:       800001ec        andhi   r0, r0, ip, ror #3
 2f522b8:       80000273        andhi   r0, r0, r3, ror r2
 2f522bc:       80000002        andhi   r0, r0, r2
 2f522c0:       800001ef        andhi   r0, r0, pc, ror #3
 2f522c4:       80000642        andhi   r0, r0, r2, asr #12
 2f522c8:       80000446        andhi   r0, r0, r6, asr #8
 2f522cc:       80000275        andhi   r0, r0, r5, ror r2
 2f522d0:       800007d8        ldrdhi  r0, [r0], -r8
 2f522d4:       00000000        andeq   r0, r0, r0
 2f522d8:       0000230c        andeq   r2, r0, ip, lsl #6
 2f522dc:       000022fa        strdeq  r2, [r0], -sl
 2f522e0:       00000000        andeq   r0, r0, r0
 2f522e4:       45524f43        ldrbmi  r4, [r2, #-3907]
 2f522e8:       2e4c4c44        cdpcs   12, 4, cr4, cr12, cr4, {2}
 2f522ec:       006c6c64        rsbeq   r6, ip, r4, ror #24
 2f522f0:       44444543        strbmi  r4, [r4], #-1347
 2f522f4:       6c642e4b        stclvs  14, cr2, [r4], #-300
 2f522f8:       0004006c        andeq   r0, r4, ip, rrx
 2f522fc:       434b4444        movtmi  r4, #46148      ; 0xb444
 2f52300:       6b636f6c        blvs    0x482e0b8
 2f52304:       46746547        ldrbtmi r6, [r4], -r7, asr #10
 2f52308:       00716572        rsbseq  r6, r1, r2, ror r5
 2f5230c:       44440007        strbmi  r0, [r4], #-7
 2f52310:       6f6c434b        svcvs   0x006c434b
 2f52314:       65536b63        ldrbvs  r6, [r3, #-2915]
 2f52318:       74614774        strbtvc r4, [r1], #-1908
 2f5231c:       4d676e69        stclmi  14, cr6, [r7, #-420]!
 2f52320:       0065646f        rsbeq   r6, r5, pc, ror #8
 2f52324:       44505343        ldrbmi  r5, [r0], #-835
 2f52328:       642e4b44        strtvs  r4, [lr], #-2884
 2f5232c:       00006c6c        andeq   r6, r0, ip, ror #24
 2f52330:       00000000        andeq   r0, r0, r0
 2f52334:       44d0652c        ldrbmi  r6, [r0], #1324
 2f52338:       00000000        andeq   r0, r0, r0
 2f5233c:       000023bc        strheq  r2, [r0], -ip
 2f52340:       00000001        andeq   r0, r0, r1
 2f52344:       0000000a        andeq   r0, r0, sl
 2f52348:       0000000a        andeq   r0, r0, sl
 2f5234c:       00002358        andeq   r2, r0, r8, asr r3
 2f52350:       00002380        andeq   r2, r0, r0, lsl #7
 2f52354:       000023a8        andeq   r2, r0, r8, lsr #7
 2f52358:       00001394        muleq   r0, r4, r3
 2f5235c:       00001368        andeq   r1, r0, r8, ror #6
 2f52360:       000013bc        strheq  r1, [r0], -ip
 2f52364:       00001648        andeq   r1, r0, r8, asr #12
 2f52368:       00001390        muleq   r0, r0, r3
 2f5236c:       0000139c        muleq   r0, ip, r3
 2f52370:       000013a0        andeq   r1, r0, r0, lsr #7
 2f52374:       000013a4        andeq   r1, r0, r4, lsr #7
 2f52378:       000013b4        strheq  r1, [r0], -r4
 2f5237c:       000013ac        andeq   r1, r0, ip, lsr #7
 2f52380:       000023c4        andeq   r2, r0, r4, asr #7
 2f52384:       000023ce        andeq   r2, r0, lr, asr #7
 2f52388:       000023d9        ldrdeq  r2, [r0], -r9
 2f5238c:       000023e7        andeq   r2, r0, r7, ror #7
 2f52390:       000023f0        strdeq  r2, [r0], -r0
 2f52394:       000023f9        strdeq  r2, [r0], -r9
 2f52398:       00002407        andeq   r2, r0, r7, lsl #8
 2f5239c:       00002413        andeq   r2, r0, r3, lsl r4
 2f523a0:       0000241c        andeq   r2, r0, ip, lsl r4
 2f523a4:       00002425        andeq   r2, r0, r5, lsr #8
 2f523a8:       00010000        andeq   r0, r1, r0
 2f523ac:       00030002        andeq   r0, r3, r2
 2f523b0:       00050004        andeq   r0, r5, r4
 2f523b4:       00070006        andeq   r0, r7, r6
 2f523b8:       00090008        andeq   r0, r9, r8
 2f523bc:       2e433249        cdpcs   2, 4, cr3, cr3, cr9, {2}
 2f523c0:       006c6c64        rsbeq   r6, ip, r4, ror #24
 2f523c4:       5f433249        svcpl   0x00433249
 2f523c8:       736f6c43        cmnvc   pc, #17152      ; 0x4300
 2f523cc:       32490065        subcc   r0, r9, #101    ; 0x65
 2f523d0:       65445f43        strbvs  r5, [r4, #-3907]
 2f523d4:       74696e69        strbtvc r6, [r9], #-3689
 2f523d8:       43324900        teqmi   r2, #0  ; 0x0
 2f523dc:       434f495f        movtmi  r4, #63839      ; 0xf95f
 2f523e0:       72746e6f        rsbsvc  r6, r4, #1776   ; 0x6f0
 2f523e4:       49006c6f        stmdbmi r0, {r0, r1, r2, r3, r5, r6, sl, fp, sp, lr}
 2f523e8:       495f4332        ldmdbmi pc, {r1, r4, r5, r8, r9, lr}^
 2f523ec:       0074696e        rsbseq  r6, r4, lr, ror #18
 2f523f0:       5f433249        svcpl   0x00433249
 2f523f4:       6e65704f        cdpvs   0, 6, cr7, cr5, cr15, {2}
 2f523f8:       43324900        teqmi   r2, #0  ; 0x0
 2f523fc:       776f505f        undefined
 2f52400:       6f447265        svcvs   0x00447265
 2f52404:       49006e77        stmdbmi r0, {r0, r1, r2, r4, r5, r6, r9, sl, fp, sp, lr}
 2f52408:       505f4332        subspl  r4, pc, r2, lsr r3
 2f5240c:       7265776f        rsbvc   r7, r5, #29097984       ; 0x1bc0000
 2f52410:       49007055        stmdbmi r0, {r0, r2, r4, r6, ip, sp, lr}
 2f52414:       525f4332        subspl  r4, pc, #-939524096     ; 0xc8000000
 2f52418:       00646165        rsbeq   r6, r4, r5, ror #2
 2f5241c:       5f433249        svcpl   0x00433249
 2f52420:       6b656553        blvs    0x48ab974
 2f52424:       43324900        teqmi   r2, #0  ; 0x0
 2f52428:       6972575f        ldmdbvs r2!, {r0, r1, r2, r3, r4, r6, r8, r9, sl, ip, lr}^
 2f5242c:       Address 0x02f5242c is out of bounds.

Disassembly of section .data:

01ee2000 <.data>:
 1ee2000:       00001c6c        andeq   r1, r0, ip, ror #24
 1ee2004:       000024e0        andeq   r2, r0, r0, ror #9
 1ee2008:       00002428        andeq   r2, r0, r8, lsr #8
 1ee200c:       00000000        andeq   r0, r0, r0
 1ee2010:       000068d0        ldrdeq  r6, [r0], -r0
 1ee2014:       00017714        andeq   r7, r1, r4, lsl r7
 1ee2018:       00017a5c        andeq   r7, r1, ip, asr sl
 1ee201c:       0000d500        andeq   sp, r0, r0, lsl #10
 1ee2020:       0000db20        andeq   sp, r0, r0, lsr #22
 1ee2024:       00012cb4        strheq  r2, [r1], -r4
 1ee2028:       0000f794        muleq   r0, r4, r7
 1ee202c:       0000dc64        andeq   sp, r0, r4, ror #24
 1ee2030:       0000db04        andeq   sp, r0, r4, lsl #22
 1ee2034:       0000eb84        andeq   lr, r0, r4, lsl #23
 1ee2038:       0000de98        muleq   r0, r8, lr
 1ee203c:       00011558        andeq   r1, r1, r8, asr r5
 1ee2040:       00012dec        andeq   r2, r1, ip, ror #27
 1ee2044:       00012d08        andeq   r2, r1, r8, lsl #26
 1ee2048:       0000e098        muleq   r0, r8, r0
 1ee204c:       00011f48        andeq   r1, r1, r8, asr #30
 1ee2050:       000114fc        strdeq  r1, [r1], -ip
 1ee2054:       00012c50        andeq   r2, r1, r0, asr ip
 1ee2058:       0000dd28        andeq   sp, r0, r8, lsr #26
 1ee205c:       00010a44        andeq   r0, r1, r4, asr #20
 1ee2060:       00006920        andeq   r6, r0, r0, lsr #18
 1ee2064:       000115ac        andeq   r1, r1, ip, lsr #11
 1ee2068:       0003aec4        andeq   sl, r3, r4, asr #29
 1ee206c:       00000000        andeq   r0, r0, r0
 1ee2070:       00002f00        andeq   r2, r0, r0, lsl #30
 1ee2074:       Address 0x01ee2074 is out of bounds.

Disassembly of section .pdata:

02f54000 <.pdata>:
 2f54000:       02f51210        rscseq  r1, r5, #1      ; 0x1
 2f54004:       40003802        andmi   r3, r0, r2, lsl #16
 2f54008:       02f512f0        rscseq  r1, r5, #15     ; 0xf
 2f5400c:       40000800        andmi   r0, r0, r0, lsl #16
 2f54010:       02f51310        rscseq  r1, r5, #1073741824     ; 0x40000000
 2f54014:       40001401        andmi   r1, r0, r1, lsl #8
 2f54018:       02f51360        rscseq  r1, r5, #-2147483647    ; 0x80000001
 2f5401c:       40000200        andmi   r0, r0, r0, lsl #4
 2f54020:       02f51368        rscseq  r1, r5, #-1610612735    ; 0xa0000001
 2f54024:       40000a01        andmi   r0, r0, r1, lsl #20
 2f54028:       02f51390        rscseq  r1, r5, #1073741826     ; 0x40000002
 2f5402c:       40000100        andmi   r0, r0, r0, lsl #2
 2f54030:       02f51394        rscseq  r1, r5, #1342177282     ; 0x50000002
 2f54034:       40000200        andmi   r0, r0, r0, lsl #4
 2f54038:       02f5139c        rscseq  r1, r5, #1879048194     ; 0x70000002
 2f5403c:       40000100        andmi   r0, r0, r0, lsl #2
 2f54040:       02f513a0        rscseq  r1, r5, #-2147483646    ; 0x80000002
 2f54044:       40000100        andmi   r0, r0, r0, lsl #2
 2f54048:       02f513a4        rscseq  r1, r5, #-1879048190    ; 0x90000002
 2f5404c:       40000200        andmi   r0, r0, r0, lsl #4
 2f54050:       02f513ac        rscseq  r1, r5, #-1342177278    ; 0xb0000002
 2f54054:       40000200        andmi   r0, r0, r0, lsl #4
 2f54058:       02f513b4        rscseq  r1, r5, #-805306366     ; 0xd0000002
 2f5405c:       40000200        andmi   r0, r0, r0, lsl #4
 2f54060:       02f513bc        rscseq  r1, r5, #-268435454     ; 0xf0000002
 2f54064:       40009d01        andmi   r9, r0, r1, lsl #26
 2f54068:       02f51630        rscseq  r1, r5, #50331648       ; 0x3000000
 2f5406c:       40000601        andmi   r0, r0, r1, lsl #12
 2f54070:       02f51648        rscseq  r1, r5, #75497472       ; 0x4800000
 2f54074:       40002d02        andmi   r2, r0, r2, lsl #26
 2f54078:       02f516fc        rscseq  r1, r5, #264241152      ; 0xfc00000
 2f5407c:       40002f02        andmi   r2, r0, r2, lsl #30
 2f54080:       02f517b8        rscseq  r1, r5, #48234496       ; 0x2e00000
 2f54084:       40000500        andmi   r0, r0, r0, lsl #10
 2f54088:       02f517cc        rscseq  r1, r5, #53477376       ; 0x3300000
 2f5408c:       40001900        andmi   r1, r0, r0, lsl #18
 2f54090:       02f51830        rscseq  r1, r5, #3145728        ; 0x300000
 2f54094:       40001601        andmi   r1, r0, r1, lsl #12
 2f54098:       02f51888        rscseq  r1, r5, #8912896        ; 0x880000
 2f5409c:       40005b01        andmi   r5, r0, r1, lsl #22
 2f540a0:       02f519f4        rscseq  r1, r5, #3997696        ; 0x3d0000
 2f540a4:       40006d02        andmi   r6, r0, r2, lsl #26
 2f540a8:       02f51ba8        rscseq  r1, r5, #172032 ; 0x2a000
 2f540ac:       4000a401        andmi   sl, r0, r1, lsl #8
 2f540b0:       02f51e38        rscseq  r1, r5, #896    ; 0x380
 2f540b4:       40000b01        andmi   r0, r0, r1, lsl #22
 2f540b8:       02f51e64        rscseq  r1, r5, #1600   ; 0x640
 2f540bc:       40006202        andmi   r6, r0, r2, lsl #4
 2f540c0:       02f51fec        rscseq  r1, r5, #944    ; 0x3b0
 2f540c4:       40000f00        andmi   r0, r0, r0, lsl #30
 2f540c8:       02f52028        rscseq  r2, r5, #40     ; 0x28
 2f540cc:       40000c00        andmi   r0, r0, r0, lsl #24