33f8faa0 : 33f8faa0: eaffff6f b 33f8f864 33f8faa4 : 33f8faa4: e59f2608 ldr r2, [pc, #1544] ; 33f900b4 33f8faa8: e5923004 ldr r3, [r2, #4] 33f8faac: e3530000 cmp r3, #0 ; 0x0 33f8fab0: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr} 33f8fab4: 1a000002 bne 33f8fac4 33f8fab8: e5923008 ldr r3, [r2, #8] 33f8fabc: e3530000 cmp r3, #0 ; 0x0 33f8fac0: 0a000178 beq 33f900a8 33f8fac4: e3500000 cmp r0, #0 ; 0x0 33f8fac8: ba000176 blt 33f900a8 33f8facc: e280000b add r0, r0, #11 ; 0xb 33f8fad0: e3500016 cmp r0, #22 ; 0x16 33f8fad4: d3a0a010 movle sl, #16 ; 0x10 33f8fad8: da000002 ble 33f8fae8 33f8fadc: e3c0a007 bic sl, r0, #7 ; 0x7 33f8fae0: e35a0f7e cmp sl, #504 ; 0x1f8 33f8fae4: 2a000015 bcs 33f8fb40 33f8fae8: e59f35c8 ldr r3, [pc, #1480] ; 33f900b8 33f8faec: e1a021aa lsr r2, sl, #3 33f8faf0: e0833182 add r3, r3, r2, lsl #3 33f8faf4: e593c00c ldr ip, [r3, #12] 33f8faf8: e15c0003 cmp ip, r3 33f8fafc: 1a000004 bne 33f8fb14 33f8fb00: e28c3008 add r3, ip, #8 ; 0x8 33f8fb04: e593c00c ldr ip, [r3, #12] 33f8fb08: e15c0003 cmp ip, r3 33f8fb0c: 02827002 addeq r7, r2, #2 ; 0x2 33f8fb10: 0a00003b beq 33f8fc04 33f8fb14: e59c3004 ldr r3, [ip, #4] 33f8fb18: e3c33003 bic r3, r3, #3 ; 0x3 33f8fb1c: e08c3003 add r3, ip, r3 33f8fb20: e5932004 ldr r2, [r3, #4] 33f8fb24: e59c000c ldr r0, [ip, #12] 33f8fb28: e59c1008 ldr r1, [ip, #8] 33f8fb2c: e3822001 orr r2, r2, #1 ; 0x1 33f8fb30: e5801008 str r1, [r0, #8] 33f8fb34: e5832004 str r2, [r3, #4] 33f8fb38: e581000c str r0, [r1, #12] 33f8fb3c: ea00004c b 33f8fc74 33f8fb40: e1b024aa lsrs r2, sl, #9 33f8fb44: 01a021aa lsreq r2, sl, #3 33f8fb48: 0a000013 beq 33f8fb9c 33f8fb4c: e3520004 cmp r2, #4 ; 0x4 33f8fb50: 91a0332a lsrls r3, sl, #6 33f8fb54: 92832038 addls r2, r3, #56 ; 0x38 33f8fb58: 9a00000f bls 33f8fb9c 33f8fb5c: e3520014 cmp r2, #20 ; 0x14 33f8fb60: 9282205b addls r2, r2, #91 ; 0x5b 33f8fb64: 9a00000c bls 33f8fb9c 33f8fb68: e3520054 cmp r2, #84 ; 0x54 33f8fb6c: 91a0362a lsrls r3, sl, #12 33f8fb70: 9283206e addls r2, r3, #110 ; 0x6e 33f8fb74: 9a000008 bls 33f8fb9c 33f8fb78: e3520f55 cmp r2, #340 ; 0x154 33f8fb7c: 91a037aa lsrls r3, sl, #15 33f8fb80: 92832077 addls r2, r3, #119 ; 0x77 33f8fb84: 9a000004 bls 33f8fb9c 33f8fb88: e59f352c ldr r3, [pc, #1324] ; 33f900bc 33f8fb8c: e1520003 cmp r2, r3 33f8fb90: 91a0392a lsrls r3, sl, #18 33f8fb94: 83a0207e movhi r2, #126 ; 0x7e 33f8fb98: 9283207c addls r2, r3, #124 ; 0x7c 33f8fb9c: e59f3514 ldr r3, [pc, #1300] ; 33f900b8 33f8fba0: e0834182 add r4, r3, r2, lsl #3 33f8fba4: e594000c ldr r0, [r4, #12] 33f8fba8: ea000012 b 33f8fbf8 33f8fbac: e5903004 ldr r3, [r0, #4] 33f8fbb0: e3c33003 bic r3, r3, #3 ; 0x3 33f8fbb4: e06a1003 rsb r1, sl, r3 33f8fbb8: e351000f cmp r1, #15 ; 0xf 33f8fbbc: c2422001 subgt r2, r2, #1 ; 0x1 33f8fbc0: ca00000e bgt 33f8fc00 33f8fbc4: e3510000 cmp r1, #0 ; 0x0 33f8fbc8: e590c00c ldr ip, [r0, #12] 33f8fbcc: ba000008 blt 33f8fbf4 33f8fbd0: e0803003 add r3, r0, r3 33f8fbd4: e5932004 ldr r2, [r3, #4] 33f8fbd8: e5901008 ldr r1, [r0, #8] 33f8fbdc: e3822001 orr r2, r2, #1 ; 0x1 33f8fbe0: e58c1008 str r1, [ip, #8] 33f8fbe4: e5832004 str r2, [r3, #4] 33f8fbe8: e581c00c str ip, [r1, #12] 33f8fbec: e2805008 add r5, r0, #8 ; 0x8 33f8fbf0: ea00012d b 33f900ac 33f8fbf4: e1a0000c mov r0, ip 33f8fbf8: e1500004 cmp r0, r4 33f8fbfc: 1affffea bne 33f8fbac 33f8fc00: e2827001 add r7, r2, #1 ; 0x1 33f8fc04: e59f54ac ldr r5, [pc, #1196] ; 33f900b8 33f8fc08: e2859008 add r9, r5, #8 ; 0x8 33f8fc0c: e599c008 ldr ip, [r9, #8] 33f8fc10: e15c0009 cmp ip, r9 33f8fc14: 0a000056 beq 33f8fd74 33f8fc18: e59c3004 ldr r3, [ip, #4] 33f8fc1c: e3c34003 bic r4, r3, #3 ; 0x3 33f8fc20: e06a0004 rsb r0, sl, r4 33f8fc24: e350000f cmp r0, #15 ; 0xf 33f8fc28: da000009 ble 33f8fc54 33f8fc2c: e08c200a add r2, ip, sl 33f8fc30: e38a3001 orr r3, sl, #1 ; 0x1 33f8fc34: e3801001 orr r1, r0, #1 ; 0x1 33f8fc38: e58c3004 str r3, [ip, #4] 33f8fc3c: e589200c str r2, [r9, #12] 33f8fc40: e5892008 str r2, [r9, #8] 33f8fc44: e7820000 str r0, [r2, r0] 33f8fc48: e9820202 stmib r2, {r1, r9} 33f8fc4c: e582900c str r9, [r2, #12] 33f8fc50: ea000007 b 33f8fc74 33f8fc54: e3500000 cmp r0, #0 ; 0x0 33f8fc58: e589900c str r9, [r9, #12] 33f8fc5c: e5899008 str r9, [r9, #8] 33f8fc60: ba000005 blt 33f8fc7c 33f8fc64: e08c2004 add r2, ip, r4 33f8fc68: e5923004 ldr r3, [r2, #4] 33f8fc6c: e3833001 orr r3, r3, #1 ; 0x1 33f8fc70: e5823004 str r3, [r2, #4] 33f8fc74: e28c5008 add r5, ip, #8 ; 0x8 33f8fc78: ea00010b b 33f900ac 33f8fc7c: e3540c02 cmp r4, #512 ; 0x200 33f8fc80: 2a00000c bcs 33f8fcb8 33f8fc84: e5953004 ldr r3, [r5, #4] 33f8fc88: e1a011a4 lsr r1, r4, #3 33f8fc8c: e1a00141 asr r0, r1, #2 33f8fc90: e3a02001 mov r2, #1 ; 0x1 33f8fc94: e1833012 orr r3, r3, r2, lsl r0 33f8fc98: e5853004 str r3, [r5, #4] 33f8fc9c: e0851181 add r1, r5, r1, lsl #3 33f8fca0: e5913008 ldr r3, [r1, #8] 33f8fca4: e58c100c str r1, [ip, #12] 33f8fca8: e58c3008 str r3, [ip, #8] 33f8fcac: e583c00c str ip, [r3, #12] 33f8fcb0: e581c008 str ip, [r1, #8] 33f8fcb4: ea00002e b 33f8fd74 33f8fcb8: e1a014a4 lsr r1, r4, #9 33f8fcbc: e3510004 cmp r1, #4 ; 0x4 33f8fcc0: 91a03324 lsrls r3, r4, #6 33f8fcc4: 92831038 addls r1, r3, #56 ; 0x38 33f8fcc8: 9a00000f bls 33f8fd0c 33f8fccc: e3510014 cmp r1, #20 ; 0x14 33f8fcd0: 9281105b addls r1, r1, #91 ; 0x5b 33f8fcd4: 9a00000c bls 33f8fd0c 33f8fcd8: e3510054 cmp r1, #84 ; 0x54 33f8fcdc: 91a03624 lsrls r3, r4, #12 33f8fce0: 9283106e addls r1, r3, #110 ; 0x6e 33f8fce4: 9a000008 bls 33f8fd0c 33f8fce8: e3510f55 cmp r1, #340 ; 0x154 33f8fcec: 91a037a4 lsrls r3, r4, #15 33f8fcf0: 92831077 addls r1, r3, #119 ; 0x77 33f8fcf4: 9a000004 bls 33f8fd0c 33f8fcf8: e59f33bc ldr r3, [pc, #956] ; 33f900bc 33f8fcfc: e1510003 cmp r1, r3 33f8fd00: 91a03924 lsrls r3, r4, #18 33f8fd04: 83a0107e movhi r1, #126 ; 0x7e 33f8fd08: 9283107c addls r1, r3, #124 ; 0x7c 33f8fd0c: e59f63a4 ldr r6, [pc, #932] ; 33f900b8 33f8fd10: e0865181 add r5, r6, r1, lsl #3 33f8fd14: e5950008 ldr r0, [r5, #8] 33f8fd18: e1500005 cmp r0, r5 33f8fd1c: 11a02000 movne r2, r0 33f8fd20: 1a000009 bne 33f8fd4c 33f8fd24: e5963004 ldr r3, [r6, #4] 33f8fd28: e1a01141 asr r1, r1, #2 33f8fd2c: e3a02001 mov r2, #1 ; 0x1 33f8fd30: e1833112 orr r3, r3, r2, lsl r1 33f8fd34: e5863004 str r3, [r6, #4] 33f8fd38: e1a03000 mov r3, r0 33f8fd3c: ea000008 b 33f8fd64 33f8fd40: e5922008 ldr r2, [r2, #8] 33f8fd44: e1520005 cmp r2, r5 33f8fd48: 0a000003 beq 33f8fd5c 33f8fd4c: e5923004 ldr r3, [r2, #4] 33f8fd50: e3c33003 bic r3, r3, #3 ; 0x3 33f8fd54: e1540003 cmp r4, r3 33f8fd58: 3afffff8 bcc 33f8fd40 33f8fd5c: e592300c ldr r3, [r2, #12] 33f8fd60: e1a00002 mov r0, r2 33f8fd64: e58c300c str r3, [ip, #12] 33f8fd68: e58c0008 str r0, [ip, #8] 33f8fd6c: e580c00c str ip, [r0, #12] 33f8fd70: e583c008 str ip, [r3, #8] 33f8fd74: e1a03147 asr r3, r7, #2 33f8fd78: e3a02001 mov r2, #1 ; 0x1 33f8fd7c: e1a00312 lsl r0, r2, r3 33f8fd80: e59f3330 ldr r3, [pc, #816] ; 33f900b8 33f8fd84: e5932004 ldr r2, [r3, #4] 33f8fd88: e1500002 cmp r0, r2 33f8fd8c: 8a00004f bhi 33f8fed0 33f8fd90: e1100002 tst r0, r2 33f8fd94: 03c73003 biceq r3, r7, #3 ; 0x3 33f8fd98: 02837004 addeq r7, r3, #4 ; 0x4 33f8fd9c: 0a000001 beq 33f8fda8 33f8fda0: ea000003 b 33f8fdb4 33f8fda4: e2877004 add r7, r7, #4 ; 0x4 33f8fda8: e1a00080 lsl r0, r0, #1 33f8fdac: e1100002 tst r0, r2 33f8fdb0: 0afffffb beq 33f8fda4 33f8fdb4: e59f32fc ldr r3, [pc, #764] ; 33f900b8 33f8fdb8: e0831187 add r1, r3, r7, lsl #3 33f8fdbc: e1a05007 mov r5, r7 33f8fdc0: e1a02001 mov r2, r1 33f8fdc4: e592400c ldr r4, [r2, #12] 33f8fdc8: ea000020 b 33f8fe50 33f8fdcc: e5943004 ldr r3, [r4, #4] 33f8fdd0: e3c33003 bic r3, r3, #3 ; 0x3 33f8fdd4: e06a6003 rsb r6, sl, r3 33f8fdd8: e356000f cmp r6, #15 ; 0xf 33f8fddc: da00000e ble 33f8fe1c 33f8fde0: e1a05004 mov r5, r4 33f8fde4: e594c00c ldr ip, [r4, #12] 33f8fde8: e5b50008 ldr r0, [r5, #8]! 33f8fdec: e084300a add r3, r4, sl 33f8fdf0: e38a1001 orr r1, sl, #1 ; 0x1 33f8fdf4: e3862001 orr r2, r6, #1 ; 0x1 33f8fdf8: e58c0008 str r0, [ip, #8] 33f8fdfc: e580c00c str ip, [r0, #12] 33f8fe00: e5841004 str r1, [r4, #4] 33f8fe04: e5893008 str r3, [r9, #8] 33f8fe08: e589300c str r3, [r9, #12] 33f8fe0c: e7836006 str r6, [r3, r6] 33f8fe10: e9830204 stmib r3, {r2, r9} 33f8fe14: e583900c str r9, [r3, #12] 33f8fe18: ea0000a3 b 33f900ac 33f8fe1c: e3560000 cmp r6, #0 ; 0x0 33f8fe20: e594c00c ldr ip, [r4, #12] 33f8fe24: ba000008 blt 33f8fe4c 33f8fe28: e0843003 add r3, r4, r3 33f8fe2c: e5932004 ldr r2, [r3, #4] 33f8fe30: e1a05004 mov r5, r4 33f8fe34: e5b51008 ldr r1, [r5, #8]! 33f8fe38: e3822001 orr r2, r2, #1 ; 0x1 33f8fe3c: e5832004 str r2, [r3, #4] 33f8fe40: e58c1008 str r1, [ip, #8] 33f8fe44: e581c00c str ip, [r1, #12] 33f8fe48: ea000097 b 33f900ac 33f8fe4c: e1a0400c mov r4, ip 33f8fe50: e1540002 cmp r4, r2 33f8fe54: 1affffdc bne 33f8fdcc 33f8fe58: e2855001 add r5, r5, #1 ; 0x1 33f8fe5c: e3150003 tst r5, #3 ; 0x3 33f8fe60: 12822008 addne r2, r2, #8 ; 0x8 33f8fe64: 1affffd6 bne 33f8fdc4 33f8fe68: e1a03007 mov r3, r7 33f8fe6c: e3130003 tst r3, #3 ; 0x3 33f8fe70: e1a02001 mov r2, r1 33f8fe74: e2433001 sub r3, r3, #1 ; 0x1 33f8fe78: 059f2238 ldreq r2, [pc, #568] ; 33f900b8 33f8fe7c: 05923004 ldreq r3, [r2, #4] 33f8fe80: 01c33000 biceq r3, r3, r0 33f8fe84: 05823004 streq r3, [r2, #4] 33f8fe88: 0a000002 beq 33f8fe98 33f8fe8c: e4121008 ldr r1, [r2], #-8 33f8fe90: e1510002 cmp r1, r2 33f8fe94: 0afffff4 beq 33f8fe6c 33f8fe98: e59f3218 ldr r3, [pc, #536] ; 33f900b8 33f8fe9c: e5933004 ldr r3, [r3, #4] 33f8fea0: e1a00080 lsl r0, r0, #1 33f8fea4: e1500003 cmp r0, r3 33f8fea8: 8a000008 bhi 33f8fed0 33f8feac: e3500000 cmp r0, #0 ; 0x0 33f8feb0: 0a000006 beq 33f8fed0 33f8feb4: e1a07005 mov r7, r5 33f8feb8: ea000001 b 33f8fec4 33f8febc: e2877004 add r7, r7, #4 ; 0x4 33f8fec0: e1a00080 lsl r0, r0, #1 33f8fec4: e1100003 tst r0, r3 33f8fec8: 1affffb9 bne 33f8fdb4 33f8fecc: eafffffa b 33f8febc 33f8fed0: e59f21e0 ldr r2, [pc, #480] ; 33f900b8 33f8fed4: e5926008 ldr r6, [r2, #8] 33f8fed8: e5963004 ldr r3, [r6, #4] 33f8fedc: e3c37003 bic r7, r3, #3 ; 0x3 33f8fee0: e06a0007 rsb r0, sl, r7 33f8fee4: e350000f cmp r0, #15 ; 0xf 33f8fee8: ca000064 bgt 33f90080 33f8feec: e59f31c0 ldr r3, [pc, #448] ; 33f900b4 33f8fef0: e5933034 ldr r3, [r3, #52] 33f8fef4: e5929408 ldr r9, [r2, #1032] 33f8fef8: e2833010 add r3, r3, #16 ; 0x10 33f8fefc: e3790001 cmn r9, #1 ; 0x1 33f8ff00: e083500a add r5, r3, sl 33f8ff04: 12853eff addne r3, r5, #4080 ; 0xff0 33f8ff08: 1283300f addne r3, r3, #15 ; 0xf 33f8ff0c: 13c35eff bicne r5, r3, #4080 ; 0xff0 33f8ff10: 13c5500f bicne r5, r5, #15 ; 0xf 33f8ff14: e1a00005 mov r0, r5 33f8ff18: ebfffe11 bl 33f8f764 33f8ff1c: e3700001 cmn r0, #1 ; 0x1 33f8ff20: e1a04000 mov r4, r0 33f8ff24: 0a00004e beq 33f90064 33f8ff28: e0862007 add r2, r6, r7 33f8ff2c: e1500002 cmp r0, r2 33f8ff30: 2a000002 bcs 33f8ff40 33f8ff34: e59f317c ldr r3, [pc, #380] ; 33f900b8 33f8ff38: e1560003 cmp r6, r3 33f8ff3c: 1a000048 bne 33f90064 33f8ff40: e59f116c ldr r1, [pc, #364] ; 33f900b4 33f8ff44: e591300c ldr r3, [r1, #12] 33f8ff48: e1540002 cmp r4, r2 33f8ff4c: e0853003 add r3, r5, r3 33f8ff50: e581300c str r3, [r1, #12] 33f8ff54: 1a000005 bne 33f8ff70 33f8ff58: e59f2158 ldr r2, [pc, #344] ; 33f900b8 33f8ff5c: e0853007 add r3, r5, r7 33f8ff60: e5922008 ldr r2, [r2, #8] 33f8ff64: e3833001 orr r3, r3, #1 ; 0x1 33f8ff68: e5823004 str r3, [r2, #4] 33f8ff6c: ea000033 b 33f90040 33f8ff70: e3790001 cmn r9, #1 ; 0x1 33f8ff74: 10843003 addne r3, r4, r3 33f8ff78: 059f3138 ldreq r3, [pc, #312] ; 33f900b8 33f8ff7c: 10623003 rsbne r3, r2, r3 33f8ff80: 05834408 streq r4, [r3, #1032] 33f8ff84: 1581300c strne r3, [r1, #12] 33f8ff88: e2143007 ands r3, r4, #7 ; 0x7 33f8ff8c: 12630008 rsbne r0, r3, #8 ; 0x8 33f8ff90: 01a00003 moveq r0, r3 33f8ff94: e2853eff add r3, r5, #4080 ; 0xff0 33f8ff98: 10844000 addne r4, r4, r0 33f8ff9c: e283300f add r3, r3, #15 ; 0xf 33f8ffa0: e0843003 add r3, r4, r3 33f8ffa4: e3c33eff bic r3, r3, #4080 ; 0xff0 33f8ffa8: e0842005 add r2, r4, r5 33f8ffac: e3c3300f bic r3, r3, #15 ; 0xf 33f8ffb0: e0623003 rsb r3, r2, r3 33f8ffb4: e0835000 add r5, r3, r0 33f8ffb8: e1a00005 mov r0, r5 33f8ffbc: ebfffde8 bl 33f8f764 33f8ffc0: e3700001 cmn r0, #1 ; 0x1 33f8ffc4: e1a03000 mov r3, r0 33f8ffc8: 0a000025 beq 33f90064 33f8ffcc: e59f00e0 ldr r0, [pc, #224] ; 33f900b4 33f8ffd0: e59f10e0 ldr r1, [pc, #224] ; 33f900b8 33f8ffd4: e590200c ldr r2, [r0, #12] 33f8ffd8: e0643003 rsb r3, r4, r3 33f8ffdc: e0853003 add r3, r5, r3 33f8ffe0: e0852002 add r2, r5, r2 33f8ffe4: e3833001 orr r3, r3, #1 ; 0x1 33f8ffe8: e1560001 cmp r6, r1 33f8ffec: e580200c str r2, [r0, #12] 33f8fff0: e5814008 str r4, [r1, #8] 33f8fff4: e5843004 str r3, [r4, #4] 33f8fff8: 0a000010 beq 33f90040 33f8fffc: e357000f cmp r7, #15 ; 0xf 33f90000: 93a03001 movls r3, #1 ; 0x1 33f90004: 95843004 strls r3, [r4, #4] 33f90008: 9a000015 bls 33f90064 33f9000c: e5963004 ldr r3, [r6, #4] 33f90010: e247200c sub r2, r7, #12 ; 0xc 33f90014: e3c22007 bic r2, r2, #7 ; 0x7 33f90018: e2033001 and r3, r3, #1 ; 0x1 33f9001c: e1823003 orr r3, r2, r3 33f90020: e3a01005 mov r1, #5 ; 0x5 33f90024: e352000f cmp r2, #15 ; 0xf 33f90028: e0862002 add r2, r6, r2 33f9002c: e5863004 str r3, [r6, #4] 33f90030: e5821008 str r1, [r2, #8] 33f90034: e5821004 str r1, [r2, #4] 33f90038: 82860008 addhi r0, r6, #8 ; 0x8 33f9003c: 8bfffe08 blhi 33f8f864 33f90040: e59f106c ldr r1, [pc, #108] ; 33f900b4 33f90044: e591200c ldr r2, [r1, #12] 33f90048: e5913038 ldr r3, [r1, #56] 33f9004c: e1520003 cmp r2, r3 33f90050: 85812038 strhi r2, [r1, #56] 33f90054: e59f1058 ldr r1, [pc, #88] ; 33f900b4 33f90058: e591303c ldr r3, [r1, #60] 33f9005c: e1520003 cmp r2, r3 33f90060: 8581203c strhi r2, [r1, #60] 33f90064: e59f304c ldr r3, [pc, #76] ; 33f900b8 33f90068: e5933008 ldr r3, [r3, #8] 33f9006c: e5933004 ldr r3, [r3, #4] 33f90070: e3c33003 bic r3, r3, #3 ; 0x3 33f90074: e06a0003 rsb r0, sl, r3 33f90078: e350000f cmp r0, #15 ; 0xf 33f9007c: da000009 ble 33f900a8 33f90080: e59fc030 ldr ip, [pc, #48] ; 33f900b8 33f90084: e59c2008 ldr r2, [ip, #8] 33f90088: e3800001 orr r0, r0, #1 ; 0x1 33f9008c: e082100a add r1, r2, sl 33f90090: e38a3001 orr r3, sl, #1 ; 0x1 33f90094: e5823004 str r3, [r2, #4] 33f90098: e58c1008 str r1, [ip, #8] 33f9009c: e5810004 str r0, [r1, #4] 33f900a0: e2825008 add r5, r2, #8 ; 0x8 33f900a4: ea000000 b 33f900ac 33f900a8: e3a05000 mov r5, #0 ; 0x0 33f900ac: e1a00005 mov r0, r5 33f900b0: e8bd87f0 pop {r4, r5, r6, r7, r8, r9, sl, pc} 33f900b4: 33fa3e20 .word 0x33fa3e20 33f900b8: 33f9ff54 .word 0x33f9ff54 33f900bc: 00000554 .word 0x00000554