[*] Binary protection state of libsystemd-shared-249.so

  
  	Full RELRO     Canary found      NX enabled   DSO          No RPATH     No RUNPATH   No Symbols


[*] Function popen tear down of libsystemd-shared-249.so

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/libsystemd-shared-249.so @ 0x35dcc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00035dcc ()                  | void fcn_00035dcc (int32_t arg1) {
                                             |     r0 = arg1;
    0x00035dcc andseq r8, ip, ip, asr ip     |     __asm ("andseq r8, ip, ip, asr ip");
                                             |     if (? != ?) {
    0x00035dd0 andeq fp, ip, r6, lsl r1      |         
                                             |     }
    0x00035dd4 andseq r8, ip, r0, ror 24     |     __asm ("andseq r8, ip, r0, ror 24");
                                             |     if (? != ?) {
    0x00035dd8 andeq r8, ip, r6, lsl r1      |         r8 = ip & (r6 << r1);
                                             |     }
    0x00035ddc andseq r8, ip, r4, ror 24     |     __asm ("andseq r8, ip, r4, ror 24");
                                             |     if (? != ?) {
    0x00035de0 andeq pc, r0, r6, lsl r8      |         pc = r0 & (r6 << r8);
                                             |     }
    0x00035de4 andseq r8, ip, r8, ror 24     |     __asm ("andseq r8, ip, r8, ror 24");
                                             |     if (? != ?) {
    0x00035de8 andeq pc, r0, r6, lsl sb      |         pc = r0 & (r6 << sb);
                                             |     }
    0x00035dec andseq r8, ip, ip, ror 24     |     __asm ("andseq r8, ip, ip, ror 24");
                                             |     if (? != ?) {
    0x00035df0 andeq pc, r0, r6, lsl sl      |         pc = r0 & (r6 << sl);
                                             |     }
    0x00035df4 andseq r8, ip, r0, ror ip     |     __asm ("andseq r8, ip, r0, ror ip");
                                             |     if (? != ?) {
    0x00035df8 andeq ip, pc, r6, lsl r5      |         
                                             |     }
    0x00035dfc andseq r8, ip, r4, ror ip     |     __asm ("andseq r8, ip, r4, ror ip");
                                             |     if (? != ?) {
    0x00035e00 andeq pc, r0, r6, lsl fp      |         pc = r0 & (r6 << fp);
                                             |     }
    0x00035e04 andseq r8, ip, r8, ror ip     |     __asm ("andseq r8, ip, r8, ror ip");
                                             |     if (? != ?) {
    0x00035e08 andeq fp, r8, r6, lsl sb      |         
                                             |     }
    0x00035e0c andseq r8, ip, ip, ror ip     |     __asm ("andseq r8, ip, ip, ror ip");
                                             |     if (? != ?) {
    0x00035e10 andeq r4, fp, r6, lsl r5      |         r4 = fp & (r6 << r5);
                                             |     }
    0x00035e14 andseq r8, ip, r0, lsl 25     |     __asm ("andseq r8, ip, r0, lsl 25");
                                             |     if (? != ?) {
    0x00035e18 andeq pc, r7, r6, lsl ip      |         pc = r7 & (r6 << ip);
                                             |     }
    0x00035e1c andseq r8, ip, r4, lsl 25     |     __asm ("andseq r8, ip, r4, lsl 25");
                                             |     if (? != ?) {
    0x00035e20 andeq sl, r3, r6, lsl r3      |         sl = r3 & (r6 << r3);
                                             |     }
    0x00035e24 andseq r8, ip, r8, lsl 25     |     __asm ("andseq r8, ip, r8, lsl 25");
                                             |     if (? != ?) {
    0x00035e28 andeq r5, sb, r6, lsl r4      |         r5 = sb & (r6 << r4);
                                             |     }
    0x00035e2c andseq r8, ip, ip, lsl 25     |     __asm ("andseq r8, ip, ip, lsl 25");
                                             |     if (? != ?) {
    0x00035e30 andeq r5, r4, r6, lsl pc      |         r5 = r4 & (r6 << pc);
                                             |     }
    0x00035e34 mulseq ip, r0, ip             |     __asm ("mulseq ip, r0, ip");
                                             |     if (? != ?) {
    0x00035e38 andeq r4, r3, r6, lsl sp      |         r4 = r3 & (r6 << sp);
                                             |     }
    0x00035e3c mulseq ip, r4, ip             |     __asm ("mulseq ip, r4, ip");
                                             |     if (? != ?) {
    0x00035e40 andeq r0, sb, r6, lsl r0      |         r0 = sb & (r6 << r0);
                                             |     }
    0x00035e44 mulseq ip, r8, ip             |     __asm ("mulseq ip, r8, ip");
                                             |     if (? != ?) {
    0x00035e48 andeq pc, r0, r6, lsl ip      |         pc = r0 & (r6 << ip);
                                             |     }
    0x00035e4c mulseq ip, ip, ip             |     __asm ("mulseq ip, ip, ip");
                                             |     if (? != ?) {
    0x00035e50 andeq lr, r7, r6, lsl r4      |         lr = r7 & (r6 << r4);
                                             |     }
    0x00035e54 andseq r8, ip, r0, lsr 25     |     __asm ("andseq r8, ip, r0, lsr 25");
                                             |     if (? != ?) {
    0x00035e58 andeq sb, sp, r6, lsl r1      |         sb = sp & (r6 << r1);
                                             |     }
    0x00035e5c andseq r8, ip, r4, lsr 25     |     __asm ("andseq r8, ip, r4, lsr 25");
                                             |     if (? != ?) {
    0x00035e60 andeq sb, sp, r6, lsl sl      |         sb = sp & (r6 << sl);
                                             |     }
    0x00035e64 andseq r8, ip, r8, lsr 25     |     __asm ("andseq r8, ip, r8, lsr 25");
                                             |     if (? != ?) {
    0x00035e68 andeq sp, r2, r6, lsl r2      |         
                                             |     }
    0x00035e6c andseq r8, ip, ip, lsr 25     |     __asm ("andseq r8, ip, ip, lsr 25");
                                             |     if (? != ?) {
    0x00035e70 andeq r5, lr, r6, lsl r1      |         r5 = lr & (r6 << r1);
                                             |     }
    0x00035e74 ldrheq r8, [ip], -r0          |     __asm ("ldrheq r8, [ip], -r0");
                                             |     if (? != ?) {
    0x00035e78 andeq r3, sb, r6, lsl fp      |         r3 = sb & (r6 << fp);
                                             |     }
    0x00035e7c ldrheq r8, [ip], -r4          |     __asm ("ldrheq r8, [ip], -r4");
                                             |     if (? != ?) {
    0x00035e80 andeq r1, pc, r6, lsl sl      |         r1 = pc & (r6 << sl);
                                             |     }
    0x00035e84 ldrheq r8, [ip], -r8          |     __asm ("ldrheq r8, [ip], -r8");
                                             |     if (? != ?) {
    0x00035e88 andeq sp, r4, r6, lsl r4      |         
                                             |     }
    0x00035e8c ldrheq r8, [ip], -ip          |     __asm ("ldrheq r8, [ip], -ip");
                                             |     if (? != ?) {
    0x00035e90 andeq r6, pc, r6, lsl r3      |         r6 = pc & (r6 << r3);
                                             |     }
    0x00035e94 andseq r8, ip, r0, asr 25     |     __asm ("andseq r8, ip, r0, asr 25");
                                             |     if (? != ?) {
    0x00035e98 andeq r1, r4, r6, lsl r8      |         r1 = r4 & (r6 << r8);
                                             |     }
    0x00035e9c andseq r8, ip, r4, asr 25     |     __asm ("andseq r8, ip, r4, asr 25");
                                             |     if (? != ?) {
    0x00035ea0 andeq r8, fp, r6, lsl pc      |         r8 = fp & (r6 << pc);
                                             |     }
    0x00035ea4 andseq r8, ip, r8, asr 25     |     __asm ("andseq r8, ip, r8, asr 25");
                                             |     if (? != ?) {
    0x00035ea8 andeq fp, r5, r6, lsl r2      |         
                                             |     }
    0x00035eac andseq r8, ip, ip, asr 25     |     __asm ("andseq r8, ip, ip, asr 25");
                                             |     if (? != ?) {
    0x00035eb0 andeq r8, r4, r6, lsl sb      |         r8 = r4 & (r6 << sb);
                                             |     }
    0x00035eb4 ldrsbeq r8, [ip], -r0         |     __asm ("ldrsbeq r8, [ip], -r0");
                                             |     if (? != ?) {
    0x00035eb8 andeq r3, sb, r6, lsl ip      |         r3 = sb & (r6 << ip);
                                             |     }
    0x00035ebc ldrsbeq r8, [ip], -r4         |     __asm ("ldrsbeq r8, [ip], -r4");
                                             |     if (? != ?) {
    0x00035ec0 andeq ip, sb, r6, lsl pc      |         
                                             |     }
    0x00035ec4 ldrsbeq r8, [ip], -r8         |     __asm ("ldrsbeq r8, [ip], -r8");
                                             |     if (? != ?) {
    0x00035ec8 andeq pc, sb, r6, lsl sl      |         pc = sb & (r6 << sl);
                                             |     }
    0x00035ecc ldrsbeq r8, [ip], -ip         |     __asm ("ldrsbeq r8, [ip], -ip");
                                             |     if (? != ?) {
    0x00035ed0 andeq pc, r0, r6, lsl sp      |         pc = r0 & (r6 << sp);
                                             |     }
    0x00035ed4 andseq r8, ip, r0, ror 25     |     __asm ("andseq r8, ip, r0, ror 25");
                                             |     if (? != ?) {
    0x00035ed8 andeq r8, ip, r6, lsl ip      |         r8 = ip & (r6 << ip);
                                             |     }
    0x00035edc andseq r8, ip, r4, ror 25     |     __asm ("andseq r8, ip, r4, ror 25");
                                             |     if (? != ?) {
    0x00035ee0 andeq pc, r0, r6, lsl lr      |         pc = r0 & (r6 << lr);
                                             |     }
    0x00035ee4 andseq r8, ip, r8, ror 25     |     __asm ("andseq r8, ip, r8, ror 25");
                                             |     if (? != ?) {
    0x00035ee8 andeq r6, fp, r6, lsl pc      |         r6 = fp & (r6 << pc);
                                             |     }
    0x00035eec andseq r8, ip, ip, ror 25     |     __asm ("andseq r8, ip, ip, ror 25");
                                             |     if (? != ?) {
    0x00035ef0 andeq r7, r5, r6, lsl sl      |         r7 = r5 & (r6 << sl);
                                             |     }
    0x00035ef4 ldrsheq r8, [ip], -r0         |     __asm ("ldrsheq r8, [ip], -r0");
                                             |     if (? != ?) {
    0x00035ef8 andeq r2, r5, r6, lsl r7      |         r2 = r5 & (r6 << r7);
                                             |     }
    0x00035efc ldrsheq r8, [ip], -r4         |     __asm ("ldrsheq r8, [ip], -r4");
                                             |     if (? != ?) {
    0x00035f00 andeq pc, r0, r6, lsl pc      |         pc = r0 & (r6 << pc);
                                             |     }
    0x00035f04 ldrsheq r8, [ip], -r8         |     __asm ("ldrsheq r8, [ip], -r8");
                                             |     if (? != ?) {
    0x00035f08 andeq r0, r1, r6, lsl r0      |         r0 = r1 & (r6 << r0);
                                             |     }
    0x00035f0c ldrsheq r8, [ip], -ip         |     __asm ("ldrsheq r8, [ip], -ip");
                                             |     if (? != ?) {
    0x00035f10 andeq sp, r2, r6, lsl sb      |         
                                             |     }
    0x00035f14 andseq r8, ip, r0, lsl 26     |     __asm ("andseq r8, ip, r0, lsl 26");
                                             |     if (? != ?) {
    0x00035f18 andeq r3, ip, r6, lsl pc      |         r3 = ip & (r6 << pc);
                                             |     }
    0x00035f1c andseq r8, ip, r4, lsl 26     |     __asm ("andseq r8, ip, r4, lsl 26");
                                             |     if (? != ?) {
    0x00035f20 andeq r5, pc, r6, lsl pc      |         r5 = pc & (r6 << pc);
                                             |     }
    0x00035f24 andseq r8, ip, r8, lsl 26     |     __asm ("andseq r8, ip, r8, lsl 26");
                                             |     if (? != ?) {
    0x00035f28 andeq pc, r5, r6, lsl sb      |         pc = r5 & (r6 << sb);
                                             |     }
    0x00035f2c andseq r8, ip, ip, lsl 26     |     __asm ("andseq r8, ip, ip, lsl 26");
                                             |     if (? != ?) {
    0x00035f30 andeq r0, lr, r6, lsl sb      |         r0 = lr & (r6 << sb);
                                             |     }
    0x00035f34 andseq r8, ip, r0, lsl sp     |     __asm ("andseq r8, ip, r0, lsl sp");
                                             |     if (? != ?) {
    0x00035f38 andeq r2, ip, r6, lsl fp      |         r2 = ip & (r6 << fp);
                                             |     }
    0x00035f3c andseq r8, ip, r4, lsl sp     |     __asm ("andseq r8, ip, r4, lsl sp");
                                             |     if (? != ?) {
    0x00035f40 andeq sb, sl, r6, lsl sp      |         sb = sl & (r6 << sp);
                                             |     }
    0x00035f44 andseq r8, ip, r8, lsl sp     |     __asm ("andseq r8, ip, r8, lsl sp");
                                             |     if (? != ?) {
    0x00035f48 andeq r2, r7, r6, lsl sb      |         r2 = r7 & (r6 << sb);
                                             |     }
    0x00035f4c andseq r8, ip, ip, lsl sp     |     __asm ("andseq r8, ip, ip, lsl sp");
                                             |     if (? != ?) {
    0x00035f50 andeq r5, r7, r6, lsl r6      |         r5 = r7 & (r6 << r6);
                                             |     }
    0x00035f54 andseq r8, ip, r0, lsr 26     |     __asm ("andseq r8, ip, r0, lsr 26");
                                             |     if (? != ?) {
    0x00035f58 andeq r3, r8, r6, lsl r3      |         r3 = r8 & (r6 << r3);
                                             |     }
    0x00035f5c andseq r8, ip, r4, lsr 26     |     __asm ("andseq r8, ip, r4, lsr 26");
                                             |     if (? != ?) {
    0x00035f60 andeq ip, r7, r6, lsl sp      |         
                                             |     }
    0x00035f64 andseq r8, ip, r8, lsr 26     |     __asm ("andseq r8, ip, r8, lsr 26");
                                             |     if (? != ?) {
    0x00035f68 andeq r0, r1, r6, lsl r1      |         r0 = r1 & (r6 << r1);
                                             |     }
    0x00035f6c andseq r8, ip, ip, lsr 26     |     __asm ("andseq r8, ip, ip, lsr 26");
                                             |     if (? != ?) {
    0x00035f70 andeq r0, r1, r6, lsl r2      |         r0 = r1 & (r6 << r2);
                                             |     }
    0x00035f74 andseq r8, ip, r0, lsr sp     |     __asm ("andseq r8, ip, r0, lsr sp");
                                             |     if (? != ?) {
    0x00035f78 andeq ip, r2, r6, lsl sl      |         
                                             |     }
    0x00035f7c andseq r8, ip, r4, lsr sp     |     __asm ("andseq r8, ip, r4, lsr sp");
                                             |     if (? != ?) {
    0x00035f80 andeq r0, r7, r6, lsl pc      |         r0 = r7 & (r6 << pc);
                                             |     }
    0x00035f84 andseq r8, ip, r8, lsr sp     |     __asm ("andseq r8, ip, r8, lsr sp");
                                             |     if (? != ?) {
    0x00035f88 andeq lr, r7, r6, lsl r0      |         lr = r7 & (r6 << r0);
                                             |     }
    0x00035f8c andseq r8, ip, ip, lsr sp     |     __asm ("andseq r8, ip, ip, lsr sp");
                                             |     if (? != ?) {
    0x00035f90 andeq r3, r6, r6, lsl r1      |         r3 = r6 & (r6 << r1);
                                             |     }
    0x00035f94 andseq r8, ip, r0, asr 26     |     __asm ("andseq r8, ip, r0, asr 26");
                                             |     if (? != ?) {
    0x00035f98 andeq r2, r5, r6, lsl pc      |         r2 = r5 & (r6 << pc);
                                             |     }
    0x00035f9c andseq r8, ip, r4, asr 26     |     __asm ("andseq r8, ip, r4, asr 26");
                                             |     if (? != ?) {
    0x00035fa0 andeq lr, r7, r6, lsl r1      |         lr = r7 & (r6 << r1);
                                             |     }
    0x00035fa4 andseq r8, ip, r8, asr 26     |     __asm ("andseq r8, ip, r8, asr 26");
                                             |     if (? != ?) {
    0x00035fa8 andeq r0, r1, r6, lsl r3      |         r0 = r1 & (r6 << r3);
                                             |     }
    0x00035fac andseq r8, ip, ip, asr 26     |     __asm ("andseq r8, ip, ip, asr 26");
                                             |     if (? != ?) {
    0x00035fb0 andeq r0, r1, r6, lsl r4      |         r0 = r1 & (r6 << r4);
                                             |     }
    0x00035fb4 andseq r8, ip, r0, asr sp     |     __asm ("andseq r8, ip, r0, asr sp");
                                             |     if (? != ?) {
    0x00035fb8 andeq sp, lr, r6, lsl sl      |         
                                             |     }
    0x00035fbc andseq r8, ip, r4, asr sp     |     __asm ("andseq r8, ip, r4, asr sp");
                                             |     if (? != ?) {
    0x00035fc0 andeq pc, r7, r6, lsl r2      |         pc = r7 & (r6 << r2);
                                             |     }
    0x00035fc4 andseq r8, ip, r8, asr sp     |     __asm ("andseq r8, ip, r8, asr sp");
                                             |     if (? != ?) {
    0x00035fc8 andeq r0, r1, r6, lsl r5      |         r0 = r1 & (r6 << r5);
                                             |     }
    0x00035fcc andseq r8, ip, ip, asr sp     |     __asm ("andseq r8, ip, ip, asr sp");
                                             |     if (? != ?) {
    0x00035fd0 andeq r0, r1, r6, lsl r6      |         r0 = r1 & (r6 << r6);
                                             |     }
    0x00035fd4 andseq r8, ip, r0, ror 26     |     __asm ("andseq r8, ip, r0, ror 26");
                                             |     if (? != ?) {
    0x00035fd8 andeq r3, r5, r6, lsl r3      |         r3 = r5 & (r6 << r3);
                                             |     }
    0x00035fdc andseq r8, ip, r4, ror 26     |     __asm ("andseq r8, ip, r4, ror 26");
                                             |     if (? != ?) {
    0x00035fe0 andeq r1, r3, r6, lsl r8      |         r1 = r3 & (r6 << r8);
                                             |     }
    0x00035fe4 andseq r8, ip, r8, ror 26     |     __asm ("andseq r8, ip, r8, ror 26");
                                             |     if (? != ?) {
    0x00035fe8 andeq r4, fp, r6, lsl pc      |         r4 = fp & (r6 << pc);
                                             |     }
    0x00035fec andseq r8, ip, ip, ror 26     |     __asm ("andseq r8, ip, ip, ror 26");
                                             |     if (? != ?) {
    0x00035ff0 andeq sp, r2, r6, lsl r3      |         
                                             |     }
    0x00035ff4 andseq r8, ip, r0, ror sp     |     __asm ("andseq r8, ip, r0, ror sp");
                                             |     if (? != ?) {
    0x00035ff8 andeq r7, sb, r6, lsl r6      |         r7 = sb & (r6 << r6);
                                             |     }
    0x00035ffc andseq r8, ip, r4, ror sp     |     __asm ("andseq r8, ip, r4, ror sp");
                                             |     if (? != ?) {
    0x00036000 andeq r5, sp, r6, lsl r1      |         r5 = sp & (r6 << r1);
                                             |     }
    0x00036004 andseq r8, ip, r8, ror sp     |     __asm ("andseq r8, ip, r8, ror sp");
                                             |     if (? != ?) {
    0x00036008 andeq r0, r1, r6, lsl r8      |         r0 = r1 & (r6 << r8);
                                             |     }
    0x0003600c andseq r8, ip, ip, ror sp     |     __asm ("andseq r8, ip, ip, ror sp");
                                             |     if (? != ?) {
    0x00036010 andeq r0, r1, r6, lsl sb      |         r0 = r1 & (r6 << sb);
                                             |     }
    0x00036014 andseq r8, ip, r0, lsl 27     |     __asm ("andseq r8, ip, r0, lsl 27");
                                             |     if (? != ?) {
    0x00036018 andeq r0, r1, r6, lsl sl      |         r0 = r1 & (r6 << sl);
                                             |     }
    0x0003601c andseq r8, ip, r4, lsl 27     |     __asm ("andseq r8, ip, r4, lsl 27");
                                             |     if (? != ?) {
    0x00036020 andeq r0, r1, r6, lsl fp      |         r0 = r1 & (r6 << fp);
                                             |     }
    0x00036024 andseq r8, ip, r8, lsl 27     |     __asm ("andseq r8, ip, r8, lsl 27");
                                             |     if (? != ?) {
    0x00036028 andeq r4, pc, r6, lsl r5      |         r4 = pc & (r6 << r5);
                                             |     }
    0x0003602c andseq r8, ip, ip, lsl 27     |     __asm ("andseq r8, ip, ip, lsl 27");
                                             |     if (? != ?) {
    0x00036030 andeq r5, sl, r6, lsl sp      |         r5 = sl & (r6 << sp);
                                             |     }
    0x00036034 mulseq ip, r0, sp             |     __asm ("mulseq ip, r0, sp");
                                             |     if (? != ?) {
    0x00036038 andeq r0, r1, r6, lsl ip      |         r0 = r1 & (r6 << ip);
                                             |     }
    0x0003603c mulseq ip, r4, sp             |     __asm ("mulseq ip, r4, sp");
                                             |     if (? != ?) {
    0x00036040 andeq r6, r5, r6, lsl ip      |         r6 = r5 & (r6 << ip);
                                             |     }
    0x00036044 mulseq ip, r8, sp             |     __asm ("mulseq ip, r8, sp");
                                             |     if (? != ?) {
    0x00036048 andeq r6, r2, r6, lsl lr      |         r6 = r2 & (r6 << lr);
                                             |     }
    0x0003604c mulseq ip, ip, sp             |     __asm ("mulseq ip, ip, sp");
                                             |     if (? != ?) {
    0x00036050 andeq sl, ip, r6, lsl r0      |         sl = ip & (r6 << r0);
                                             |     }
    0x00036054 andseq r8, ip, r0, lsr 27     |     __asm ("andseq r8, ip, r0, lsr 27");
                                             |     if (? != ?) {
    0x00036058 andeq ip, fp, r6, lsl ip      |         
                                             |     }
    0x0003605c andseq r8, ip, r4, lsr 27     |     __asm ("andseq r8, ip, r4, lsr 27");
                                             |     if (? != ?) {
    0x00036060 andeq r0, r2, r6, lsl r5      |         r0 = r2 & (r6 << r5);
                                             |     }
    0x00036064 andseq r8, ip, r8, lsr 27     |     __asm ("andseq r8, ip, r8, lsr 27");
                                             |     if (? != ?) {
    0x00036068 andeq fp, sb, r6, lsl ip      |         
                                             |     }
    0x0003606c andseq r8, ip, ip, lsr 27     |     __asm ("andseq r8, ip, ip, lsr 27");
                                             |     if (? != ?) {
    0x00036070 andeq r0, r1, r6, lsl sp      |         r0 = r1 & (r6 << sp);
                                             |     }
    0x00036074 ldrheq r8, [ip], -r0          |     __asm ("ldrheq r8, [ip], -r0");
                                             |     if (? != ?) {
    0x00036078 andeq r0, ip, r6, lsl lr      |         r0 = ip & (r6 << lr);
                                             |     }
    0x0003607c ldrheq r8, [ip], -r4          |     __asm ("ldrheq r8, [ip], -r4");
                                             |     if (? != ?) {
    0x00036080 andeq r3, r7, r6, lsl r7      |         r3 = r7 & (r6 << r7);
                                             |     }
    0x00036084 ldrheq r8, [ip], -r8          |     __asm ("ldrheq r8, [ip], -r8");
                                             |     if (? != ?) {
    0x00036088 andeq pc, r3, r6, lsl lr      |         pc = r3 & (r6 << lr);
                                             |     }
    0x0003608c ldrheq r8, [ip], -ip          |     __asm ("ldrheq r8, [ip], -ip");
                                             |     if (? != ?) {
    0x00036090 andeq r3, pc, r6, lsl r1      |         r3 = pc & (r6 << r1);
                                             |     }
    0x00036094 andseq r8, ip, r0, asr 27     |     __asm ("andseq r8, ip, r0, asr 27");
                                             |     if (? != ?) {
    0x00036098 andeq r8, r8, r6, lsl r4      |         r8 &= (r6 << r4);
                                             |     }
    0x0003609c andseq r8, ip, r4, asr 27     |     __asm ("andseq r8, ip, r4, asr 27");
                                             |     if (? != ?) {
    0x000360a0 andeq r0, r1, r6, lsl lr      |         r0 = r1 & (r6 << lr);
                                             |     }
    0x000360a4 andseq r8, ip, r8, asr 27     |     __asm ("andseq r8, ip, r8, asr 27");
                                             |     if (? != ?) {
    0x000360a8 andeq r4, r2, r6, lsl ip      |         r4 = r2 & (r6 << ip);
                                             |     }
    0x000360ac andseq r8, ip, ip, asr 27     |     __asm ("andseq r8, ip, ip, asr 27");
                                             |     if (? != ?) {
    0x000360b0 andeq r1, r2, r6, lsl ip      |         r1 = r2 & (r6 << ip);
                                             |     }
    0x000360b4 ldrsbeq r8, [ip], -r0         |     __asm ("ldrsbeq r8, [ip], -r0");
                                             |     if (? != ?) {
    0x000360b8 andeq r7, sp, r6, lsl sl      |         r7 = sp & (r6 << sl);
                                             |     }
    0x000360bc ldrsbeq r8, [ip], -r4         |     __asm ("ldrsbeq r8, [ip], -r4");
                                             |     if (? != ?) {
    0x000360c0 andeq pc, r1, r6, lsl ip      |         pc = r1 & (r6 << ip);
                                             |     }
    0x000360c4 ldrsbeq r8, [ip], -r8         |     __asm ("ldrsbeq r8, [ip], -r8");
                                             |     if (? != ?) {
    0x000360c8 andeq fp, sb, r6, lsl pc      |         
                                             |     }
    0x000360cc ldrsbeq r8, [ip], -ip         |     __asm ("ldrsbeq r8, [ip], -ip");
                                             |     if (? != ?) {
    0x000360d0 andeq lr, fp, r6, lsl sl      |         lr = fp & (r6 << sl);
                                             |     }
    0x000360d4 andseq r8, ip, r0, ror 27     |     __asm ("andseq r8, ip, r0, ror 27");
                                             |     if (? != ?) {
    0x000360d8 andeq r5, sp, r6, lsl r8      |         r5 = sp & (r6 << r8);
                                             |     }
    0x000360dc andseq r8, ip, r4, ror 27     |     __asm ("andseq r8, ip, r4, ror 27");
                                             |     if (? != ?) {
    0x000360e0 andeq lr, r8, r6, lsl r2      |         lr = r8 & (r6 << r2);
                                             |     }
    0x000360e4 andseq r8, ip, r8, ror 27     |     __asm ("andseq r8, ip, r8, ror 27");
                                             |     if (? != ?) {
    0x000360e8 andeq r4, sp, r6, lsl ip      |         r4 = sp & (r6 << ip);
                                             |     }
    0x000360ec andseq r8, ip, ip, ror 27     |     __asm ("andseq r8, ip, ip, ror 27");
                                             |     if (? != ?) {
    0x000360f0 andeq r0, r1, r6, lsl pc      |         r0 = r1 & (r6 << pc);
                                             |     }
    0x000360f4 ldrsheq r8, [ip], -r0         |     __asm ("ldrsheq r8, [ip], -r0");
                                             |     if (? != ?) {
    0x000360f8 andeq ip, sp, r6, lsl sb      |         
                                             |     }
    0x000360fc ldrsheq r8, [ip], -r4         |     __asm ("ldrsheq r8, [ip], -r4");
                                             |     if (? != ?) {
    0x00036100 andeq r1, r1, r6, lsl r0      |         r1 &= (r6 << r0);
                                             |     }
    0x00036104 ldrsheq r8, [ip], -r8         |     __asm ("ldrsheq r8, [ip], -r8");
                                             |     if (? != ?) {
    0x00036108 andeq sl, sl, r6, lsl r0      |         sl &= (r6 << r0);
                                             |     }
    0x0003610c ldrsheq r8, [ip], -ip         |     __asm ("ldrsheq r8, [ip], -ip");
                                             |     if (? != ?) {
    0x00036110 andeq sl, sl, r6, lsl sb      |         sl &= (r6 << sb);
                                             |     }
    0x00036114 andseq r8, ip, r0, lsl 28     |     __asm ("andseq r8, ip, r0, lsl 28");
                                             |     if (? != ?) {
    0x00036118 andeq sl, r4, r6, lsl r0      |         sl = r4 & (r6 << r0);
                                             |     }
    0x0003611c andseq r8, ip, r4, lsl 28     |     __asm ("andseq r8, ip, r4, lsl 28");
                                             |     if (? != ?) {
    0x00036120 andeq fp, sl, r6, lsl sp      |         
                                             |     }
    0x00036124 andseq r8, ip, r8, lsl 28     |     __asm ("andseq r8, ip, r8, lsl 28");
                                             |     if (? != ?) {
    0x00036128 andeq r2, r7, r6, lsl lr      |         r2 = r7 & (r6 << lr);
                                             |     }
    0x0003612c andseq r8, ip, ip, lsl 28     |     __asm ("andseq r8, ip, ip, lsl 28");
                                             |     if (? != ?) {
    0x00036130 andeq r1, r6, r6, lsl sb      |         r1 = r6 & (r6 << sb);
                                             |     }
    0x00036134 andseq r8, ip, r0, lsl lr     |     __asm ("andseq r8, ip, r0, lsl lr");
                                             |     if (? != ?) {
    0x00036138 andeq r1, sp, r6, lsl r7      |         r1 = sp & (r6 << r7);
                                             |     }
    0x0003613c andseq r8, ip, r4, lsl lr     |     __asm ("andseq r8, ip, r4, lsl lr");
                                             |     if (? != ?) {
    0x00036140 andeq r7, pc, r6, lsl r7      |         r7 = pc & (r6 << r7);
                                             |     }
    0x00036144 andseq r8, ip, r8, lsl lr     |     __asm ("andseq r8, ip, r8, lsl lr");
                                             |     if (? != ?) {
    0x00036148 andeq r4, r6, r6, lsl fp      |         r4 = r6 & (r6 << fp);
                                             |     }
    0x0003614c andseq r8, ip, ip, lsl lr     |     __asm ("andseq r8, ip, ip, lsl lr");
                                             |     if (? != ?) {
    0x00036150 andeq r3, r8, r6, lsl r4      |         r3 = r8 & (r6 << r4);
                                             |     }
    0x00036154 andseq r8, ip, r0, lsr 28     |     __asm ("andseq r8, ip, r0, lsr 28");
                                             |     if (? != ?) {
    0x00036158 andeq pc, sb, r6, lsl r2      |         pc = sb & (r6 << r2);
                                             |     }
    0x0003615c andseq r8, ip, r4, lsr 28     |     __asm ("andseq r8, ip, r4, lsr 28");
                                             |     if (? != ?) {
    0x00036160 andeq r1, r1, r6, lsl r1      |         r1 &= (r6 << r1);
                                             |     }
    0x00036164 andseq r8, ip, r8, lsr 28     |     __asm ("andseq r8, ip, r8, lsr 28");
                                             |     if (? != ?) {
    0x00036168 andeq pc, sl, r6, lsl fp      |         pc = sl & (r6 << fp);
                                             |     }
    0x0003616c andseq r8, ip, ip, lsr 28     |     __asm ("andseq r8, ip, ip, lsr 28");
                                             |     if (? != ?) {
    0x00036170 andeq r6, r3, r6, lsl r5      |         r6 = r3 & (r6 << r5);
                                             |     }
    0x00036174 andseq r8, ip, r0, lsr lr     |     __asm ("andseq r8, ip, r0, lsr lr");
                                             |     if (? != ?) {
    0x00036178 andeq sp, fp, r6, lsl r3      |         
                                             |     }
    0x0003617c andseq r8, ip, r4, lsr lr     |     __asm ("andseq r8, ip, r4, lsr lr");
                                             |     if (? != ?) {
    0x00036180 andeq r2, r8, r6, lsl fp      |         r2 = r8 & (r6 << fp);
                                             |     }
    0x00036184 andseq r8, ip, r8, lsr lr     |     __asm ("andseq r8, ip, r8, lsr lr");
                                             |     if (? != ?) {
    0x00036188 andeq pc, r8, r6, lsl ip      |         pc = r8 & (r6 << ip);
                                             |     }
    0x0003618c andseq r8, ip, ip, lsr lr     |     __asm ("andseq r8, ip, ip, lsr lr");
                                             |     if (? != ?) {
    0x00036190 andeq r6, lr, r6, lsl r1      |         r6 = lr & (r6 << r1);
                                             |     }
    0x00036194 andseq r8, ip, r0, asr 28     |     __asm ("andseq r8, ip, r0, asr 28");
                                             |     if (? != ?) {
    0x00036198 andeq ip, r3, r6, lsl sl      |         
                                             |     }
    0x0003619c andseq r8, ip, r4, asr 28     |     __asm ("andseq r8, ip, r4, asr 28");
                                             |     if (? != ?) {
    0x000361a0 andeq lr, r6, r6, lsl r2      |         lr = r6 & (r6 << r2);
                                             |     }
    0x000361a4 andseq r8, ip, r8, asr 28     |     __asm ("andseq r8, ip, r8, asr 28");
                                             |     if (? != ?) {
    0x000361a8 andeq r4, r8, r6, lsl ip      |         r4 = r8 & (r6 << ip);
                                             |     }
    0x000361ac andseq r8, ip, ip, asr 28     |     __asm ("andseq r8, ip, ip, asr 28");
                                             |     if (? != ?) {
    0x000361b0 andeq sl, r5, r6, lsl r1      |         sl = r5 & (r6 << r1);
                                             |     }
    0x000361b4 andseq r8, ip, r0, asr lr     |     __asm ("andseq r8, ip, r0, asr lr");
                                             |     if (? != ?) {
    0x000361b8 andeq r3, r3, r6, lsl r1      |         r3 &= (r6 << r1);
                                             |     }
    0x000361bc andseq r8, ip, r4, asr lr     |     __asm ("andseq r8, ip, r4, asr lr");
                                             |     if (? != ?) {
    0x000361c0 andeq r1, r1, r6, lsl r2      |         r1 &= (r6 << r2);
                                             |     }
    0x000361c4 andseq r8, ip, r8, asr lr     |     __asm ("andseq r8, ip, r8, asr lr");
                                             |     if (? != ?) {
    0x000361c8 andeq r4, r5, r6, lsl r2      |         r4 = r5 & (r6 << r2);
                                             |     }
    0x000361cc andseq r8, ip, ip, asr lr     |     __asm ("andseq r8, ip, ip, asr lr");
                                             |     if (? != ?) {
    0x000361d0 andeq r2, r6, r6, lsl r7      |         r2 = r6 & (r6 << r7);
                                             |     }
    0x000361d4 andseq r8, ip, r0, ror 28     |     __asm ("andseq r8, ip, r0, ror 28");
                                             |     if (? != ?) {
    0x000361d8 andeq sp, sb, r6, lsl r7      |         
                                             |     }
    0x000361dc andseq r8, ip, r4, ror 28     |     __asm ("andseq r8, ip, r4, ror 28");
                                             |     if (? != ?) {
    0x000361e0 andeq r5, sb, r6, lsl r8      |         r5 = sb & (r6 << r8);
                                             |     }
    0x000361e4 andseq r8, ip, r8, ror 28     |     __asm ("andseq r8, ip, r8, ror 28");
                                             |     if (? != ?) {
    0x000361e8 andeq r3, fp, r6, lsl pc      |         r3 = fp & (r6 << pc);
                                             |     }
    0x000361ec andseq r8, ip, ip, ror 28     |     __asm ("andseq r8, ip, ip, ror 28");
                                             |     if (? != ?) {
    0x000361f0 andeq r8, r3, r6, lsl r7      |         r8 = r3 & (r6 << r7);
                                             |     }
    0x000361f4 andseq r8, ip, r0, ror lr     |     __asm ("andseq r8, ip, r0, ror lr");
                                             |     if (? != ?) {
    0x000361f8 andeq r1, r1, r6, lsl r3      |         r1 &= (r6 << r3);
                                             |     }
    0x000361fc andseq r8, ip, r4, ror lr     |     __asm ("andseq r8, ip, r4, ror lr");
                                             |     if (? != ?) {
    0x00036200 andeq r2, r6, r6, lsl ip      |         r2 = r6 & (r6 << ip);
                                             |     }
    0x00036204 andseq r8, ip, r8, ror lr     |     __asm ("andseq r8, ip, r8, ror lr");
                                             |     if (? != ?) {
    0x00036208 andeq fp, lr, r6, lsl sb      |         
                                             |     }
    0x0003620c andseq r8, ip, ip, ror lr     |     __asm ("andseq r8, ip, ip, ror lr");
                                             |     if (? != ?) {
    0x00036210 andeq r4, pc, r6, lsl fp      |         r4 = pc & (r6 << fp);
                                             |     }
    0x00036214 andseq r8, ip, r0, lsl 29     |     __asm ("andseq r8, ip, r0, lsl 29");
                                             |     if (? != ?) {
    0x00036218 andeq r1, r1, r6, lsl r4      |         r1 &= (r6 << r4);
                                             |     }
    0x0003621c andseq r8, ip, r4, lsl 29     |     __asm ("andseq r8, ip, r4, lsl 29");
                                             |     if (? != ?) {
    0x00036220 andeq r1, r1, r6, lsl r5      |         r1 &= (r6 << r5);
                                             |     }
    0x00036224 andseq r8, ip, r8, lsl 29     |     __asm ("andseq r8, ip, r8, lsl 29");
                                             |     if (? != ?) {
    0x00036228 andeq r0, sb, r6, lsl r1      |         r0 = sb & (r6 << r1);
                                             |     }
    0x0003622c andseq r8, ip, ip, lsl 29     |     __asm ("andseq r8, ip, ip, lsl 29");
                                             |     if (? != ?) {
    0x00036230 andeq r2, r2, r6, lsl r1      |         r2 &= (r6 << r1);
                                             |     }
    0x00036234 mulseq ip, r0, lr             |     __asm ("mulseq ip, r0, lr");
                                             |     if (? != ?) {
    0x00036238 andeq pc, fp, r6, lsl fp      |         pc = fp & (r6 << fp);
                                             |     }
    0x0003623c mulseq ip, r4, lr             |     __asm ("mulseq ip, r4, lr");
                                             |     if (? != ?) {
    0x00036240 andeq r5, r6, r6, lsl lr      |         r5 = r6 & (r6 << lr);
                                             |     }
    0x00036244 mulseq ip, r8, lr             |     __asm ("mulseq ip, r8, lr");
                                             |     if (? != ?) {
    0x00036248 andeq r1, r1, r6, lsl r6      |         r1 &= (r6 << r6);
                                             |     }
    0x0003624c mulseq ip, ip, lr             |     __asm ("mulseq ip, ip, lr");
                                             |     if (? != ?) {
    0x00036250 andeq pc, sb, r6, lsl fp      |         pc = sb & (r6 << fp);
                                             |     }
    0x00036254 andseq r8, ip, r0, lsr 29     |     __asm ("andseq r8, ip, r0, lsr 29");
                                             |     if (? != ?) {
    0x00036258 andeq lr, r5, r6, lsl r7      |         lr = r5 & (r6 << r7);
                                             |     }
    0x0003625c andseq r8, ip, r4, lsr 29     |     __asm ("andseq r8, ip, r4, lsr 29");
                                             |     if (? != ?) {
    0x00036260 andeq lr, r1, r6, lsl r8      |         lr = r1 & (r6 << r8);
                                             |     }
    0x00036264 andseq r8, ip, r8, lsr 29     |     __asm ("andseq r8, ip, r8, lsr 29");
                                             |     if (? != ?) {
    0x00036268 andeq r4, r4, r6, lsl sp      |         r4 &= (r6 << sp);
                                             |     }
    0x0003626c andseq r8, ip, ip, lsr 29     |     __asm ("andseq r8, ip, ip, lsr 29");
                                             |     if (? != ?) {
    0x00036270 andeq r6, sp, r6, lsl r2      |         r6 = sp & (r6 << r2);
                                             |     }
    0x00036274 ldrheq r8, [ip], -r0          |     __asm ("ldrheq r8, [ip], -r0");
                                             |     if (? != ?) {
    0x00036278 andeq r0, r5, r6, lsl r1      |         r0 = r5 & (r6 << r1);
                                             |     }
    0x0003627c ldrheq r8, [ip], -r4          |     __asm ("ldrheq r8, [ip], -r4");
                                             |     if (? != ?) {
    0x00036280 andeq fp, sp, r6, lsl r1      |         
                                             |     }
    0x00036284 ldrheq r8, [ip], -r8          |     __asm ("ldrheq r8, [ip], -r8");
                                             |     if (? != ?) {
    0x00036288 andeq r1, r1, r6, lsl r7      |         r1 &= (r6 << r7);
                                             |     }
    0x0003628c ldrheq r8, [ip], -ip          |     __asm ("ldrheq r8, [ip], -ip");
                                             |     if (? != ?) {
    0x00036290 andeq r3, sl, r6, lsl r5      |         r3 = sl & (r6 << r5);
                                             |     }
    0x00036294 andseq r8, ip, r0, asr 29     |     __asm ("andseq r8, ip, r0, asr 29");
                                             |     if (? != ?) {
    0x00036298 andeq r0, fp, r6, lsl lr      |         r0 = fp & (r6 << lr);
                                             |     }
    0x0003629c andseq r8, ip, r4, asr 29     |     __asm ("andseq r8, ip, r4, asr 29");
                                             |     if (? != ?) {
    0x000362a0 andeq r3, r5, r6, lsl r8      |         r3 = r5 & (r6 << r8);
                                             |     }
    0x000362a4 andseq r8, ip, r8, asr 29     |     __asm ("andseq r8, ip, r8, asr 29");
                                             |     if (? != ?) {
    0x000362a8 andeq r0, r2, r6, lsl r8      |         r0 = r2 & (r6 << r8);
                                             |     }
    0x000362ac andseq r8, ip, ip, asr 29     |     __asm ("andseq r8, ip, ip, asr 29");
                                             |     if (? != ?) {
    0x000362b0 andeq sl, r5, r6, lsl ip      |         sl = r5 & (r6 << ip);
                                             |     }
    0x000362b4 ldrsbeq r8, [ip], -r0         |     __asm ("ldrsbeq r8, [ip], -r0");
                                             |     if (? != ?) {
    0x000362b8 andeq r5, r2, r6, lsl r2      |         r5 = r2 & (r6 << r2);
                                             |     }
    0x000362bc ldrsbeq r8, [ip], -r4         |     __asm ("ldrsbeq r8, [ip], -r4");
                                             |     if (? != ?) {
    0x000362c0 andeq r8, r2, r6, lsl r8      |         r8 = r2 & (r6 << r8);
                                             |     }
    0x000362c4 ldrsbeq r8, [ip], -r8         |     __asm ("ldrsbeq r8, [ip], -r8");
                                             |     if (? != ?) {
    0x000362c8 andeq lr, fp, r6, lsl pc      |         lr = fp & (r6 << pc);
                                             |     }
    0x000362cc ldrsbeq r8, [ip], -ip         |     __asm ("ldrsbeq r8, [ip], -ip");
                                             |     if (? != ?) {
    0x000362d0 andeq r1, sl, r6, lsl sp      |         r1 = sl & (r6 << sp);
                                             |     }
    0x000362d4 andseq r8, ip, r0, ror 29     |     __asm ("andseq r8, ip, r0, ror 29");
                                             |     if (? != ?) {
    0x000362d8 andeq ip, sb, r6, lsl r4      |         
                                             |     }
    0x000362dc andseq r8, ip, r4, ror 29     |     __asm ("andseq r8, ip, r4, ror 29");
                                             |     if (? != ?) {
    0x000362e0 andeq r7, r4, r6, lsl sp      |         r7 = r4 & (r6 << sp);
                                             |     }
    0x000362e4 andseq r8, ip, r8, ror 29     |     __asm ("andseq r8, ip, r8, ror 29");
                                             |     if (? != ?) {
    0x000362e8 andeq r1, r7, r6, lsl pc      |         r1 = r7 & (r6 << pc);
                                             |     }
    0x000362ec andseq r8, ip, ip, ror 29     |     __asm ("andseq r8, ip, ip, ror 29");
                                             |     if (? != ?) {
    0x000362f0 andeq r6, fp, r6, lsl fp      |         r6 = fp & (r6 << fp);
                                             |     }
    0x000362f4 ldrsheq r8, [ip], -r0         |     __asm ("ldrsheq r8, [ip], -r0");
                                             |     if (? != ?) {
    0x000362f8 andeq r8, r7, r6, lsl sl      |         r8 = r7 & (r6 << sl);
                                             |     }
    0x000362fc ldrsheq r8, [ip], -r4         |     __asm ("ldrsheq r8, [ip], -r4");
                                             |     if (? != ?) {
    0x00036300 andeq lr, ip, r6, lsl r1      |         lr = ip & (r6 << r1);
                                             |     }
    0x00036304 ldrsheq r8, [ip], -r8         |     __asm ("ldrsheq r8, [ip], -r8");
                                             |     if (? != ?) {
    0x00036308 andeq r1, r1, r6, lsl r8      |         r1 &= (r6 << r8);
                                             |     }
    0x0003630c ldrsheq r8, [ip], -ip         |     __asm ("ldrsheq r8, [ip], -ip");
                                             |     if (? != ?) {
    0x00036310 andeq r3, r3, r6, lsl pc      |         r3 &= (r6 << pc);
                                             |     }
    0x00036314 andseq r8, ip, r0, lsl 30     |     __asm ("andseq r8, ip, r0, lsl 30");
                                             |     if (? != ?) {
    0x00036318 andeq r1, r1, r6, lsl sb      |         r1 &= (r6 << sb);
                                             |     }
    0x0003631c andseq r8, ip, r4, lsl 30     |     __asm ("andseq r8, ip, r4, lsl 30");
                                             |     if (? != ?) {
    0x00036320 andeq r1, r1, r6, lsl sl      |         r1 &= (r6 << sl);
                                             |     }
    0x00036324 andseq r8, ip, r8, lsl 30     |     __asm ("andseq r8, ip, r8, lsl 30");
                                             |     if (? != ?) {
    0x00036328 andeq r5, r5, r6, lsl pc      |         r5 &= (r6 << pc);
                                             |     }
    0x0003632c andseq r8, ip, ip, lsl 30     |     __asm ("andseq r8, ip, ip, lsl 30");
                                             |     if (? != ?) {
    0x00036330 andeq sp, r1, r6, lsl lr      |         
                                             |     }
    0x00036334 andseq r8, ip, r0, lsl pc     |     __asm ("andseq r8, ip, r0, lsl pc");
                                             |     if (? != ?) {
    0x00036338 andeq r1, r1, r6, lsl fp      |         r1 &= (r6 << fp);
                                             |     }
    0x0003633c andseq r8, ip, r4, lsl pc     |     __asm ("andseq r8, ip, r4, lsl pc");
                                             |     if (? != ?) {
    0x00036340 andeq r1, r1, r6, lsl ip      |         r1 &= (r6 << ip);
                                             |     }
    0x00036344 andseq r8, ip, r8, lsl pc     |     __asm ("andseq r8, ip, r8, lsl pc");
                                             |     if (? != ?) {
    0x00036348 andeq fp, sb, r6, lsl r8      |         
                                             |     }
    0x0003634c andseq r8, ip, ip, lsl pc     |     __asm ("andseq r8, ip, ip, lsl pc");
                                             |     if (? != ?) {
    0x00036350 andeq sp, r5, r6, lsl r3      |         
                                             |     }
    0x00036354 andseq r8, ip, r0, lsr 30     |     __asm ("andseq r8, ip, r0, lsr 30");
                                             |     if (? != ?) {
    0x00036358 andeq r0, r6, r6, lsl sl      |         r0 = r6 & (r6 << sl);
                                             |     }
    0x0003635c andseq r8, ip, r4, lsr 30     |     __asm ("andseq r8, ip, r4, lsr 30");
                                             |     if (? != ?) {
    0x00036360 andeq r1, r1, r6, lsl sp      |         r1 &= (r6 << sp);
                                             |     }
    0x00036364 andseq r8, ip, r8, lsr 30     |     __asm ("andseq r8, ip, r8, lsr 30");
                                             |     if (? != ?) {
    0x00036368 andeq r4, sl, r6, lsl r1      |         r4 = sl & (r6 << r1);
                                             |     }
    0x0003636c andseq r8, ip, ip, lsr 30     |     __asm ("andseq r8, ip, ip, lsr 30");
                                             |     if (? != ?) {
    0x00036370 andeq r0, fp, r6, lsl r3      |         r0 = fp & (r6 << r3);
                                             |     }
    0x00036374 andseq r8, ip, r0, lsr pc     |     __asm ("andseq r8, ip, r0, lsr pc");
                                             |     if (? != ?) {
    0x00036378 andeq sp, sp, r6, lsl sb      |         
                                             |     }
    0x0003637c andseq r8, ip, r4, lsr pc     |     __asm ("andseq r8, ip, r4, lsr pc");
                                             |     if (? != ?) {
    0x00036380 andeq r1, r1, r6, lsl lr      |         r1 &= (r6 << lr);
                                             |     }
    0x00036384 andseq r8, ip, r8, lsr pc     |     __asm ("andseq r8, ip, r8, lsr pc");
                                             |     if (? != ?) {
    0x00036388 andeq r1, r1, r6, lsl pc      |         r1 &= (r6 << pc);
                                             |     }
    0x0003638c andseq r8, ip, ip, lsr pc     |     __asm ("andseq r8, ip, ip, lsr pc");
                                             |     if (? != ?) {
    0x00036390 andeq r2, r1, r6, lsl r0      |         r2 = r1 & (r6 << r0);
                                             |     }
    0x00036394 andseq r8, ip, r0, asr 30     |     __asm ("andseq r8, ip, r0, asr 30");
                                             |     if (? != ?) {
    0x00036398 andeq ip, r2, r6, lsl r5      |         
                                             |     }
    0x0003639c andseq r8, ip, r4, asr 30     |     __asm ("andseq r8, ip, r4, asr 30");
                                             |     if (? != ?) {
    0x000363a0 andeq pc, r3, r6, lsl r8      |         pc = r3 & (r6 << r8);
                                             |     }
    0x000363a4 andseq r8, ip, r8, asr 30     |     __asm ("andseq r8, ip, r8, asr 30");
                                             |     if (? != ?) {
    0x000363a8 andeq r5, fp, r6, lsl fp      |         r5 = fp & (r6 << fp);
                                             |     }
    0x000363ac andseq r8, ip, ip, asr 30     |     __asm ("andseq r8, ip, ip, asr 30");
                                             |     if (? != ?) {
    0x000363b0 andeq lr, r5, r6, lsl sb      |         lr = r5 & (r6 << sb);
                                             |     }
    0x000363b4 andseq r8, ip, r0, asr pc     |     __asm ("andseq r8, ip, r0, asr pc");
                                             |     if (? != ?) {
    0x000363b8 andeq r1, sb, r6, lsl r8      |         r1 = sb & (r6 << r8);
                                             |     }
    0x000363bc andseq r8, ip, r4, asr pc     |     __asm ("andseq r8, ip, r4, asr pc");
                                             |     if (? != ?) {
    0x000363c0 andeq sb, r3, r6, lsl sp      |         sb = r3 & (r6 << sp);
                                             |     }
    0x000363c4 andseq r8, ip, r8, asr pc     |     __asm ("andseq r8, ip, r8, asr pc");
                                             |     if (? != ?) {
    0x000363c8 andeq lr, sb, r6, lsl r8      |         lr = sb & (r6 << r8);
                                             |     }
    0x000363cc andseq r8, ip, ip, asr pc     |     __asm ("andseq r8, ip, ip, asr pc");
                                             |     if (? != ?) {
    0x000363d0 andeq ip, r7, r6, lsl lr      |         
                                             |     }
    0x000363d4 andseq r8, ip, r0, ror 30     |     __asm ("andseq r8, ip, r0, ror 30");
                                             |     if (? != ?) {
    0x000363d8 andeq sb, r3, r6, lsl r7      |         sb = r3 & (r6 << r7);
                                             |     }
    0x000363dc andseq r8, ip, r4, ror 30     |     __asm ("andseq r8, ip, r4, ror 30");
                                             |     if (? != ?) {
    0x000363e0 andeq lr, r5, r6, lsl sl      |         lr = r5 & (r6 << sl);
                                             |     }
    0x000363e4 andseq r8, ip, r8, ror 30     |     __asm ("andseq r8, ip, r8, ror 30");
                                             |     if (? != ?) {
    0x000363e8 andeq sb, r7, r6, lsl r1      |         sb = r7 & (r6 << r1);
                                             |     }
    0x000363ec andseq r8, ip, ip, ror 30     |     __asm ("andseq r8, ip, ip, ror 30");
                                             |     if (? != ?) {
    0x000363f0 andeq r6, r4, r6, lsl r6      |         r6 = r4 & (r6 << r6);
                                             |     }
    0x000363f4 andseq r8, ip, r0, ror pc     |     __asm ("andseq r8, ip, r0, ror pc");
                                             |     if (? != ?) {
    0x000363f8 andeq sl, sp, r6, lsl sb      |         sl = sp & (r6 << sb);
                                             |     }
    0x000363fc andseq r8, ip, r4, ror pc     |     __asm ("andseq r8, ip, r4, ror pc");
                                             |     if (? != ?) {
    0x00036400 andeq fp, r3, r6, lsl sp      |         
                                             |     }
    0x00036404 andseq r8, ip, r8, ror pc     |     __asm ("andseq r8, ip, r8, ror pc");
                                             |     if (? != ?) {
    0x00036408 andeq r2, lr, r6, lsl pc      |         r2 = lr & (r6 << pc);
                                             |     }
    0x0003640c andseq r8, ip, ip, ror pc     |     __asm ("andseq r8, ip, ip, ror pc");
                                             |     if (? != ?) {
    0x00036410 andeq sb, fp, r6, lsl sp      |         sb = fp & (r6 << sp);
                                             |     }
    0x00036414 andseq r8, ip, r0, lsl 31     |     __asm ("andseq r8, ip, r0, lsl 31");
                                             |     if (? != ?) {
    0x00036418 andeq r2, r6, r6, lsl r4      |         r2 = r6 & (r6 << r4);
                                             |     }
    0x0003641c andseq r8, ip, r4, lsl 31     |     __asm ("andseq r8, ip, r4, lsl 31");
                                             |     if (? != ?) {
    0x00036420 andeq r1, r4, r6, lsl r4      |         r1 = r4 & (r6 << r4);
                                             |     }
    0x00036424 andseq r8, ip, r8, lsl 31     |     __asm ("andseq r8, ip, r8, lsl 31");
                                             |     if (? != ?) {
    0x00036428 andeq fp, lr, r6, lsl ip      |         
                                             |     }
    0x0003642c andseq r8, ip, ip, lsl 31     |     __asm ("andseq r8, ip, ip, lsl 31");
                                             |     if (? != ?) {
    0x00036430 andeq r2, r1, r6, lsl r1      |         r2 = r1 & (r6 << r1);
                                             |     }
    0x00036434 mulseq ip, r0, pc             |     __asm ("mulseq ip, r0, pc");
                                             |     if (? != ?) {
    0x00036438 andeq ip, r7, r6, lsl r4      |         
                                             |     }
    0x0003643c mulseq ip, r4, pc             |     __asm ("mulseq ip, r4, pc");
                                             |     if (? != ?) {
    0x00036440 andeq sl, sl, r6, lsl r1      |         sl &= (r6 << r1);
                                             |     }
    0x00036444 mulseq ip, r8, pc             |     __asm ("mulseq ip, r8, pc");
                                             |     if (? != ?) {
    0x00036448 andeq r6, r8, r6, lsl ip      |         r6 = r8 & (r6 << ip);
                                             |     }
    0x0003644c mulseq ip, ip, pc             |     __asm ("mulseq ip, ip, pc");
                                             |     if (? != ?) {
    0x00036450 andeq r2, r1, r6, lsl r2      |         r2 = r1 & (r6 << r2);
                                             |     }
    0x00036454 andseq r8, ip, r0, lsr 31     |     __asm ("andseq r8, ip, r0, lsr 31");
                                             |     if (? != ?) {
    0x00036458 andeq r2, r4, r6, lsl sl      |         r2 = r4 & (r6 << sl);
                                             |     }
    0x0003645c andseq r8, ip, r4, lsr 31     |     __asm ("andseq r8, ip, r4, lsr 31");
                                             |     if (? != ?) {
    0x00036460 andeq r6, r8, r6, lsl pc      |         r6 = r8 & (r6 << pc);
                                             |     }
    0x00036464 andseq r8, ip, r8, lsr 31     |     __asm ("andseq r8, ip, r8, lsr 31");
                                             |     if (? != ?) {
    0x00036468 andeq r7, sp, r6, lsl fp      |         r7 = sp & (r6 << fp);
                                             |     }
    0x0003646c andseq r8, ip, ip, lsr 31     |     __asm ("andseq r8, ip, ip, lsr 31");
                                             |     if (? != ?) {
    0x00036470 andeq r2, r1, r6, lsl r4      |         r2 = r1 & (r6 << r4);
                                             |     }
    0x00036474 ldrheq r8, [ip], -r0          |     __asm ("ldrheq r8, [ip], -r0");
                                             |     if (? != ?) {
    0x00036478 andeq r2, r8, r6, lsl sp      |         r2 = r8 & (r6 << sp);
                                             |     }
    0x0003647c ldrheq r8, [ip], -r4          |     __asm ("ldrheq r8, [ip], -r4");
                                             |     if (? != ?) {
    0x00036480 andeq sp, r1, r6, lsl pc      |         
                                             |     }
    0x00036484 ldrheq r8, [ip], -r8          |     __asm ("ldrheq r8, [ip], -r8");
                                             |     if (? != ?) {
    0x00036488 andeq fp, r7, r6, lsl pc      |         
                                             |     }
    0x0003648c ldrheq r8, [ip], -ip          |     __asm ("ldrheq r8, [ip], -ip");
                                             |     if (? != ?) {
    0x00036490 andeq r5, pc, r6, lsl r6      |         r5 = pc & (r6 << r6);
                                             |     }
    0x00036494 andseq r8, ip, r0, asr 31     |     __asm ("andseq r8, ip, r0, asr 31");
                                             |     if (? != ?) {
    0x00036498 andeq r0, sp, r6, lsl ip      |         r0 = sp & (r6 << ip);
                                             |     }
    0x0003649c andseq r8, ip, r4, asr 31     |     __asm ("andseq r8, ip, r4, asr 31");
                                             |     if (? != ?) {
    0x000364a0 andeq ip, r3, r6, lsl r6      |         
                                             |     }
    0x000364a4 andseq r8, ip, r8, asr 31     |     __asm ("andseq r8, ip, r8, asr 31");
                                             |     if (? != ?) {
    0x000364a8 andeq r8, r5, r6, lsl fp      |         r8 = r5 & (r6 << fp);
                                             |     }
    0x000364ac andseq r8, ip, ip, asr 31     |     __asm ("andseq r8, ip, ip, asr 31");
                                             |     if (? != ?) {
    0x000364b0 andeq ip, sl, r6, lsl r4      |         
                                             |     }
    0x000364b4 ldrsbeq r8, [ip], -r0         |     __asm ("ldrsbeq r8, [ip], -r0");
                                             |     if (? != ?) {
    0x000364b8 andeq sp, ip, r6, lsl r4      |         
                                             |     }
    0x000364bc ldrsbeq r8, [ip], -r4         |     __asm ("ldrsbeq r8, [ip], -r4");
                                             |     if (? != ?) {
    0x000364c0 andeq r0, sb, r6, lsl r7      |         r0 = sb & (r6 << r7);
                                             |     }
    0x000364c4 ldrsbeq r8, [ip], -r8         |     __asm ("ldrsbeq r8, [ip], -r8");
                                             |     if (? != ?) {
    0x000364c8 andeq r1, r2, r6, lsl sb      |         r1 = r2 & (r6 << sb);
                                             |     }
    0x000364cc ldrsbeq r8, [ip], -ip         |     __asm ("ldrsbeq r8, [ip], -ip");
                                             |     if (? != ?) {
    0x000364d0 andeq ip, lr, r6, lsl sp      |         
                                             |     }
    0x000364d4 andseq r8, ip, r0, ror 31     |     __asm ("andseq r8, ip, r0, ror 31");
                                             |     if (? != ?) {
    0x000364d8 andeq r2, r1, r6, lsl r5      |         r2 = r1 & (r6 << r5);
                                             |     }
    0x000364dc andseq r8, ip, r4, ror 31     |     __asm ("andseq r8, ip, r4, ror 31");
                                             |     if (? != ?) {
    0x000364e0 andeq r7, r6, r6, lsl sl      |         r7 = r6 & (r6 << sl);
                                             |     }
    0x000364e4 andseq r8, ip, r8, ror 31     |     __asm ("andseq r8, ip, r8, ror 31");
                                             |     if (? != ?) {
    0x000364e8 andeq lr, r7, r6, lsl r7      |         lr = r7 & (r6 << r7);
                                             |     }
    0x000364ec andseq r8, ip, ip, ror 31     |     __asm ("andseq r8, ip, ip, ror 31");
                                             |     if (? != ?) {
    0x000364f0 andeq lr, sb, r6, lsl sb      |         lr = sb & (r6 << sb);
                                             |     }
    0x000364f4 ldrsheq r8, [ip], -r0         |     __asm ("ldrsheq r8, [ip], -r0");
                                             |     if (? != ?) {
    0x000364f8 andeq r6, r6, r6, lsl r5      |         r6 &= (r6 << r5);
                                             |     }
    0x000364fc ldrsheq r8, [ip], -r4         |     __asm ("ldrsheq r8, [ip], -r4");
                                             |     if (? != ?) {
    0x00036500 andeq pc, sl, r6, lsl pc      |         pc = sl & (r6 << pc);
                                             |     }
    0x00036504 ldrsheq r8, [ip], -r8         |     __asm ("ldrsheq r8, [ip], -r8");
                                             |     if (? != ?) {
    0x00036508 andeq r0, ip, r6, lsl pc      |         r0 = ip & (r6 << pc);
                                             |     }
    0x0003650c ldrsheq r8, [ip], -ip         |     __asm ("ldrsheq r8, [ip], -ip");
                                             |     if (? != ?) {
    0x00036510 andeq sl, sp, r6, lsl r5      |         sl = sp & (r6 << r5);
                                             |     }
    0x00036514 andseq sb, ip, r0             |     __asm ("andseq sb, ip, r0");
                                             |     if (? != ?) {
    0x00036518 andeq lr, r4, r6, lsl r3      |         lr = r4 & (r6 << r3);
                                             |     }
    0x0003651c andseq sb, ip, r4             |     __asm ("andseq sb, ip, r4");
                                             |     if (? != ?) {
    0x00036520 andeq sb, sl, r6, lsl lr      |         sb = sl & (r6 << lr);
                                             |     }
    0x00036524 andseq sb, ip, r8             |     __asm ("andseq sb, ip, r8");
                                             |     if (? != ?) {
    0x00036528 andeq r0, r4, r6, lsl sb      |         r0 = r4 & (r6 << sb);
                                             |     }
    0x0003652c andseq sb, ip, ip             |     __asm ("andseq sb, ip, ip");
                                             |     if (? != ?) {
    0x00036530 andeq r2, r1, r6, lsl r6      |         r2 = r1 & (r6 << r6);
                                             |     }
    0x00036534 andseq sb, ip, r0, lsl r0     |     __asm ("andseq sb, ip, r0, lsl r0");
                                             |     if (? != ?) {
    0x00036538 andeq r0, r6, r6, lsl fp      |         r0 = r6 & (r6 << fp);
                                             |     }
    0x0003653c andseq sb, ip, r4, lsl r0     |     __asm ("andseq sb, ip, r4, lsl r0");
                                             |     if (? != ?) {
    0x00036540 andeq r3, sp, r6, lsl sb      |         r3 = sp & (r6 << sb);
                                             |     }
    0x00036544 andseq sb, ip, r8, lsl r0     |     __asm ("andseq sb, ip, r8, lsl r0");
                                             |     if (? != ?) {
    0x00036548 andeq r3, r4, r6, lsl sb      |         r3 = r4 & (r6 << sb);
                                             |     }
    0x0003654c andseq sb, ip, ip, lsl r0     |     __asm ("andseq sb, ip, ip, lsl r0");
                                             |     if (? != ?) {
    0x00036550 andeq r0, lr, r6, lsl r1      |         r0 = lr & (r6 << r1);
                                             |     }
    0x00036554 andseq sb, ip, r0, lsr 32     |     __asm ("andseq sb, ip, r0, lsr 32");
                                             |     if (? != ?) {
    0x00036558 andeq ip, r3, r6, lsl r7      |         
                                             |     }
    0x0003655c andseq sb, ip, r4, lsr 32     |     __asm ("andseq sb, ip, r4, lsr 32");
                                             |     if (? != ?) {
    0x00036560 andeq r2, r1, r6, lsl r7      |         r2 = r1 & (r6 << r7);
                                             |     }
    0x00036564 andseq sb, ip, r8, lsr 32     |     __asm ("andseq sb, ip, r8, lsr 32");
                                             |     if (? != ?) {
    0x00036568 andeq lr, sb, r6, lsl r4      |         lr = sb & (r6 << r4);
                                             |     }
    0x0003656c andseq sb, ip, ip, lsr 32     |     __asm ("andseq sb, ip, ip, lsr 32");
                                             |     if (? != ?) {
    0x00036570 andeq r7, lr, r6, lsl r6      |         r7 = lr & (r6 << r6);
                                             |     }
    0x00036574 andseq sb, ip, r0, lsr r0     |     __asm ("andseq sb, ip, r0, lsr r0");
                                             |     if (? != ?) {
    0x00036578 andeq sb, r7, r6, lsl r3      |         sb = r7 & (r6 << r3);
                                             |     }
    0x0003657c andseq sb, ip, r4, lsr r0     |     __asm ("andseq sb, ip, r4, lsr r0");
                                             |     if (? != ?) {
    0x00036580 andeq r4, r8, r6, lsl r2      |         r4 = r8 & (r6 << r2);
                                             |     }
    0x00036584 andseq sb, ip, r8, lsr r0     |     __asm ("andseq sb, ip, r8, lsr r0");
                                             |     if (? != ?) {
    0x00036588 andeq sp, ip, r6, lsl r7      |         
                                             |     }
    0x0003658c andseq sb, ip, ip, lsr r0     |     __asm ("andseq sb, ip, ip, lsr r0");
                                             |     if (? != ?) {
    0x00036590 andeq r2, r1, r6, lsl r8      |         r2 = r1 & (r6 << r8);
                                             |     }
    0x00036594 andseq sb, ip, r0, asr 32     |     __asm ("andseq sb, ip, r0, asr 32");
                                             |     if (? != ?) {
    0x00036598 andeq sp, r4, r6, lsl sl      |         
                                             |     }
    0x0003659c andseq sb, ip, r4, asr 32     |     __asm ("andseq sb, ip, r4, asr 32");
                                             |     if (? != ?) {
    0x000365a0 andeq sl, r5, r6, lsl sb      |         sl = r5 & (r6 << sb);
                                             |     }
    0x000365a4 andseq sb, ip, r8, asr 32     |     __asm ("andseq sb, ip, r8, asr 32");
                                             |     if (? != ?) {
    0x000365a8 andeq r5, r6, r6, lsl pc      |         r5 = r6 & (r6 << pc);
                                             |     }
    0x000365ac andseq sb, ip, ip, asr 32     |     __asm ("andseq sb, ip, ip, asr 32");
                                             |     if (? != ?) {
    0x000365b0 andeq r2, r3, r6, lsl r8      |         r2 = r3 & (r6 << r8);
                                             |     }
    0x000365b4 andseq sb, ip, r0, asr r0     |     __asm ("andseq sb, ip, r0, asr r0");
                                             |     if (? != ?) {
    0x000365b8 andeq ip, ip, r6, lsl sp      |         
                                             |     }
    0x000365bc andseq sb, ip, r4, asr r0     |     __asm ("andseq sb, ip, r4, asr r0");
                                             |     if (? != ?) {
    0x000365c0 andeq r2, r6, r6, lsl r8      |         r2 = r6 & (r6 << r8);
                                             |     }
    0x000365c4 andseq sb, ip, r8, asr r0     |     __asm ("andseq sb, ip, r8, asr r0");
                                             |     if (? != ?) {
    0x000365c8 andeq lr, r4, r6, lsl r1      |         lr = r4 & (r6 << r1);
                                             |     }
    0x000365cc andseq sb, ip, ip, asr r0     |     __asm ("andseq sb, ip, ip, asr r0");
                                             |     if (? != ?) {
    0x000365d0 andeq lr, lr, r6, lsl sl      |         lr &= (r6 << sl);
                                             |     }
    0x000365d4 andseq sb, ip, r0, rrx        |     __asm ("andseq sb, ip, r0, rrx");
                                             |     if (? != ?) {
    0x000365d8 andeq r7, r8, r6, lsl sl      |         r7 = r8 & (r6 << sl);
                                             |     }
    0x000365dc andseq sb, ip, r4, rrx        |     __asm ("andseq sb, ip, r4, rrx");
                                             |     if (? != ?) {
    0x000365e0 andeq r2, r1, r6, lsl sb      |         r2 = r1 & (r6 << sb);
                                             |     }
    0x000365e4 andseq sb, ip, r8, rrx        |     __asm ("andseq sb, ip, r8, rrx");
                                             |     if (? != ?) {
    0x000365e8 andeq fp, r4, r6, lsl r5      |         
                                             |     }
    0x000365ec andseq sb, ip, ip, rrx        |     __asm ("andseq sb, ip, ip, rrx");
                                             |     if (? != ?) {
    0x000365f0 andeq ip, sp, r6, lsl sl      |         
                                             |     }
    0x000365f4 andseq sb, ip, r0, ror r0     |     __asm ("andseq sb, ip, r0, ror r0");
                                             |     if (? != ?) {
    0x000365f8 andeq pc, r8, r6, lsl r5      |         pc = r8 & (r6 << r5);
                                             |     }
    0x000365fc andseq sb, ip, r4, ror r0     |     __asm ("andseq sb, ip, r4, ror r0");
                                             |     if (? != ?) {
    0x00036600 andeq pc, sb, r6, lsl r5      |         pc = sb & (r6 << r5);
                                             |     }
    0x00036604 andseq sb, ip, r8, ror r0     |     __asm ("andseq sb, ip, r8, ror r0");
                                             |     if (? != ?) {
    0x00036608 andeq r2, r1, r6, lsl sl      |         r2 = r1 & (r6 << sl);
                                             |     }
    0x0003660c andseq sb, ip, ip, ror r0     |     __asm ("andseq sb, ip, ip, ror r0");
                                             |     if (? != ?) {
    0x00036610 andeq r4, r4, r6, lsl lr      |         r4 &= (r6 << lr);
                                             |     }
    0x00036614 andseq sb, ip, r0, lsl 1      |     __asm ("andseq sb, ip, r0, lsl 1");
                                             |     if (? != ?) {
    0x00036618 andeq r8, r2, r6, lsl r2      |         r8 = r2 & (r6 << r2);
                                             |     }
    0x0003661c andseq sb, ip, r4, lsl 1      |     __asm ("andseq sb, ip, r4, lsl 1");
                                             |     if (? != ?) {
    0x00036620 andeq lr, lr, r6, lsl r2      |         lr &= (r6 << r2);
                                             |     }
    0x00036624 andseq sb, ip, r8, lsl 1      |     __asm ("andseq sb, ip, r8, lsl 1");
                                             |     if (? != ?) {
    0x00036628 andeq r0, pc, r6, lsl r6      |         r0 = pc & (r6 << r6);
                                             |     }
    0x0003662c andseq sb, ip, ip, lsl 1      |     __asm ("andseq sb, ip, ip, lsl 1");
                                             |     if (? != ?) {
    0x00036630 andeq r4, r7, r6, lsl sb      |         r4 = r7 & (r6 << sb);
                                             |     }
    0x00036634 mulseq ip, r0, r0             |     __asm ("mulseq ip, r0, r0");
                                             |     if (? != ?) {
    0x00036638 andeq r2, ip, r6, lsl r0      |         r2 = ip & (r6 << r0);
                                             |     }
    0x0003663c mulseq ip, r4, r0             |     __asm ("mulseq ip, r4, r0");
                                             |     if (? != ?) {
    0x00036640 andeq r5, r5, r6, lsl fp      |         r5 &= (r6 << fp);
                                             |     }
    0x00036644 mulseq ip, r8, r0             |     __asm ("mulseq ip, r8, r0");
                                             |     if (? != ?) {
    0x00036648 andeq pc, ip, r6, lsl r3      |         pc = ip & (r6 << r3);
                                             |     }
    0x0003664c mulseq ip, ip, r0             |     __asm ("mulseq ip, ip, r0");
                                             |     if (? != ?) {
    0x00036650 andeq r2, r1, r6, lsl fp      |         r2 = r1 & (r6 << fp);
                                             |     }
    0x00036654 andseq sb, ip, r0, lsr 1      |     __asm ("andseq sb, ip, r0, lsr 1");
                                             |     if (? != ?) {
    0x00036658 andeq lr, sp, r6, lsl r0      |         lr = sp & (r6 << r0);
                                             |     }
    0x0003665c andseq sb, ip, r4, lsr 1      |     __asm ("andseq sb, ip, r4, lsr 1");
                                             |     if (? != ?) {
    0x00036660 andeq r7, r2, r6, lsl lr      |         r7 = r2 & (r6 << lr);
                                             |     }
    0x00036664 andseq sb, ip, r8, lsr 1      |     __asm ("andseq sb, ip, r8, lsr 1");
                                             |     if (? != ?) {
    0x00036668 andeq r8, r7, r6, lsl r3      |         r8 = r7 & (r6 << r3);
                                             |     }
    0x0003666c andseq sb, ip, ip, lsr 1      |     __asm ("andseq sb, ip, ip, lsr 1");
                                             |     if (? != ?) {
    0x00036670 andeq r4, sl, r6, lsl sl      |         r4 = sl & (r6 << sl);
                                             |     }
    0x00036674 ldrheq sb, [ip], -r0          |     __asm ("ldrheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00036678 andeq r2, r1, r6, lsl ip      |         r2 = r1 & (r6 << ip);
                                             |     }
    0x0003667c ldrheq sb, [ip], -r4          |     __asm ("ldrheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00036680 andeq r2, lr, r6, lsl r7      |         r2 = lr & (r6 << r7);
                                             |     }
    0x00036684 ldrheq sb, [ip], -r8          |     __asm ("ldrheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00036688 andeq r4, r4, r6, lsl r1      |         r4 &= (r6 << r1);
                                             |     }
    0x0003668c ldrheq sb, [ip], -ip          |     __asm ("ldrheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00036690 andeq r1, fp, r6, lsl lr      |         r1 = fp & (r6 << lr);
                                             |     }
    0x00036694 andseq sb, ip, r0, asr 1      |     __asm ("andseq sb, ip, r0, asr 1");
                                             |     if (? != ?) {
    0x00036698 andeq r5, lr, r6, lsl r2      |         r5 = lr & (r6 << r2);
                                             |     }
    0x0003669c andseq sb, ip, r4, asr 1      |     __asm ("andseq sb, ip, r4, asr 1");
                                             |     if (? != ?) {
    0x000366a0 andeq sl, r3, r6, lsl r0      |         sl = r3 & (r6 << r0);
                                             |     }
    0x000366a4 andseq sb, ip, r8, asr 1      |     __asm ("andseq sb, ip, r8, asr 1");
                                             |     if (? != ?) {
    0x000366a8 andeq fp, r8, r6, lsl r1      |         
                                             |     }
    0x000366ac andseq sb, ip, ip, asr 1      |     __asm ("andseq sb, ip, ip, asr 1");
                                             |     if (? != ?) {
    0x000366b0 andeq ip, lr, r6, lsl r3      |         
                                             |     }
    0x000366b4 ldrsbeq sb, [ip], -r0         |     __asm ("ldrsbeq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000366b8 andeq lr, r1, r6, lsl sb      |         lr = r1 & (r6 << sb);
                                             |     }
    0x000366bc ldrsbeq sb, [ip], -r4         |     __asm ("ldrsbeq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x000366c0 andeq sl, r3, r6, lsl sb      |         sl = r3 & (r6 << sb);
                                             |     }
    0x000366c4 ldrsbeq sb, [ip], -r8         |     __asm ("ldrsbeq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x000366c8 andeq r5, sp, r6, lsl r2      |         r5 = sp & (r6 << r2);
                                             |     }
    0x000366cc ldrsbeq sb, [ip], -ip         |     __asm ("ldrsbeq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x000366d0 andeq r5, sp, r6, lsl sb      |         r5 = sp & (r6 << sb);
                                             |     }
    0x000366d4 andseq sb, ip, r0, ror 1      |     __asm ("andseq sb, ip, r0, ror 1");
                                             |     if (? != ?) {
    0x000366d8 andeq r7, r6, r6, lsl r4      |         r7 = r6 & (r6 << r4);
                                             |     }
    0x000366dc andseq sb, ip, r4, ror 1      |     __asm ("andseq sb, ip, r4, ror 1");
                                             |     if (? != ?) {
    0x000366e0 andeq sl, r7, r6, lsl r2      |         sl = r7 & (r6 << r2);
                                             |     }
    0x000366e4 andseq sb, ip, r8, ror 1      |     __asm ("andseq sb, ip, r8, ror 1");
                                             |     if (? != ?) {
    0x000366e8 andeq r2, fp, r6, lsl sp      |         r2 = fp & (r6 << sp);
                                             |     }
    0x000366ec andseq sb, ip, ip, ror 1      |     __asm ("andseq sb, ip, ip, ror 1");
                                             |     if (? != ?) {
    0x000366f0 andeq sb, lr, r6, lsl pc      |         sb = lr & (r6 << pc);
                                             |     }
    0x000366f4 ldrsheq sb, [ip], -r0         |     __asm ("ldrsheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000366f8 andeq r2, r1, r6, lsl sp      |         r2 = r1 & (r6 << sp);
                                             |     }
    0x000366fc ldrsheq sb, [ip], -r4         |     __asm ("ldrsheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00036700 andeq sb, r8, r6, lsl r2      |         sb = r8 & (r6 << r2);
                                             |     }
    0x00036704 ldrsheq sb, [ip], -r8         |     __asm ("ldrsheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00036708 andeq fp, ip, r6, lsl r8      |         
                                             |     }
    0x0003670c ldrsheq sb, [ip], -ip         |     __asm ("ldrsheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00036710 andeq r2, r1, r6, lsl lr      |         r2 = r1 & (r6 << lr);
                                             |     }
    0x00036714 andseq sb, ip, r0, lsl 2      |     __asm ("andseq sb, ip, r0, lsl 2");
                                             |     if (? != ?) {
    0x00036718 andeq sl, r5, r6, lsl r2      |         sl = r5 & (r6 << r2);
                                             |     }
    0x0003671c andseq sb, ip, r4, lsl 2      |     __asm ("andseq sb, ip, r4, lsl 2");
                                             |     if (? != ?) {
    0x00036720 andeq r6, r8, r6, lsl r6      |         r6 = r8 & (r6 << r6);
                                             |     }
    0x00036724 andseq sb, ip, r8, lsl 2      |     __asm ("andseq sb, ip, r8, lsl 2");
                                             |     if (? != ?) {
    0x00036728 andeq sl, pc, r6, lsl r8      |         sl = pc & (r6 << r8);
                                             |     }
    0x0003672c andseq sb, ip, ip, lsl 2      |     __asm ("andseq sb, ip, ip, lsl 2");
                                             |     if (? != ?) {
    0x00036730 andeq r2, r1, r6, lsl pc      |         r2 = r1 & (r6 << pc);
                                             |     }
    0x00036734 andseq sb, ip, r0, lsl r1     |     __asm ("andseq sb, ip, r0, lsl r1");
                                             |     if (? != ?) {
    0x00036738 andeq lr, sl, r6, lsl r8      |         lr = sl & (r6 << r8);
                                             |     }
    0x0003673c andseq sb, ip, r4, lsl r1     |     __asm ("andseq sb, ip, r4, lsl r1");
                                             |     if (? != ?) {
    0x00036740 andeq r4, r2, r6, lsl r3      |         r4 = r2 & (r6 << r3);
                                             |     }
    0x00036744 andseq sb, ip, r8, lsl r1     |     __asm ("andseq sb, ip, r8, lsl r1");
                                             |     if (? != ?) {
    0x00036748 andeq sb, sb, r6, lsl sp      |         sb &= (r6 << sp);
                                             |     }
    0x0003674c andseq sb, ip, ip, lsl r1     |     __asm ("andseq sb, ip, ip, lsl r1");
                                             |     if (? != ?) {
    0x00036750 andeq fp, r4, r6, lsl r6      |         
                                             |     }
    0x00036754 andseq sb, ip, r0, lsr 2      |     __asm ("andseq sb, ip, r0, lsr 2");
                                             |     if (? != ?) {
    0x00036758 andeq sl, r3, r6, lsl lr      |         sl = r3 & (r6 << lr);
                                             |     }
    0x0003675c andseq sb, ip, r4, lsr 2      |     __asm ("andseq sb, ip, r4, lsr 2");
                                             |     if (? != ?) {
    0x00036760 andeq sb, r7, r6, lsl r2      |         sb = r7 & (r6 << r2);
                                             |     }
    0x00036764 andseq sb, ip, r8, lsr 2      |     __asm ("andseq sb, ip, r8, lsr 2");
                                             |     if (? != ?) {
    0x00036768 andeq r3, lr, r6, lsl r3      |         r3 = lr & (r6 << r3);
                                             |     }
    0x0003676c andseq sb, ip, ip, lsr 2      |     __asm ("andseq sb, ip, ip, lsr 2");
                                             |     if (? != ?) {
    0x00036770 andeq lr, sp, r6, lsl r1      |         lr = sp & (r6 << r1);
                                             |     }
    0x00036774 andseq sb, ip, r0, lsr r1     |     __asm ("andseq sb, ip, r0, lsr r1");
                                             |     if (? != ?) {
    0x00036778 andeq r0, fp, r6, lsl pc      |         r0 = fp & (r6 << pc);
                                             |     }
    0x0003677c andseq sb, ip, r4, lsr r1     |     __asm ("andseq sb, ip, r4, lsr r1");
                                             |     if (? != ?) {
    0x00036780 andeq r5, r6, r6, lsl sb      |         r5 = r6 & (r6 << sb);
                                             |     }
    0x00036784 andseq sb, ip, r8, lsr r1     |     __asm ("andseq sb, ip, r8, lsr r1");
                                             |     if (? != ?) {
    0x00036788 andeq r4, r8, r6, lsl r7      |         r4 = r8 & (r6 << r7);
                                             |     }
    0x0003678c andseq sb, ip, ip, lsr r1     |     __asm ("andseq sb, ip, ip, lsr r1");
                                             |     if (? != ?) {
    0x00036790 andeq r7, r7, r6, lsl fp      |         r7 &= (r6 << fp);
                                             |     }
    0x00036794 andseq sb, ip, r0, asr 2      |     __asm ("andseq sb, ip, r0, asr 2");
                                             |     if (? != ?) {
    0x00036798 andeq lr, r3, r6, lsl r8      |         lr = r3 & (r6 << r8);
                                             |     }
    0x0003679c andseq sb, ip, r4, asr 2      |     __asm ("andseq sb, ip, r4, asr 2");
                                             |     if (? != ?) {
    0x000367a0 andeq pc, r5, r6, lsl r6      |         pc = r5 & (r6 << r6);
                                             |     }
    0x000367a4 andseq sb, ip, r8, asr 2      |     __asm ("andseq sb, ip, r8, asr 2");
                                             |     if (? != ?) {
    0x000367a8 andeq r3, r1, r6, lsl r0      |         r3 = r1 & (r6 << r0);
                                             |     }
    0x000367ac andseq sb, ip, ip, asr 2      |     __asm ("andseq sb, ip, ip, asr 2");
                                             |     if (? != ?) {
    0x000367b0 andeq ip, r6, r6, lsl fp      |         
                                             |     }
    0x000367b4 andseq sb, ip, r0, asr r1     |     __asm ("andseq sb, ip, r0, asr r1");
                                             |     if (? != ?) {
    0x000367b8 andeq fp, sb, r6, lsl r2      |         
                                             |     }
    0x000367bc andseq sb, ip, r4, asr r1     |     __asm ("andseq sb, ip, r4, asr r1");
                                             |     if (? != ?) {
    0x000367c0 andeq r7, r6, r6, lsl pc      |         r7 = r6 & (r6 << pc);
                                             |     }
    0x000367c4 andseq sb, ip, r8, asr r1     |     __asm ("andseq sb, ip, r8, asr r1");
                                             |     if (? != ?) {
    0x000367c8 andeq r2, r7, r6, lsl r0      |         r2 = r7 & (r6 << r0);
                                             |     }
    0x000367cc andseq sb, ip, ip, asr r1     |     __asm ("andseq sb, ip, ip, asr r1");
                                             |     if (? != ?) {
    0x000367d0 andeq ip, r8, r6, lsl r6      |         
                                             |     }
    0x000367d4 andseq sb, ip, r0, ror 2      |     __asm ("andseq sb, ip, r0, ror 2");
                                             |     if (? != ?) {
    0x000367d8 andeq r3, r1, r6, lsl r1      |         r3 = r1 & (r6 << r1);
                                             |     }
    0x000367dc andseq sb, ip, r4, ror 2      |     __asm ("andseq sb, ip, r4, ror 2");
                                             |     if (? != ?) {
    0x000367e0 andeq r4, fp, r6, lsl r2      |         r4 = fp & (r6 << r2);
                                             |     }
    0x000367e4 andseq sb, ip, r8, ror 2      |     __asm ("andseq sb, ip, r8, ror 2");
                                             |     if (? != ?) {
    0x000367e8 andeq r3, r1, r6, lsl r2      |         r3 = r1 & (r6 << r2);
                                             |     }
    0x000367ec andseq sb, ip, ip, ror 2      |     __asm ("andseq sb, ip, ip, ror 2");
                                             |     if (? != ?) {
    0x000367f0 andeq r3, r1, r6, lsl r3      |         r3 = r1 & (r6 << r3);
                                             |     }
    0x000367f4 andseq sb, ip, r0, ror r1     |     __asm ("andseq sb, ip, r0, ror r1");
                                             |     if (? != ?) {
    0x000367f8 andeq r3, sp, r6, lsl r7      |         r3 = sp & (r6 << r7);
                                             |     }
    0x000367fc andseq sb, ip, r4, ror r1     |     __asm ("andseq sb, ip, r4, ror r1");
                                             |     if (? != ?) {
    0x00036800 andeq sl, ip, r6, lsl sp      |         sl = ip & (r6 << sp);
                                             |     }
    0x00036804 andseq sb, ip, r8, ror r1     |     __asm ("andseq sb, ip, r8, ror r1");
                                             |     if (? != ?) {
    0x00036808 andeq sb, pc, r6, lsl r4      |         sb = pc & (r6 << r4);
                                             |     }
    0x0003680c andseq sb, ip, ip, ror r1     |     __asm ("andseq sb, ip, ip, ror r1");
                                             |     if (? != ?) {
    0x00036810 andeq fp, sl, r6, lsl pc      |         
                                             |     }
    0x00036814 andseq sb, ip, r0, lsl 3      |     __asm ("andseq sb, ip, r0, lsl 3");
                                             |     if (? != ?) {
    0x00036818 andeq r3, r1, r6, lsl r4      |         r3 = r1 & (r6 << r4);
                                             |     }
    0x0003681c andseq sb, ip, r4, lsl 3      |     __asm ("andseq sb, ip, r4, lsl 3");
                                             |     if (? != ?) {
    0x00036820 andeq ip, r2, r6, lsl r6      |         
                                             |     }
    0x00036824 andseq sb, ip, r8, lsl 3      |     __asm ("andseq sb, ip, r8, lsl 3");
                                             |     if (? != ?) {
    0x00036828 andeq pc, lr, r6, lsl fp      |         pc = lr & (r6 << fp);
                                             |     }
    0x0003682c andseq sb, ip, ip, lsl 3      |     __asm ("andseq sb, ip, ip, lsl 3");
                                             |     if (? != ?) {
    0x00036830 andeq r3, r1, r6, lsl r5      |         r3 = r1 & (r6 << r5);
                                             |     }
    0x00036834 mulseq ip, r0, r1             |     __asm ("mulseq ip, r0, r1");
                                             |     if (? != ?) {
    0x00036838 andeq r0, lr, r6, lsl sl      |         r0 = lr & (r6 << sl);
                                             |     }
    0x0003683c mulseq ip, r4, r1             |     __asm ("mulseq ip, r4, r1");
                                             |     if (? != ?) {
    0x00036840 andeq r0, sl, r6, lsl sp      |         r0 = sl & (r6 << sp);
                                             |     }
    0x00036844 mulseq ip, r8, r1             |     __asm ("mulseq ip, r8, r1");
                                             |     if (? != ?) {
    0x00036848 andeq fp, r4, r6, lsl sb      |         
                                             |     }
    0x0003684c mulseq ip, ip, r1             |     __asm ("mulseq ip, ip, r1");
                                             |     if (? != ?) {
    0x00036850 andeq r2, r6, r6, lsl r5      |         r2 = r6 & (r6 << r5);
                                             |     }
    0x00036854 andseq sb, ip, r0, lsr 3      |     __asm ("andseq sb, ip, r0, lsr 3");
                                             |     if (? != ?) {
    0x00036858 andeq r3, sl, r6, lsl r1      |         r3 = sl & (r6 << r1);
                                             |     }
    0x0003685c andseq sb, ip, r4, lsr 3      |     __asm ("andseq sb, ip, r4, lsr 3");
                                             |     if (? != ?) {
    0x00036860 andeq r7, ip, r6, lsl ip      |         r7 = ip & (r6 << ip);
                                             |     }
    0x00036864 andseq sb, ip, r8, lsr 3      |     __asm ("andseq sb, ip, r8, lsr 3");
                                             |     if (? != ?) {
    0x00036868 andeq r4, lr, r6, lsl r5      |         r4 = lr & (r6 << r5);
                                             |     }
    0x0003686c andseq sb, ip, ip, lsr 3      |     __asm ("andseq sb, ip, ip, lsr 3");
                                             |     if (? != ?) {
    0x00036870 andeq sp, fp, r6, lsl sl      |         
                                             |     }
    0x00036874 ldrheq sb, [ip], -r0          |     __asm ("ldrheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00036878 andeq sl, ip, r6, lsl r8      |         sl = ip & (r6 << r8);
                                             |     }
    0x0003687c ldrheq sb, [ip], -r4          |     __asm ("ldrheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00036880 andeq sp, r5, r6, lsl sp      |         
                                             |     }
    0x00036884 ldrheq sb, [ip], -r8          |     __asm ("ldrheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00036888 andeq lr, r6, r6, lsl sl      |         lr = r6 & (r6 << sl);
                                             |     }
    0x0003688c ldrheq sb, [ip], -ip          |     __asm ("ldrheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00036890 andeq pc, sb, r6, lsl sb      |         pc = sb & (r6 << sb);
                                             |     }
    0x00036894 andseq sb, ip, r0, asr 3      |     __asm ("andseq sb, ip, r0, asr 3");
                                             |     if (? != ?) {
    0x00036898 andeq r3, r1, r6, lsl r6      |         r3 = r1 & (r6 << r6);
                                             |     }
    0x0003689c andseq sb, ip, r4, asr 3      |     __asm ("andseq sb, ip, r4, asr 3");
                                             |     if (? != ?) {
    0x000368a0 andeq r3, sp, r6, lsl sp      |         r3 = sp & (r6 << sp);
                                             |     }
    0x000368a4 andseq sb, ip, r8, asr 3      |     __asm ("andseq sb, ip, r8, asr 3");
                                             |     if (? != ?) {
    0x000368a8 andeq sl, r3, r6, lsl sl      |         sl = r3 & (r6 << sl);
                                             |     }
    0x000368ac andseq sb, ip, ip, asr 3      |     __asm ("andseq sb, ip, ip, asr 3");
                                             |     if (? != ?) {
    0x000368b0 andeq fp, r8, r6, lsl sl      |         
                                             |     }
    0x000368b4 ldrsbeq sb, [ip], -r0         |     __asm ("ldrsbeq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000368b8 andeq r6, ip, r6, lsl ip      |         r6 = ip & (r6 << ip);
                                             |     }
    0x000368bc ldrsbeq sb, [ip], -r4         |     __asm ("ldrsbeq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x000368c0 andeq r3, r2, r6, lsl r5      |         r3 = r2 & (r6 << r5);
                                             |     }
    0x000368c4 ldrsbeq sb, [ip], -r8         |     __asm ("ldrsbeq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x000368c8 andeq r6, sb, r6, lsl r5      |         r6 = sb & (r6 << r5);
                                             |     }
    0x000368cc ldrsbeq sb, [ip], -ip         |     __asm ("ldrsbeq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x000368d0 andeq r2, pc, r6, lsl r8      |         r2 = pc & (r6 << r8);
                                             |     }
    0x000368d4 andseq sb, ip, r0, ror 3      |     __asm ("andseq sb, ip, r0, ror 3");
                                             |     if (? != ?) {
    0x000368d8 andeq sb, r4, r6, lsl sb      |         sb = r4 & (r6 << sb);
                                             |     }
    0x000368dc andseq sb, ip, r4, ror 3      |     __asm ("andseq sb, ip, r4, ror 3");
                                             |     if (? != ?) {
    0x000368e0 andeq r0, pc, r6, lsl r7      |         r0 = pc & (r6 << r7);
                                             |     }
    0x000368e4 andseq sb, ip, r8, ror 3      |     __asm ("andseq sb, ip, r8, ror 3");
                                             |     if (? != ?) {
    0x000368e8 andeq r4, r2, r6, lsl r6      |         r4 = r2 & (r6 << r6);
                                             |     }
    0x000368ec andseq sb, ip, ip, ror 3      |     __asm ("andseq sb, ip, ip, ror 3");
                                             |     if (? != ?) {
    0x000368f0 andeq pc, r5, r6, lsl pc      |         pc = r5 & (r6 << pc);
                                             |     }
    0x000368f4 ldrsheq sb, [ip], -r0         |     __asm ("ldrsheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000368f8 andeq r3, r1, r6, lsl r7      |         r3 = r1 & (r6 << r7);
                                             |     }
    0x000368fc ldrsheq sb, [ip], -r4         |     __asm ("ldrsheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00036900 andeq sp, r2, r6, lsl r4      |         
                                             |     }
    0x00036904 ldrsheq sb, [ip], -r8         |     __asm ("ldrsheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00036908 andeq r1, r4, r6, lsl r5      |         r1 = r4 & (r6 << r5);
                                             |     }
    0x0003690c ldrsheq sb, [ip], -ip         |     __asm ("ldrsheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00036910 andeq r3, ip, r6, lsl sl      |         r3 = ip & (r6 << sl);
                                             |     }
    0x00036914 andseq sb, ip, r0, lsl 4      |     __asm ("andseq sb, ip, r0, lsl 4");
                                             |     if (? != ?) {
    0x00036918 andeq lr, r2, r6, lsl sl      |         lr = r2 & (r6 << sl);
                                             |     }
    0x0003691c andseq sb, ip, r4, lsl 4      |     __asm ("andseq sb, ip, r4, lsl 4");
                                             |     if (? != ?) {
    0x00036920 andeq r7, r3, r6, lsl r1      |         r7 = r3 & (r6 << r1);
                                             |     }
    0x00036924 andseq sb, ip, r8, lsl 4      |     __asm ("andseq sb, ip, r8, lsl 4");
                                             |     if (? != ?) {
    0x00036928 andeq r1, lr, r6, lsl ip      |         r1 = lr & (r6 << ip);
                                             |     }
    0x0003692c andseq sb, ip, ip, lsl 4      |     __asm ("andseq sb, ip, ip, lsl 4");
                                             |     if (? != ?) {
    0x00036930 andeq lr, r8, r6, lsl r6      |         lr = r8 & (r6 << r6);
                                             |     }
    0x00036934 andseq sb, ip, r0, lsl r2     |     __asm ("andseq sb, ip, r0, lsl r2");
                                             |     if (? != ?) {
    0x00036938 andeq r3, r1, r6, lsl r8      |         r3 = r1 & (r6 << r8);
                                             |     }
    0x0003693c andseq sb, ip, r4, lsl r2     |     __asm ("andseq sb, ip, r4, lsl r2");
                                             |     if (? != ?) {
    0x00036940 andeq r3, r1, r6, lsl sb      |         r3 = r1 & (r6 << sb);
                                             |     }
    0x00036944 andseq sb, ip, r8, lsl r2     |     __asm ("andseq sb, ip, r8, lsl r2");
                                             |     if (? != ?) {
    0x00036948 andeq r3, r1, r6, lsl sl      |         r3 = r1 & (r6 << sl);
                                             |     }
    0x0003694c andseq sb, ip, ip, lsl r2     |     __asm ("andseq sb, ip, ip, lsl r2");
                                             |     if (? != ?) {
    0x00036950 andeq fp, fp, r6, lsl sb      |         
                                             |     }
    0x00036954 andseq sb, ip, r0, lsr 4      |     __asm ("andseq sb, ip, r0, lsr 4");
                                             |     if (? != ?) {
    0x00036958 andeq r7, r5, r6, lsl r0      |         r7 = r5 & (r6 << r0);
                                             |     }
    0x0003695c andseq sb, ip, r4, lsr 4      |     __asm ("andseq sb, ip, r4, lsr 4");
                                             |     if (? != ?) {
    0x00036960 andeq r3, r1, r6, lsl fp      |         r3 = r1 & (r6 << fp);
                                             |     }
    0x00036964 andseq sb, ip, r8, lsr 4      |     __asm ("andseq sb, ip, r8, lsr 4");
                                             |     if (? != ?) {
    0x00036968 andeq sb, r4, r6, lsl ip      |         sb = r4 & (r6 << ip);
                                             |     }
    0x0003696c andseq sb, ip, ip, lsr 4      |     __asm ("andseq sb, ip, ip, lsr 4");
                                             |     if (? != ?) {
    0x00036970 andeq r3, r1, r6, lsl ip      |         r3 = r1 & (r6 << ip);
                                             |     }
    0x00036974 andseq sb, ip, r0, lsr r2     |     __asm ("andseq sb, ip, r0, lsr r2");
                                             |     if (? != ?) {
    0x00036978 andeq r0, r2, r6, lsl sb      |         r0 = r2 & (r6 << sb);
                                             |     }
    0x0003697c andseq sb, ip, r4, lsr r2     |     __asm ("andseq sb, ip, r4, lsr r2");
                                             |     if (? != ?) {
    0x00036980 andeq fp, r4, r6, lsl sl      |         
                                             |     }
    0x00036984 andseq sb, ip, r8, lsr r2     |     __asm ("andseq sb, ip, r8, lsr r2");
                                             |     if (? != ?) {
    0x00036988 andeq r3, r1, r6, lsl sp      |         r3 = r1 & (r6 << sp);
                                             |     }
    0x0003698c andseq sb, ip, ip, lsr r2     |     __asm ("andseq sb, ip, ip, lsr r2");
                                             |     if (? != ?) {
    0x00036990 andeq r4, r5, r6, lsl sp      |         r4 = r5 & (r6 << sp);
                                             |     }
    0x00036994 andseq sb, ip, r0, asr 4      |     __asm ("andseq sb, ip, r0, asr 4");
                                             |     if (? != ?) {
    0x00036998 andeq r3, r1, r6, lsl lr      |         r3 = r1 & (r6 << lr);
                                             |     }
    0x0003699c andseq sb, ip, r4, asr 4      |     __asm ("andseq sb, ip, r4, asr 4");
                                             |     if (? != ?) {
    0x000369a0 andeq r6, fp, r6, lsl r5      |         r6 = fp & (r6 << r5);
                                             |     }
    0x000369a4 andseq sb, ip, r8, asr 4      |     __asm ("andseq sb, ip, r8, asr 4");
                                             |     if (? != ?) {
    0x000369a8 andeq sl, sp, r6, lsl r1      |         sl = sp & (r6 << r1);
                                             |     }
    0x000369ac andseq sb, ip, ip, asr 4      |     __asm ("andseq sb, ip, ip, asr 4");
                                             |     if (? != ?) {
    0x000369b0 andeq ip, lr, r6, lsl sl      |         
                                             |     }
    0x000369b4 andseq sb, ip, r0, asr r2     |     __asm ("andseq sb, ip, r0, asr r2");
                                             |     if (? != ?) {
    0x000369b8 andeq r3, r1, r6, lsl pc      |         r3 = r1 & (r6 << pc);
                                             |     }
    0x000369bc andseq sb, ip, r4, asr r2     |     __asm ("andseq sb, ip, r4, asr r2");
                                             |     if (? != ?) {
    0x000369c0 andeq sb, lr, r6, lsl r4      |         sb = lr & (r6 << r4);
                                             |     }
    0x000369c4 andseq sb, ip, r8, asr r2     |     __asm ("andseq sb, ip, r8, asr r2");
                                             |     if (? != ?) {
    0x000369c8 andeq lr, sl, r6, lsl r3      |         lr = sl & (r6 << r3);
                                             |     }
    0x000369cc andseq sb, ip, ip, asr r2     |     __asm ("andseq sb, ip, ip, asr r2");
                                             |     if (? != ?) {
    0x000369d0 andeq r6, r8, r6, lsl r3      |         r6 = r8 & (r6 << r3);
                                             |     }
    0x000369d4 andseq sb, ip, r0, ror 4      |     __asm ("andseq sb, ip, r0, ror 4");
                                             |     if (? != ?) {
    0x000369d8 andeq sl, r4, r6, lsl r2      |         sl = r4 & (r6 << r2);
                                             |     }
    0x000369dc andseq sb, ip, r4, ror 4      |     __asm ("andseq sb, ip, r4, ror 4");
                                             |     if (? != ?) {
    0x000369e0 andeq sp, r8, r6, lsl r6      |         
                                             |     }
    0x000369e4 andseq sb, ip, r8, ror 4      |     __asm ("andseq sb, ip, r8, ror 4");
                                             |     if (? != ?) {
    0x000369e8 andeq r8, ip, r6, lsl sl      |         r8 = ip & (r6 << sl);
                                             |     }
    0x000369ec andseq sb, ip, ip, ror 4      |     __asm ("andseq sb, ip, ip, ror 4");
                                             |     if (? != ?) {
    0x000369f0 andeq r3, r3, r6, lsl r3      |         r3 &= (r6 << r3);
                                             |     }
    0x000369f4 andseq sb, ip, r0, ror r2     |     __asm ("andseq sb, ip, r0, ror r2");
                                             |     if (? != ?) {
    0x000369f8 andeq r1, r6, r6, lsl r0      |         r1 = r6 & (r6 << r0);
                                             |     }
    0x000369fc andseq sb, ip, r4, ror r2     |     __asm ("andseq sb, ip, r4, ror r2");
                                             |     if (? != ?) {
    0x00036a00 andeq pc, sb, r6, lsl sp      |         pc = sb & (r6 << sp);
                                             |     }
    0x00036a04 andseq sb, ip, r8, ror r2     |     __asm ("andseq sb, ip, r8, ror r2");
                                             |     if (? != ?) {
    0x00036a08 andeq r0, sl, r6, lsl r1      |         r0 = sl & (r6 << r1);
                                             |     }
    0x00036a0c andseq sb, ip, ip, ror r2     |     __asm ("andseq sb, ip, ip, ror r2");
                                             |     if (? != ?) {
    0x00036a10 andeq r4, r1, r6, lsl r0      |         r4 = r1 & (r6 << r0);
                                             |     }
    0x00036a14 andseq sb, ip, r0, lsl 5      |     __asm ("andseq sb, ip, r0, lsl 5");
                                             |     if (? != ?) {
    0x00036a18 andeq r2, pc, r6, lsl lr      |         r2 = pc & (r6 << lr);
                                             |     }
    0x00036a1c andseq sb, ip, r4, lsl 5      |     __asm ("andseq sb, ip, r4, lsl 5");
                                             |     if (? != ?) {
    0x00036a20 andeq r4, r1, r6, lsl r1      |         r4 = r1 & (r6 << r1);
                                             |     }
    0x00036a24 andseq sb, ip, r8, lsl 5      |     __asm ("andseq sb, ip, r8, lsl 5");
                                             |     if (? != ?) {
    0x00036a28 andeq r4, r1, r6, lsl r2      |         r4 = r1 & (r6 << r2);
                                             |     }
    0x00036a2c andseq sb, ip, ip, lsl 5      |     __asm ("andseq sb, ip, ip, lsl 5");
                                             |     if (? != ?) {
    0x00036a30 andeq r8, lr, r6, lsl fp      |         r8 = lr & (r6 << fp);
                                             |     }
    0x00036a34 mulseq ip, r0, r2             |     __asm ("mulseq ip, r0, r2");
                                             |     if (? != ?) {
    0x00036a38 andeq r8, lr, r6, lsl r7      |         r8 = lr & (r6 << r7);
                                             |     }
    0x00036a3c mulseq ip, r4, r2             |     __asm ("mulseq ip, r4, r2");
                                             |     if (? != ?) {
    0x00036a40 andeq sp, r4, r6, lsl fp      |         
                                             |     }
    0x00036a44 mulseq ip, r8, r2             |     __asm ("mulseq ip, r8, r2");
                                             |     if (? != ?) {
    0x00036a48 andeq pc, ip, r6, lsl r8      |         pc = ip & (r6 << r8);
                                             |     }
    0x00036a4c mulseq ip, ip, r2             |     __asm ("mulseq ip, ip, r2");
                                             |     if (? != ?) {
    0x00036a50 andeq r6, r6, r6, lsl sb      |         r6 &= (r6 << sb);
                                             |     }
    0x00036a54 andseq sb, ip, r0, lsr 5      |     __asm ("andseq sb, ip, r0, lsr 5");
                                             |     if (? != ?) {
    0x00036a58 andeq r1, sp, r6, lsl sl      |         r1 = sp & (r6 << sl);
                                             |     }
    0x00036a5c andseq sb, ip, r4, lsr 5      |     __asm ("andseq sb, ip, r4, lsr 5");
                                             |     if (? != ?) {
    0x00036a60 andeq r8, fp, r6, lsl ip      |         r8 = fp & (r6 << ip);
                                             |     }
    0x00036a64 andseq sb, ip, r8, lsr 5      |     __asm ("andseq sb, ip, r8, lsr 5");
                                             |     if (? != ?) {
    0x00036a68 andeq r0, r5, r6, lsl sb      |         r0 = r5 & (r6 << sb);
                                             |     }
    0x00036a6c andseq sb, ip, ip, lsr 5      |     __asm ("andseq sb, ip, ip, lsr 5");
                                             |     if (? != ?) {
    0x00036a70 andeq r4, pc, r6, lsl r6      |         r4 = pc & (r6 << r6);
                                             |     }
    0x00036a74 ldrheq sb, [ip], -r0          |     __asm ("ldrheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00036a78 andeq sl, r7, r6, lsl r3      |         sl = r7 & (r6 << r3);
                                             |     }
    0x00036a7c ldrheq sb, [ip], -r4          |     __asm ("ldrheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00036a80 andeq pc, r5, r6, lsl lr      |         pc = r5 & (r6 << lr);
                                             |     }
    0x00036a84 ldrheq sb, [ip], -r8          |     __asm ("ldrheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00036a88 andeq pc, r8, r6, lsl lr      |         pc = r8 & (r6 << lr);
                                             |     }
    0x00036a8c ldrheq sb, [ip], -ip          |     __asm ("ldrheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00036a90 andeq lr, sp, r6, lsl sl      |         lr = sp & (r6 << sl);
                                             |     }
    0x00036a94 andseq sb, ip, r0, asr 5      |     __asm ("andseq sb, ip, r0, asr 5");
                                             |     if (? != ?) {
    0x00036a98 andeq fp, r5, r6, lsl r3      |         
                                             |     }
    0x00036a9c andseq sb, ip, r4, asr 5      |     __asm ("andseq sb, ip, r4, asr 5");
                                             |     if (? != ?) {
    0x00036aa0 andeq r4, r1, r6, lsl r3      |         r4 = r1 & (r6 << r3);
                                             |     }
    0x00036aa4 andseq sb, ip, r8, asr 5      |     __asm ("andseq sb, ip, r8, asr 5");
                                             |     if (? != ?) {
    0x00036aa8 andeq r6, r5, r6, lsl r6      |         r6 = r5 & (r6 << r6);
                                             |     }
    0x00036aac andseq sb, ip, ip, asr 5      |     __asm ("andseq sb, ip, ip, asr 5");
                                             |     if (? != ?) {
    0x00036ab0 andeq r4, r1, r6, lsl r4      |         r4 = r1 & (r6 << r4);
                                             |     }
    0x00036ab4 ldrsbeq sb, [ip], -r0         |     __asm ("ldrsbeq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00036ab8 andeq sb, pc, r6, lsl r7      |         sb = pc & (r6 << r7);
                                             |     }
    0x00036abc ldrsbeq sb, [ip], -r4         |     __asm ("ldrsbeq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00036ac0 andeq sb, r2, r6, lsl pc      |         sb = r2 & (r6 << pc);
                                             |     }
    0x00036ac4 ldrsbeq sb, [ip], -r8         |     __asm ("ldrsbeq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00036ac8 andeq ip, sp, r6, lsl r5      |         
                                             |     }
    0x00036acc ldrsbeq sb, [ip], -ip         |     __asm ("ldrsbeq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00036ad0 andeq r4, r1, r6, lsl r5      |         r4 = r1 & (r6 << r5);
                                             |     }
    0x00036ad4 andseq sb, ip, r0, ror 5      |     __asm ("andseq sb, ip, r0, ror 5");
                                             |     if (? != ?) {
    0x00036ad8 andeq r4, r1, r6, lsl r6      |         r4 = r1 & (r6 << r6);
                                             |     }
    0x00036adc andseq sb, ip, r4, ror 5      |     __asm ("andseq sb, ip, r4, ror 5");
                                             |     if (? != ?) {
    0x00036ae0 andeq r1, fp, r6, lsl r6      |         r1 = fp & (r6 << r6);
                                             |     }
    0x00036ae4 andseq sb, ip, r8, ror 5      |     __asm ("andseq sb, ip, r8, ror 5");
                                             |     if (? != ?) {
    0x00036ae8 andeq r8, pc, r6, lsl ip      |         r8 = pc & (r6 << ip);
                                             |     }
    0x00036aec andseq sb, ip, ip, ror 5      |     __asm ("andseq sb, ip, ip, ror 5");
                                             |     if (? != ?) {
    0x00036af0 andeq sb, r5, r6, lsl pc      |         sb = r5 & (r6 << pc);
                                             |     }
    0x00036af4 ldrsheq sb, [ip], -r0         |     __asm ("ldrsheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00036af8 andeq lr, ip, r6, lsl r8      |         lr = ip & (r6 << r8);
                                             |     }
    0x00036afc ldrsheq sb, [ip], -r4         |     __asm ("ldrsheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00036b00 andeq ip, pc, r6, lsl r1      |         
                                             |     }
    0x00036b04 ldrsheq sb, [ip], -r8         |     __asm ("ldrsheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00036b08 andeq r6, r3, r6, lsl r2      |         r6 = r3 & (r6 << r2);
                                             |     }
    0x00036b0c ldrsheq sb, [ip], -ip         |     __asm ("ldrsheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00036b10 andeq r4, r1, r6, lsl r7      |         r4 = r1 & (r6 << r7);
                                             |     }
    0x00036b14 andseq sb, ip, r0, lsl 6      |     __asm ("andseq sb, ip, r0, lsl 6");
                                             |     if (? != ?) {
    0x00036b18 andeq r1, r3, r6, lsl r0      |         r1 = r3 & (r6 << r0);
                                             |     }
    0x00036b1c andseq sb, ip, r4, lsl 6      |     __asm ("andseq sb, ip, r4, lsl 6");
                                             |     if (? != ?) {
    0x00036b20 andeq r2, lr, r6, lsl r4      |         r2 = lr & (r6 << r4);
                                             |     }
    0x00036b24 andseq sb, ip, r8, lsl 6      |     __asm ("andseq sb, ip, r8, lsl 6");
                                             |     if (? != ?) {
    0x00036b28 andeq r3, r2, r6, lsl lr      |         r3 = r2 & (r6 << lr);
                                             |     }
    0x00036b2c andseq sb, ip, ip, lsl 6      |     __asm ("andseq sb, ip, ip, lsl 6");
                                             |     if (? != ?) {
    0x00036b30 andeq sb, fp, r6, lsl lr      |         sb = fp & (r6 << lr);
                                             |     }
    0x00036b34 andseq sb, ip, r0, lsl r3     |     __asm ("andseq sb, ip, r0, lsl r3");
                                             |     if (? != ?) {
    0x00036b38 andeq r6, r7, r6, lsl r2      |         r6 = r7 & (r6 << r2);
                                             |     }
    0x00036b3c andseq sb, ip, r4, lsl r3     |     __asm ("andseq sb, ip, r4, lsl r3");
                                             |     if (? != ?) {
    0x00036b40 andeq r4, r1, r6, lsl r8      |         r4 = r1 & (r6 << r8);
                                             |     }
    0x00036b44 andseq sb, ip, r8, lsl r3     |     __asm ("andseq sb, ip, r8, lsl r3");
                                             |     if (? != ?) {
    0x00036b48 andeq r8, pc, r6, lsl r5      |         r8 = pc & (r6 << r5);
                                             |     }
    0x00036b4c andseq sb, ip, ip, lsl r3     |     __asm ("andseq sb, ip, ip, lsl r3");
                                             |     if (? != ?) {
    0x00036b50 andeq pc, r6, r6, lsl r0      |         pc = r6 & (r6 << r0);
                                             |     }
    0x00036b54 andseq sb, ip, r0, lsr 6      |     __asm ("andseq sb, ip, r0, lsr 6");
                                             |     if (? != ?) {
    0x00036b58 andeq ip, fp, r6, lsl lr      |         
                                             |     }
    0x00036b5c andseq sb, ip, r4, lsr 6      |     __asm ("andseq sb, ip, r4, lsr 6");
                                             |     if (? != ?) {
    0x00036b60 andeq sb, sp, r6, lsl lr      |         sb = sp & (r6 << lr);
                                             |     }
    0x00036b64 andseq sb, ip, r8, lsr 6      |     __asm ("andseq sb, ip, r8, lsr 6");
                                             |     if (? != ?) {
    0x00036b68 andeq sp, pc, r6, lsl r5      |         
                                             |     }
    0x00036b6c andseq sb, ip, ip, lsr 6      |     __asm ("andseq sb, ip, ip, lsr 6");
                                             |     if (? != ?) {
    0x00036b70 andeq r6, r6, r6, lsl r6      |         r6 &= (r6 << r6);
                                             |     }
    0x00036b74 andseq sb, ip, r0, lsr r3     |     __asm ("andseq sb, ip, r0, lsr r3");
                                             |     if (? != ?) {
    0x00036b78 andeq r4, fp, r6, lsl ip      |         r4 = fp & (r6 << ip);
                                             |     }
    0x00036b7c andseq sb, ip, r4, lsr r3     |     __asm ("andseq sb, ip, r4, lsr r3");
                                             |     if (? != ?) {
    0x00036b80 andeq r6, ip, r6, lsl r4      |         r6 = ip & (r6 << r4);
                                             |     }
    0x00036b84 andseq sb, ip, r8, lsr r3     |     __asm ("andseq sb, ip, r8, lsr r3");
                                             |     if (? != ?) {
    0x00036b88 andeq r4, r1, r6, lsl sb      |         r4 = r1 & (r6 << sb);
                                             |     }
    0x00036b8c andseq sb, ip, ip, lsr r3     |     __asm ("andseq sb, ip, ip, lsr r3");
                                             |     if (? != ?) {
    0x00036b90 andeq r5, fp, r6, lsl pc      |         r5 = fp & (r6 << pc);
                                             |     }
    0x00036b94 andseq sb, ip, r0, asr 6      |     __asm ("andseq sb, ip, r0, asr 6");
                                             |     if (? != ?) {
    0x00036b98 andeq r4, r7, r6, lsl r4      |         r4 = r7 & (r6 << r4);
                                             |     }
    0x00036b9c andseq sb, ip, r4, asr 6      |     __asm ("andseq sb, ip, r4, asr 6");
                                             |     if (? != ?) {
    0x00036ba0 andeq r2, ip, r6, lsl r1      |         r2 = ip & (r6 << r1);
                                             |     }
    0x00036ba4 andseq sb, ip, r8, asr 6      |     __asm ("andseq sb, ip, r8, asr 6");
                                             |     if (? != ?) {
    0x00036ba8 andeq r4, r1, r6, lsl sl      |         r4 = r1 & (r6 << sl);
                                             |     }
    0x00036bac andseq sb, ip, ip, asr 6      |     __asm ("andseq sb, ip, ip, asr 6");
                                             |     if (? != ?) {
    0x00036bb0 andeq lr, r4, r6, lsl lr      |         lr = r4 & (r6 << lr);
                                             |     }
    0x00036bb4 andseq sb, ip, r0, asr r3     |     __asm ("andseq sb, ip, r0, asr r3");
                                             |     if (? != ?) {
    0x00036bb8 andeq r0, r3, r6, lsl r1      |         r0 = r3 & (r6 << r1);
                                             |     }
    0x00036bbc andseq sb, ip, r4, asr r3     |     __asm ("andseq sb, ip, r4, asr r3");
                                             |     if (? != ?) {
    0x00036bc0 andeq r4, r1, r6, lsl fp      |         r4 = r1 & (r6 << fp);
                                             |     }
    0x00036bc4 andseq sb, ip, r8, asr r3     |     __asm ("andseq sb, ip, r8, asr r3");
                                             |     if (? != ?) {
    0x00036bc8 andeq r7, r3, r6, lsl pc      |         r7 = r3 & (r6 << pc);
                                             |     }
    0x00036bcc andseq sb, ip, ip, asr r3     |     __asm ("andseq sb, ip, ip, asr r3");
                                             |     if (? != ?) {
    0x00036bd0 andeq r4, lr, r6, lsl r2      |         r4 = lr & (r6 << r2);
                                             |     }
    0x00036bd4 andseq sb, ip, r0, ror 6      |     __asm ("andseq sb, ip, r0, ror 6");
                                             |     if (? != ?) {
    0x00036bd8 andeq r4, r1, r6, lsl ip      |         r4 = r1 & (r6 << ip);
                                             |     }
    0x00036bdc andseq sb, ip, r4, ror 6      |     __asm ("andseq sb, ip, r4, ror 6");
                                             |     if (? != ?) {
    0x00036be0 andeq r7, sl, r6, lsl sl      |         r7 = sl & (r6 << sl);
                                             |     }
    0x00036be4 andseq sb, ip, r8, ror 6      |     __asm ("andseq sb, ip, r8, ror 6");
                                             |     if (? != ?) {
    0x00036be8 andeq r3, lr, r6, lsl sb      |         r3 = lr & (r6 << sb);
                                             |     }
    0x00036bec andseq sb, ip, ip, ror 6      |     __asm ("andseq sb, ip, ip, ror 6");
                                             |     if (? != ?) {
    0x00036bf0 andeq r4, r1, r6, lsl sp      |         r4 = r1 & (r6 << sp);
                                             |     }
    0x00036bf4 andseq sb, ip, r0, ror r3     |     __asm ("andseq sb, ip, r0, ror r3");
                                             |     if (? != ?) {
    0x00036bf8 andeq r4, r1, r6, lsl lr      |         r4 = r1 & (r6 << lr);
                                             |     }
    0x00036bfc andseq sb, ip, r4, ror r3     |     __asm ("andseq sb, ip, r4, ror r3");
                                             |     if (? != ?) {
    0x00036c00 andeq r4, r1, r6, lsl pc      |         r4 = r1 & (r6 << pc);
                                             |     }
    0x00036c04 andseq sb, ip, r8, ror r3     |     __asm ("andseq sb, ip, r8, ror r3");
                                             |     if (? != ?) {
    0x00036c08 andeq r3, r7, r6, lsl sb      |         r3 = r7 & (r6 << sb);
                                             |     }
    0x00036c0c andseq sb, ip, ip, ror r3     |     __asm ("andseq sb, ip, ip, ror r3");
                                             |     if (? != ?) {
    0x00036c10 andeq r4, r8, r6, lsl r3      |         r4 = r8 & (r6 << r3);
                                             |     }
    0x00036c14 andseq sb, ip, r0, lsl 7      |     __asm ("andseq sb, ip, r0, lsl 7");
                                             |     if (? != ?) {
    0x00036c18 andeq pc, r5, r6, lsl r1      |         pc = r5 & (r6 << r1);
                                             |     }
    0x00036c1c andseq sb, ip, r4, lsl 7      |     __asm ("andseq sb, ip, r4, lsl 7");
                                             |     if (? != ?) {
    0x00036c20 andeq lr, fp, r6, lsl fp      |         lr = fp & (r6 << fp);
                                             |     }
    0x00036c24 andseq sb, ip, r8, lsl 7      |     __asm ("andseq sb, ip, r8, lsl 7");
                                             |     if (? != ?) {
    0x00036c28 andeq sb, sp, r6, lsl r2      |         sb = sp & (r6 << r2);
                                             |     }
    0x00036c2c andseq sb, ip, ip, lsl 7      |     __asm ("andseq sb, ip, ip, lsl 7");
                                             |     if (? != ?) {
    0x00036c30 andeq r0, r3, r6, lsl lr      |         r0 = r3 & (r6 << lr);
                                             |     }
    0x00036c34 mulseq ip, r0, r3             |     __asm ("mulseq ip, r0, r3");
                                             |     if (? != ?) {
    0x00036c38 andeq r5, r1, r6, lsl r0      |         r5 = r1 & (r6 << r0);
                                             |     }
    0x00036c3c mulseq ip, r4, r3             |     __asm ("mulseq ip, r4, r3");
                                             |     if (? != ?) {
    0x00036c40 andeq r1, lr, r6, lsl sp      |         r1 = lr & (r6 << sp);
                                             |     }
    0x00036c44 mulseq ip, r8, r3             |     __asm ("mulseq ip, r8, r3");
                                             |     if (? != ?) {
    0x00036c48 andeq ip, r3, r6, lsl r5      |         
                                             |     }
    0x00036c4c mulseq ip, ip, r3             |     __asm ("mulseq ip, ip, r3");
                                             |     if (? != ?) {
    0x00036c50 andeq r8, r7, r6, lsl lr      |         r8 = r7 & (r6 << lr);
                                             |     }
    0x00036c54 andseq sb, ip, r0, lsr 7      |     __asm ("andseq sb, ip, r0, lsr 7");
                                             |     if (? != ?) {
    0x00036c58 andeq pc, r2, r6, lsl r2      |         pc = r2 & (r6 << r2);
                                             |     }
    0x00036c5c andseq sb, ip, r4, lsr 7      |     __asm ("andseq sb, ip, r4, lsr 7");
                                             |     if (? != ?) {
    0x00036c60 andeq r0, lr, r6, lsl r2      |         r0 = lr & (r6 << r2);
                                             |     }
    0x00036c64 andseq sb, ip, r8, lsr 7      |     __asm ("andseq sb, ip, r8, lsr 7");
                                             |     if (? != ?) {
    0x00036c68 andeq r3, pc, r6, lsl sp      |         r3 = pc & (r6 << sp);
                                             |     }
    0x00036c6c andseq sb, ip, ip, lsr 7      |     __asm ("andseq sb, ip, ip, lsr 7");
                                             |     if (? != ?) {
    0x00036c70 andeq r5, r1, r6, lsl r1      |         r5 = r1 & (r6 << r1);
                                             |     }
    0x00036c74 ldrheq sb, [ip], -r0          |     __asm ("ldrheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00036c78 andeq r0, r2, r6, lsl sl      |         r0 = r2 & (r6 << sl);
                                             |     }
    0x00036c7c ldrheq sb, [ip], -r4          |     __asm ("ldrheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00036c80 andeq r5, r1, r6, lsl r2      |         r5 = r1 & (r6 << r2);
                                             |     }
    0x00036c84 ldrheq sb, [ip], -r8          |     __asm ("ldrheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00036c88 andeq r2, pc, r6, lsl r6      |         r2 = pc & (r6 << r6);
                                             |     }
    0x00036c8c ldrheq sb, [ip], -ip          |     __asm ("ldrheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00036c90 andeq r6, r5, r6, lsl r7      |         r6 = r5 & (r6 << r7);
                                             |     }
    0x00036c94 andseq sb, ip, r0, asr 7      |     __asm ("andseq sb, ip, r0, asr 7");
                                             |     if (? != ?) {
    0x00036c98 andeq r5, fp, r6, lsl ip      |         r5 = fp & (r6 << ip);
                                             |     }
    0x00036c9c andseq sb, ip, r4, asr 7      |     __asm ("andseq sb, ip, r4, asr 7");
                                             |     if (? != ?) {
    0x00036ca0 andeq pc, sb, r6, lsl lr      |         pc = sb & (r6 << lr);
                                             |     }
    0x00036ca4 andseq sb, ip, r8, asr 7      |     __asm ("andseq sb, ip, r8, asr 7");
                                             |     if (? != ?) {
    0x00036ca8 andeq r5, r1, r6, lsl r3      |         r5 = r1 & (r6 << r3);
                                             |     }
    0x00036cac andseq sb, ip, ip, asr 7      |     __asm ("andseq sb, ip, ip, asr 7");
                                             |     if (? != ?) {
    0x00036cb0 andeq r5, r1, r6, lsl r4      |         r5 = r1 & (r6 << r4);
                                             |     }
    0x00036cb4 ldrsbeq sb, [ip], -r0         |     __asm ("ldrsbeq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00036cb8 andeq sl, sb, r6, lsl r3      |         sl = sb & (r6 << r3);
                                             |     }
    0x00036cbc ldrsbeq sb, [ip], -r4         |     __asm ("ldrsbeq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00036cc0 andeq r2, lr, r6, lsl sp      |         r2 = lr & (r6 << sp);
                                             |     }
    0x00036cc4 ldrsbeq sb, [ip], -r8         |     __asm ("ldrsbeq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00036cc8 andeq fp, r2, r6, lsl r5      |         
                                             |     }
    0x00036ccc ldrsbeq sb, [ip], -ip         |     __asm ("ldrsbeq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00036cd0 andeq ip, r5, r6, lsl r8      |         
                                             |     }
    0x00036cd4 andseq sb, ip, r0, ror 7      |     __asm ("andseq sb, ip, r0, ror 7");
                                             |     if (? != ?) {
    0x00036cd8 andeq fp, ip, r6, lsl sb      |         
                                             |     }
    0x00036cdc andseq sb, ip, r4, ror 7      |     __asm ("andseq sb, ip, r4, ror 7");
                                             |     if (? != ?) {
    0x00036ce0 andeq r8, r5, r6, lsl r0      |         r8 = r5 & (r6 << r0);
                                             |     }
    0x00036ce4 andseq sb, ip, r8, ror 7      |     __asm ("andseq sb, ip, r8, ror 7");
                                             |     if (? != ?) {
    0x00036ce8 andeq r7, sb, r6, lsl r2      |         r7 = sb & (r6 << r2);
                                             |     }
    0x00036cec andseq sb, ip, ip, ror 7      |     __asm ("andseq sb, ip, ip, ror 7");
                                             |     if (? != ?) {
    0x00036cf0 andeq r5, r1, r6, lsl r5      |         r5 = r1 & (r6 << r5);
                                             |     }
    0x00036cf4 ldrsheq sb, [ip], -r0         |     __asm ("ldrsheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00036cf8 andeq r3, pc, r6, lsl r4      |         r3 = pc & (r6 << r4);
                                             |     }
    0x00036cfc ldrsheq sb, [ip], -r4         |     __asm ("ldrsheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00036d00 andeq fp, r6, r6, lsl r0      |         
                                             |     }
    0x00036d04 ldrsheq sb, [ip], -r8         |     __asm ("ldrsheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00036d08 andeq r2, ip, r6, lsl lr      |         r2 = ip & (r6 << lr);
                                             |     }
    0x00036d0c ldrsheq sb, [ip], -ip         |     __asm ("ldrsheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00036d10 andeq ip, pc, r6, lsl r7      |         
                                             |     }
    0x00036d14 andseq sb, ip, r0, lsl 8      |     __asm ("andseq sb, ip, r0, lsl 8");
                                             |     if (? != ?) {
    0x00036d18 andeq r8, lr, r6, lsl r2      |         r8 = lr & (r6 << r2);
                                             |     }
    0x00036d1c andseq sb, ip, r4, lsl 8      |     __asm ("andseq sb, ip, r4, lsl 8");
                                             |     if (? != ?) {
    0x00036d20 andeq r5, r1, r6, lsl r7      |         r5 = r1 & (r6 << r7);
                                             |     }
    0x00036d24 andseq sb, ip, r8, lsl 8      |     __asm ("andseq sb, ip, r8, lsl 8");
                                             |     if (? != ?) {
    0x00036d28 andeq r1, r4, r6, lsl ip      |         r1 = r4 & (r6 << ip);
                                             |     }
    0x00036d2c andseq sb, ip, ip, lsl 8      |     __asm ("andseq sb, ip, ip, lsl 8");
                                             |     if (? != ?) {
    0x00036d30 andeq r3, fp, r6, lsl fp      |         r3 = fp & (r6 << fp);
                                             |     }
    0x00036d34 andseq sb, ip, r0, lsl r4     |     __asm ("andseq sb, ip, r0, lsl r4");
                                             |     if (? != ?) {
    0x00036d38 andeq r6, r8, r6, lsl sp      |         r6 = r8 & (r6 << sp);
                                             |     }
    0x00036d3c andseq sb, ip, r4, lsl r4     |     __asm ("andseq sb, ip, r4, lsl r4");
                                             |     if (? != ?) {
    0x00036d40 andeq r5, r1, r6, lsl r8      |         r5 = r1 & (r6 << r8);
                                             |     }
    0x00036d44 andseq sb, ip, r8, lsl r4     |     __asm ("andseq sb, ip, r8, lsl r4");
                                             |     if (? != ?) {
    0x00036d48 andeq ip, r5, r6, lsl fp      |         
                                             |     }
    0x00036d4c andseq sb, ip, ip, lsl r4     |     __asm ("andseq sb, ip, ip, lsl r4");
                                             |     if (? != ?) {
    0x00036d50 andeq r1, pc, r6, lsl r1      |         r1 = pc & (r6 << r1);
                                             |     }
    0x00036d54 andseq sb, ip, r0, lsr 8      |     __asm ("andseq sb, ip, r0, lsr 8");
                                             |     if (? != ?) {
    0x00036d58 andeq r7, lr, r6, lsl pc      |         r7 = lr & (r6 << pc);
                                             |     }
    0x00036d5c andseq sb, ip, r4, lsr 8      |     __asm ("andseq sb, ip, r4, lsr 8");
                                             |     if (? != ?) {
    0x00036d60 andeq r7, r4, r6, lsl sl      |         r7 = r4 & (r6 << sl);
                                             |     }
    0x00036d64 andseq sb, ip, r8, lsr 8      |     __asm ("andseq sb, ip, r8, lsr 8");
                                             |     if (? != ?) {
    0x00036d68 andeq r5, r1, r6, lsl sl      |         r5 = r1 & (r6 << sl);
                                             |     }
    0x00036d6c andseq sb, ip, ip, lsr 8      |     __asm ("andseq sb, ip, ip, lsr 8");
                                             |     if (? != ?) {
    0x00036d70 andeq r0, r7, r6, lsl r7      |         r0 = r7 & (r6 << r7);
                                             |     }
    0x00036d74 andseq sb, ip, r0, lsr r4     |     __asm ("andseq sb, ip, r0, lsr r4");
                                             |     if (? != ?) {
    0x00036d78 andeq sb, lr, r6, lsl sb      |         sb = lr & (r6 << sb);
                                             |     }
    0x00036d7c andseq sb, ip, r4, lsr r4     |     __asm ("andseq sb, ip, r4, lsr r4");
                                             |     if (? != ?) {
    0x00036d80 andeq pc, r6, r6, lsl r6      |         pc = r6 & (r6 << r6);
                                             |     }
    0x00036d84 andseq sb, ip, r8, lsr r4     |     __asm ("andseq sb, ip, r8, lsr r4");
                                             |     if (? != ?) {
    0x00036d88 andeq r5, r1, r6, lsl fp      |         r5 = r1 & (r6 << fp);
                                             |     }
    0x00036d8c andseq sb, ip, ip, lsr r4     |     __asm ("andseq sb, ip, ip, lsr r4");
                                             |     if (? != ?) {
    0x00036d90 andeq r5, r1, r6, lsl ip      |         r5 = r1 & (r6 << ip);
                                             |     }
    0x00036d94 andseq sb, ip, r0, asr 8      |     __asm ("andseq sb, ip, r0, asr 8");
                                             |     if (? != ?) {
    0x00036d98 andeq r2, sp, r6, lsl r3      |         r2 = sp & (r6 << r3);
                                             |     }
    0x00036d9c andseq sb, ip, r4, asr 8      |     __asm ("andseq sb, ip, r4, asr 8");
                                             |     if (? != ?) {
    0x00036da0 andeq ip, r4, r6, lsl r7      |         
                                             |     }
    0x00036da4 andseq sb, ip, r8, asr 8      |     __asm ("andseq sb, ip, r8, asr 8");
                                             |     if (? != ?) {
    0x00036da8 andeq r8, fp, r6, lsl r1      |         r8 = fp & (r6 << r1);
                                             |     }
    0x00036dac andseq sb, ip, ip, asr 8      |     __asm ("andseq sb, ip, ip, asr 8");
                                             |     if (? != ?) {
    0x00036db0 andeq r5, r1, r6, lsl sp      |         r5 = r1 & (r6 << sp);
                                             |     }
    0x00036db4 andseq sb, ip, r0, asr r4     |     __asm ("andseq sb, ip, r0, asr r4");
                                             |     if (? != ?) {
    0x00036db8 andeq r5, lr, r6, lsl r5      |         r5 = lr & (r6 << r5);
                                             |     }
    0x00036dbc andseq sb, ip, r4, asr r4     |     __asm ("andseq sb, ip, r4, asr r4");
                                             |     if (? != ?) {
    0x00036dc0 andeq sp, r3, r6, lsl r2      |         
                                             |     }
    0x00036dc4 andseq sb, ip, r8, asr r4     |     __asm ("andseq sb, ip, r8, asr r4");
                                             |     if (? != ?) {
    0x00036dc8 andeq sb, r3, r6, lsl lr      |         sb = r3 & (r6 << lr);
                                             |     }
    0x00036dcc andseq sb, ip, ip, asr r4     |     __asm ("andseq sb, ip, ip, asr r4");
                                             |     if (? != ?) {
    0x00036dd0 andeq r3, sb, r6, lsl r6      |         r3 = sb & (r6 << r6);
                                             |     }
    0x00036dd4 andseq sb, ip, r0, ror 8      |     __asm ("andseq sb, ip, r0, ror 8");
                                             |     if (? != ?) {
    0x00036dd8 andeq r5, r1, r6, lsl lr      |         r5 = r1 & (r6 << lr);
                                             |     }
    0x00036ddc andseq sb, ip, r4, ror 8      |     __asm ("andseq sb, ip, r4, ror 8");
                                             |     if (? != ?) {
    0x00036de0 andeq r4, r8, r6, lsl r6      |         r4 = r8 & (r6 << r6);
                                             |     }
    0x00036de4 andseq sb, ip, r8, ror 8      |     __asm ("andseq sb, ip, r8, ror 8");
                                             |     if (? != ?) {
    0x00036de8 andeq ip, r8, r6, lsl r0      |         
                                             |     }
    0x00036dec andseq sb, ip, ip, ror 8      |     __asm ("andseq sb, ip, ip, ror 8");
                                             |     if (? != ?) {
    0x00036df0 andeq r5, r1, r6, lsl pc      |         r5 = r1 & (r6 << pc);
                                             |     }
    0x00036df4 andseq sb, ip, r0, ror r4     |     __asm ("andseq sb, ip, r0, ror r4");
                                             |     if (? != ?) {
    0x00036df8 andeq pc, r8, r6, lsl sp      |         pc = r8 & (r6 << sp);
                                             |     }
    0x00036dfc andseq sb, ip, r4, ror r4     |     __asm ("andseq sb, ip, r4, ror r4");
                                             |     if (? != ?) {
    0x00036e00 andeq r6, r1, r6, lsl r0      |         r6 = r1 & (r6 << r0);
                                             |     }
    0x00036e04 andseq sb, ip, r8, ror r4     |     __asm ("andseq sb, ip, r8, ror r4");
                                             |     if (? != ?) {
    0x00036e08 andeq ip, r5, r6, lsl r6      |         
                                             |     }
    0x00036e0c andseq sb, ip, ip, ror r4     |     __asm ("andseq sb, ip, ip, ror r4");
                                             |     if (? != ?) {
    0x00036e10 andeq r6, sl, r6, lsl r7      |         r6 = sl & (r6 << r7);
                                             |     }
    0x00036e14 andseq sb, ip, r0, lsl 9      |     __asm ("andseq sb, ip, r0, lsl 9");
                                             |     if (? != ?) {
    0x00036e18 andeq fp, r7, r6, lsl r5      |         
                                             |     }
    0x00036e1c andseq sb, ip, r4, lsl 9      |     __asm ("andseq sb, ip, r4, lsl 9");
                                             |     if (? != ?) {
    0x00036e20 andeq pc, r7, r6, lsl sp      |         pc = r7 & (r6 << sp);
                                             |     }
    0x00036e24 andseq sb, ip, r8, lsl 9      |     __asm ("andseq sb, ip, r8, lsl 9");
                                             |     if (? != ?) {
    0x00036e28 andeq ip, r7, r6, lsl sl      |         
                                             |     }
    0x00036e2c andseq sb, ip, ip, lsl 9      |     __asm ("andseq sb, ip, ip, lsl 9");
                                             |     if (? != ?) {
    0x00036e30 andeq r5, r2, r6, lsl r5      |         r5 = r2 & (r6 << r5);
                                             |     }
    0x00036e34 mulseq ip, r0, r4             |     __asm ("mulseq ip, r0, r4");
                                             |     if (? != ?) {
    0x00036e38 andeq r4, r2, r6, lsl r7      |         r4 = r2 & (r6 << r7);
                                             |     }
    0x00036e3c mulseq ip, r4, r4             |     __asm ("mulseq ip, r4, r4");
                                             |     if (? != ?) {
    0x00036e40 andeq r8, sb, r6, lsl r3      |         r8 = sb & (r6 << r3);
                                             |     }
    0x00036e44 mulseq ip, r8, r4             |     __asm ("mulseq ip, r8, r4");
                                             |     if (? != ?) {
    0x00036e48 andeq fp, fp, r6, lsl r5      |         
                                             |     }
    0x00036e4c mulseq ip, ip, r4             |     __asm ("mulseq ip, ip, r4");
                                             |     if (? != ?) {
    0x00036e50 andeq lr, r2, r6, lsl r4      |         lr = r2 & (r6 << r4);
                                             |     }
    0x00036e54 andseq sb, ip, r0, lsr 9      |     __asm ("andseq sb, ip, r0, lsr 9");
                                             |     if (? != ?) {
    0x00036e58 andeq r6, r1, r6, lsl r1      |         r6 = r1 & (r6 << r1);
                                             |     }
    0x00036e5c andseq sb, ip, r4, lsr 9      |     __asm ("andseq sb, ip, r4, lsr 9");
                                             |     if (? != ?) {
    0x00036e60 andeq lr, r8, r6, lsl r3      |         lr = r8 & (r6 << r3);
                                             |     }
    0x00036e64 andseq sb, ip, r8, lsr 9      |     __asm ("andseq sb, ip, r8, lsr 9");
                                             |     if (? != ?) {
    0x00036e68 andeq pc, fp, r6, lsl r5      |         pc = fp & (r6 << r5);
                                             |     }
    0x00036e6c andseq sb, ip, ip, lsr 9      |     __asm ("andseq sb, ip, ip, lsr 9");
                                             |     if (? != ?) {
    0x00036e70 andeq lr, fp, r6, lsl ip      |         lr = fp & (r6 << ip);
                                             |     }
    0x00036e74 ldrheq sb, [ip], -r0          |     __asm ("ldrheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00036e78 andeq r7, ip, r6, lsl r7      |         r7 = ip & (r6 << r7);
                                             |     }
    0x00036e7c ldrheq sb, [ip], -r4          |     __asm ("ldrheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00036e80 andeq r8, fp, r6, lsl sp      |         r8 = fp & (r6 << sp);
                                             |     }
    0x00036e84 ldrheq sb, [ip], -r8          |     __asm ("ldrheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00036e88 andeq r7, r5, r6, lsl pc      |         r7 = r5 & (r6 << pc);
                                             |     }
    0x00036e8c ldrheq sb, [ip], -ip          |     __asm ("ldrheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00036e90 andeq ip, sl, r6, lsl r1      |         
                                             |     }
    0x00036e94 andseq sb, ip, r0, asr 9      |     __asm ("andseq sb, ip, r0, asr 9");
                                             |     if (? != ?) {
    0x00036e98 andeq sb, fp, r6, lsl r0      |         sb = fp & (r6 << r0);
                                             |     }
    0x00036e9c andseq sb, ip, r4, asr 9      |     __asm ("andseq sb, ip, r4, asr 9");
                                             |     if (? != ?) {
    0x00036ea0 andeq r6, r6, r6, lsl sl      |         r6 &= (r6 << sl);
                                             |     }
    0x00036ea4 andseq sb, ip, r8, asr 9      |     __asm ("andseq sb, ip, r8, asr 9");
                                             |     if (? != ?) {
    0x00036ea8 andeq r6, r1, r6, lsl r2      |         r6 = r1 & (r6 << r2);
                                             |     }
    0x00036eac andseq sb, ip, ip, asr 9      |     __asm ("andseq sb, ip, ip, asr 9");
                                             |     if (? != ?) {
    0x00036eb0 andeq sb, r3, r6, lsl r2      |         sb = r3 & (r6 << r2);
                                             |     }
    0x00036eb4 ldrsbeq sb, [ip], -r0         |     __asm ("ldrsbeq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00036eb8 andeq r6, r1, r6, lsl r3      |         r6 = r1 & (r6 << r3);
                                             |     }
    0x00036ebc ldrsbeq sb, [ip], -r4         |     __asm ("ldrsbeq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00036ec0 andeq sb, fp, r6, lsl r8      |         sb = fp & (r6 << r8);
                                             |     }
    0x00036ec4 ldrsbeq sb, [ip], -r8         |     __asm ("ldrsbeq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00036ec8 andeq r6, r1, r6, lsl r4      |         r6 = r1 & (r6 << r4);
                                             |     }
    0x00036ecc ldrsbeq sb, [ip], -ip         |     __asm ("ldrsbeq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00036ed0 andeq r6, r1, r6, lsl r5      |         r6 = r1 & (r6 << r5);
                                             |     }
    0x00036ed4 andseq sb, ip, r0, ror 9      |     __asm ("andseq sb, ip, r0, ror 9");
                                             |     if (? != ?) {
    0x00036ed8 andeq r1, r7, r6, lsl r5      |         r1 = r7 & (r6 << r5);
                                             |     }
    0x00036edc andseq sb, ip, r4, ror 9      |     __asm ("andseq sb, ip, r4, ror 9");
                                             |     if (? != ?) {
    0x00036ee0 andeq r2, lr, r6, lsl r8      |         r2 = lr & (r6 << r8);
                                             |     }
    0x00036ee4 andseq sb, ip, r8, ror 9      |     __asm ("andseq sb, ip, r8, ror 9");
                                             |     if (? != ?) {
    0x00036ee8 andeq r4, pc, r6, lsl r7      |         r4 = pc & (r6 << r7);
                                             |     }
    0x00036eec andseq sb, ip, ip, ror 9      |     __asm ("andseq sb, ip, ip, ror 9");
                                             |     if (? != ?) {
    0x00036ef0 andeq r4, r5, r6, lsl lr      |         r4 = r5 & (r6 << lr);
                                             |     }
    0x00036ef4 ldrsheq sb, [ip], -r0         |     __asm ("ldrsheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00036ef8 andeq r5, r7, r6, lsl pc      |         r5 = r7 & (r6 << pc);
                                             |     }
    0x00036efc ldrsheq sb, [ip], -r4         |     __asm ("ldrsheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00036f00 andeq sb, sl, r6, lsl r7      |         sb = sl & (r6 << r7);
                                             |     }
    0x00036f04 ldrsheq sb, [ip], -r8         |     __asm ("ldrsheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00036f08 andeq r6, r1, r6, lsl r6      |         r6 = r1 & (r6 << r6);
                                             |     }
    0x00036f0c ldrsheq sb, [ip], -ip         |     __asm ("ldrsheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00036f10 andeq r7, r2, r6, lsl pc      |         r7 = r2 & (r6 << pc);
                                             |     }
    0x00036f14 andseq sb, ip, r0, lsl 10     |     __asm ("andseq sb, ip, r0, lsl 10");
                                             |     if (? != ?) {
    0x00036f18 andeq r5, r4, r6, lsl r0      |         r5 = r4 & (r6 << r0);
                                             |     }
    0x00036f1c andseq sb, ip, r4, lsl 10     |     __asm ("andseq sb, ip, r4, lsl 10");
                                             |     if (? != ?) {
    0x00036f20 andeq ip, r3, r6, lsl r1      |         
                                             |     }
    0x00036f24 andseq sb, ip, r8, lsl 10     |     __asm ("andseq sb, ip, r8, lsl 10");
                                             |     if (? != ?) {
    0x00036f28 andeq r3, lr, r6, lsl r4      |         r3 = lr & (r6 << r4);
                                             |     }
    0x00036f2c andseq sb, ip, ip, lsl 10     |     __asm ("andseq sb, ip, ip, lsl 10");
                                             |     if (? != ?) {
    0x00036f30 andeq sp, r8, r6, lsl r7      |         
                                             |     }
    0x00036f34 andseq sb, ip, r0, lsl r5     |     __asm ("andseq sb, ip, r0, lsl r5");
                                             |     if (? != ?) {
    0x00036f38 andeq r0, r5, r6, lsl sp      |         r0 = r5 & (r6 << sp);
                                             |     }
    0x00036f3c andseq sb, ip, r4, lsl r5     |     __asm ("andseq sb, ip, r4, lsl r5");
                                             |     if (? != ?) {
    0x00036f40 andeq sb, r7, r6, lsl sb      |         sb = r7 & (r6 << sb);
                                             |     }
    0x00036f44 andseq sb, ip, r8, lsl r5     |     __asm ("andseq sb, ip, r8, lsl r5");
                                             |     if (? != ?) {
    0x00036f48 andeq r4, r7, r6, lsl r6      |         r4 = r7 & (r6 << r6);
                                             |     }
    0x00036f4c andseq sb, ip, ip, lsl r5     |     __asm ("andseq sb, ip, ip, lsl r5");
                                             |     if (? != ?) {
    0x00036f50 andeq r8, ip, r6, lsl lr      |         r8 = ip & (r6 << lr);
                                             |     }
    0x00036f54 andseq sb, ip, r0, lsr 10     |     __asm ("andseq sb, ip, r0, lsr 10");
                                             |     if (? != ?) {
    0x00036f58 andeq r3, r2, r6, lsl r1      |         r3 = r2 & (r6 << r1);
                                             |     }
    0x00036f5c andseq sb, ip, r4, lsr 10     |     __asm ("andseq sb, ip, r4, lsr 10");
                                             |     if (? != ?) {
    0x00036f60 andeq r6, r1, r6, lsl r7      |         r6 = r1 & (r6 << r7);
                                             |     }
    0x00036f64 andseq sb, ip, r8, lsr 10     |     __asm ("andseq sb, ip, r8, lsr 10");
                                             |     if (? != ?) {
    0x00036f68 andeq r0, pc, r6, lsl fp      |         r0 = pc & (r6 << fp);
                                             |     }
    0x00036f6c andseq sb, ip, ip, lsr 10     |     __asm ("andseq sb, ip, ip, lsr 10");
                                             |     if (? != ?) {
    0x00036f70 andeq ip, pc, r6, lsl r2      |         
                                             |     }
    0x00036f74 andseq sb, ip, r0, lsr r5     |     __asm ("andseq sb, ip, r0, lsr r5");
                                             |     if (? != ?) {
    0x00036f78 andeq r6, r1, r6, lsl r8      |         r6 = r1 & (r6 << r8);
                                             |     }
    0x00036f7c andseq sb, ip, r4, lsr r5     |     __asm ("andseq sb, ip, r4, lsr r5");
                                             |     if (? != ?) {
    0x00036f80 andeq r0, r3, r6, lsl r2      |         r0 = r3 & (r6 << r2);
                                             |     }
    0x00036f84 andseq sb, ip, r8, lsr r5     |     __asm ("andseq sb, ip, r8, lsr r5");
                                             |     if (? != ?) {
    0x00036f88 andeq r7, pc, r6, lsl r0      |         r7 = pc & (r6 << r0);
                                             |     }
    0x00036f8c andseq sb, ip, ip, lsr r5     |     __asm ("andseq sb, ip, ip, lsr r5");
                                             |     if (? != ?) {
    0x00036f90 andeq lr, r6, r6, lsl ip      |         lr = r6 & (r6 << ip);
                                             |     }
    0x00036f94 andseq sb, ip, r0, asr 10     |     __asm ("andseq sb, ip, r0, asr 10");
                                             |     if (? != ?) {
    0x00036f98 andeq r1, sp, r6, lsl r2      |         r1 = sp & (r6 << r2);
                                             |     }
    0x00036f9c andseq sb, ip, r4, asr 10     |     __asm ("andseq sb, ip, r4, asr 10");
                                             |     if (? != ?) {
    0x00036fa0 andeq r5, pc, r6, lsl r3      |         r5 = pc & (r6 << r3);
                                             |     }
    0x00036fa4 andseq sb, ip, r8, asr 10     |     __asm ("andseq sb, ip, r8, asr 10");
                                             |     if (? != ?) {
    0x00036fa8 andeq lr, r7, r6, lsl r5      |         lr = r7 & (r6 << r5);
                                             |     }
    0x00036fac andseq sb, ip, ip, asr 10     |     __asm ("andseq sb, ip, ip, asr 10");
                                             |     if (? != ?) {
    0x00036fb0 andeq r5, sl, r6, lsl r3      |         r5 = sl & (r6 << r3);
                                             |     }
    0x00036fb4 andseq sb, ip, r0, asr r5     |     __asm ("andseq sb, ip, r0, asr r5");
                                             |     if (? != ?) {
    0x00036fb8 andeq lr, r5, r6, lsl sp      |         lr = r5 & (r6 << sp);
                                             |     }
    0x00036fbc andseq sb, ip, r4, asr r5     |     __asm ("andseq sb, ip, r4, asr r5");
                                             |     if (? != ?) {
    0x00036fc0 andeq r4, r3, r6, lsl r5      |         r4 = r3 & (r6 << r5);
                                             |     }
    0x00036fc4 andseq sb, ip, r8, asr r5     |     __asm ("andseq sb, ip, r8, asr r5");
                                             |     if (? != ?) {
    0x00036fc8 andeq r8, ip, r6, lsl r2      |         r8 = ip & (r6 << r2);
                                             |     }
    0x00036fcc andseq sb, ip, ip, asr r5     |     __asm ("andseq sb, ip, ip, asr r5");
                                             |     if (? != ?) {
    0x00036fd0 andeq ip, sp, r6, lsl fp      |         
                                             |     }
    0x00036fd4 andseq sb, ip, r0, ror 10     |     __asm ("andseq sb, ip, r0, ror 10");
                                             |     if (? != ?) {
    0x00036fd8 andeq sl, sp, r6, lsl r2      |         sl = sp & (r6 << r2);
                                             |     }
    0x00036fdc andseq sb, ip, r4, ror 10     |     __asm ("andseq sb, ip, r4, ror 10");
                                             |     if (? != ?) {
    0x00036fe0 andeq sb, pc, r6, lsl ip      |         sb = pc & (r6 << ip);
                                             |     }
    0x00036fe4 andseq sb, ip, r8, ror 10     |     __asm ("andseq sb, ip, r8, ror 10");
                                             |     if (? != ?) {
    0x00036fe8 andeq r6, r1, r6, lsl sb      |         r6 = r1 & (r6 << sb);
                                             |     }
    0x00036fec andseq sb, ip, ip, ror 10     |     __asm ("andseq sb, ip, ip, ror 10");
                                             |     if (? != ?) {
    0x00036ff0 andeq sb, r6, r6, lsl sp      |         sb = r6 & (r6 << sp);
                                             |     }
    0x00036ff4 andseq sb, ip, r0, ror r5     |     __asm ("andseq sb, ip, r0, ror r5");
                                             |     if (? != ?) {
    0x00036ff8 andeq r7, r4, r6, lsl lr      |         r7 = r4 & (r6 << lr);
                                             |     }
    0x00036ffc andseq sb, ip, r4, ror r5     |     __asm ("andseq sb, ip, r4, ror r5");
                                             |     if (? != ?) {
    0x00037000 andeq r8, sb, r6, lsl r4      |         r8 = sb & (r6 << r4);
                                             |     }
    0x00037004 andseq sb, ip, r8, ror r5     |     __asm ("andseq sb, ip, r8, ror r5");
                                             |     if (? != ?) {
    0x00037008 andeq r1, r3, r6, lsl fp      |         r1 = r3 & (r6 << fp);
                                             |     }
    0x0003700c andseq sb, ip, ip, ror r5     |     __asm ("andseq sb, ip, ip, ror r5");
                                             |     if (? != ?) {
    0x00037010 andeq r6, r1, r6, lsl sl      |         r6 = r1 & (r6 << sl);
                                             |     }
    0x00037014 andseq sb, ip, r0, lsl 11     |     __asm ("andseq sb, ip, r0, lsl 11");
                                             |     if (? != ?) {
    0x00037018 andeq sl, ip, r6, lsl fp      |         sl = ip & (r6 << fp);
                                             |     }
    0x0003701c andseq sb, ip, r4, lsl 11     |     __asm ("andseq sb, ip, r4, lsl 11");
                                             |     if (? != ?) {
    0x00037020 andeq fp, r6, r6, lsl r1      |         
                                             |     }
    0x00037024 andseq sb, ip, r8, lsl 11     |     __asm ("andseq sb, ip, r8, lsl 11");
                                             |     if (? != ?) {
    0x00037028 andeq r6, r1, r6, lsl fp      |         r6 = r1 & (r6 << fp);
                                             |     }
    0x0003702c andseq sb, ip, ip, lsl 11     |     __asm ("andseq sb, ip, ip, lsl 11");
                                             |     if (? != ?) {
    0x00037030 andeq r0, pc, r6, lsl r3      |         r0 = pc & (r6 << r3);
                                             |     }
    0x00037034 mulseq ip, r0, r5             |     __asm ("mulseq ip, r0, r5");
                                             |     if (? != ?) {
    0x00037038 andeq r6, r1, r6, lsl ip      |         r6 = r1 & (r6 << ip);
                                             |     }
    0x0003703c mulseq ip, r4, r5             |     __asm ("mulseq ip, r4, r5");
                                             |     if (? != ?) {
    0x00037040 andeq sp, r3, r6, lsl sb      |         
                                             |     }
    0x00037044 mulseq ip, r8, r5             |     __asm ("mulseq ip, r8, r5");
                                             |     if (? != ?) {
    0x00037048 andeq r1, r6, r6, lsl r1      |         r1 = r6 & (r6 << r1);
                                             |     }
    0x0003704c mulseq ip, ip, r5             |     __asm ("mulseq ip, ip, r5");
                                             |     if (? != ?) {
    0x00037050 andeq pc, r1, r6, lsl r4      |         pc = r1 & (r6 << r4);
                                             |     }
    0x00037054 andseq sb, ip, r0, lsr 11     |     __asm ("andseq sb, ip, r0, lsr 11");
                                             |     if (? != ?) {
    0x00037058 andeq lr, r3, r6, lsl r0      |         lr = r3 & (r6 << r0);
                                             |     }
    0x0003705c andseq sb, ip, r4, lsr 11     |     __asm ("andseq sb, ip, r4, lsr 11");
                                             |     if (? != ?) {
    0x00037060 andeq r2, r8, r6, lsl r8      |         r2 = r8 & (r6 << r8);
                                             |     }
    0x00037064 andseq sb, ip, r8, lsr 11     |     __asm ("andseq sb, ip, r8, lsr 11");
                                             |     if (? != ?) {
    0x00037068 andeq r5, fp, r6, lsl r6      |         r5 = fp & (r6 << r6);
                                             |     }
    0x0003706c andseq sb, ip, ip, lsr 11     |     __asm ("andseq sb, ip, ip, lsr 11");
                                             |     if (? != ?) {
    0x00037070 andeq r6, r1, r6, lsl sp      |         r6 = r1 & (r6 << sp);
                                             |     }
    0x00037074 ldrheq sb, [ip], -r0          |     __asm ("ldrheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00037078 andeq r6, r1, r6, lsl lr      |         r6 = r1 & (r6 << lr);
                                             |     }
    0x0003707c ldrheq sb, [ip], -r4          |     __asm ("ldrheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037080 andeq r7, r3, r6, lsl r8      |         r7 = r3 & (r6 << r8);
                                             |     }
    0x00037084 ldrheq sb, [ip], -r8          |     __asm ("ldrheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037088 andeq r5, ip, r6, lsl pc      |         r5 = ip & (r6 << pc);
                                             |     }
    0x0003708c ldrheq sb, [ip], -ip          |     __asm ("ldrheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037090 andeq sl, sl, r6, lsl pc      |         sl &= (r6 << pc);
                                             |     }
    0x00037094 andseq sb, ip, r0, asr 11     |     __asm ("andseq sb, ip, r0, asr 11");
                                             |     if (? != ?) {
    0x00037098 andeq r6, sp, r6, lsl r6      |         r6 = sp & (r6 << r6);
                                             |     }
    0x0003709c andseq sb, ip, r4, asr 11     |     __asm ("andseq sb, ip, r4, asr 11");
                                             |     if (? != ?) {
    0x000370a0 andeq lr, sl, r6, lsl ip      |         lr = sl & (r6 << ip);
                                             |     }
    0x000370a4 andseq sb, ip, r8, asr 11     |     __asm ("andseq sb, ip, r8, asr 11");
                                             |     if (? != ?) {
    0x000370a8 andeq pc, r4, r6, lsl pc      |         pc = r4 & (r6 << pc);
                                             |     }
    0x000370ac andseq sb, ip, ip, asr 11     |     __asm ("andseq sb, ip, ip, asr 11");
                                             |     if (? != ?) {
    0x000370b0 andeq r1, fp, r6, lsl sb      |         r1 = fp & (r6 << sb);
                                             |     }
    0x000370b4 ldrsbeq sb, [ip], -r0         |     __asm ("ldrsbeq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000370b8 andeq r2, sb, r6, lsl r5      |         r2 = sb & (r6 << r5);
                                             |     }
    0x000370bc ldrsbeq sb, [ip], -r4         |     __asm ("ldrsbeq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x000370c0 andeq r8, r5, r6, lsl pc      |         r8 = r5 & (r6 << pc);
                                             |     }
    0x000370c4 ldrsbeq sb, [ip], -r8         |     __asm ("ldrsbeq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x000370c8 andeq r1, r3, r6, lsl pc      |         r1 = r3 & (r6 << pc);
                                             |     }
    0x000370cc ldrsbeq sb, [ip], -ip         |     __asm ("ldrsbeq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x000370d0 andeq r8, fp, r6, lsl r2      |         r8 = fp & (r6 << r2);
                                             |     }
    0x000370d4 andseq sb, ip, r0, ror 11     |     __asm ("andseq sb, ip, r0, ror 11");
                                             |     if (? != ?) {
    0x000370d8 andeq pc, r7, r6, lsl r8      |         pc = r7 & (r6 << r8);
                                             |     }
    0x000370dc andseq sb, ip, r4, ror 11     |     __asm ("andseq sb, ip, r4, ror 11");
                                             |     if (? != ?) {
    0x000370e0 andeq r5, sp, r6, lsl pc      |         r5 = sp & (r6 << pc);
                                             |     }
    0x000370e4 andseq sb, ip, r8, ror 11     |     __asm ("andseq sb, ip, r8, ror 11");
                                             |     if (? != ?) {
    0x000370e8 andeq r5, r8, r6, lsl r2      |         r5 = r8 & (r6 << r2);
                                             |     }
    0x000370ec andseq sb, ip, ip, ror 11     |     __asm ("andseq sb, ip, ip, ror 11");
                                             |     if (? != ?) {
    0x000370f0 andeq r3, sp, r6, lsl pc      |         r3 = sp & (r6 << pc);
                                             |     }
    0x000370f4 ldrsheq sb, [ip], -r0         |     __asm ("ldrsheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000370f8 andeq r1, r6, r6, lsl r2      |         r1 = r6 & (r6 << r2);
                                             |     }
    0x000370fc ldrsheq sb, [ip], -r4         |     __asm ("ldrsheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037100 andeq pc, sp, r6, lsl r6      |         pc = sp & (r6 << r6);
                                             |     }
    0x00037104 ldrsheq sb, [ip], -r8         |     __asm ("ldrsheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037108 andeq r3, ip, r6, lsl r0      |         r3 = ip & (r6 << r0);
                                             |     }
    0x0003710c ldrsheq sb, [ip], -ip         |     __asm ("ldrsheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037110 andeq r7, sp, r6, lsl r3      |         r7 = sp & (r6 << r3);
                                             |     }
    0x00037114 andseq sb, ip, r0, lsl 12     |     __asm ("andseq sb, ip, r0, lsl 12");
                                             |     if (? != ?) {
    0x00037118 andeq r6, r1, r6, lsl pc      |         r6 = r1 & (r6 << pc);
                                             |     }
    0x0003711c andseq sb, ip, r4, lsl 12     |     __asm ("andseq sb, ip, r4, lsl 12");
                                             |     if (? != ?) {
    0x00037120 andeq ip, r7, r6, lsl r8      |         
                                             |     }
    0x00037124 andseq sb, ip, r8, lsl 12     |     __asm ("andseq sb, ip, r8, lsl 12");
                                             |     if (? != ?) {
    0x00037128 andeq r7, pc, r6, lsl sl      |         r7 = pc & (r6 << sl);
                                             |     }
    0x0003712c andseq sb, ip, ip, lsl 12     |     __asm ("andseq sb, ip, ip, lsl 12");
                                             |     if (? != ?) {
    0x00037130 andeq fp, r6, r6, lsl sb      |         
                                             |     }
    0x00037134 andseq sb, ip, r0, lsl r6     |     __asm ("andseq sb, ip, r0, lsl r6");
                                             |     if (? != ?) {
    0x00037138 andeq sb, r4, r6, lsl sl      |         sb = r4 & (r6 << sl);
                                             |     }
    0x0003713c andseq sb, ip, r4, lsl r6     |     __asm ("andseq sb, ip, r4, lsl r6");
                                             |     if (? != ?) {
    0x00037140 andeq r5, sl, r6, lsl r4      |         r5 = sl & (r6 << r4);
                                             |     }
    0x00037144 andseq sb, ip, r8, lsl r6     |     __asm ("andseq sb, ip, r8, lsl r6");
                                             |     if (? != ?) {
    0x00037148 andeq r6, fp, r6, lsl r2      |         r6 = fp & (r6 << r2);
                                             |     }
    0x0003714c andseq sb, ip, ip, lsl r6     |     __asm ("andseq sb, ip, ip, lsl r6");
                                             |     if (? != ?) {
    0x00037150 andeq r7, r1, r6, lsl r0      |         r7 = r1 & (r6 << r0);
                                             |     }
    0x00037154 andseq sb, ip, r0, lsr 12     |     __asm ("andseq sb, ip, r0, lsr 12");
                                             |     if (? != ?) {
    0x00037158 andeq r5, fp, r6, lsl sp      |         r5 = fp & (r6 << sp);
                                             |     }
    0x0003715c andseq sb, ip, r4, lsr 12     |     __asm ("andseq sb, ip, r4, lsr 12");
                                             |     if (? != ?) {
    0x00037160 andeq r8, sb, r6, lsl pc      |         r8 = sb & (r6 << pc);
                                             |     }
    0x00037164 andseq sb, ip, r8, lsr 12     |     __asm ("andseq sb, ip, r8, lsr 12");
                                             |     if (? != ?) {
    0x00037168 andeq ip, ip, r6, lsl sl      |         
                                             |     }
    0x0003716c andseq sb, ip, ip, lsr 12     |     __asm ("andseq sb, ip, ip, lsr 12");
                                             |     if (? != ?) {
    0x00037170 andeq sp, r4, r6, lsl r5      |         
                                             |     }
    0x00037174 andseq sb, ip, r0, lsr r6     |     __asm ("andseq sb, ip, r0, lsr r6");
                                             |     if (? != ?) {
    0x00037178 andeq r3, fp, r6, lsl r4      |         r3 = fp & (r6 << r4);
                                             |     }
    0x0003717c andseq sb, ip, r4, lsr r6     |     __asm ("andseq sb, ip, r4, lsr r6");
                                             |     if (? != ?) {
    0x00037180 andeq r0, r6, r6, lsl sp      |         r0 = r6 & (r6 << sp);
                                             |     }
    0x00037184 andseq sb, ip, r8, lsr r6     |     __asm ("andseq sb, ip, r8, lsr r6");
                                             |     if (? != ?) {
    0x00037188 andeq r6, r6, r6, lsl r1      |         r6 &= (r6 << r1);
                                             |     }
    0x0003718c andseq sb, ip, ip, lsr r6     |     __asm ("andseq sb, ip, ip, lsr r6");
                                             |     if (? != ?) {
    0x00037190 andeq sp, r4, r6, lsl r0      |         
                                             |     }
    0x00037194 andseq sb, ip, r0, asr 12     |     __asm ("andseq sb, ip, r0, asr 12");
                                             |     if (? != ?) {
    0x00037198 andeq r2, r3, r6, lsl fp      |         r2 = r3 & (r6 << fp);
                                             |     }
    0x0003719c andseq sb, ip, r4, asr 12     |     __asm ("andseq sb, ip, r4, asr 12");
                                             |     if (? != ?) {
    0x000371a0 andeq sb, r6, r6, lsl lr      |         sb = r6 & (r6 << lr);
                                             |     }
    0x000371a4 andseq sb, ip, r8, asr 12     |     __asm ("andseq sb, ip, r8, asr 12");
                                             |     if (? != ?) {
    0x000371a8 andeq r7, r1, r6, lsl r1      |         r7 = r1 & (r6 << r1);
                                             |     }
    0x000371ac andseq sb, ip, ip, asr 12     |     __asm ("andseq sb, ip, ip, asr 12");
                                             |     if (? != ?) {
    0x000371b0 andeq r8, lr, r6, lsl pc      |         r8 = lr & (r6 << pc);
                                             |     }
    0x000371b4 andseq sb, ip, r0, asr r6     |     __asm ("andseq sb, ip, r0, asr r6");
                                             |     if (? != ?) {
    0x000371b8 andeq r7, r1, r6, lsl r2      |         r7 = r1 & (r6 << r2);
                                             |     }
    0x000371bc andseq sb, ip, r4, asr r6     |     __asm ("andseq sb, ip, r4, asr r6");
                                             |     if (? != ?) {
    0x000371c0 andeq r3, r6, r6, lsl r3      |         r3 = r6 & (r6 << r3);
                                             |     }
    0x000371c4 andseq sb, ip, r8, asr r6     |     __asm ("andseq sb, ip, r8, asr r6");
                                             |     if (? != ?) {
    0x000371c8 andeq pc, r7, r6, lsl r1      |         pc = r7 & (r6 << r1);
                                             |     }
    0x000371cc andseq sb, ip, ip, asr r6     |     __asm ("andseq sb, ip, ip, asr r6");
                                             |     if (? != ?) {
    0x000371d0 andeq r6, r2, r6, lsl r5      |         r6 = r2 & (r6 << r5);
                                             |     }
    0x000371d4 andseq sb, ip, r0, ror 12     |     __asm ("andseq sb, ip, r0, ror 12");
                                             |     if (? != ?) {
    0x000371d8 andeq fp, sl, r6, lsl r0      |         
                                             |     }
    0x000371dc andseq sb, ip, r4, ror 12     |     __asm ("andseq sb, ip, r4, ror 12");
                                             |     if (? != ?) {
    0x000371e0 andeq r2, fp, r6, lsl r7      |         r2 = fp & (r6 << r7);
                                             |     }
    0x000371e4 andseq sb, ip, r8, ror 12     |     __asm ("andseq sb, ip, r8, ror 12");
                                             |     if (? != ?) {
    0x000371e8 andeq r7, r1, r6, lsl r3      |         r7 = r1 & (r6 << r3);
                                             |     }
    0x000371ec andseq sb, ip, ip, ror 12     |     __asm ("andseq sb, ip, ip, ror 12");
                                             |     if (? != ?) {
    0x000371f0 andeq r8, sb, r6, lsl ip      |         r8 = sb & (r6 << ip);
                                             |     }
    0x000371f4 andseq sb, ip, r0, ror r6     |     __asm ("andseq sb, ip, r0, ror r6");
                                             |     if (? != ?) {
    0x000371f8 andeq r5, r5, r6, lsl lr      |         r5 &= (r6 << lr);
                                             |     }
    0x000371fc andseq sb, ip, r4, ror r6     |     __asm ("andseq sb, ip, r4, ror r6");
                                             |     if (? != ?) {
    0x00037200 andeq r7, pc, r6, lsl lr      |         r7 = pc & (r6 << lr);
                                             |     }
    0x00037204 andseq sb, ip, r8, ror r6     |     __asm ("andseq sb, ip, r8, ror r6");
                                             |     if (? != ?) {
    0x00037208 andeq r0, ip, r6, lsl r5      |         r0 = ip & (r6 << r5);
                                             |     }
    0x0003720c andseq sb, ip, ip, ror r6     |     __asm ("andseq sb, ip, ip, ror r6");
                                             |     if (? != ?) {
    0x00037210 andeq fp, fp, r6, lsl sl      |         
                                             |     }
    0x00037214 andseq sb, ip, r0, lsl 13     |     __asm ("andseq sb, ip, r0, lsl 13");
                                             |     if (? != ?) {
    0x00037218 andeq r6, lr, r6, lsl ip      |         r6 = lr & (r6 << ip);
                                             |     }
    0x0003721c andseq sb, ip, r4, lsl 13     |     __asm ("andseq sb, ip, r4, lsl 13");
                                             |     if (? != ?) {
    0x00037220 andeq r6, fp, r6, lsl r0      |         r6 = fp & (r6 << r0);
                                             |     }
    0x00037224 andseq sb, ip, r8, lsl 13     |     __asm ("andseq sb, ip, r8, lsl 13");
                                             |     if (? != ?) {
    0x00037228 andeq r0, r7, r6, lsl ip      |         r0 = r7 & (r6 << ip);
                                             |     }
    0x0003722c andseq sb, ip, ip, lsl 13     |     __asm ("andseq sb, ip, ip, lsl 13");
                                             |     if (? != ?) {
    0x00037230 andeq r6, r7, r6, lsl r0      |         r6 = r7 & (r6 << r0);
                                             |     }
    0x00037234 mulseq ip, r0, r6             |     __asm ("mulseq ip, r0, r6");
                                             |     if (? != ?) {
    0x00037238 andeq ip, ip, r6, lsl r4      |         
                                             |     }
    0x0003723c mulseq ip, r4, r6             |     __asm ("mulseq ip, r4, r6");
                                             |     if (? != ?) {
    0x00037240 andeq r0, r6, r6, lsl r3      |         r0 = r6 & (r6 << r3);
                                             |     }
    0x00037244 mulseq ip, r8, r6             |     __asm ("mulseq ip, r8, r6");
                                             |     if (? != ?) {
    0x00037248 andeq sl, pc, r6, lsl r1      |         sl = pc & (r6 << r1);
                                             |     }
    0x0003724c mulseq ip, ip, r6             |     __asm ("mulseq ip, ip, r6");
                                             |     if (? != ?) {
    0x00037250 andeq r2, r5, r6, lsl sb      |         r2 = r5 & (r6 << sb);
                                             |     }
    0x00037254 andseq sb, ip, r0, lsr 13     |     __asm ("andseq sb, ip, r0, lsr 13");
                                             |     if (? != ?) {
    0x00037258 andeq fp, r5, r6, lsl sl      |         
                                             |     }
    0x0003725c andseq sb, ip, r4, lsr 13     |     __asm ("andseq sb, ip, r4, lsr 13");
                                             |     if (? != ?) {
    0x00037260 andeq r7, sb, r6, lsl sb      |         r7 = sb & (r6 << sb);
                                             |     }
    0x00037264 andseq sb, ip, r8, lsr 13     |     __asm ("andseq sb, ip, r8, lsr 13");
                                             |     if (? != ?) {
    0x00037268 andeq r7, r1, r6, lsl r5      |         r7 = r1 & (r6 << r5);
                                             |     }
    0x0003726c andseq sb, ip, ip, lsr 13     |     __asm ("andseq sb, ip, ip, lsr 13");
                                             |     if (? != ?) {
    0x00037270 andeq sp, r5, r6, lsl r4      |         
                                             |     }
    0x00037274 ldrheq sb, [ip], -r0          |     __asm ("ldrheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00037278 andeq sb, r4, r6, lsl fp      |         sb = r4 & (r6 << fp);
                                             |     }
    0x0003727c ldrheq sb, [ip], -r4          |     __asm ("ldrheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037280 andeq r6, fp, r6, lsl r6      |         r6 = fp & (r6 << r6);
                                             |     }
    0x00037284 ldrheq sb, [ip], -r8          |     __asm ("ldrheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037288 andeq ip, r7, r6, lsl r0      |         
                                             |     }
    0x0003728c ldrheq sb, [ip], -ip          |     __asm ("ldrheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037290 andeq r3, ip, r6, lsl r5      |         r3 = ip & (r6 << r5);
                                             |     }
    0x00037294 andseq sb, ip, r0, asr 13     |     __asm ("andseq sb, ip, r0, asr 13");
                                             |     if (? != ?) {
    0x00037298 andeq r3, sl, r6, lsl fp      |         r3 = sl & (r6 << fp);
                                             |     }
    0x0003729c andseq sb, ip, r4, asr 13     |     __asm ("andseq sb, ip, r4, asr 13");
                                             |     if (? != ?) {
    0x000372a0 andeq ip, r6, r6, lsl pc      |         
                                             |     }
    0x000372a4 andseq sb, ip, r8, asr 13     |     __asm ("andseq sb, ip, r8, asr 13");
                                             |     if (? != ?) {
    0x000372a8 andeq r7, r5, r6, lsl fp      |         r7 = r5 & (r6 << fp);
                                             |     }
    0x000372ac andseq sb, ip, ip, asr 13     |     __asm ("andseq sb, ip, ip, asr 13");
                                             |     if (? != ?) {
    0x000372b0 andeq fp, r4, r6, lsl r1      |         
                                             |     }
    0x000372b4 ldrsbeq sb, [ip], -r0         |     __asm ("ldrsbeq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000372b8 andeq r7, r1, r6, lsl r6      |         r7 = r1 & (r6 << r6);
                                             |     }
    0x000372bc ldrsbeq sb, [ip], -r4         |     __asm ("ldrsbeq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x000372c0 andeq r6, pc, r6, lsl r6      |         r6 = pc & (r6 << r6);
                                             |     }
    0x000372c4 ldrsbeq sb, [ip], -r8         |     __asm ("ldrsbeq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x000372c8 andeq r6, sb, r6, lsl sp      |         r6 = sb & (r6 << sp);
                                             |     }
    0x000372cc ldrsbeq sb, [ip], -ip         |     __asm ("ldrsbeq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x000372d0 andeq r4, ip, r6, lsl r6      |         r4 = ip & (r6 << r6);
                                             |     }
    0x000372d4 andseq sb, ip, r0, ror 13     |     __asm ("andseq sb, ip, r0, ror 13");
                                             |     if (? != ?) {
    0x000372d8 andeq lr, fp, r6, lsl r1      |         lr = fp & (r6 << r1);
                                             |     }
    0x000372dc andseq sb, ip, r4, ror 13     |     __asm ("andseq sb, ip, r4, ror 13");
                                             |     if (? != ?) {
    0x000372e0 andeq ip, r7, r6, lsl sb      |         
                                             |     }
    0x000372e4 andseq sb, ip, r8, ror 13     |     __asm ("andseq sb, ip, r8, ror 13");
                                             |     if (? != ?) {
    0x000372e8 andeq r2, r7, r6, lsl pc      |         r2 = r7 & (r6 << pc);
                                             |     }
    0x000372ec andseq sb, ip, ip, ror 13     |     __asm ("andseq sb, ip, ip, ror 13");
                                             |     if (? != ?) {
    0x000372f0 andeq r2, fp, r6, lsl sb      |         r2 = fp & (r6 << sb);
                                             |     }
    0x000372f4 ldrsheq sb, [ip], -r0         |     __asm ("ldrsheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000372f8 andeq r7, r1, r6, lsl r7      |         r7 = r1 & (r6 << r7);
                                             |     }
    0x000372fc ldrsheq sb, [ip], -r4         |     __asm ("ldrsheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037300 andeq sl, r6, r6, lsl r2      |         sl = r6 & (r6 << r2);
                                             |     }
    0x00037304 ldrsheq sb, [ip], -r8         |     __asm ("ldrsheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037308 andeq fp, sp, r6, lsl r4      |         
                                             |     }
    0x0003730c ldrsheq sb, [ip], -ip         |     __asm ("ldrsheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037310 andeq r1, r4, r6, lsl sp      |         r1 = r4 & (r6 << sp);
                                             |     }
    0x00037314 andseq sb, ip, r0, lsl 14     |     __asm ("andseq sb, ip, r0, lsl 14");
                                             |     if (? != ?) {
    0x00037318 andeq r3, r5, r6, lsl sl      |         r3 = r5 & (r6 << sl);
                                             |     }
    0x0003731c andseq sb, ip, r4, lsl 14     |     __asm ("andseq sb, ip, r4, lsl 14");
                                             |     if (? != ?) {
    0x00037320 andeq lr, r2, r6, lsl r5      |         lr = r2 & (r6 << r5);
                                             |     }
    0x00037324 andseq sb, ip, r8, lsl 14     |     __asm ("andseq sb, ip, r8, lsl 14");
                                             |     if (? != ?) {
    0x00037328 andeq r7, sp, r6, lsl sp      |         r7 = sp & (r6 << sp);
                                             |     }
    0x0003732c andseq sb, ip, ip, lsl 14     |     __asm ("andseq sb, ip, ip, lsl 14");
                                             |     if (? != ?) {
    0x00037330 andeq sp, r2, r6, lsl lr      |         
                                             |     }
    0x00037334 andseq sb, ip, r0, lsl r7     |     __asm ("andseq sb, ip, r0, lsl r7");
                                             |     if (? != ?) {
    0x00037338 andeq r2, sp, r6, lsl r4      |         r2 = sp & (r6 << r4);
                                             |     }
    0x0003733c andseq sb, ip, r4, lsl r7     |     __asm ("andseq sb, ip, r4, lsl r7");
                                             |     if (? != ?) {
    0x00037340 andeq r7, r1, r6, lsl r8      |         r7 = r1 & (r6 << r8);
                                             |     }
    0x00037344 andseq sb, ip, r8, lsl r7     |     __asm ("andseq sb, ip, r8, lsl r7");
                                             |     if (? != ?) {
    0x00037348 andeq sb, r6, r6, lsl sb      |         sb = r6 & (r6 << sb);
                                             |     }
    0x0003734c andseq sb, ip, ip, lsl r7     |     __asm ("andseq sb, ip, ip, lsl r7");
                                             |     if (? != ?) {
    0x00037350 andeq r3, fp, r6, lsl r1      |         r3 = fp & (r6 << r1);
                                             |     }
    0x00037354 andseq sb, ip, r0, lsr 14     |     __asm ("andseq sb, ip, r0, lsr 14");
                                             |     if (? != ?) {
    0x00037358 andeq r2, sb, r6, lsl r6      |         r2 = sb & (r6 << r6);
                                             |     }
    0x0003735c andseq sb, ip, r4, lsr 14     |     __asm ("andseq sb, ip, r4, lsr 14");
                                             |     if (? != ?) {
    0x00037360 andeq ip, ip, r6, lsl r5      |         
                                             |     }
    0x00037364 andseq sb, ip, r8, lsr 14     |     __asm ("andseq sb, ip, r8, lsr 14");
                                             |     if (? != ?) {
    0x00037368 andeq r7, r8, r6, lsl r7      |         r7 = r8 & (r6 << r7);
                                             |     }
    0x0003736c andseq sb, ip, ip, lsr 14     |     __asm ("andseq sb, ip, ip, lsr 14");
                                             |     if (? != ?) {
    0x00037370 andeq sl, r5, r6, lsl sl      |         sl = r5 & (r6 << sl);
                                             |     }
    0x00037374 andseq sb, ip, r0, lsr r7     |     __asm ("andseq sb, ip, r0, lsr r7");
                                             |     if (? != ?) {
    0x00037378 andeq ip, r5, r6, lsl r3      |         
                                             |     }
    0x0003737c andseq sb, ip, r4, lsr r7     |     __asm ("andseq sb, ip, r4, lsr r7");
                                             |     if (? != ?) {
    0x00037380 andeq r3, r5, r6, lsl fp      |         r3 = r5 & (r6 << fp);
                                             |     }
    0x00037384 andseq sb, ip, r8, lsr r7     |     __asm ("andseq sb, ip, r8, lsr r7");
                                             |     if (? != ?) {
    0x00037388 andeq r7, r1, r6, lsl sb      |         r7 = r1 & (r6 << sb);
                                             |     }
    0x0003738c andseq sb, ip, ip, lsr r7     |     __asm ("andseq sb, ip, ip, lsr r7");
                                             |     if (? != ?) {
    0x00037390 andeq r7, r1, r6, lsl sl      |         r7 = r1 & (r6 << sl);
                                             |     }
    0x00037394 andseq sb, ip, r0, asr 14     |     __asm ("andseq sb, ip, r0, asr 14");
                                             |     if (? != ?) {
    0x00037398 andeq r1, pc, r6, lsl fp      |         r1 = pc & (r6 << fp);
                                             |     }
    0x0003739c andseq sb, ip, r4, asr 14     |     __asm ("andseq sb, ip, r4, asr 14");
                                             |     if (? != ?) {
    0x000373a0 andeq r8, fp, r6, lsl r3      |         r8 = fp & (r6 << r3);
                                             |     }
    0x000373a4 andseq sb, ip, r8, asr 14     |     __asm ("andseq sb, ip, r8, asr 14");
                                             |     if (? != ?) {
    0x000373a8 andeq r4, r5, r6, lsl r8      |         r4 = r5 & (r6 << r8);
                                             |     }
    0x000373ac andseq sb, ip, ip, asr 14     |     __asm ("andseq sb, ip, ip, asr 14");
                                             |     if (? != ?) {
    0x000373b0 andeq r3, sp, r6, lsl r2      |         r3 = sp & (r6 << r2);
                                             |     }
    0x000373b4 andseq sb, ip, r0, asr r7     |     __asm ("andseq sb, ip, r0, asr r7");
                                             |     if (? != ?) {
    0x000373b8 andeq r1, lr, r6, lsl lr      |         r1 = lr & (r6 << lr);
                                             |     }
    0x000373bc andseq sb, ip, r4, asr r7     |     __asm ("andseq sb, ip, r4, asr r7");
                                             |     if (? != ?) {
    0x000373c0 andeq r4, r7, r6, lsl sl      |         r4 = r7 & (r6 << sl);
                                             |     }
    0x000373c4 andseq sb, ip, r8, asr r7     |     __asm ("andseq sb, ip, r8, asr r7");
                                             |     if (? != ?) {
    0x000373c8 andeq r0, sp, r6, lsl lr      |         r0 = sp & (r6 << lr);
                                             |     }
    0x000373cc andseq sb, ip, ip, asr r7     |     __asm ("andseq sb, ip, ip, asr r7");
                                             |     if (? != ?) {
    0x000373d0 andeq r0, r3, r6, lsl r7      |         r0 = r3 & (r6 << r7);
                                             |     }
    0x000373d4 andseq sb, ip, r0, ror 14     |     __asm ("andseq sb, ip, r0, ror 14");
                                             |     if (? != ?) {
    0x000373d8 andeq r0, pc, r6, lsl r8      |         r0 = pc & (r6 << r8);
                                             |     }
    0x000373dc andseq sb, ip, r4, ror 14     |     __asm ("andseq sb, ip, r4, ror 14");
                                             |     if (? != ?) {
    0x000373e0 andeq ip, r4, r6, lsl lr      |         
                                             |     }
    0x000373e4 andseq sb, ip, r8, ror 14     |     __asm ("andseq sb, ip, r8, ror 14");
                                             |     if (? != ?) {
    0x000373e8 andeq sp, lr, r6, lsl r2      |         
                                             |     }
    0x000373ec andseq sb, ip, ip, ror 14     |     __asm ("andseq sb, ip, ip, ror 14");
                                             |     if (? != ?) {
    0x000373f0 andeq sb, sp, r6, lsl fp      |         sb = sp & (r6 << fp);
                                             |     }
    0x000373f4 andseq sb, ip, r0, ror r7     |     __asm ("andseq sb, ip, r0, ror r7");
                                             |     if (? != ?) {
    0x000373f8 andeq r7, r1, r6, lsl fp      |         r7 = r1 & (r6 << fp);
                                             |     }
    0x000373fc andseq sb, ip, r4, ror r7     |     __asm ("andseq sb, ip, r4, ror r7");
                                             |     if (? != ?) {
    0x00037400 andeq ip, r4, r6, lsl r6      |         
                                             |     }
    0x00037404 andseq sb, ip, r8, ror r7     |     __asm ("andseq sb, ip, r8, ror r7");
                                             |     if (? != ?) {
    0x00037408 andeq r4, r7, r6, lsl r7      |         r4 = r7 & (r6 << r7);
                                             |     }
    0x0003740c andseq sb, ip, ip, ror r7     |     __asm ("andseq sb, ip, ip, ror r7");
                                             |     if (? != ?) {
    0x00037410 andeq r1, r6, r6, lsl r3      |         r1 = r6 & (r6 << r3);
                                             |     }
    0x00037414 andseq sb, ip, r0, lsl 15     |     __asm ("andseq sb, ip, r0, lsl 15");
                                             |     if (? != ?) {
    0x00037418 andeq r6, pc, r6, lsl ip      |         r6 = pc & (r6 << ip);
                                             |     }
    0x0003741c andseq sb, ip, r4, lsl 15     |     __asm ("andseq sb, ip, r4, lsl 15");
                                             |     if (? != ?) {
    0x00037420 andeq r1, sl, r6, lsl sb      |         r1 = sl & (r6 << sb);
                                             |     }
    0x00037424 andseq sb, ip, r8, lsl 15     |     __asm ("andseq sb, ip, r8, lsl 15");
                                             |     if (? != ?) {
    0x00037428 andeq r4, r7, r6, lsl r0      |         r4 = r7 & (r6 << r0);
                                             |     }
    0x0003742c andseq sb, ip, ip, lsl 15     |     __asm ("andseq sb, ip, ip, lsl 15");
                                             |     if (? != ?) {
    0x00037430 andeq r7, r1, r6, lsl ip      |         r7 = r1 & (r6 << ip);
                                             |     }
    0x00037434 mulseq ip, r0, r7             |     __asm ("mulseq ip, r0, r7");
                                             |     if (? != ?) {
    0x00037438 andeq ip, r2, r6, lsl lr      |         
                                             |     }
    0x0003743c mulseq ip, r4, r7             |     __asm ("mulseq ip, r4, r7");
                                             |     if (? != ?) {
    0x00037440 andeq r1, r2, r6, lsl sp      |         r1 = r2 & (r6 << sp);
                                             |     }
    0x00037444 mulseq ip, r8, r7             |     __asm ("mulseq ip, r8, r7");
                                             |     if (? != ?) {
    0x00037448 andeq fp, r3, r6, lsl r3      |         
                                             |     }
    0x0003744c mulseq ip, ip, r7             |     __asm ("mulseq ip, ip, r7");
                                             |     if (? != ?) {
    0x00037450 andeq r3, fp, r6, lsl r8      |         r3 = fp & (r6 << r8);
                                             |     }
    0x00037454 andseq sb, ip, r0, lsr 15     |     __asm ("andseq sb, ip, r0, lsr 15");
                                             |     if (? != ?) {
    0x00037458 andeq r1, ip, r6, lsl fp      |         r1 = ip & (r6 << fp);
                                             |     }
    0x0003745c andseq sb, ip, r4, lsr 15     |     __asm ("andseq sb, ip, r4, lsr 15");
                                             |     if (? != ?) {
    0x00037460 andeq r5, r7, r6, lsl r0      |         r5 = r7 & (r6 << r0);
                                             |     }
    0x00037464 andseq sb, ip, r8, lsr 15     |     __asm ("andseq sb, ip, r8, lsr 15");
                                             |     if (? != ?) {
    0x00037468 andeq r7, r1, r6, lsl sp      |         r7 = r1 & (r6 << sp);
                                             |     }
    0x0003746c andseq sb, ip, ip, lsr 15     |     __asm ("andseq sb, ip, ip, lsr 15");
                                             |     if (? != ?) {
    0x00037470 andeq r7, r1, r6, lsl lr      |         r7 = r1 & (r6 << lr);
                                             |     }
    0x00037474 ldrheq sb, [ip], -r0          |     __asm ("ldrheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00037478 andeq sl, sl, r6, lsl r3      |         sl &= (r6 << r3);
                                             |     }
    0x0003747c ldrheq sb, [ip], -r4          |     __asm ("ldrheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037480 andeq r7, r1, r6, lsl pc      |         r7 = r1 & (r6 << pc);
                                             |     }
    0x00037484 ldrheq sb, [ip], -r8          |     __asm ("ldrheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037488 andeq r0, lr, r6, lsl r7      |         r0 = lr & (r6 << r7);
                                             |     }
    0x0003748c ldrheq sb, [ip], -ip          |     __asm ("ldrheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037490 andeq r0, sp, r6, lsl r8      |         r0 = sp & (r6 << r8);
                                             |     }
    0x00037494 andseq sb, ip, r0, asr 15     |     __asm ("andseq sb, ip, r0, asr 15");
                                             |     if (? != ?) {
    0x00037498 andeq r6, r3, r6, lsl r6      |         r6 = r3 & (r6 << r6);
                                             |     }
    0x0003749c andseq sb, ip, r4, asr 15     |     __asm ("andseq sb, ip, r4, asr 15");
                                             |     if (? != ?) {
    0x000374a0 andeq r0, r4, r6, lsl pc      |         r0 = r4 & (r6 << pc);
                                             |     }
    0x000374a4 andseq sb, ip, r8, asr 15     |     __asm ("andseq sb, ip, r8, asr 15");
                                             |     if (? != ?) {
    0x000374a8 andeq pc, sp, r6, lsl sl      |         pc = sp & (r6 << sl);
                                             |     }
    0x000374ac andseq sb, ip, ip, asr 15     |     __asm ("andseq sb, ip, ip, asr 15");
                                             |     if (? != ?) {
    0x000374b0 andeq r0, r8, r6, lsl r7      |         r0 = r8 & (r6 << r7);
                                             |     }
    0x000374b4 ldrsbeq sb, [ip], -r0         |     __asm ("ldrsbeq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000374b8 andeq r8, r1, r6, lsl r0      |         r8 = r1 & (r6 << r0);
                                             |     }
    0x000374bc ldrsbeq sb, [ip], -r4         |     __asm ("ldrsbeq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x000374c0 andeq r1, r5, r6, lsl r5      |         r1 = r5 & (r6 << r5);
                                             |     }
    0x000374c4 ldrsbeq sb, [ip], -r8         |     __asm ("ldrsbeq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x000374c8 andeq r1, ip, r6, lsl r6      |         r1 = ip & (r6 << r6);
                                             |     }
    0x000374cc ldrsbeq sb, [ip], -ip         |     __asm ("ldrsbeq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x000374d0 andeq r0, r2, r6, lsl r1      |         r0 = r2 & (r6 << r1);
                                             |     }
    0x000374d4 andseq sb, ip, r0, ror 15     |     __asm ("andseq sb, ip, r0, ror 15");
                                             |     if (? != ?) {
    0x000374d8 andeq lr, r6, r6, lsl sp      |         lr = r6 & (r6 << sp);
                                             |     }
    0x000374dc andseq sb, ip, r4, ror 15     |     __asm ("andseq sb, ip, r4, ror 15");
                                             |     if (? != ?) {
    0x000374e0 andeq r1, r4, r6, lsl r1      |         r1 = r4 & (r6 << r1);
                                             |     }
    0x000374e4 andseq sb, ip, r8, ror 15     |     __asm ("andseq sb, ip, r8, ror 15");
                                             |     if (? != ?) {
    0x000374e8 andeq r6, sl, r6, lsl fp      |         r6 = sl & (r6 << fp);
                                             |     }
    0x000374ec andseq sb, ip, ip, ror 15     |     __asm ("andseq sb, ip, ip, ror 15");
                                             |     if (? != ?) {
    0x000374f0 andeq r4, sp, r6, lsl r6      |         r4 = sp & (r6 << r6);
                                             |     }
    0x000374f4 ldrsheq sb, [ip], -r0         |     __asm ("ldrsheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000374f8 andeq r8, r1, r6, lsl r1      |         r8 = r1 & (r6 << r1);
                                             |     }
    0x000374fc ldrsheq sb, [ip], -r4         |     __asm ("ldrsheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037500 andeq r7, r5, r6, lsl r8      |         r7 = r5 & (r6 << r8);
                                             |     }
    0x00037504 ldrsheq sb, [ip], -r8         |     __asm ("ldrsheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037508 andeq r3, r7, r6, lsl r2      |         r3 = r7 & (r6 << r2);
                                             |     }
    0x0003750c ldrsheq sb, [ip], -ip         |     __asm ("ldrsheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037510 andeq r3, sl, r6, lsl ip      |         r3 = sl & (r6 << ip);
                                             |     }
    0x00037514 andseq sb, ip, r0, lsl 16     |     __asm ("andseq sb, ip, r0, lsl 16");
                                             |     if (? != ?) {
    0x00037518 andeq r7, r7, r6, lsl sp      |         r7 &= (r6 << sp);
                                             |     }
    0x0003751c andseq sb, ip, r4, lsl 16     |     __asm ("andseq sb, ip, r4, lsl 16");
                                             |     if (? != ?) {
    0x00037520 andeq r7, sp, r6, lsl lr      |         r7 = sp & (r6 << lr);
                                             |     }
    0x00037524 andseq sb, ip, r8, lsl 16     |     __asm ("andseq sb, ip, r8, lsl 16");
                                             |     if (? != ?) {
    0x00037528 andeq r8, r1, r6, lsl r2      |         r8 = r1 & (r6 << r2);
                                             |     }
    0x0003752c andseq sb, ip, ip, lsl 16     |     __asm ("andseq sb, ip, ip, lsl 16");
                                             |     if (? != ?) {
    0x00037530 andeq sp, sb, r6, lsl r6      |         
                                             |     }
    0x00037534 andseq sb, ip, r0, lsl r8     |     __asm ("andseq sb, ip, r0, lsl r8");
                                             |     if (? != ?) {
    0x00037538 andeq r1, r2, r6, lsl lr      |         r1 = r2 & (r6 << lr);
                                             |     }
    0x0003753c andseq sb, ip, r4, lsl r8     |     __asm ("andseq sb, ip, r4, lsl r8");
                                             |     if (? != ?) {
    0x00037540 andeq r6, sp, r6, lsl r7      |         r6 = sp & (r6 << r7);
                                             |     }
    0x00037544 andseq sb, ip, r8, lsl r8     |     __asm ("andseq sb, ip, r8, lsl r8");
                                             |     if (? != ?) {
    0x00037548 andeq r4, ip, r6, lsl sl      |         r4 = ip & (r6 << sl);
                                             |     }
    0x0003754c andseq sb, ip, ip, lsl r8     |     __asm ("andseq sb, ip, ip, lsl r8");
                                             |     if (? != ?) {
    0x00037550 andeq sp, sl, r6, lsl r1      |         
                                             |     }
    0x00037554 andseq sb, ip, r0, lsr 16     |     __asm ("andseq sb, ip, r0, lsr 16");
                                             |     if (? != ?) {
    0x00037558 andeq r2, pc, r6, lsl sb      |         r2 = pc & (r6 << sb);
                                             |     }
    0x0003755c andseq sb, ip, r4, lsr 16     |     __asm ("andseq sb, ip, r4, lsr 16");
                                             |     if (? != ?) {
    0x00037560 andeq lr, sb, r6, lsl r5      |         lr = sb & (r6 << r5);
                                             |     }
    0x00037564 andseq sb, ip, r8, lsr 16     |     __asm ("andseq sb, ip, r8, lsr 16");
                                             |     if (? != ?) {
    0x00037568 andeq r3, r6, r6, lsl r8      |         r3 = r6 & (r6 << r8);
                                             |     }
    0x0003756c andseq sb, ip, ip, lsr 16     |     __asm ("andseq sb, ip, ip, lsr 16");
                                             |     if (? != ?) {
    0x00037570 andeq r0, lr, r6, lsl fp      |         r0 = lr & (r6 << fp);
                                             |     }
    0x00037574 andseq sb, ip, r0, lsr r8     |     __asm ("andseq sb, ip, r0, lsr r8");
                                             |     if (? != ?) {
    0x00037578 andeq sl, fp, r6, lsl r1      |         sl = fp & (r6 << r1);
                                             |     }
    0x0003757c andseq sb, ip, r4, lsr r8     |     __asm ("andseq sb, ip, r4, lsr r8");
                                             |     if (? != ?) {
    0x00037580 andeq sl, r8, r6, lsl lr      |         sl = r8 & (r6 << lr);
                                             |     }
    0x00037584 andseq sb, ip, r8, lsr r8     |     __asm ("andseq sb, ip, r8, lsr r8");
                                             |     if (? != ?) {
    0x00037588 andeq r4, fp, r6, lsl r6      |         r4 = fp & (r6 << r6);
                                             |     }
    0x0003758c andseq sb, ip, ip, lsr r8     |     __asm ("andseq sb, ip, ip, lsr r8");
                                             |     if (? != ?) {
    0x00037590 andeq r2, r8, r6, lsl lr      |         r2 = r8 & (r6 << lr);
                                             |     }
    0x00037594 andseq sb, ip, r0, asr 16     |     __asm ("andseq sb, ip, r0, asr 16");
                                             |     if (? != ?) {
    0x00037598 andeq sb, fp, r6, lsl r6      |         sb = fp & (r6 << r6);
                                             |     }
    0x0003759c andseq sb, ip, r4, asr 16     |     __asm ("andseq sb, ip, r4, asr 16");
                                             |     if (? != ?) {
    0x000375a0 andeq r3, r7, r6, lsl r3      |         r3 = r7 & (r6 << r3);
                                             |     }
    0x000375a4 andseq sb, ip, r8, asr 16     |     __asm ("andseq sb, ip, r8, asr 16");
                                             |     if (? != ?) {
    0x000375a8 andeq r1, lr, r6, lsl pc      |         r1 = lr & (r6 << pc);
                                             |     }
    0x000375ac andseq sb, ip, ip, asr 16     |     __asm ("andseq sb, ip, ip, asr 16");
                                             |     if (? != ?) {
    0x000375b0 andeq sp, sb, r6, lsl lr      |         
                                             |     }
    0x000375b4 andseq sb, ip, r0, asr r8     |     __asm ("andseq sb, ip, r0, asr r8");
                                             |     if (? != ?) {
    0x000375b8 andeq sl, sb, r6, lsl ip      |         sl = sb & (r6 << ip);
                                             |     }
    0x000375bc andseq sb, ip, r4, asr r8     |     __asm ("andseq sb, ip, r4, asr r8");
                                             |     if (? != ?) {
    0x000375c0 andeq r3, r5, r6, lsl lr      |         r3 = r5 & (r6 << lr);
                                             |     }
    0x000375c4 andseq sb, ip, r8, asr r8     |     __asm ("andseq sb, ip, r8, asr r8");
                                             |     if (? != ?) {
    0x000375c8 andeq r8, r1, r6, lsl r3      |         r8 = r1 & (r6 << r3);
                                             |     }
    0x000375cc andseq sb, ip, ip, asr r8     |     __asm ("andseq sb, ip, ip, asr r8");
                                             |     if (? != ?) {
    0x000375d0 andeq r8, r8, r6, lsl ip      |         r8 &= (r6 << ip);
                                             |     }
    0x000375d4 andseq sb, ip, r0, ror 16     |     __asm ("andseq sb, ip, r0, ror 16");
                                             |     if (? != ?) {
    0x000375d8 andeq r4, sb, r6, lsl sl      |         r4 = sb & (r6 << sl);
                                             |     }
    0x000375dc andseq sb, ip, r4, ror 16     |     __asm ("andseq sb, ip, r4, ror 16");
                                             |     if (? != ?) {
    0x000375e0 andeq r5, r4, r6, lsl ip      |         r5 = r4 & (r6 << ip);
                                             |     }
    0x000375e4 andseq sb, ip, r8, ror 16     |     __asm ("andseq sb, ip, r8, ror 16");
                                             |     if (? != ?) {
    0x000375e8 andeq sp, ip, r6, lsl sb      |         
                                             |     }
    0x000375ec andseq sb, ip, ip, ror 16     |     __asm ("andseq sb, ip, ip, ror 16");
                                             |     if (? != ?) {
    0x000375f0 andeq pc, r5, r6, lsl r7      |         pc = r5 & (r6 << r7);
                                             |     }
    0x000375f4 andseq sb, ip, r0, ror r8     |     __asm ("andseq sb, ip, r0, ror r8");
                                             |     if (? != ?) {
    0x000375f8 andeq r3, r8, r6, lsl r2      |         r3 = r8 & (r6 << r2);
                                             |     }
    0x000375fc andseq sb, ip, r4, ror r8     |     __asm ("andseq sb, ip, r4, ror r8");
                                             |     if (? != ?) {
    0x00037600 andeq fp, lr, r6, lsl r0      |         
                                             |     }
    0x00037604 andseq sb, ip, r8, ror r8     |     __asm ("andseq sb, ip, r8, ror r8");
                                             |     if (? != ?) {
    0x00037608 andeq pc, r7, r6, lsl sb      |         pc = r7 & (r6 << sb);
                                             |     }
    0x0003760c andseq sb, ip, ip, ror r8     |     __asm ("andseq sb, ip, ip, ror r8");
                                             |     if (? != ?) {
    0x00037610 andeq r8, r1, r6, lsl r4      |         r8 = r1 & (r6 << r4);
                                             |     }
    0x00037614 andseq sb, ip, r0, lsl 17     |     __asm ("andseq sb, ip, r0, lsl 17");
                                             |     if (? != ?) {
    0x00037618 andeq fp, sl, r6, lsl r1      |         
                                             |     }
    0x0003761c andseq sb, ip, r4, lsl 17     |     __asm ("andseq sb, ip, r4, lsl 17");
                                             |     if (? != ?) {
    0x00037620 andeq r8, r1, r6, lsl r5      |         r8 = r1 & (r6 << r5);
                                             |     }
    0x00037624 andseq sb, ip, r8, lsl 17     |     __asm ("andseq sb, ip, r8, lsl 17");
                                             |     if (? != ?) {
    0x00037628 andeq r6, pc, r6, lsl r7      |         r6 = pc & (r6 << r7);
                                             |     }
    0x0003762c andseq sb, ip, ip, lsl 17     |     __asm ("andseq sb, ip, ip, lsl 17");
                                             |     if (? != ?) {
    0x00037630 andeq r2, sl, r6, lsl r7      |         r2 = sl & (r6 << r7);
                                             |     }
    0x00037634 mulseq ip, r0, r8             |     __asm ("mulseq ip, r0, r8");
                                             |     if (? != ?) {
    0x00037638 andeq sb, r8, r6, lsl pc      |         sb = r8 & (r6 << pc);
                                             |     }
    0x0003763c mulseq ip, r4, r8             |     __asm ("mulseq ip, r4, r8");
                                             |     if (? != ?) {
    0x00037640 andeq r8, r1, r6, lsl r6      |         r8 = r1 & (r6 << r6);
                                             |     }
    0x00037644 mulseq ip, r8, r8             |     __asm ("mulseq ip, r8, r8");
                                             |     if (? != ?) {
    0x00037648 andeq lr, r1, r6, lsl pc      |         lr = r1 & (r6 << pc);
                                             |     }
    0x0003764c mulseq ip, ip, r8             |     __asm ("mulseq ip, ip, r8");
                                             |     if (? != ?) {
    0x00037650 andeq lr, r1, r6, lsl ip      |         lr = r1 & (r6 << ip);
                                             |     }
    0x00037654 andseq sb, ip, r0, lsr 17     |     __asm ("andseq sb, ip, r0, lsr 17");
                                             |     if (? != ?) {
    0x00037658 andeq r7, r5, r6, lsl r5      |         r7 = r5 & (r6 << r5);
                                             |     }
    0x0003765c andseq sb, ip, r4, lsr 17     |     __asm ("andseq sb, ip, r4, lsr 17");
                                             |     if (? != ?) {
    0x00037660 andeq r1, sb, r6, lsl sl      |         r1 = sb & (r6 << sl);
                                             |     }
    0x00037664 andseq sb, ip, r8, lsr 17     |     __asm ("andseq sb, ip, r8, lsr 17");
                                             |     if (? != ?) {
    0x00037668 andeq r8, fp, r6, lsl r4      |         r8 = fp & (r6 << r4);
                                             |     }
    0x0003766c andseq sb, ip, ip, lsr 17     |     __asm ("andseq sb, ip, ip, lsr 17");
                                             |     if (? != ?) {
    0x00037670 andeq r4, sl, r6, lsl r2      |         r4 = sl & (r6 << r2);
                                             |     }
    0x00037674 ldrheq sb, [ip], -r0          |     __asm ("ldrheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00037678 andeq r8, r1, r6, lsl r8      |         r8 = r1 & (r6 << r8);
                                             |     }
    0x0003767c ldrheq sb, [ip], -r4          |     __asm ("ldrheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037680 andeq ip, sb, r6, lsl r1      |         
                                             |     }
    0x00037684 ldrheq sb, [ip], -r8          |     __asm ("ldrheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037688 andeq r3, r7, r6, lsl sl      |         r3 = r7 & (r6 << sl);
                                             |     }
    0x0003768c ldrheq sb, [ip], -ip          |     __asm ("ldrheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037690 andeq r4, sp, r6, lsl r2      |         r4 = sp & (r6 << r2);
                                             |     }
    0x00037694 andseq sb, ip, r0, asr 17     |     __asm ("andseq sb, ip, r0, asr 17");
                                             |     if (? != ?) {
    0x00037698 andeq sp, r7, r6, lsl r5      |         
                                             |     }
    0x0003769c andseq sb, ip, r4, asr 17     |     __asm ("andseq sb, ip, r4, asr 17");
                                             |     if (? != ?) {
    0x000376a0 andeq r8, r1, r6, lsl sb      |         r8 = r1 & (r6 << sb);
                                             |     }
    0x000376a4 andseq sb, ip, r8, asr 17     |     __asm ("andseq sb, ip, r8, asr 17");
                                             |     if (? != ?) {
    0x000376a8 andeq r5, r8, r6, lsl r3      |         r5 = r8 & (r6 << r3);
                                             |     }
    0x000376ac andseq sb, ip, ip, asr 17     |     __asm ("andseq sb, ip, ip, asr 17");
                                             |     if (? != ?) {
    0x000376b0 andeq r8, r5, r6, lsl r5      |         r8 = r5 & (r6 << r5);
                                             |     }
    0x000376b4 ldrsbeq sb, [ip], -r0         |     __asm ("ldrsbeq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000376b8 andeq r4, r5, r6, lsl sb      |         r4 = r5 & (r6 << sb);
                                             |     }
    0x000376bc ldrsbeq sb, [ip], -r4         |     __asm ("ldrsbeq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x000376c0 andeq r8, r1, r6, lsl sl      |         r8 = r1 & (r6 << sl);
                                             |     }
    0x000376c4 ldrsbeq sb, [ip], -r8         |     __asm ("ldrsbeq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x000376c8 andeq ip, r2, r6, lsl r1      |         
                                             |     }
    0x000376cc ldrsbeq sb, [ip], -ip         |     __asm ("ldrsbeq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x000376d0 andeq r0, r7, r6, lsl r2      |         r0 = r7 & (r6 << r2);
                                             |     }
    0x000376d4 andseq sb, ip, r0, ror 17     |     __asm ("andseq sb, ip, r0, ror 17");
                                             |     if (? != ?) {
    0x000376d8 andeq sb, pc, r6, lsl r8      |         sb = pc & (r6 << r8);
                                             |     }
    0x000376dc andseq sb, ip, r4, ror 17     |     __asm ("andseq sb, ip, r4, ror 17");
                                             |     if (? != ?) {
    0x000376e0 andeq r8, r1, r6, lsl fp      |         r8 = r1 & (r6 << fp);
                                             |     }
    0x000376e4 andseq sb, ip, r8, ror 17     |     __asm ("andseq sb, ip, r8, ror 17");
                                             |     if (? != ?) {
    0x000376e8 andeq ip, ip, r6, lsl r6      |         
                                             |     }
    0x000376ec andseq sb, ip, ip, ror 17     |     __asm ("andseq sb, ip, ip, ror 17");
                                             |     if (? != ?) {
    0x000376f0 andeq r8, r1, r6, lsl ip      |         r8 = r1 & (r6 << ip);
                                             |     }
    0x000376f4 ldrsheq sb, [ip], -r0         |     __asm ("ldrsheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000376f8 andeq r8, r2, r6, lsl r0      |         r8 = r2 & (r6 << r0);
                                             |     }
    0x000376fc ldrsheq sb, [ip], -r4         |     __asm ("ldrsheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037700 andeq r3, r8, r6, lsl r5      |         r3 = r8 & (r6 << r5);
                                             |     }
    0x00037704 ldrsheq sb, [ip], -r8         |     __asm ("ldrsheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037708 andeq r8, r1, r6, lsl sp      |         r8 = r1 & (r6 << sp);
                                             |     }
    0x0003770c ldrsheq sb, [ip], -ip         |     __asm ("ldrsheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037710 andeq r8, r1, r6, lsl lr      |         r8 = r1 & (r6 << lr);
                                             |     }
    0x00037714 andseq sb, ip, r0, lsl 18     |     __asm ("andseq sb, ip, r0, lsl 18");
                                             |     if (? != ?) {
    0x00037718 andeq sp, r6, r6, lsl r0      |         
                                             |     }
    0x0003771c andseq sb, ip, r4, lsl 18     |     __asm ("andseq sb, ip, r4, lsl 18");
                                             |     if (? != ?) {
    0x00037720 andeq sl, r2, r6, lsl r0      |         sl = r2 & (r6 << r0);
                                             |     }
    0x00037724 andseq sb, ip, r8, lsl 18     |     __asm ("andseq sb, ip, r8, lsl 18");
                                             |     if (? != ?) {
    0x00037728 andeq sp, r5, r6, lsl sl      |         
                                             |     }
    0x0003772c andseq sb, ip, ip, lsl 18     |     __asm ("andseq sb, ip, ip, lsl 18");
                                             |     if (? != ?) {
    0x00037730 andeq r4, r8, r6, lsl r8      |         r4 = r8 & (r6 << r8);
                                             |     }
    0x00037734 andseq sb, ip, r0, lsl sb     |     __asm ("andseq sb, ip, r0, lsl sb");
                                             |     if (? != ?) {
    0x00037738 andeq ip, sp, r6, lsl r0      |         
                                             |     }
    0x0003773c andseq sb, ip, r4, lsl sb     |     __asm ("andseq sb, ip, r4, lsl sb");
                                             |     if (? != ?) {
    0x00037740 andeq r7, fp, r6, lsl r7      |         r7 = fp & (r6 << r7);
                                             |     }
    0x00037744 andseq sb, ip, r8, lsl sb     |     __asm ("andseq sb, ip, r8, lsl sb");
                                             |     if (? != ?) {
    0x00037748 andeq r6, r6, r6, lsl fp      |         r6 &= (r6 << fp);
                                             |     }
    0x0003774c andseq sb, ip, ip, lsl sb     |     __asm ("andseq sb, ip, ip, lsl sb");
                                             |     if (? != ?) {
    0x00037750 andeq fp, pc, r6, lsl r8      |         
                                             |     }
    0x00037754 andseq sb, ip, r0, lsr 18     |     __asm ("andseq sb, ip, r0, lsr 18");
                                             |     if (? != ?) {
    0x00037758 andeq sb, r5, r6, lsl r0      |         sb = r5 & (r6 << r0);
                                             |     }
    0x0003775c andseq sb, ip, r4, lsr 18     |     __asm ("andseq sb, ip, r4, lsr 18");
                                             |     if (? != ?) {
    0x00037760 andeq r3, ip, r6, lsl ip      |         r3 = ip & (r6 << ip);
                                             |     }
    0x00037764 andseq sb, ip, r8, lsr 18     |     __asm ("andseq sb, ip, r8, lsr 18");
                                             |     if (? != ?) {
    0x00037768 andeq r8, r1, r6, lsl pc      |         r8 = r1 & (r6 << pc);
                                             |     }
    0x0003776c andseq sb, ip, ip, lsr 18     |     __asm ("andseq sb, ip, ip, lsr 18");
                                             |     if (? != ?) {
    0x00037770 andeq lr, r7, r6, lsl pc      |         lr = r7 & (r6 << pc);
                                             |     }
    0x00037774 andseq sb, ip, r0, lsr sb     |     __asm ("andseq sb, ip, r0, lsr sb");
                                             |     if (? != ?) {
    0x00037778 andeq sb, r1, r6, lsl r0      |         sb = r1 & (r6 << r0);
                                             |     }
    0x0003777c andseq sb, ip, r4, lsr sb     |     __asm ("andseq sb, ip, r4, lsr sb");
                                             |     if (? != ?) {
    0x00037780 andeq sb, r1, r6, lsl r1      |         sb = r1 & (r6 << r1);
                                             |     }
    0x00037784 andseq sb, ip, r8, lsr sb     |     __asm ("andseq sb, ip, r8, lsr sb");
                                             |     if (? != ?) {
    0x00037788 andeq sb, r1, r6, lsl r2      |         sb = r1 & (r6 << r2);
                                             |     }
    0x0003778c andseq sb, ip, ip, lsr sb     |     __asm ("andseq sb, ip, ip, lsr sb");
                                             |     if (? != ?) {
    0x00037790 andeq sp, r6, r6, lsl r1      |         
                                             |     }
    0x00037794 andseq sb, ip, r0, asr 18     |     __asm ("andseq sb, ip, r0, asr 18");
                                             |     if (? != ?) {
    0x00037798 andeq r5, r6, r6, lsl r1      |         r5 = r6 & (r6 << r1);
                                             |     }
    0x0003779c andseq sb, ip, r4, asr 18     |     __asm ("andseq sb, ip, r4, asr 18");
                                             |     if (? != ?) {
    0x000377a0 andeq r3, pc, r6, lsl r6      |         r3 = pc & (r6 << r6);
                                             |     }
    0x000377a4 andseq sb, ip, r8, asr 18     |     __asm ("andseq sb, ip, r8, asr 18");
                                             |     if (? != ?) {
    0x000377a8 andeq r4, r3, r6, lsl sl      |         r4 = r3 & (r6 << sl);
                                             |     }
    0x000377ac andseq sb, ip, ip, asr 18     |     __asm ("andseq sb, ip, ip, asr 18");
                                             |     if (? != ?) {
    0x000377b0 andeq r6, r2, r6, lsl sl      |         r6 = r2 & (r6 << sl);
                                             |     }
    0x000377b4 andseq sb, ip, r0, asr sb     |     __asm ("andseq sb, ip, r0, asr sb");
                                             |     if (? != ?) {
    0x000377b8 andeq sl, ip, r6, lsl r1      |         sl = ip & (r6 << r1);
                                             |     }
    0x000377bc andseq sb, ip, r4, asr sb     |     __asm ("andseq sb, ip, r4, asr sb");
                                             |     if (? != ?) {
    0x000377c0 andeq sp, sl, r6, lsl sl      |         
                                             |     }
    0x000377c4 andseq sb, ip, r8, asr sb     |     __asm ("andseq sb, ip, r8, asr sb");
                                             |     if (? != ?) {
    0x000377c8 andeq r4, r3, r6, lsl r1      |         r4 = r3 & (r6 << r1);
                                             |     }
    0x000377cc andseq sb, ip, ip, asr sb     |     __asm ("andseq sb, ip, ip, asr sb");
                                             |     if (? != ?) {
    0x000377d0 andeq r8, r2, r6, lsl r5      |         r8 = r2 & (r6 << r5);
                                             |     }
    0x000377d4 andseq sb, ip, r0, ror 18     |     __asm ("andseq sb, ip, r0, ror 18");
                                             |     if (? != ?) {
    0x000377d8 andeq r1, lr, r6, lsl r6      |         r1 = lr & (r6 << r6);
                                             |     }
    0x000377dc andseq sb, ip, r4, ror 18     |     __asm ("andseq sb, ip, r4, ror 18");
                                             |     if (? != ?) {
    0x000377e0 andeq sb, r1, r6, lsl r4      |         sb = r1 & (r6 << r4);
                                             |     }
    0x000377e4 andseq sb, ip, r8, ror 18     |     __asm ("andseq sb, ip, r8, ror 18");
                                             |     if (? != ?) {
    0x000377e8 andeq sp, r2, r6, lsl sl      |         
                                             |     }
    0x000377ec andseq sb, ip, ip, ror 18     |     __asm ("andseq sb, ip, ip, ror 18");
                                             |     if (? != ?) {
    0x000377f0 andeq r7, r3, r6, lsl sp      |         r7 = r3 & (r6 << sp);
                                             |     }
    0x000377f4 andseq sb, ip, r0, ror sb     |     __asm ("andseq sb, ip, r0, ror sb");
                                             |     if (? != ?) {
    0x000377f8 andeq fp, r2, r6, lsl r3      |         
                                             |     }
    0x000377fc andseq sb, ip, r4, ror sb     |     __asm ("andseq sb, ip, r4, ror sb");
                                             |     if (? != ?) {
    0x00037800 andeq sl, sb, r6, lsl r4      |         sl = sb & (r6 << r4);
                                             |     }
    0x00037804 andseq sb, ip, r8, ror sb     |     __asm ("andseq sb, ip, r8, ror sb");
                                             |     if (? != ?) {
    0x00037808 andeq ip, lr, r6, lsl lr      |         
                                             |     }
    0x0003780c andseq sb, ip, ip, ror sb     |     __asm ("andseq sb, ip, ip, ror sb");
                                             |     if (? != ?) {
    0x00037810 andeq r7, lr, r6, lsl ip      |         r7 = lr & (r6 << ip);
                                             |     }
    0x00037814 andseq sb, ip, r0, lsl 19     |     __asm ("andseq sb, ip, r0, lsl 19");
                                             |     if (? != ?) {
    0x00037818 andeq r6, sl, r6, lsl r1      |         r6 = sl & (r6 << r1);
                                             |     }
    0x0003781c andseq sb, ip, r4, lsl 19     |     __asm ("andseq sb, ip, r4, lsl 19");
                                             |     if (? != ?) {
    0x00037820 andeq r0, r7, r6, lsl r3      |         r0 = r7 & (r6 << r3);
                                             |     }
    0x00037824 andseq sb, ip, r8, lsl 19     |     __asm ("andseq sb, ip, r8, lsl 19");
                                             |     if (? != ?) {
    0x00037828 andeq r4, pc, r6, lsl sp      |         r4 = pc & (r6 << sp);
                                             |     }
    0x0003782c andseq sb, ip, ip, lsl 19     |     __asm ("andseq sb, ip, ip, lsl 19");
                                             |     if (? != ?) {
    0x00037830 andeq sb, r1, r6, lsl r5      |         sb = r1 & (r6 << r5);
                                             |     }
    0x00037834 mulseq ip, r0, sb             |     __asm ("mulseq ip, r0, sb");
                                             |     if (? != ?) {
    0x00037838 andeq sb, r1, r6, lsl r6      |         sb = r1 & (r6 << r6);
                                             |     }
    0x0003783c mulseq ip, r4, sb             |     __asm ("mulseq ip, r4, sb");
                                             |     if (? != ?) {
    0x00037840 andeq sb, r1, r6, lsl r7      |         sb = r1 & (r6 << r7);
                                             |     }
    0x00037844 mulseq ip, r8, sb             |     __asm ("mulseq ip, r8, sb");
                                             |     if (? != ?) {
    0x00037848 andeq sp, r6, r6, lsl r2      |         
                                             |     }
    0x0003784c mulseq ip, ip, sb             |     __asm ("mulseq ip, ip, sb");
                                             |     if (? != ?) {
    0x00037850 andeq r7, r8, r6, lsl r2      |         r7 = r8 & (r6 << r2);
                                             |     }
    0x00037854 andseq sb, ip, r0, lsr 19     |     __asm ("andseq sb, ip, r0, lsr 19");
                                             |     if (? != ?) {
    0x00037858 andeq pc, r7, r6, lsl r3      |         pc = r7 & (r6 << r3);
                                             |     }
    0x0003785c andseq sb, ip, r4, lsr 19     |     __asm ("andseq sb, ip, r4, lsr 19");
                                             |     if (? != ?) {
    0x00037860 andeq r0, sl, r6, lsl r7      |         r0 = sl & (r6 << r7);
                                             |     }
    0x00037864 andseq sb, ip, r8, lsr 19     |     __asm ("andseq sb, ip, r8, lsr 19");
                                             |     if (? != ?) {
    0x00037868 andeq sb, r6, r6, lsl r0      |         sb = r6 & (r6 << r0);
                                             |     }
    0x0003786c andseq sb, ip, ip, lsr 19     |     __asm ("andseq sb, ip, ip, lsr 19");
                                             |     if (? != ?) {
    0x00037870 andeq lr, r4, r6, lsl pc      |         lr = r4 & (r6 << pc);
                                             |     }
    0x00037874 ldrheq sb, [ip], -r0          |     __asm ("ldrheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00037878 andeq sp, fp, r6, lsl sp      |         
                                             |     }
    0x0003787c ldrheq sb, [ip], -r4          |     __asm ("ldrheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037880 andeq r1, fp, r6, lsl r7      |         r1 = fp & (r6 << r7);
                                             |     }
    0x00037884 ldrheq sb, [ip], -r8          |     __asm ("ldrheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037888 andeq fp, r5, r6, lsl fp      |         
                                             |     }
    0x0003788c ldrheq sb, [ip], -ip          |     __asm ("ldrheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037890 andeq r1, sp, r6, lsl pc      |         r1 = sp & (r6 << pc);
                                             |     }
    0x00037894 andseq sb, ip, r0, asr 19     |     __asm ("andseq sb, ip, r0, asr 19");
                                             |     if (? != ?) {
    0x00037898 andeq r3, lr, r6, lsl sp      |         r3 = lr & (r6 << sp);
                                             |     }
    0x0003789c andseq sb, ip, r4, asr 19     |     __asm ("andseq sb, ip, r4, asr 19");
                                             |     if (? != ?) {
    0x000378a0 andeq r2, r5, r6, lsl sl      |         r2 = r5 & (r6 << sl);
                                             |     }
    0x000378a4 andseq sb, ip, r8, asr 19     |     __asm ("andseq sb, ip, r8, asr 19");
                                             |     if (? != ?) {
    0x000378a8 andeq sb, r1, r6, lsl r8      |         sb = r1 & (r6 << r8);
                                             |     }
    0x000378ac andseq sb, ip, ip, asr 19     |     __asm ("andseq sb, ip, ip, asr 19");
                                             |     if (? != ?) {
    0x000378b0 andeq r6, r2, r6, lsl fp      |         r6 = r2 & (r6 << fp);
                                             |     }
    0x000378b4 ldrsbeq sb, [ip], -r0         |     __asm ("ldrsbeq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000378b8 andeq r8, r6, r6, lsl r8      |         r8 = r6 & (r6 << r8);
                                             |     }
    0x000378bc ldrsbeq sb, [ip], -r4         |     __asm ("ldrsbeq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x000378c0 andeq r7, r6, r6, lsl r1      |         r7 = r6 & (r6 << r1);
                                             |     }
    0x000378c4 ldrsbeq sb, [ip], -r8         |     __asm ("ldrsbeq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x000378c8 andeq sb, r1, r6, lsl sb      |         sb = r1 & (r6 << sb);
                                             |     }
    0x000378cc ldrsbeq sb, [ip], -ip         |     __asm ("ldrsbeq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x000378d0 andeq sp, fp, r6, lsl r7      |         
                                             |     }
    0x000378d4 andseq sb, ip, r0, ror 19     |     __asm ("andseq sb, ip, r0, ror 19");
                                             |     if (? != ?) {
    0x000378d8 andeq sl, pc, r6, lsl r6      |         sl = pc & (r6 << r6);
                                             |     }
    0x000378dc andseq sb, ip, r4, ror 19     |     __asm ("andseq sb, ip, r4, ror 19");
                                             |     if (? != ?) {
    0x000378e0 andeq sb, fp, r6, lsl r4      |         sb = fp & (r6 << r4);
                                             |     }
    0x000378e4 andseq sb, ip, r8, ror 19     |     __asm ("andseq sb, ip, r8, ror 19");
                                             |     if (? != ?) {
    0x000378e8 andeq lr, r2, r6, lsl ip      |         lr = r2 & (r6 << ip);
                                             |     }
    0x000378ec andseq sb, ip, ip, ror 19     |     __asm ("andseq sb, ip, ip, ror 19");
                                             |     if (? != ?) {
    0x000378f0 andeq r5, lr, r6, lsl fp      |         r5 = lr & (r6 << fp);
                                             |     }
    0x000378f4 ldrsheq sb, [ip], -r0         |     __asm ("ldrsheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000378f8 andeq lr, lr, r6, lsl r4      |         lr &= (r6 << r4);
                                             |     }
    0x000378fc ldrsheq sb, [ip], -r4         |     __asm ("ldrsheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037900 andeq sb, r1, r6, lsl sl      |         sb = r1 & (r6 << sl);
                                             |     }
    0x00037904 ldrsheq sb, [ip], -r8         |     __asm ("ldrsheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037908 andeq r0, r6, r6, lsl r5      |         r0 = r6 & (r6 << r5);
                                             |     }
    0x0003790c ldrsheq sb, [ip], -ip         |     __asm ("ldrsheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037910 andeq ip, r3, r6, lsl r3      |         
                                             |     }
    0x00037914 andseq sb, ip, r0, lsl 20     |     __asm ("andseq sb, ip, r0, lsl 20");
                                             |     if (? != ?) {
    0x00037918 andeq r5, sl, r6, lsl lr      |         r5 = sl & (r6 << lr);
                                             |     }
    0x0003791c andseq sb, ip, r4, lsl 20     |     __asm ("andseq sb, ip, r4, lsl 20");
                                             |     if (? != ?) {
    0x00037920 andeq pc, r7, r6, lsl r4      |         pc = r7 & (r6 << r4);
                                             |     }
    0x00037924 andseq sb, ip, r8, lsl 20     |     __asm ("andseq sb, ip, r8, lsl 20");
                                             |     if (? != ?) {
    0x00037928 andeq r3, r4, r6, lsl lr      |         r3 = r4 & (r6 << lr);
                                             |     }
    0x0003792c andseq sb, ip, ip, lsl 20     |     __asm ("andseq sb, ip, ip, lsl 20");
                                             |     if (? != ?) {
    0x00037930 andeq sb, r1, r6, lsl fp      |         sb = r1 & (r6 << fp);
                                             |     }
    0x00037934 andseq sb, ip, r0, lsl sl     |     __asm ("andseq sb, ip, r0, lsl sl");
                                             |     if (? != ?) {
    0x00037938 andeq sb, r1, r6, lsl ip      |         sb = r1 & (r6 << ip);
                                             |     }
    0x0003793c andseq sb, ip, r4, lsl sl     |     __asm ("andseq sb, ip, r4, lsl sl");
                                             |     if (? != ?) {
    0x00037940 andeq sb, r1, r6, lsl sp      |         sb = r1 & (r6 << sp);
                                             |     }
    0x00037944 andseq sb, ip, r8, lsl sl     |     __asm ("andseq sb, ip, r8, lsl sl");
                                             |     if (? != ?) {
    0x00037948 andeq r4, r4, r6, lsl fp      |         r4 &= (r6 << fp);
                                             |     }
    0x0003794c andseq sb, ip, ip, lsl sl     |     __asm ("andseq sb, ip, ip, lsl sl");
                                             |     if (? != ?) {
    0x00037950 andeq r2, r8, r6, lsl r6      |         r2 = r8 & (r6 << r6);
                                             |     }
    0x00037954 andseq sb, ip, r0, lsr 20     |     __asm ("andseq sb, ip, r0, lsr 20");
                                             |     if (? != ?) {
    0x00037958 andeq r8, r4, r6, lsl r5      |         r8 = r4 & (r6 << r5);
                                             |     }
    0x0003795c andseq sb, ip, r4, lsr 20     |     __asm ("andseq sb, ip, r4, lsr 20");
                                             |     if (? != ?) {
    0x00037960 andeq pc, ip, r6, lsl r4      |         pc = ip & (r6 << r4);
                                             |     }
    0x00037964 andseq sb, ip, r8, lsr 20     |     __asm ("andseq sb, ip, r8, lsr 20");
                                             |     if (? != ?) {
    0x00037968 andeq sb, r1, r6, lsl lr      |         sb = r1 & (r6 << lr);
                                             |     }
    0x0003796c andseq sb, ip, ip, lsr 20     |     __asm ("andseq sb, ip, ip, lsr 20");
                                             |     if (? != ?) {
    0x00037970 andeq r5, r4, r6, lsl r7      |         r5 = r4 & (r6 << r7);
                                             |     }
    0x00037974 andseq sb, ip, r0, lsr sl     |     __asm ("andseq sb, ip, r0, lsr sl");
                                             |     if (? != ?) {
    0x00037978 andeq sb, r5, r6, lsl r1      |         sb = r5 & (r6 << r1);
                                             |     }
    0x0003797c andseq sb, ip, r4, lsr sl     |     __asm ("andseq sb, ip, r4, lsr sl");
                                             |     if (? != ?) {
    0x00037980 andeq r2, r4, r6, lsl r5      |         r2 = r4 & (r6 << r5);
                                             |     }
    0x00037984 andseq sb, ip, r8, lsr sl     |     __asm ("andseq sb, ip, r8, lsr sl");
                                             |     if (? != ?) {
    0x00037988 andeq r2, sp, r6, lsl r5      |         r2 = sp & (r6 << r5);
                                             |     }
    0x0003798c andseq sb, ip, ip, lsr sl     |     __asm ("andseq sb, ip, ip, lsr sl");
                                             |     if (? != ?) {
    0x00037990 andeq sb, r1, r6, lsl pc      |         sb = r1 & (r6 << pc);
                                             |     }
    0x00037994 andseq sb, ip, r0, asr 20     |     __asm ("andseq sb, ip, r0, asr 20");
                                             |     if (? != ?) {
    0x00037998 andeq sl, r1, r6, lsl r0      |         sl = r1 & (r6 << r0);
                                             |     }
    0x0003799c andseq sb, ip, r4, asr 20     |     __asm ("andseq sb, ip, r4, asr 20");
                                             |     if (? != ?) {
    0x000379a0 andeq sl, r1, r6, lsl r1      |         sl = r1 & (r6 << r1);
                                             |     }
    0x000379a4 andseq sb, ip, r8, asr 20     |     __asm ("andseq sb, ip, r8, asr 20");
                                             |     if (? != ?) {
    0x000379a8 andeq r0, r4, r6, lsl r5      |         r0 = r4 & (r6 << r5);
                                             |     }
    0x000379ac andseq sb, ip, ip, asr 20     |     __asm ("andseq sb, ip, ip, asr 20");
                                             |     if (? != ?) {
    0x000379b0 andeq r2, pc, r6, lsl sl      |         r2 = pc & (r6 << sl);
                                             |     }
    0x000379b4 andseq sb, ip, r0, asr sl     |     __asm ("andseq sb, ip, r0, asr sl");
                                             |     if (? != ?) {
    0x000379b8 andeq sl, sb, r6, lsl r5      |         sl = sb & (r6 << r5);
                                             |     }
    0x000379bc andseq sb, ip, r4, asr sl     |     __asm ("andseq sb, ip, r4, asr sl");
                                             |     if (? != ?) {
    0x000379c0 andeq r4, r2, r6, lsl r8      |         r4 = r2 & (r6 << r8);
                                             |     }
    0x000379c4 andseq sb, ip, r8, asr sl     |     __asm ("andseq sb, ip, r8, asr sl");
                                             |     if (? != ?) {
    0x000379c8 andeq lr, r7, r6, lsl sp      |         lr = r7 & (r6 << sp);
                                             |     }
    0x000379cc andseq sb, ip, ip, asr sl     |     __asm ("andseq sb, ip, ip, asr sl");
                                             |     if (? != ?) {
    0x000379d0 andeq pc, ip, r6, lsl r5      |         pc = ip & (r6 << r5);
                                             |     }
    0x000379d4 andseq sb, ip, r0, ror 20     |     __asm ("andseq sb, ip, r0, ror 20");
                                             |     if (? != ?) {
    0x000379d8 andeq r8, r5, r6, lsl r1      |         r8 = r5 & (r6 << r1);
                                             |     }
    0x000379dc andseq sb, ip, r4, ror 20     |     __asm ("andseq sb, ip, r4, ror 20");
                                             |     if (? != ?) {
    0x000379e0 andeq sl, r3, r6, lsl fp      |         sl = r3 & (r6 << fp);
                                             |     }
    0x000379e4 andseq sb, ip, r8, ror 20     |     __asm ("andseq sb, ip, r8, ror 20");
                                             |     if (? != ?) {
    0x000379e8 andeq sl, r1, r6, lsl r2      |         sl = r1 & (r6 << r2);
                                             |     }
    0x000379ec andseq sb, ip, ip, ror 20     |     __asm ("andseq sb, ip, ip, ror 20");
                                             |     if (? != ?) {
    0x000379f0 andeq pc, r6, r6, lsl pc      |         pc = r6 & (r6 << pc);
                                             |     }
    0x000379f4 andseq sb, ip, r0, ror sl     |     __asm ("andseq sb, ip, r0, ror sl");
                                             |     if (? != ?) {
    0x000379f8 andeq r6, r2, r6, lsl r4      |         r6 = r2 & (r6 << r4);
                                             |     }
    0x000379fc andseq sb, ip, r4, ror sl     |     __asm ("andseq sb, ip, r4, ror sl");
                                             |     if (? != ?) {
    0x00037a00 andeq sl, r8, r6, lsl r4      |         sl = r8 & (r6 << r4);
                                             |     }
    0x00037a04 andseq sb, ip, r8, ror sl     |     __asm ("andseq sb, ip, r8, ror sl");
                                             |     if (? != ?) {
    0x00037a08 andeq sl, r1, r6, lsl r3      |         sl = r1 & (r6 << r3);
                                             |     }
    0x00037a0c andseq sb, ip, ip, ror sl     |     __asm ("andseq sb, ip, ip, ror sl");
                                             |     if (? != ?) {
    0x00037a10 andeq r0, pc, r6, lsl sp      |         r0 = pc & (r6 << sp);
                                             |     }
    0x00037a14 andseq sb, ip, r0, lsl 21     |     __asm ("andseq sb, ip, r0, lsl 21");
                                             |     if (? != ?) {
    0x00037a18 andeq r7, ip, r6, lsl r0      |         r7 = ip & (r6 << r0);
                                             |     }
    0x00037a1c andseq sb, ip, r4, lsl 21     |     __asm ("andseq sb, ip, r4, lsl 21");
                                             |     if (? != ?) {
    0x00037a20 andeq sl, r1, r6, lsl r4      |         sl = r1 & (r6 << r4);
                                             |     }
    0x00037a24 andseq sb, ip, r8, lsl 21     |     __asm ("andseq sb, ip, r8, lsl 21");
                                             |     if (? != ?) {
    0x00037a28 andeq r3, r8, r6, lsl pc      |         r3 = r8 & (r6 << pc);
                                             |     }
    0x00037a2c andseq sb, ip, ip, lsl 21     |     __asm ("andseq sb, ip, ip, lsl 21");
                                             |     if (? != ?) {
    0x00037a30 andeq r8, r5, r6, lsl r6      |         r8 = r5 & (r6 << r6);
                                             |     }
    0x00037a34 mulseq ip, r0, sl             |     __asm ("mulseq ip, r0, sl");
                                             |     if (? != ?) {
    0x00037a38 andeq r1, sb, r6, lsl fp      |         r1 = sb & (r6 << fp);
                                             |     }
    0x00037a3c mulseq ip, r4, sl             |     __asm ("mulseq ip, r4, sl");
                                             |     if (? != ?) {
    0x00037a40 andeq lr, r3, r6, lsl r1      |         lr = r3 & (r6 << r1);
                                             |     }
    0x00037a44 mulseq ip, r8, sl             |     __asm ("mulseq ip, r8, sl");
                                             |     if (? != ?) {
    0x00037a48 andeq r0, fp, r6, lsl r7      |         r0 = fp & (r6 << r7);
                                             |     }
    0x00037a4c mulseq ip, ip, sl             |     __asm ("mulseq ip, ip, sl");
                                             |     if (? != ?) {
    0x00037a50 andeq lr, r4, r6, lsl r2      |         lr = r4 & (r6 << r2);
                                             |     }
    0x00037a54 andseq sb, ip, r0, lsr 21     |     __asm ("andseq sb, ip, r0, lsr 21");
                                             |     if (? != ?) {
    0x00037a58 andeq r2, pc, r6, lsl pc      |         r2 = pc & (r6 << pc);
                                             |     }
    0x00037a5c andseq sb, ip, r4, lsr 21     |     __asm ("andseq sb, ip, r4, lsr 21");
                                             |     if (? != ?) {
    0x00037a60 andeq sl, r1, r6, lsl r5      |         sl = r1 & (r6 << r5);
                                             |     }
    0x00037a64 andseq sb, ip, r8, lsr 21     |     __asm ("andseq sb, ip, r8, lsr 21");
                                             |     if (? != ?) {
    0x00037a68 andeq fp, sp, r6, lsl r8      |         
                                             |     }
    0x00037a6c andseq sb, ip, ip, lsr 21     |     __asm ("andseq sb, ip, ip, lsr 21");
                                             |     if (? != ?) {
    0x00037a70 andeq r1, r2, r6, lsl r3      |         r1 = r2 & (r6 << r3);
                                             |     }
    0x00037a74 ldrheq sb, [ip], -r0          |     __asm ("ldrheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00037a78 andeq r6, r7, r6, lsl r5      |         r6 = r7 & (r6 << r5);
                                             |     }
    0x00037a7c ldrheq sb, [ip], -r4          |     __asm ("ldrheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037a80 andeq sb, fp, r6, lsl fp      |         sb = fp & (r6 << fp);
                                             |     }
    0x00037a84 ldrheq sb, [ip], -r8          |     __asm ("ldrheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037a88 andeq ip, fp, r6, lsl r6      |         
                                             |     }
    0x00037a8c ldrheq sb, [ip], -ip          |     __asm ("ldrheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037a90 andeq fp, lr, r6, lsl r5      |         
                                             |     }
    0x00037a94 andseq sb, ip, r0, asr 21     |     __asm ("andseq sb, ip, r0, asr 21");
                                             |     if (? != ?) {
    0x00037a98 andeq r5, fp, r6, lsl r7      |         r5 = fp & (r6 << r7);
                                             |     }
    0x00037a9c andseq sb, ip, r4, asr 21     |     __asm ("andseq sb, ip, r4, asr 21");
                                             |     if (? != ?) {
    0x00037aa0 andeq r4, r2, r6, lsl sb      |         r4 = r2 & (r6 << sb);
                                             |     }
    0x00037aa4 andseq sb, ip, r8, asr 21     |     __asm ("andseq sb, ip, r8, asr 21");
                                             |     if (? != ?) {
    0x00037aa8 andeq sl, r1, r6, lsl r6      |         sl = r1 & (r6 << r6);
                                             |     }
    0x00037aac andseq sb, ip, ip, asr 21     |     __asm ("andseq sb, ip, ip, asr 21");
                                             |     if (? != ?) {
    0x00037ab0 andeq r5, ip, r6, lsl r2      |         r5 = ip & (r6 << r2);
                                             |     }
    0x00037ab4 ldrsbeq sb, [ip], -r0         |     __asm ("ldrsbeq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00037ab8 andeq r5, r8, r6, lsl r7      |         r5 = r8 & (r6 << r7);
                                             |     }
    0x00037abc ldrsbeq sb, [ip], -r4         |     __asm ("ldrsbeq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037ac0 andeq r7, sl, r6, lsl r6      |         r7 = sl & (r6 << r6);
                                             |     }
    0x00037ac4 ldrsbeq sb, [ip], -r8         |     __asm ("ldrsbeq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037ac8 andeq lr, sp, r6, lsl fp      |         lr = sp & (r6 << fp);
                                             |     }
    0x00037acc ldrsbeq sb, [ip], -ip         |     __asm ("ldrsbeq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037ad0 andeq sl, r1, r6, lsl r7      |         sl = r1 & (r6 << r7);
                                             |     }
    0x00037ad4 andseq sb, ip, r0, ror 21     |     __asm ("andseq sb, ip, r0, ror 21");
                                             |     if (? != ?) {
    0x00037ad8 andeq sp, r4, r6, lsl r1      |         
                                             |     }
    0x00037adc andseq sb, ip, r4, ror 21     |     __asm ("andseq sb, ip, r4, ror 21");
                                             |     if (? != ?) {
    0x00037ae0 andeq sl, r3, r6, lsl ip      |         sl = r3 & (r6 << ip);
                                             |     }
    0x00037ae4 andseq sb, ip, r8, ror 21     |     __asm ("andseq sb, ip, r8, ror 21");
                                             |     if (? != ?) {
    0x00037ae8 andeq r0, lr, r6, lsl r8      |         r0 = lr & (r6 << r8);
                                             |     }
    0x00037aec andseq sb, ip, ip, ror 21     |     __asm ("andseq sb, ip, ip, ror 21");
                                             |     if (? != ?) {
    0x00037af0 andeq pc, fp, r6, lsl sp      |         pc = fp & (r6 << sp);
                                             |     }
    0x00037af4 ldrsheq sb, [ip], -r0         |     __asm ("ldrsheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00037af8 andeq sp, r4, r6, lsl ip      |         
                                             |     }
    0x00037afc ldrsheq sb, [ip], -r4         |     __asm ("ldrsheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037b00 andeq sb, r8, r6, lsl fp      |         sb = r8 & (r6 << fp);
                                             |     }
    0x00037b04 ldrsheq sb, [ip], -r8         |     __asm ("ldrsheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037b08 andeq r2, sl, r6, lsl r0      |         r2 = sl & (r6 << r0);
                                             |     }
    0x00037b0c ldrsheq sb, [ip], -ip         |     __asm ("ldrsheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037b10 andeq sp, fp, r6, lsl r4      |         
                                             |     }
    0x00037b14 andseq sb, ip, r0, lsl 22     |     __asm ("andseq sb, ip, r0, lsl 22");
                                             |     if (? != ?) {
    0x00037b18 andeq sl, r1, r6, lsl r8      |         sl = r1 & (r6 << r8);
                                             |     }
    0x00037b1c andseq sb, ip, r4, lsl 22     |     __asm ("andseq sb, ip, r4, lsl 22");
                                             |     if (? != ?) {
    0x00037b20 andeq ip, fp, r6, lsl pc      |         
                                             |     }
    0x00037b24 andseq sb, ip, r8, lsl 22     |     __asm ("andseq sb, ip, r8, lsl 22");
                                             |     if (? != ?) {
    0x00037b28 andeq sl, r1, r6, lsl sb      |         sl = r1 & (r6 << sb);
                                             |     }
    0x00037b2c andseq sb, ip, ip, lsl 22     |     __asm ("andseq sb, ip, ip, lsl 22");
                                             |     if (? != ?) {
    0x00037b30 andeq r1, r5, r6, lsl r6      |         r1 = r5 & (r6 << r6);
                                             |     }
    0x00037b34 andseq sb, ip, r0, lsl fp     |     __asm ("andseq sb, ip, r0, lsl fp");
                                             |     if (? != ?) {
    0x00037b38 andeq r1, r2, r6, lsl pc      |         r1 = r2 & (r6 << pc);
                                             |     }
    0x00037b3c andseq sb, ip, r4, lsl fp     |     __asm ("andseq sb, ip, r4, lsl fp");
                                             |     if (? != ?) {
    0x00037b40 andeq pc, lr, r6, lsl sp      |         pc = lr & (r6 << sp);
                                             |     }
    0x00037b44 andseq sb, ip, r8, lsl fp     |     __asm ("andseq sb, ip, r8, lsl fp");
                                             |     if (? != ?) {
    0x00037b48 andeq sb, r3, r6, lsl r3      |         sb = r3 & (r6 << r3);
                                             |     }
    0x00037b4c andseq sb, ip, ip, lsl fp     |     __asm ("andseq sb, ip, ip, lsl fp");
                                             |     if (? != ?) {
    0x00037b50 andeq sl, r1, r6, lsl sl      |         sl = r1 & (r6 << sl);
                                             |     }
    0x00037b54 andseq sb, ip, r0, lsr 22     |     __asm ("andseq sb, ip, r0, lsr 22");
                                             |     if (? != ?) {
    0x00037b58 andeq r2, lr, r6, lsl r0      |         r2 = lr & (r6 << r0);
                                             |     }
    0x00037b5c andseq sb, ip, r4, lsr 22     |     __asm ("andseq sb, ip, r4, lsr 22");
                                             |     if (? != ?) {
    0x00037b60 andeq sl, r1, r6, lsl fp      |         sl = r1 & (r6 << fp);
                                             |     }
    0x00037b64 andseq sb, ip, r8, lsr 22     |     __asm ("andseq sb, ip, r8, lsr 22");
                                             |     if (? != ?) {
    0x00037b68 andeq r1, fp, r6, lsl sl      |         r1 = fp & (r6 << sl);
                                             |     }
    0x00037b6c andseq sb, ip, ip, lsr 22     |     __asm ("andseq sb, ip, ip, lsr 22");
                                             |     if (? != ?) {
    0x00037b70 andeq r4, r3, r6, lsl r2      |         r4 = r3 & (r6 << r2);
                                             |     }
    0x00037b74 andseq sb, ip, r0, lsr fp     |     __asm ("andseq sb, ip, r0, lsr fp");
                                             |     if (? != ?) {
    0x00037b78 andeq sl, r1, r6, lsl ip      |         sl = r1 & (r6 << ip);
                                             |     }
    0x00037b7c andseq sb, ip, r4, lsr fp     |     __asm ("andseq sb, ip, r4, lsr fp");
                                             |     if (? != ?) {
    0x00037b80 andeq pc, r3, r6, lsl r1      |         pc = r3 & (r6 << r1);
                                             |     }
    0x00037b84 andseq sb, ip, r8, lsr fp     |     __asm ("andseq sb, ip, r8, lsr fp");
                                             |     if (? != ?) {
    0x00037b88 andeq r0, r2, r6, lsl fp      |         r0 = r2 & (r6 << fp);
                                             |     }
    0x00037b8c andseq sb, ip, ip, lsr fp     |     __asm ("andseq sb, ip, ip, lsr fp");
                                             |     if (? != ?) {
    0x00037b90 andeq r1, sl, r6, lsl r2      |         r1 = sl & (r6 << r2);
                                             |     }
    0x00037b94 andseq sb, ip, r0, asr 22     |     __asm ("andseq sb, ip, r0, asr 22");
                                             |     if (? != ?) {
    0x00037b98 andeq sl, r1, r6, lsl sp      |         sl = r1 & (r6 << sp);
                                             |     }
    0x00037b9c andseq sb, ip, r4, asr 22     |     __asm ("andseq sb, ip, r4, asr 22");
                                             |     if (? != ?) {
    0x00037ba0 andeq sl, r1, r6, lsl lr      |         sl = r1 & (r6 << lr);
                                             |     }
    0x00037ba4 andseq sb, ip, r8, asr 22     |     __asm ("andseq sb, ip, r8, asr 22");
                                             |     if (? != ?) {
    0x00037ba8 andeq r0, sb, r6, lsl r8      |         r0 = sb & (r6 << r8);
                                             |     }
    0x00037bac andseq sb, ip, ip, asr 22     |     __asm ("andseq sb, ip, ip, asr 22");
                                             |     if (? != ?) {
    0x00037bb0 andeq r1, sl, r6, lsl lr      |         r1 = sl & (r6 << lr);
                                             |     }
    0x00037bb4 andseq sb, ip, r0, asr fp     |     __asm ("andseq sb, ip, r0, asr fp");
                                             |     if (? != ?) {
    0x00037bb8 andeq sl, r1, r6, lsl pc      |         sl = r1 & (r6 << pc);
                                             |     }
    0x00037bbc andseq sb, ip, r4, asr fp     |     __asm ("andseq sb, ip, r4, asr fp");
                                             |     if (? != ?) {
    0x00037bc0 andeq r7, r6, r6, lsl r5      |         r7 = r6 & (r6 << r5);
                                             |     }
    0x00037bc4 andseq sb, ip, r8, asr fp     |     __asm ("andseq sb, ip, r8, asr fp");
                                             |     if (? != ?) {
    0x00037bc8 andeq pc, r5, r6, lsl r2      |         pc = r5 & (r6 << r2);
                                             |     }
    0x00037bcc andseq sb, ip, ip, asr fp     |     __asm ("andseq sb, ip, ip, asr fp");
                                             |     if (? != ?) {
    0x00037bd0 andeq lr, lr, r6, lsl pc      |         lr &= (r6 << pc);
                                             |     }
    0x00037bd4 andseq sb, ip, r0, ror 22     |     __asm ("andseq sb, ip, r0, ror 22");
                                             |     if (? != ?) {
    0x00037bd8 andeq r2, lr, r6, lsl sb      |         r2 = lr & (r6 << sb);
                                             |     }
    0x00037bdc andseq sb, ip, r4, ror 22     |     __asm ("andseq sb, ip, r4, ror 22");
                                             |     if (? != ?) {
    0x00037be0 andeq fp, r1, r6, lsl r0      |         
                                             |     }
    0x00037be4 andseq sb, ip, r8, ror 22     |     __asm ("andseq sb, ip, r8, ror 22");
                                             |     if (? != ?) {
    0x00037be8 andeq sb, r6, r6, lsl r1      |         sb = r6 & (r6 << r1);
                                             |     }
    0x00037bec andseq sb, ip, ip, ror 22     |     __asm ("andseq sb, ip, ip, ror 22");
                                             |     if (? != ?) {
    0x00037bf0 andeq r7, ip, r6, lsl r1      |         r7 = ip & (r6 << r1);
                                             |     }
    0x00037bf4 andseq sb, ip, r0, ror fp     |     __asm ("andseq sb, ip, r0, ror fp");
                                             |     if (? != ?) {
    0x00037bf8 andeq fp, r1, r6, lsl r1      |         
                                             |     }
    0x00037bfc andseq sb, ip, r4, ror fp     |     __asm ("andseq sb, ip, r4, ror fp");
                                             |     if (? != ?) {
    0x00037c00 andeq sb, lr, r6, lsl lr      |         sb = lr & (r6 << lr);
                                             |     }
    0x00037c04 andseq sb, ip, r8, ror fp     |     __asm ("andseq sb, ip, r8, ror fp");
                                             |     if (? != ?) {
    0x00037c08 andeq fp, r2, r6, lsl pc      |         
                                             |     }
    0x00037c0c andseq sb, ip, ip, ror fp     |     __asm ("andseq sb, ip, ip, ror fp");
                                             |     if (? != ?) {
    0x00037c10 andeq lr, r6, r6, lsl lr      |         lr = r6 & (r6 << lr);
                                             |     }
    0x00037c14 andseq sb, ip, r0, lsl 23     |     __asm ("andseq sb, ip, r0, lsl 23");
                                             |     if (? != ?) {
    0x00037c18 andeq r4, sl, r6, lsl r3      |         r4 = sl & (r6 << r3);
                                             |     }
    0x00037c1c andseq sb, ip, r4, lsl 23     |     __asm ("andseq sb, ip, r4, lsl 23");
                                             |     if (? != ?) {
    0x00037c20 andeq r0, fp, r6, lsl r4      |         r0 = fp & (r6 << r4);
                                             |     }
    0x00037c24 andseq sb, ip, r8, lsl 23     |     __asm ("andseq sb, ip, r8, lsl 23");
                                             |     if (? != ?) {
    0x00037c28 andeq sb, r8, r6, lsl r6      |         sb = r8 & (r6 << r6);
                                             |     }
    0x00037c2c andseq sb, ip, ip, lsl 23     |     __asm ("andseq sb, ip, ip, lsl 23");
                                             |     if (? != ?) {
    0x00037c30 andeq r3, r2, r6, lsl r8      |         r3 = r2 & (r6 << r8);
                                             |     }
    0x00037c34 mulseq ip, r0, fp             |     __asm ("mulseq ip, r0, fp");
                                             |     if (? != ?) {
    0x00037c38 andeq lr, r2, r6, lsl r7      |         lr = r2 & (r6 << r7);
                                             |     }
    0x00037c3c mulseq ip, r4, fp             |     __asm ("mulseq ip, r4, fp");
                                             |     if (? != ?) {
    0x00037c40 andeq sl, pc, r6, lsl r0      |         sl = pc & (r6 << r0);
                                             |     }
    0x00037c44 mulseq ip, r8, fp             |     __asm ("mulseq ip, r8, fp");
                                             |     if (? != ?) {
    0x00037c48 andeq r3, lr, r6, lsl r1      |         r3 = lr & (r6 << r1);
                                             |     }
    0x00037c4c mulseq ip, ip, fp             |     __asm ("mulseq ip, ip, fp");
                                             |     if (? != ?) {
    0x00037c50 andeq r4, sp, r6, lsl sp      |         r4 = sp & (r6 << sp);
                                             |     }
    0x00037c54 andseq sb, ip, r0, lsr 23     |     __asm ("andseq sb, ip, r0, lsr 23");
                                             |     if (? != ?) {
    0x00037c58 andeq fp, ip, r6, lsl sp      |         
                                             |     }
    0x00037c5c andseq sb, ip, r4, lsr 23     |     __asm ("andseq sb, ip, r4, lsr 23");
                                             |     if (? != ?) {
    0x00037c60 andeq sp, pc, r6, lsl sb      |         
                                             |     }
    0x00037c64 andseq sb, ip, r8, lsr 23     |     __asm ("andseq sb, ip, r8, lsr 23");
                                             |     if (? != ?) {
    0x00037c68 andeq pc, r1, r6, lsl r5      |         pc = r1 & (r6 << r5);
                                             |     }
    0x00037c6c andseq sb, ip, ip, lsr 23     |     __asm ("andseq sb, ip, ip, lsr 23");
                                             |     if (? != ?) {
    0x00037c70 andeq r2, ip, r6, lsl r8      |         r2 = ip & (r6 << r8);
                                             |     }
    0x00037c74 ldrheq sb, [ip], -r0          |     __asm ("ldrheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00037c78 andeq fp, r1, r6, lsl r2      |         
                                             |     }
    0x00037c7c ldrheq sb, [ip], -r4          |     __asm ("ldrheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037c80 andeq r6, lr, r6, lsl r2      |         r6 = lr & (r6 << r2);
                                             |     }
    0x00037c84 ldrheq sb, [ip], -r8          |     __asm ("ldrheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037c88 andeq r3, r6, r6, lsl ip      |         r3 = r6 & (r6 << ip);
                                             |     }
    0x00037c8c ldrheq sb, [ip], -ip          |     __asm ("ldrheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037c90 andeq r1, r8, r6, lsl r8      |         r1 = r8 & (r6 << r8);
                                             |     }
    0x00037c94 andseq sb, ip, r0, asr 23     |     __asm ("andseq sb, ip, r0, asr 23");
                                             |     if (? != ?) {
    0x00037c98 andeq r6, r8, r6, lsl sl      |         r6 = r8 & (r6 << sl);
                                             |     }
    0x00037c9c andseq sb, ip, r4, asr 23     |     __asm ("andseq sb, ip, r4, asr 23");
                                             |     if (? != ?) {
    0x00037ca0 andeq lr, ip, r6, lsl fp      |         lr = ip & (r6 << fp);
                                             |     }
    0x00037ca4 andseq sb, ip, r8, asr 23     |     __asm ("andseq sb, ip, r8, asr 23");
                                             |     if (? != ?) {
    0x00037ca8 andeq fp, r8, r6, lsl r5      |         
                                             |     }
    0x00037cac andseq sb, ip, ip, asr 23     |     __asm ("andseq sb, ip, ip, asr 23");
                                             |     if (? != ?) {
    0x00037cb0 andeq lr, r4, r6, lsl r4      |         lr = r4 & (r6 << r4);
                                             |     }
    0x00037cb4 ldrsbeq sb, [ip], -r0         |     __asm ("ldrsbeq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00037cb8 andeq fp, r1, r6, lsl r3      |         
                                             |     }
    0x00037cbc ldrsbeq sb, [ip], -r4         |     __asm ("ldrsbeq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037cc0 andeq sp, r3, r6, lsl sl      |         
                                             |     }
    0x00037cc4 ldrsbeq sb, [ip], -r8         |     __asm ("ldrsbeq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037cc8 andeq fp, r1, r6, lsl r4      |         
                                             |     }
    0x00037ccc ldrsbeq sb, [ip], -ip         |     __asm ("ldrsbeq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037cd0 andeq pc, sp, r6, lsl fp      |         pc = sp & (r6 << fp);
                                             |     }
    0x00037cd4 andseq sb, ip, r0, ror 23     |     __asm ("andseq sb, ip, r0, ror 23");
                                             |     if (? != ?) {
    0x00037cd8 andeq r1, r6, r6, lsl sp      |         r1 = r6 & (r6 << sp);
                                             |     }
    0x00037cdc andseq sb, ip, r4, ror 23     |     __asm ("andseq sb, ip, r4, ror 23");
                                             |     if (? != ?) {
    0x00037ce0 andeq sl, r2, r6, lsl lr      |         sl = r2 & (r6 << lr);
                                             |     }
    0x00037ce4 andseq sb, ip, r8, ror 23     |     __asm ("andseq sb, ip, r8, ror 23");
                                             |     if (? != ?) {
    0x00037ce8 andeq fp, r1, r6, lsl r5      |         
                                             |     }
    0x00037cec andseq sb, ip, ip, ror 23     |     __asm ("andseq sb, ip, ip, ror 23");
                                             |     if (? != ?) {
    0x00037cf0 andeq lr, r8, r6, lsl r4      |         lr = r8 & (r6 << r4);
                                             |     }
    0x00037cf4 ldrsheq sb, [ip], -r0         |     __asm ("ldrsheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00037cf8 andeq r8, sl, r6, lsl r7      |         r8 = sl & (r6 << r7);
                                             |     }
    0x00037cfc ldrsheq sb, [ip], -r4         |     __asm ("ldrsheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037d00 andeq sp, lr, r6, lsl fp      |         
                                             |     }
    0x00037d04 ldrsheq sb, [ip], -r8         |     __asm ("ldrsheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037d08 andeq sl, lr, r6, lsl r3      |         sl = lr & (r6 << r3);
                                             |     }
    0x00037d0c ldrsheq sb, [ip], -ip         |     __asm ("ldrsheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037d10 andeq fp, r1, r6, lsl r6      |         
                                             |     }
    0x00037d14 andseq sb, ip, r0, lsl 24     |     __asm ("andseq sb, ip, r0, lsl 24");
                                             |     if (? != ?) {
    0x00037d18 andeq pc, sl, r6, lsl r6      |         pc = sl & (r6 << r6);
                                             |     }
    0x00037d1c andseq sb, ip, r4, lsl 24     |     __asm ("andseq sb, ip, r4, lsl 24");
                                             |     if (? != ?) {
    0x00037d20 andeq r8, r7, r6, lsl r5      |         r8 = r7 & (r6 << r5);
                                             |     }
    0x00037d24 andseq sb, ip, r8, lsl 24     |     __asm ("andseq sb, ip, r8, lsl 24");
                                             |     if (? != ?) {
    0x00037d28 andeq r0, sl, r6, lsl r3      |         r0 = sl & (r6 << r3);
                                             |     }
    0x00037d2c andseq sb, ip, ip, lsl 24     |     __asm ("andseq sb, ip, ip, lsl 24");
                                             |     if (? != ?) {
    0x00037d30 andeq r6, r3, r6, lsl r3      |         r6 = r3 & (r6 << r3);
                                             |     }
    0x00037d34 andseq sb, ip, r0, lsl ip     |     __asm ("andseq sb, ip, r0, lsl ip");
                                             |     if (? != ?) {
    0x00037d38 andeq r8, r6, r6, lsl fp      |         r8 = r6 & (r6 << fp);
                                             |     }
    0x00037d3c andseq sb, ip, r4, lsl ip     |     __asm ("andseq sb, ip, r4, lsl ip");
                                             |     if (? != ?) {
    0x00037d40 andeq fp, r1, r6, lsl r7      |         
                                             |     }
    0x00037d44 andseq sb, ip, r8, lsl ip     |     __asm ("andseq sb, ip, r8, lsl ip");
                                             |     if (? != ?) {
    0x00037d48 andeq sb, sb, r6, lsl r5      |         sb &= (r6 << r5);
                                             |     }
    0x00037d4c andseq sb, ip, ip, lsl ip     |     __asm ("andseq sb, ip, ip, lsl ip");
                                             |     if (? != ?) {
    0x00037d50 andeq lr, sp, r6, lsl r7      |         lr = sp & (r6 << r7);
                                             |     }
    0x00037d54 andseq sb, ip, r0, lsr 24     |     __asm ("andseq sb, ip, r0, lsr 24");
                                             |     if (? != ?) {
    0x00037d58 andeq fp, r1, r6, lsl r8      |         
                                             |     }
    0x00037d5c andseq sb, ip, r4, lsr 24     |     __asm ("andseq sb, ip, r4, lsr 24");
                                             |     if (? != ?) {
    0x00037d60 andeq fp, ip, r6, lsl r3      |         
                                             |     }
    0x00037d64 andseq sb, ip, r8, lsr 24     |     __asm ("andseq sb, ip, r8, lsr 24");
                                             |     if (? != ?) {
    0x00037d68 andeq fp, r2, r6, lsl fp      |         
                                             |     }
    0x00037d6c andseq sb, ip, ip, lsr 24     |     __asm ("andseq sb, ip, ip, lsr 24");
                                             |     if (? != ?) {
    0x00037d70 andeq r4, lr, r6, lsl r6      |         r4 = lr & (r6 << r6);
                                             |     }
    0x00037d74 andseq sb, ip, r0, lsr ip     |     __asm ("andseq sb, ip, r0, lsr ip");
                                             |     if (? != ?) {
    0x00037d78 andeq fp, r1, r6, lsl sb      |         
                                             |     }
    0x00037d7c andseq sb, ip, r4, lsr ip     |     __asm ("andseq sb, ip, r4, lsr ip");
                                             |     if (? != ?) {
    0x00037d80 andeq fp, r1, r6, lsl sl      |         
                                             |     }
    0x00037d84 andseq sb, ip, r8, lsr ip     |     __asm ("andseq sb, ip, r8, lsr ip");
                                             |     if (? != ?) {
    0x00037d88 andeq ip, r8, r6, lsl r7      |         
                                             |     }
    0x00037d8c andseq sb, ip, ip, lsr ip     |     __asm ("andseq sb, ip, ip, lsr ip");
                                             |     if (? != ?) {
    0x00037d90 andeq r5, r2, r6, lsl sl      |         r5 = r2 & (r6 << sl);
                                             |     }
    0x00037d94 andseq sb, ip, r0, asr 24     |     __asm ("andseq sb, ip, r0, asr 24");
                                             |     if (? != ?) {
    0x00037d98 andeq sb, r7, r6, lsl pc      |         sb = r7 & (r6 << pc);
                                             |     }
    0x00037d9c andseq sb, ip, r4, asr 24     |     __asm ("andseq sb, ip, r4, asr 24");
                                             |     if (? != ?) {
    0x00037da0 andeq fp, r1, r6, lsl fp      |         
                                             |     }
    0x00037da4 andseq sb, ip, r8, asr 24     |     __asm ("andseq sb, ip, r8, asr 24");
                                             |     if (? != ?) {
    0x00037da8 andeq sb, r3, r6, lsl sb      |         sb = r3 & (r6 << sb);
                                             |     }
    0x00037dac andseq sb, ip, ip, asr 24     |     __asm ("andseq sb, ip, ip, asr 24");
                                             |     if (? != ?) {
    0x00037db0 andeq r7, ip, r6, lsl r8      |         r7 = ip & (r6 << r8);
                                             |     }
    0x00037db4 andseq sb, ip, r0, asr ip     |     __asm ("andseq sb, ip, r0, asr ip");
                                             |     if (? != ?) {
    0x00037db8 andeq r0, r7, r6, lsl r8      |         r0 = r7 & (r6 << r8);
                                             |     }
    0x00037dbc andseq sb, ip, r4, asr ip     |     __asm ("andseq sb, ip, r4, asr ip");
                                             |     if (? != ?) {
    0x00037dc0 andeq r5, sb, r6, lsl r1      |         r5 = sb & (r6 << r1);
                                             |     }
    0x00037dc4 andseq sb, ip, r8, asr ip     |     __asm ("andseq sb, ip, r8, asr ip");
                                             |     if (? != ?) {
    0x00037dc8 andeq r8, r7, r6, lsl r6      |         r8 = r7 & (r6 << r6);
                                             |     }
    0x00037dcc andseq sb, ip, ip, asr ip     |     __asm ("andseq sb, ip, ip, asr ip");
                                             |     if (? != ?) {
    0x00037dd0 andeq fp, r1, r6, lsl ip      |         
                                             |     }
    0x00037dd4 andseq sb, ip, r0, ror 24     |     __asm ("andseq sb, ip, r0, ror 24");
                                             |     if (? != ?) {
    0x00037dd8 andeq sb, sp, r6, lsl r3      |         sb = sp & (r6 << r3);
                                             |     }
    0x00037ddc andseq sb, ip, r4, ror 24     |     __asm ("andseq sb, ip, r4, ror 24");
                                             |     if (? != ?) {
    0x00037de0 andeq r6, sl, r6, lsl r8      |         r6 = sl & (r6 << r8);
                                             |     }
    0x00037de4 andseq sb, ip, r8, ror 24     |     __asm ("andseq sb, ip, r8, ror 24");
                                             |     if (? != ?) {
    0x00037de8 andeq sl, r4, r6, lsl sb      |         sl = r4 & (r6 << sb);
                                             |     }
    0x00037dec andseq sb, ip, ip, ror 24     |     __asm ("andseq sb, ip, ip, ror 24");
                                             |     if (? != ?) {
    0x00037df0 andeq r6, pc, r6, lsl r8      |         r6 = pc & (r6 << r8);
                                             |     }
    0x00037df4 andseq sb, ip, r0, ror ip     |     __asm ("andseq sb, ip, r0, ror ip");
                                             |     if (? != ?) {
    0x00037df8 andeq r5, r4, r6, lsl r5      |         r5 = r4 & (r6 << r5);
                                             |     }
    0x00037dfc andseq sb, ip, r4, ror ip     |     __asm ("andseq sb, ip, r4, ror ip");
                                             |     if (? != ?) {
    0x00037e00 andeq sl, r3, r6, lsl r5      |         sl = r3 & (r6 << r5);
                                             |     }
    0x00037e04 andseq sb, ip, r8, ror ip     |     __asm ("andseq sb, ip, r8, ror ip");
                                             |     if (? != ?) {
    0x00037e08 andeq sp, lr, r6, lsl r3      |         
                                             |     }
    0x00037e0c andseq sb, ip, ip, ror ip     |     __asm ("andseq sb, ip, ip, ror ip");
                                             |     if (? != ?) {
    0x00037e10 andeq sl, r8, r6, lsl pc      |         sl = r8 & (r6 << pc);
                                             |     }
    0x00037e14 andseq sb, ip, r0, lsl 25     |     __asm ("andseq sb, ip, r0, lsl 25");
                                             |     if (? != ?) {
    0x00037e18 andeq fp, r1, r6, lsl sp      |         
                                             |     }
    0x00037e1c andseq sb, ip, r4, lsl 25     |     __asm ("andseq sb, ip, r4, lsl 25");
                                             |     if (? != ?) {
    0x00037e20 andeq lr, r4, r6, lsl fp      |         lr = r4 & (r6 << fp);
                                             |     }
    0x00037e24 andseq sb, ip, r8, lsl 25     |     __asm ("andseq sb, ip, r8, lsl 25");
                                             |     if (? != ?) {
    0x00037e28 andeq fp, r1, r6, lsl lr      |         
                                             |     }
    0x00037e2c andseq sb, ip, ip, lsl 25     |     __asm ("andseq sb, ip, ip, lsl 25");
                                             |     if (? != ?) {
    0x00037e30 andeq fp, r1, r6, lsl pc      |         
                                             |     }
    0x00037e34 mulseq ip, r0, ip             |     __asm ("mulseq ip, r0, ip");
                                             |     if (? != ?) {
    0x00037e38 andeq r6, r8, r6, lsl r7      |         r6 = r8 & (r6 << r7);
                                             |     }
    0x00037e3c mulseq ip, r4, ip             |     __asm ("mulseq ip, r4, ip");
                                             |     if (? != ?) {
    0x00037e40 andeq sb, sb, r6, lsl r6      |         sb &= (r6 << r6);
                                             |     }
    0x00037e44 mulseq ip, r8, ip             |     __asm ("mulseq ip, r8, ip");
                                             |     if (? != ?) {
    0x00037e48 andeq ip, r1, r6, lsl r0      |         
                                             |     }
    0x00037e4c mulseq ip, ip, ip             |     __asm ("mulseq ip, ip, ip");
                                             |     if (? != ?) {
    0x00037e50 andeq ip, ip, r6, lsl r7      |         
                                             |     }
    0x00037e54 andseq sb, ip, r0, lsr 25     |     __asm ("andseq sb, ip, r0, lsr 25");
                                             |     if (? != ?) {
    0x00037e58 andeq pc, sp, r6, lsl ip      |         pc = sp & (r6 << ip);
                                             |     }
    0x00037e5c andseq sb, ip, r4, lsr 25     |     __asm ("andseq sb, ip, r4, lsr 25");
                                             |     if (? != ?) {
    0x00037e60 andeq r7, r8, r6, lsl ip      |         r7 = r8 & (r6 << ip);
                                             |     }
    0x00037e64 andseq sb, ip, r8, lsr 25     |     __asm ("andseq sb, ip, r8, lsr 25");
                                             |     if (? != ?) {
    0x00037e68 andeq sl, r6, r6, lsl sl      |         sl = r6 & (r6 << sl);
                                             |     }
    0x00037e6c andseq sb, ip, ip, lsr 25     |     __asm ("andseq sb, ip, ip, lsr 25");
                                             |     if (? != ?) {
    0x00037e70 andeq r4, r5, r6, lsl r3      |         r4 = r5 & (r6 << r3);
                                             |     }
    0x00037e74 ldrheq sb, [ip], -r0          |     __asm ("ldrheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00037e78 andeq sb, r4, r6, lsl r6      |         sb = r4 & (r6 << r6);
                                             |     }
    0x00037e7c ldrheq sb, [ip], -r4          |     __asm ("ldrheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037e80 andeq r3, lr, r6, lsl pc      |         r3 = lr & (r6 << pc);
                                             |     }
    0x00037e84 ldrheq sb, [ip], -r8          |     __asm ("ldrheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037e88 andeq fp, pc, r6, lsl fp      |         
                                             |     }
    0x00037e8c ldrheq sb, [ip], -ip          |     __asm ("ldrheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037e90 andeq sb, r6, r6, lsl sl      |         sb = r6 & (r6 << sl);
                                             |     }
    0x00037e94 andseq sb, ip, r0, asr 25     |     __asm ("andseq sb, ip, r0, asr 25");
                                             |     if (? != ?) {
    0x00037e98 andeq r2, r5, r6, lsl r3      |         r2 = r5 & (r6 << r3);
                                             |     }
    0x00037e9c andseq sb, ip, r4, asr 25     |     __asm ("andseq sb, ip, r4, asr 25");
                                             |     if (? != ?) {
    0x00037ea0 andeq ip, sp, r6, lsl lr      |         
                                             |     }
    0x00037ea4 andseq sb, ip, r8, asr 25     |     __asm ("andseq sb, ip, r8, asr 25");
                                             |     if (? != ?) {
    0x00037ea8 andeq fp, ip, r6, lsl lr      |         
                                             |     }
    0x00037eac andseq sb, ip, ip, asr 25     |     __asm ("andseq sb, ip, ip, asr 25");
                                             |     if (? != ?) {
    0x00037eb0 andeq r5, pc, r6, lsl r7      |         r5 = pc & (r6 << r7);
                                             |     }
    0x00037eb4 ldrsbeq sb, [ip], -r0         |     __asm ("ldrsbeq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00037eb8 andeq r4, ip, r6, lsl r7      |         r4 = ip & (r6 << r7);
                                             |     }
    0x00037ebc ldrsbeq sb, [ip], -r4         |     __asm ("ldrsbeq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037ec0 andeq pc, sp, r6, lsl r1      |         pc = sp & (r6 << r1);
                                             |     }
    0x00037ec4 ldrsbeq sb, [ip], -r8         |     __asm ("ldrsbeq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037ec8 andeq r3, r6, r6, lsl lr      |         r3 = r6 & (r6 << lr);
                                             |     }
    0x00037ecc ldrsbeq sb, [ip], -ip         |     __asm ("ldrsbeq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037ed0 andeq r5, fp, r6, lsl r1      |         r5 = fp & (r6 << r1);
                                             |     }
    0x00037ed4 andseq sb, ip, r0, ror 25     |     __asm ("andseq sb, ip, r0, ror 25");
                                             |     if (? != ?) {
    0x00037ed8 andeq r1, r8, r6, lsl r6      |         r1 = r8 & (r6 << r6);
                                             |     }
    0x00037edc andseq sb, ip, r4, ror 25     |     __asm ("andseq sb, ip, r4, ror 25");
                                             |     if (? != ?) {
    0x00037ee0 andeq ip, r1, r6, lsl r1      |         
                                             |     }
    0x00037ee4 andseq sb, ip, r8, ror 25     |     __asm ("andseq sb, ip, r8, ror 25");
                                             |     if (? != ?) {
    0x00037ee8 andeq ip, r1, r6, lsl r2      |         
                                             |     }
    0x00037eec andseq sb, ip, ip, ror 25     |     __asm ("andseq sb, ip, ip, ror 25");
                                             |     if (? != ?) {
    0x00037ef0 andeq ip, r1, r6, lsl r3      |         
                                             |     }
    0x00037ef4 ldrsheq sb, [ip], -r0         |     __asm ("ldrsheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00037ef8 andeq r5, sp, r6, lsl sl      |         r5 = sp & (r6 << sl);
                                             |     }
    0x00037efc ldrsheq sb, [ip], -r4         |     __asm ("ldrsheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00037f00 andeq r2, r4, r6, lsl lr      |         r2 = r4 & (r6 << lr);
                                             |     }
    0x00037f04 ldrsheq sb, [ip], -r8         |     __asm ("ldrsheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00037f08 andeq r7, sp, r6, lsl pc      |         r7 = sp & (r6 << pc);
                                             |     }
    0x00037f0c ldrsheq sb, [ip], -ip         |     __asm ("ldrsheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00037f10 andeq ip, r1, r6, lsl r4      |         
                                             |     }
    0x00037f14 andseq sb, ip, r0, lsl 26     |     __asm ("andseq sb, ip, r0, lsl 26");
                                             |     if (? != ?) {
    0x00037f18 andeq ip, r1, r6, lsl r5      |         
                                             |     }
    0x00037f1c andseq sb, ip, r4, lsl 26     |     __asm ("andseq sb, ip, r4, lsl 26");
                                             |     if (? != ?) {
    0x00037f20 andeq ip, r4, r6, lsl sb      |         
                                             |     }
    0x00037f24 andseq sb, ip, r8, lsl 26     |     __asm ("andseq sb, ip, r8, lsl 26");
                                             |     if (? != ?) {
    0x00037f28 andeq fp, lr, r6, lsl pc      |         
                                             |     }
    0x00037f2c andseq sb, ip, ip, lsl 26     |     __asm ("andseq sb, ip, ip, lsl 26");
                                             |     if (? != ?) {
    0x00037f30 andeq r8, sp, r6, lsl lr      |         r8 = sp & (r6 << lr);
                                             |     }
    0x00037f34 andseq sb, ip, r0, lsl sp     |     __asm ("andseq sb, ip, r0, lsl sp");
                                             |     if (? != ?) {
    0x00037f38 andeq r8, sb, r6, lsl r6      |         r8 = sb & (r6 << r6);
                                             |     }
    0x00037f3c andseq sb, ip, r4, lsl sp     |     __asm ("andseq sb, ip, r4, lsl sp");
                                             |     if (? != ?) {
    0x00037f40 andeq ip, r1, r6, lsl r6      |         
                                             |     }
    0x00037f44 andseq sb, ip, r8, lsl sp     |     __asm ("andseq sb, ip, r8, lsl sp");
                                             |     if (? != ?) {
    0x00037f48 andeq r7, lr, r6, lsl r7      |         r7 = lr & (r6 << r7);
                                             |     }
    0x00037f4c andseq sb, ip, ip, lsl sp     |     __asm ("andseq sb, ip, ip, lsl sp");
                                             |     if (? != ?) {
    0x00037f50 andeq pc, r5, r6, lsl sl      |         pc = r5 & (r6 << sl);
                                             |     }
    0x00037f54 andseq sb, ip, r0, lsr 26     |     __asm ("andseq sb, ip, r0, lsr 26");
                                             |     if (? != ?) {
    0x00037f58 andeq r0, r5, r6, lsl sl      |         r0 = r5 & (r6 << sl);
                                             |     }
    0x00037f5c andseq sb, ip, r4, lsr 26     |     __asm ("andseq sb, ip, r4, lsr 26");
                                             |     if (? != ?) {
    0x00037f60 andeq r8, pc, r6, lsl r6      |         r8 = pc & (r6 << r6);
                                             |     }
    0x00037f64 andseq sb, ip, r8, lsr 26     |     __asm ("andseq sb, ip, r8, lsr 26");
                                             |     if (? != ?) {
    0x00037f68 andeq ip, r1, r6, lsl r7      |         
                                             |     }
    0x00037f6c andseq sb, ip, ip, lsr 26     |     __asm ("andseq sb, ip, ip, lsr 26");
                                             |     if (? != ?) {
    0x00037f70 andeq ip, lr, r6, lsl r8      |         
                                             |     }
    0x00037f74 andseq sb, ip, r0, lsr sp     |     __asm ("andseq sb, ip, r0, lsr sp");
                                             |     if (? != ?) {
    0x00037f78 andeq ip, r1, r6, lsl r8      |         
                                             |     }
    0x00037f7c andseq sb, ip, r4, lsr sp     |     __asm ("andseq sb, ip, r4, lsr sp");
                                             |     if (? != ?) {
    0x00037f80 andeq r5, r2, r6, lsl fp      |         r5 = r2 & (r6 << fp);
                                             |     }
    0x00037f84 andseq sb, ip, r8, lsr sp     |     __asm ("andseq sb, ip, r8, lsr sp");
                                             |     if (? != ?) {
    0x00037f88 andeq r2, r3, r6, lsl sp      |         r2 = r3 & (r6 << sp);
                                             |     }
    0x00037f8c andseq sb, ip, ip, lsr sp     |     __asm ("andseq sb, ip, ip, lsr sp");
                                             |     if (? != ?) {
    0x00037f90 andeq lr, sp, r6, lsl r8      |         lr = sp & (r6 << r8);
                                             |     }
    0x00037f94 andseq sb, ip, r0, asr 26     |     __asm ("andseq sb, ip, r0, asr 26");
                                             |     if (? != ?) {
    0x00037f98 andeq sb, sb, r6, lsl r7      |         sb &= (r6 << r7);
                                             |     }
    0x00037f9c andseq sb, ip, r4, asr 26     |     __asm ("andseq sb, ip, r4, asr 26");
                                             |     if (? != ?) {
    0x00037fa0 andeq ip, r1, r6, lsl sl      |         
                                             |     }
    0x00037fa4 andseq sb, ip, r8, asr 26     |     __asm ("andseq sb, ip, r8, asr 26");
                                             |     if (? != ?) {
    0x00037fa8 andeq r8, r6, r6, lsl ip      |         r8 = r6 & (r6 << ip);
                                             |     }
    0x00037fac andseq sb, ip, ip, asr 26     |     __asm ("andseq sb, ip, ip, asr 26");
                                             |     if (? != ?) {
    0x00037fb0 andeq ip, r1, r6, lsl fp      |         
                                             |     }
    0x00037fb4 andseq sb, ip, r0, asr sp     |     __asm ("andseq sb, ip, r0, asr sp");
                                             |     if (? != ?) {
    0x00037fb8 andeq ip, r1, r6, lsl ip      |         
                                             |     }
    0x00037fbc andseq sb, ip, r4, asr sp     |     __asm ("andseq sb, ip, r4, asr sp");
                                             |     if (? != ?) {
    0x00037fc0 andeq r3, sl, r6, lsl lr      |         r3 = sl & (r6 << lr);
                                             |     }
    0x00037fc4 andseq sb, ip, r8, asr sp     |     __asm ("andseq sb, ip, r8, asr sp");
                                             |     if (? != ?) {
    0x00037fc8 andeq pc, r8, r6, lsl sb      |         pc = r8 & (r6 << sb);
                                             |     }
    0x00037fcc andseq sb, ip, ip, asr sp     |     __asm ("andseq sb, ip, ip, asr sp");
                                             |     if (? != ?) {
    0x00037fd0 andeq r2, r4, r6, lsl r8      |         r2 = r4 & (r6 << r8);
                                             |     }
    0x00037fd4 andseq sb, ip, r0, ror 26     |     __asm ("andseq sb, ip, r0, ror 26");
                                             |     if (? != ?) {
    0x00037fd8 andeq r0, ip, r6, lsl r3      |         r0 = ip & (r6 << r3);
                                             |     }
    0x00037fdc andseq sb, ip, r4, ror 26     |     __asm ("andseq sb, ip, r4, ror 26");
                                             |     if (? != ?) {
    0x00037fe0 andeq r5, pc, r6, lsl sb      |         r5 = pc & (r6 << sb);
                                             |     }
    0x00037fe4 andseq sb, ip, r8, ror 26     |     __asm ("andseq sb, ip, r8, ror 26");
                                             |     if (? != ?) {
    0x00037fe8 andeq ip, r1, r6, lsl sp      |         
                                             |     }
    0x00037fec andseq sb, ip, ip, ror 26     |     __asm ("andseq sb, ip, ip, ror 26");
                                             |     if (? != ?) {
    0x00037ff0 andeq sb, pc, r6, lsl sp      |         sb = pc & (r6 << sp);
                                             |     }
    0x00037ff4 andseq sb, ip, r0, ror sp     |     __asm ("andseq sb, ip, r0, ror sp");
                                             |     if (? != ?) {
    0x00037ff8 andeq r2, r5, r6, lsl r4      |         r2 = r5 & (r6 << r4);
                                             |     }
    0x00037ffc andseq sb, ip, r4, ror sp     |     __asm ("andseq sb, ip, r4, ror sp");
                                             |     if (? != ?) {
    0x00038000 andeq ip, r1, r6, lsl lr      |         
                                             |     }
    0x00038004 andseq sb, ip, r8, ror sp     |     __asm ("andseq sb, ip, r8, ror sp");
                                             |     if (? != ?) {
    0x00038008 andeq r7, r8, r6, lsl r1      |         r7 = r8 & (r6 << r1);
                                             |     }
    0x0003800c andseq sb, ip, ip, ror sp     |     __asm ("andseq sb, ip, ip, ror sp");
                                             |     if (? != ?) {
    0x00038010 andeq r7, pc, r6, lsl fp      |         r7 = pc & (r6 << fp);
                                             |     }
    0x00038014 andseq sb, ip, r0, lsl 27     |     __asm ("andseq sb, ip, r0, lsl 27");
                                             |     if (? != ?) {
    0x00038018 andeq ip, r5, r6, lsl sp      |         
                                             |     }
    0x0003801c andseq sb, ip, r4, lsl 27     |     __asm ("andseq sb, ip, r4, lsl 27");
                                             |     if (? != ?) {
    0x00038020 andeq r6, ip, r6, lsl r2      |         r6 = ip & (r6 << r2);
                                             |     }
    0x00038024 andseq sb, ip, r8, lsl 27     |     __asm ("andseq sb, ip, r8, lsl 27");
                                             |     if (? != ?) {
    0x00038028 andeq pc, sp, r6, lsl r2      |         pc = sp & (r6 << r2);
                                             |     }
    0x0003802c andseq sb, ip, ip, lsl 27     |     __asm ("andseq sb, ip, ip, lsl 27");
                                             |     if (? != ?) {
    0x00038030 andeq sp, sl, r6, lsl sp      |         
                                             |     }
    0x00038034 mulseq ip, r0, sp             |     __asm ("mulseq ip, r0, sp");
                                             |     if (? != ?) {
    0x00038038 andeq sl, lr, r6, lsl r4      |         sl = lr & (r6 << r4);
                                             |     }
    0x0003803c mulseq ip, r4, sp             |     __asm ("mulseq ip, r4, sp");
                                             |     if (? != ?) {
    0x00038040 andeq sp, fp, r6, lsl lr      |         
                                             |     }
    0x00038044 mulseq ip, r8, sp             |     __asm ("mulseq ip, r8, sp");
                                             |     if (? != ?) {
    0x00038048 andeq r7, fp, r6, lsl lr      |         r7 = fp & (r6 << lr);
                                             |     }
    0x0003804c mulseq ip, ip, sp             |     __asm ("mulseq ip, ip, sp");
                                             |     if (? != ?) {
    0x00038050 andeq r2, sl, r6, lsl ip      |         r2 = sl & (r6 << ip);
                                             |     }
    0x00038054 andseq sb, ip, r0, lsr 27     |     __asm ("andseq sb, ip, r0, lsr 27");
                                             |     if (? != ?) {
    0x00038058 andeq lr, r1, r6, lsl r1      |         lr = r1 & (r6 << r1);
                                             |     }
    0x0003805c andseq sb, ip, r4, lsr 27     |     __asm ("andseq sb, ip, r4, lsr 27");
                                             |     if (? != ?) {
    0x00038060 andeq ip, r1, r6, lsl pc      |         
                                             |     }
    0x00038064 andseq sb, ip, r8, lsr 27     |     __asm ("andseq sb, ip, r8, lsr 27");
                                             |     if (? != ?) {
    0x00038068 andeq pc, r3, r6, lsl pc      |         pc = r3 & (r6 << pc);
                                             |     }
    0x0003806c andseq sb, ip, ip, lsr 27     |     __asm ("andseq sb, ip, ip, lsr 27");
                                             |     if (? != ?) {
    0x00038070 andeq r7, sp, r6, lsl r5      |         r7 = sp & (r6 << r5);
                                             |     }
    0x00038074 ldrheq sb, [ip], -r0          |     __asm ("ldrheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x00038078 andeq r3, ip, r6, lsl r7      |         r3 = ip & (r6 << r7);
                                             |     }
    0x0003807c ldrheq sb, [ip], -r4          |     __asm ("ldrheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00038080 andeq r4, fp, r6, lsl r7      |         r4 = fp & (r6 << r7);
                                             |     }
    0x00038084 ldrheq sb, [ip], -r8          |     __asm ("ldrheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00038088 andeq sp, r5, r6, lsl fp      |         
                                             |     }
    0x0003808c ldrheq sb, [ip], -ip          |     __asm ("ldrheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00038090 andeq sb, r5, r6, lsl r2      |         sb = r5 & (r6 << r2);
                                             |     }
    0x00038094 andseq sb, ip, r0, asr 27     |     __asm ("andseq sb, ip, r0, asr 27");
                                             |     if (? != ?) {
    0x00038098 andeq sl, r4, r6, lsl r3      |         sl = r4 & (r6 << r3);
                                             |     }
    0x0003809c andseq sb, ip, r4, asr 27     |     __asm ("andseq sb, ip, r4, asr 27");
                                             |     if (? != ?) {
    0x000380a0 andeq fp, r2, r6, lsl r7      |         
                                             |     }
    0x000380a4 andseq sb, ip, r8, asr 27     |     __asm ("andseq sb, ip, r8, asr 27");
                                             |     if (? != ?) {
    0x000380a8 andeq r2, fp, r6, lsl sl      |         r2 = fp & (r6 << sl);
                                             |     }
    0x000380ac andseq sb, ip, ip, asr 27     |     __asm ("andseq sb, ip, ip, asr 27");
                                             |     if (? != ?) {
    0x000380b0 andeq ip, sb, r6, lsl ip      |         
                                             |     }
    0x000380b4 ldrsbeq sb, [ip], -r0         |     __asm ("ldrsbeq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000380b8 andeq sp, r1, r6, lsl r0      |         
                                             |     }
    0x000380bc ldrsbeq sb, [ip], -r4         |     __asm ("ldrsbeq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x000380c0 andeq sp, r1, r6, lsl r1      |         
                                             |     }
    0x000380c4 ldrsbeq sb, [ip], -r8         |     __asm ("ldrsbeq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x000380c8 andeq fp, pc, r6, lsl sb      |         
                                             |     }
    0x000380cc ldrsbeq sb, [ip], -ip         |     __asm ("ldrsbeq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x000380d0 andeq sp, r1, r6, lsl r2      |         
                                             |     }
    0x000380d4 andseq sb, ip, r0, ror 27     |     __asm ("andseq sb, ip, r0, ror 27");
                                             |     if (? != ?) {
    0x000380d8 andeq fp, sp, r6, lsl r5      |         
                                             |     }
    0x000380dc andseq sb, ip, r4, ror 27     |     __asm ("andseq sb, ip, r4, ror 27");
                                             |     if (? != ?) {
    0x000380e0 andeq r2, r6, r6, lsl sl      |         r2 = r6 & (r6 << sl);
                                             |     }
    0x000380e4 andseq sb, ip, r8, ror 27     |     __asm ("andseq sb, ip, r8, ror 27");
                                             |     if (? != ?) {
    0x000380e8 andeq r2, sl, r6, lsl r8      |         r2 = sl & (r6 << r8);
                                             |     }
    0x000380ec andseq sb, ip, ip, ror 27     |     __asm ("andseq sb, ip, ip, ror 27");
                                             |     if (? != ?) {
    0x000380f0 andeq r2, r5, r6, lsl r5      |         r2 = r5 & (r6 << r5);
                                             |     }
    0x000380f4 ldrsheq sb, [ip], -r0         |     __asm ("ldrsheq sb, [ip], -r0");
                                             |     if (? != ?) {
    0x000380f8 andeq r8, r2, r6, lsl sp      |         r8 = r2 & (r6 << sp);
                                             |     }
    0x000380fc ldrsheq sb, [ip], -r4         |     __asm ("ldrsheq sb, [ip], -r4");
                                             |     if (? != ?) {
    0x00038100 andeq sp, r1, r6, lsl r3      |         
                                             |     }
    0x00038104 ldrsheq sb, [ip], -r8         |     __asm ("ldrsheq sb, [ip], -r8");
                                             |     if (? != ?) {
    0x00038108 andeq r5, pc, r6, lsl sl      |         r5 = pc & (r6 << sl);
                                             |     }
    0x0003810c ldrsheq sb, [ip], -ip         |     __asm ("ldrsheq sb, [ip], -ip");
                                             |     if (? != ?) {
    0x00038110 andeq sl, r2, r6, lsl sl      |         sl = r2 & (r6 << sl);
                                             |     }
    0x00038114 andseq sb, ip, r0, lsl 28     |     __asm ("andseq sb, ip, r0, lsl 28");
                                             |     if (? != ?) {
    0x00038118 andeq sb, r6, r6, lsl r2      |         sb = r6 & (r6 << r2);
                                             |     }
    0x0003811c andseq sb, ip, r4, lsl 28     |     __asm ("andseq sb, ip, r4, lsl 28");
                                             |     if (? != ?) {
    0x00038120 andeq sp, r1, r6, lsl r4      |         
                                             |     }
    0x00038124 andseq sb, ip, r8, lsl 28     |     __asm ("andseq sb, ip, r8, lsl 28");
                                             |     if (? != ?) {
    0x00038128 andeq r5, r2, r6, lsl r6      |         r5 = r2 & (r6 << r6);
                                             |     }
    0x0003812c andseq sb, ip, ip, lsl 28     |     __asm ("andseq sb, ip, ip, lsl 28");
                                             |     if (? != ?) {
    0x00038130 andeq r3, sb, r6, lsl r3      |         r3 = sb & (r6 << r3);
                                             |     }
    0x00038134 andseq sb, ip, r0, lsl lr     |     __asm ("andseq sb, ip, r0, lsl lr");
                                             |     if (? != ?) {
    0x00038138 andeq fp, fp, r6, lsl r1      |         
                                             |     }
    0x0003813c andseq sb, ip, r4, lsl lr     |     __asm ("andseq sb, ip, r4, lsl lr");
                                             |     if (? != ?) {
    0x00038140 andeq r1, pc, r6, lsl r6      |         r1 = pc & (r6 << r6);
                                             |     }
    0x00038144 andseq sb, ip, r8, lsl lr     |     __asm ("andseq sb, ip, r8, lsl lr");
                                             |     if (? != ?) {
    0x00038148 andeq r7, fp, r6, lsl r0      |         r7 = fp & (r6 << r0);
                                             |     }
    0x0003814c andseq sb, ip, ip, lsl lr     |     __asm ("andseq sb, ip, ip, lsl lr");
                                             |     if (? != ?) {
    0x00038150 andeq r1, lr, r6, lsl r0      |         r1 = lr & (r6 << r0);
                                             |     }
    0x00038154 andseq sb, ip, r0, lsr 28     |     __asm ("andseq sb, ip, r0, lsr 28");
                                             |     if (? != ?) {
    0x00038158 andeq fp, fp, r6, lsl r2      |         
                                             |     }
    0x0003815c andseq sb, ip, r4, lsr 28     |     __asm ("andseq sb, ip, r4, lsr 28");
                                             |     if (? != ?) {
    0x00038160 andeq lr, r2, r6, lsl sp      |         lr = r2 & (r6 << sp);
                                             |     }
    0x00038164 andseq sb, ip, r8, lsr 28     |     __asm ("andseq sb, ip, r8, lsr 28");
                                             |     if (? != ?) {
    0x00038168 andeq r6, r8, r6, lsl fp      |         r6 = r8 & (r6 << fp);
                                             |     }
    0x0003816c andseq sb, ip, ip, lsr 28     |     __asm ("andseq sb, ip, ip, lsr 28");
                                             |     if (? != ?) {
    0x00038170 andeq r4, sl, r6, lsl r4      |         r4 = sl & (r6 << r4);
                                             |     }
    0x00038174 andseq sb, ip, r0, lsr lr     |     __asm ("andseq sb, ip, r0, lsr lr");
                                             |     if (? != ?) {
    0x00038178 andeq sp, r1, r6, lsl r5      |         
                                             |     }
    0x0003817c andseq sb, ip, r4, lsr lr     |     __asm ("andseq sb, ip, r4, lsr lr");
                                             |     if (? != ?) {
    0x00038180 andeq r4, r5, r6, lsl sl      |         r4 = r5 & (r6 << sl);
                                             |     }
    0x00038184 andseq sb, ip, r8, lsr lr     |     __asm ("andseq sb, ip, r8, lsr lr");
                                             |     if (? != ?) {
    0x00038188 andeq sp, r1, r6, lsl r6      |         
                                             |     }
    0x0003818c andseq sb, ip, ip, lsr lr     |     __asm ("andseq sb, ip, ip, lsr lr");
                                             |     if (? != ?) {
    0x00038190 andeq r6, r6, r6, lsl sp      |         r6 &= (r6 << sp);
                                             |     }
    0x00038194 andseq sb, ip, r0, asr 28     |     __asm ("andseq sb, ip, r0, asr 28");
                                             |     if (? != ?) {
    0x00038198 andeq r8, lr, r6, lsl r4      |         r8 = lr & (r6 << r4);
                                             |     }
    0x0003819c andseq sb, ip, r4, asr 28     |     __asm ("andseq sb, ip, r4, asr 28");
                                             |     if (? != ?) {
    0x000381a0 andeq r3, ip, r6, lsl r1      |         r3 = ip & (r6 << r1);
                                             |     }
    0x000381a4 andseq sb, ip, r8, asr 28     |     __asm ("andseq sb, ip, r8, asr 28");
                                             |     if (? != ?) {
    0x000381a8 andeq r4, sb, r6, lsl r1      |         r4 = sb & (r6 << r1);
                                             |     }
    0x000381ac andseq sb, ip, ip, asr 28     |     __asm ("andseq sb, ip, ip, asr 28");
                                             |     if (? != ?) {
    0x000381b0 andeq r4, r2, r6, lsl lr      |         r4 = r2 & (r6 << lr);
                                             |     }
    0x000381b4 andseq sb, ip, r0, asr lr     |     __asm ("andseq sb, ip, r0, asr lr");
                                             |     if (? != ?) {
    0x000381b8 andeq r3, r4, r6, lsl r5      |         r3 = r4 & (r6 << r5);
                                             |     }
    0x000381bc andseq sb, ip, r4, asr lr     |     __asm ("andseq sb, ip, r4, asr lr");
                                             |     if (? != ?) {
    0x000381c0 andeq pc, lr, r6, lsl pc      |         pc = lr & (r6 << pc);
                                             |     }
    0x000381c4 andseq sb, ip, r8, asr lr     |     __asm ("andseq sb, ip, r8, asr lr");
                                             |     if (? != ?) {
    0x000381c8 andeq r7, r3, r6, lsl r3      |         r7 = r3 & (r6 << r3);
                                             |     }
    0x000381cc andseq sb, ip, ip, asr lr     |     __asm ("andseq sb, ip, ip, asr lr");
                                             |     if (? != ?) {
    0x000381d0 andeq sp, r1, r6, lsl r7      |         
                                             |     }
    0x000381d4 andseq sb, ip, r0, ror 28     |     __asm ("andseq sb, ip, r0, ror 28");
                                             |     if (? != ?) {
    0x000381d8 andeq sp, r1, r6, lsl r8      |         
                                             |     }
    0x000381dc andseq sb, ip, r4, ror 28     |     __asm ("andseq sb, ip, r4, ror 28");
                                             |     if (? != ?) {
    0x000381e0 andeq ip, lr, r6, lsl r0      |         
                                             |     }
    0x000381e4 andseq sb, ip, r8, ror 28     |     __asm ("andseq sb, ip, r8, ror 28");
                                             |     if (? != ?) {
    0x000381e8 andeq ip, r2, r6, lsl r8      |         
                                             |     }
    0x000381ec andseq sb, ip, ip, ror 28     |     __asm ("andseq sb, ip, ip, ror 28");
                                             |     if (? != ?) {
    0x000381f0 andeq ip, r6, r6, lsl r6      |         
                                             |     }
    0x000381f4 andseq sb, ip, r0, ror lr     |     __asm ("andseq sb, ip, r0, ror lr");
                                             |     if (? != ?) {
    0x000381f8 andeq r0, sl, r6, lsl r8      |         r0 = sl & (r6 << r8);
                                             |     }
    0x000381fc andseq sb, ip, r4, ror lr     |     __asm ("andseq sb, ip, r4, ror lr");
                                             |     if (? != ?) {
    0x00038200 andeq sp, r1, r6, lsl sb      |         
                                             |     }
    0x00038204 andseq sb, ip, r8, ror lr     |     __asm ("andseq sb, ip, r8, ror lr");
                                             |     if (? != ?) {
    0x00038208 andeq r1, r7, r6, lsl r0      |         r1 = r7 & (r6 << r0);
                                             |     }
    0x0003820c andseq sb, ip, ip, ror lr     |     __asm ("andseq sb, ip, ip, ror lr");
                                             |     if (? != ?) {
    0x00038210 andeq r6, r4, r6, lsl r1      |         r6 = r4 & (r6 << r1);
                                             |     }
    0x00038214 andseq sb, ip, r0, lsl 29     |     __asm ("andseq sb, ip, r0, lsl 29");
                                             |     if (? != ?) {
    0x00038218 andeq pc, r6, r6, lsl ip      |         pc = r6 & (r6 << ip);
                                             |     }
    0x0003821c andseq sb, ip, r4, lsl 29     |     __asm ("andseq sb, ip, r4, lsl 29");
                                             |     if (? != ?) {
    0x00038220 andeq r7, pc, r6, lsl pc      |         r7 = pc & (r6 << pc);
                                             |     }
    0x00038224 andseq sb, ip, r8, lsl 29     |     __asm ("andseq sb, ip, r8, lsl 29");
                                             |     if (? != ?) {
    0x00038228 andeq r7, fp, r6, lsl r1      |         r7 = fp & (r6 << r1);
                                             |     }
    0x0003822c andseq sb, ip, ip, lsl 29     |     __asm ("andseq sb, ip, ip, lsl 29");
                                             |     if (? != ?) {
    0x00038230 andeq r4, lr, r6, lsl sb      |         r4 = lr & (r6 << sb);
                                             |     }
                                             |     /* [10] -r-x section size 12 named .init */
    0x00038234 push {r3, lr}                 |     
    0x00038238 bl 0x3f748                    |     entry0 ();
    0x0003823c pop {r3, pc}                  |     
                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/libsystemd-shared-249.so @ 0x88c78 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00088c78 ()                                  | void fcn_00088c78 (uint32_t arg1, int16_t arg2, uint32_t arg3) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     if (? >= ?) {
    0x00088c78 ldrbmi lr, [r0, sp, lsr 18]!                  |         
                                                             |     }
    0x00088c7c sub sp, 0x10                                  |     
    0x00088c7e cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00088c80 beq 0x88d5e                                   |         goto label_1;
                                                             |     }
    0x00088c82 mov r4, r0                                    |     r4 = r0;
    0x00088c84 ldr r3, [r0, 0x2c]                            |     r3 = *((r0 + 0x2c));
    0x00088c86 subs r3, 1                                    |     r3--;
    0x00088c88 cmp r3, 2                                     |     
                                                             |     if (r3 > 2) {
    0x00088c8a bhi 0x88d34                                   |         goto label_2;
                                                             |     }
    0x00088c8c cmp.w r2, 0x30000000                          |     
    0x00088c90 mov r5, r2                                    |     r5 = r2;
                                                             |     if (r2 > 0x30000000) {
    0x00088c92 bhi 0x88d90                                   |         goto label_3;
                                                             |     }
    0x00088c94 ldr r6, [r4, 0x18]                            |     r6 = *((r4 + 0x18));
    0x00088c96 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x00088c98 cmp r3, r6                                    |     
                                                             |     if (r3 > r6) {
    0x00088c9a bhi.w 0x88da4                                 |         goto label_4;
                                                             |     }
    0x00088c9e ldr r0, [r4, 0xc]                             |     r0 = *((r4 + 0xc));
    0x00088ca0 mov r8, r1                                    |     r8 = r1;
    0x00088ca2 blx 0x3999c                                   |     r0 = fcn_0003999c ();
    0x00088ca6 cmp r6, r0                                    |     
                                                             |     if (r6 > r0) {
    0x00088ca8 bhi.w 0x88db8                                 |         goto label_5;
                                                             |     }
    0x00088cac ldr r3, [r4]                                  |     r3 = *(r4);
    0x00088cae cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x00088cb0 blt.w 0x88dcc                                 |         goto label_6;
                                                             |     }
    0x00088cb4 ldr r1, [r4, 0x10]                            |     r1 = *((r4 + 0x10));
    0x00088cb6 ldr r3, [r4, 0x18]                            |     r3 = *((r4 + 0x18));
    0x00088cb8 subs r3, r3, r1                               |     r3 -= r1;
    0x00088cba cmp r3, r5                                    |     
                                                             |     if (r3 >= r5) {
    0x00088cbc bhs 0x88d48                                   |         goto label_7;
                                                             |     }
    0x00088cbe add.w r6, r4, 0xc                             |     r6 = r4 + 0xc;
    0x00088cc2 add.w r7, r4, 0x24                            |     r7 = r4 + 0x24;
    0x00088cc6 b 0x88d04                                     |     
                                                             |     while (r0 != 0) {
    0x00088cc8 mov r1, sb                                    |         r1 = sb;
    0x00088cca ldr r2, [r4, 0xc]                             |         r2 = *((r4 + 0xc));
    0x00088ccc mov r0, r7                                    |         r0 = r7;
    0x00088cce blx 0x3a968                                   |         fcn_0003a968 ();
    0x00088cd2 ldr r3, [r4, 0x18]                            |         r3 = *((r4 + 0x18));
    0x00088cd4 ldr r0, [r4, 0xc]                             |         r0 = *((r4 + 0xc));
    0x00088cd6 ldr.w sl, [r4]                                |         sl = *(r4);
    0x00088cda add.w sb, r0, r3                              |         sb = r0 + r3;
    0x00088cde blx 0x3999c                                   |         fcn_0003999c ();
    0x00088ce2 ldr r3, [r4, 0x18]                            |         r3 = *((r4 + 0x18));
    0x00088ce4 mov r2, r0                                    |         r2 = r0;
    0x00088ce6 mov r1, sb                                    |         r1 = sb;
    0x00088ce8 mov r0, sl                                    |         r0 = sl;
    0x00088cea subs r2, r2, r3                               |         r2 -= r3;
    0x00088cec blx 0x3a9e8                                   |         r0 = fcn_0003a9e8 ();
    0x00088cf0 cmp r0, 0                                     |         
                                                             |         if (r0 < 0) {
    0x00088cf2 blt 0x88d78                                   |             goto label_8;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00088cf4 beq 0x88d58                                   |             goto label_0;
                                                             |         }
    0x00088cf6 ldr r3, [r4, 0x18]                            |         r3 = *((r4 + 0x18));
    0x00088cf8 ldr r1, [r4, 0x10]                            |         r1 = *((r4 + 0x10));
    0x00088cfa add r0, r3                                    |         r0 += r3;
    0x00088cfc subs r3, r0, r1                               |         r3 = r0 - r1;
    0x00088cfe str r0, [r4, 0x18]                            |         *((r4 + 0x18)) = r0;
    0x00088d00 cmp r3, r5                                    |         
                                                             |         if (r3 >= r5) {
    0x00088d02 bhs 0x88d48                                   |             goto label_7;
                                                             |         }
    0x00088d04 ldrb r3, [r4, 4]                              |         r3 = *((r4 + 4));
    0x00088d06 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00088d08 bne 0x88d72                                   |             goto label_9;
                                                             |         }
    0x00088d0a movs r2, 1                                    |         r2 = 1;
    0x00088d0c add r1, r5                                    |         r1 += r5;
    0x00088d0e mov r0, r6                                    |         r0 = r6;
    0x00088d10 ldr.w sb, [r4, 0xc]                           |         sb = *((r4 + 0xc));
    0x00088d14 blx 0x3e210                                   |         r0 = fcn_0003e210 ();
    0x00088d18 cmp r0, 0                                     |         
    0x00088d1a bne 0x88cc8                                   |         
                                                             |     }
    0x00088d1c ldr r1, [pc, 0xf0]                            |     
    0x00088d1e movs r2, 0x83                                 |     r2 = 0x83;
    0x00088d20 ldr r3, [pc, 0xf0]                            |     
    0x00088d22 movs r0, 3                                    |     r0 = 3;
    0x00088d24 add r1, pc                                    |     r1 = 0x111b38;
    0x00088d26 add r3, pc                                    |     r3 = 0x111b3e;
    0x00088d28 adds r1, 7                                    |     r1 += 7;
    0x00088d2a add sp, 0x10                                  |     
    0x00088d2c pop.w {r4, r5, r6, r7, r8, sb, sl, lr}        |     
    0x00088d30 b.w 0x3d340                                   |     void (*0x3d340)() ();
                                                             | label_2:
    0x00088d34 ldr r1, [pc, 0xe0]                            |     
    0x00088d36 movs r2, 0x74                                 |     r2 = 0x74;
    0x00088d38 ldr r3, [pc, 0xe0]                            |     
    0x00088d3a ldr r0, [pc, 0xe4]                            |     
    0x00088d3c add r1, pc                                    |     r1 = 0x111b58;
    0x00088d3e add r3, pc                                    |     r3 = 0x111b5e;
    0x00088d40 adds r1, 7                                    |     r1 += 7;
    0x00088d42 add r0, pc                                    |     r0 = 0x111b68;
    0x00088d44 blx 0x3b5e8                                   |     fcn_0003b5e8 ();
                                                             | label_7:
    0x00088d48 ldr r3, [r4, 0xc]                             |     r3 = *((r4 + 0xc));
    0x00088d4a movs r0, 1                                    |     r0 = 1;
    0x00088d4c add r3, r1                                    |     r3 += r1;
    0x00088d4e str.w r3, [r8]                                |     __asm ("str.w r3, [r8]");
    0x00088d52 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x00088d54 add r3, r5                                    |     r3 += r5;
    0x00088d56 str r3, [r4, 0x10]                            |     *((r4 + 0x10)) = r3;
                                                             |     do {
                                                             | label_0:
    0x00088d58 add sp, 0x10                                  |         
    0x00088d5a pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_1:
    0x00088d5e ldr r1, [pc, 0xc4]                            |         
    0x00088d60 movs r2, 0x73                                 |         r2 = 0x73;
    0x00088d62 ldr r3, [pc, 0xc4]                            |         
    0x00088d64 ldr r0, [pc, 0xc4]                            |         
    0x00088d66 add r1, pc                                    |         r1 = 0x111b90;
    0x00088d68 add r3, pc                                    |         r3 = 0x111b96;
    0x00088d6a adds r1, 7                                    |         r1 += 7;
    0x00088d6c add r0, pc                                    |         r0 = 0x111b9c;
    0x00088d6e blx 0x3b5e8                                   |         fcn_0003b5e8 ();
                                                             | label_9:
    0x00088d72 mvn r0, 0xa                                   |         r0 = ~0xa;
    0x00088d76 b 0x88d58                                     |         
                                                             |     } while (1);
                                                             | label_8:
    0x00088d78 blx 0x3f370                                   |     r0 = fcn_0003f370 ();
    0x00088d7c ldr r5, [r0]                                  |     r5 = *(r0);
    0x00088d7e mov r6, r0                                    |     r6 = r0;
    0x00088d80 cmp r5, 0xb                                   |     
                                                             |     if (r5 == 0xb) {
    0x00088d82 beq 0x88d8c                                   |         goto label_10;
                                                             |     }
    0x00088d84 blx 0x3d534                                   |     r0 = fcn_0003d534 ();
    0x00088d88 cmp r0, 2                                     |     
    0x00088d8a bgt 0x88de0                                   |     
                                                             |     while (1) {
                                                             | label_10:
    0x00088d8c rsbs r0, r5, 0                                |         r0 = r5 - ;
    0x00088d8e b 0x88d58                                     |         goto label_0;
                                                             | label_3:
    0x00088d90 ldr r1, [pc, 0x9c]                            |         
    0x00088d92 movs r2, 0x75                                 |         r2 = 0x75;
    0x00088d94 ldr r3, [pc, 0x9c]                            |         
    0x00088d96 ldr r0, [pc, 0xa0]                            |         
    0x00088d98 add r1, pc                                    |         r1 = 0x111bcc;
    0x00088d9a add r3, pc                                    |         r3 = 0x111bd2;
    0x00088d9c adds r1, 7                                    |         r1 += 7;
    0x00088d9e add r0, pc                                    |         r0 = 0x111bdc;
    0x00088da0 blx 0x3b5e8                                   |         fcn_0003b5e8 ();
                                                             | label_4:
    0x00088da4 ldr r1, [pc, 0x94]                            |         
    0x00088da6 movs r2, 0x76                                 |         r2 = 0x76;
    0x00088da8 ldr r3, [pc, 0x94]                            |         
    0x00088daa ldr r0, [pc, 0x98]                            |         
    0x00088dac add r1, pc                                    |         r1 = 0x111bec;
    0x00088dae add r3, pc                                    |         r3 = 0x111bf2;
    0x00088db0 adds r1, 7                                    |         r1 += 7;
    0x00088db2 add r0, pc                                    |         r0 = 0x111bfc;
    0x00088db4 blx 0x3b5e8                                   |         fcn_0003b5e8 ();
                                                             | label_5:
    0x00088db8 ldr r1, [pc, 0x8c]                            |         
    0x00088dba movs r2, 0x77                                 |         r2 = 0x77;
    0x00088dbc ldr r3, [pc, 0x8c]                            |         
    0x00088dbe ldr r0, [pc, 0x90]                            |         
    0x00088dc0 add r1, pc                                    |         r1 = 0x111c0c;
    0x00088dc2 add r3, pc                                    |         r3 = 0x111c12;
    0x00088dc4 adds r1, 7                                    |         r1 += 7;
    0x00088dc6 add r0, pc                                    |         r0 = 0x111c1c;
    0x00088dc8 blx 0x3b5e8                                   |         fcn_0003b5e8 ();
                                                             | label_6:
    0x00088dcc ldr r1, [pc, 0x84]                            |         
    0x00088dce movs r2, 0x78                                 |         r2 = 0x78;
    0x00088dd0 ldr r3, [pc, 0x84]                            |         
    0x00088dd2 ldr r0, [pc, 0x88]                            |         
    0x00088dd4 add r1, pc                                    |         r1 = 0x111c2c;
    0x00088dd6 add r3, pc                                    |         r3 = 0x111c32;
    0x00088dd8 adds r1, 7                                    |         r1 += 7;
    0x00088dda add r0, pc                                    |         r0 = 0x111c3c;
    0x00088ddc blx 0x3b5e8                                   |         fcn_0003b5e8 ();
    0x00088de0 ldr r7, [r4]                                  |         r7 = *(r4);
    0x00088de2 ldr r0, [r4, 0xc]                             |         r0 = *((r4 + 0xc));
    0x00088de4 blx 0x3999c                                   |         fcn_0003999c ();
    0x00088de8 ldr r2, [pc, 0x74]                            |         
    0x00088dea mov r1, r5                                    |         r1 = r5;
    0x00088dec str r7, [sp, 8]                               |         var_8h = r7;
    0x00088dee ldr r3, [r4, 0x18]                            |         r3 = *((r4 + 0x18));
    0x00088df0 add r2, pc                                    |         r2 = 0x111c54;
    0x00088df2 str r2, [sp]                                  |         *(sp) = r2;
    0x00088df4 subs r0, r0, r3                               |         r0 -= r3;
    0x00088df6 ldr r2, [pc, 0x6c]                            |         
    0x00088df8 ldr r3, [pc, 0x6c]                            |         
    0x00088dfa str r0, [sp, 0xc]                             |         var_ch = r0;
    0x00088dfc movs r0, 3                                    |         r0 = 3;
    0x00088dfe add r2, pc                                    |         r2 = 0x111c68;
    0x00088e00 add r3, pc                                    |         r3 = 0x111c6c;
    0x00088e02 adds r2, 7                                    |         r2 += 7;
    0x00088e04 str r3, [sp, 4]                               |         var_4h = r3;
    0x00088e06 movs r3, 0x89                                 |         r3 = 0x89;
    0x00088e08 blx 0x39c0c                                   |         fcn_00039c0c ();
    0x00088e0c ldr r5, [r6]                                  |         r5 = *(r6);
    0x00088e0e b 0x88d8c                                     |         
                                                             |     }
                                                             | }


r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/libsystemd-shared-249.so @ 0x110f80).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/libsystemd-shared-249.so @ 0x13c854 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0013c854 ()                                          | void fcn_0013c854 (int16_t arg_2b0h, int16_t arg1) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_28h;
                                                                     |     int16_t var_1h;
                                                                     |     int16_t var_38h;
                                                                     |     int8_t var_30h;
                                                                     |     int16_t var_64h;
                                                                     |     int16_t var_0h_2;
                                                                     |     int16_t var_90h;
                                                                     |     r0 = arg1;
    0x0013c854 sub sp, 8                                             |     
    0x0013c856 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0013c85a sub sp, 0x6c                                          |     
    0x0013c85c add r1, sp, 0x90                                      |     r1 += var_90h;
    0x0013c85e ldr r4, [pc, 0x23c]                                   |     
    0x0013c860 add.w sl, sp, 0x38                                    |     sl += var_38h;
    0x0013c864 mov r8, r0                                            |     r8 = r0;
    0x0013c866 stm.w r1, {r2, r3}                                    |     *(r1) = r2;
                                                                     |     *((r1 + 4)) = r3;
    0x0013c86a mov r0, sl                                            |     r0 = sl;
    0x0013c86c ldr r3, [pc, 0x230]                                   |     r3 = *(0x13caa0);
    0x0013c86e add r4, pc                                            |     r4 = 0x279310;
    0x0013c870 movs r2, 0x28                                         |     r2 = 0x28;
    0x0013c872 movs r1, 0                                            |     r1 = 0;
    0x0013c874 add.w sb, sp, 0x28                                    |     sb += var_28h;
    0x0013c878 ldr r3, [r4, r3]                                      |     
    0x0013c87a ldr r3, [r3]                                          |     r3 = *(0x279310);
    0x0013c87c str r3, [sp, 0x64]                                    |     var_64h = r3;
    0x0013c87e mov.w r3, 0                                           |     r3 = 0;
    0x0013c882 blx 0x39d84                                           |     fcn_00039d84 ();
    0x0013c886 add r3, sp, 0x90                                      |     r3 += var_90h;
    0x0013c888 ldm r3, {r0, r1, r2, r3}                              |     r0 = *(r3);
                                                                     |     r1 = *((r3 + 4));
                                                                     |     r2 = *((r3 + 8));
                                                                     |     r3 = *((r3 + 12));
    0x0013c88a stm.w sb, {r0, r1, r2, r3}                            |     *(sb) = r0;
                                                                     |     *((sb + 4)) = r1;
                                                                     |     *((sb + 8)) = r2;
                                                                     |     *((sb + 12)) = r3;
    0x0013c88e movs r1, 0                                            |     r1 = 0;
    0x0013c890 movs r0, 5                                            |     r0 = 5;
    0x0013c892 blx 0x3b8f4                                           |     r0 = fcn_0003b8f4 ();
                                                                     |     if (r0 != 0) {
    0x0013c896 cbz r0, 0x13c8a0                                      |         
    0x0013c898 ldrb r3, [r0]                                         |         r3 = *(r0);
    0x0013c89a mov r5, r0                                            |         r5 = r0;
    0x0013c89c cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0013c89e bne 0x13c928                                          |             goto label_9;
                                                                     |         }
                                                                     |     }
                                                                     | label_1:
    0x0013c8a0 movs r2, 0x20                                         |     r2 = 0x20;
    0x0013c8a2 mov r0, sl                                            |     r0 = sl;
    0x0013c8a4 movs r1, 0                                            |     r1 = 0;
    0x0013c8a6 movs r6, 0                                            |     r6 = 0;
    0x0013c8a8 blx 0x39d84                                           |     fcn_00039d84 ();
    0x0013c8ac ldr.w r3, [r8, 0x18]                                  |     r3 = *((r8 + 0x18));
    0x0013c8b0 ldr.w r2, [r8, 0x20]                                  |     r2 = *((r8 + 0x20));
    0x0013c8b4 ldr.w fp, [r8, 0x10]                                  |     fp = *((r8 + 0x10));
    0x0013c8b8 mov r7, r3                                            |     r7 = r3;
    0x0013c8ba str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0013c8bc cmp r6, r7                                            |     
    0x0013c8be mov r3, sl                                            |     r3 = sl;
    0x0013c8c0 mov sl, sb                                            |     sl = sb;
    0x0013c8c2 mov sb, r2                                            |     sb = r2;
    0x0013c8c4 mov r2, r3                                            |     r2 = r3;
                                                                     |     if (r6 >= r7) {
    0x0013c8c6 bhs 0x13c906                                          |         goto label_2;
                                                                     |     }
                                                                     | label_0:
    0x0013c8c8 adds r4, r6, r7                                       |     r4 = r6 + r7;
    0x0013c8ca mov r1, sl                                            |     r1 = sl;
    0x0013c8cc lsrs r4, r4, 1                                        |     r4 >>= 1;
    0x0013c8ce mla r5, r4, sb, fp                                    |     __asm ("mla r5, r4, sb, fp");
    0x0013c8d2 add r5, r8                                            |     r5 += r8;
    0x0013c8d4 subs r3, r5, 1                                        |     r3 = r5 - 1;
    0x0013c8d6 add.w lr, r5, 0xf                                     |     lr = r5 + 0xf;
                                                                     |     do {
    0x0013c8da ldrb ip, [r1], 1                                      |         ip = *(r1);
                                                                     |         r1++;
    0x0013c8de ldrb r0, [r3, 1]!                                     |         r0 = *((r3 += 1));
    0x0013c8e2 cmp ip, r0                                            |         
                                                                     |         if (ip <= r0) {
    0x0013c8e4 blo 0x13c980                                          |             goto label_10;
                                                                     |         }
                                                                     |         if (ip > r0) {
    0x0013c8e6 bhi 0x13c900                                          |             goto label_11;
                                                                     |         }
    0x0013c8e8 cmp lr, r3                                            |         
    0x0013c8ea bne 0x13c8da                                          |         
                                                                     |     } while (lr != r3);
    0x0013c8ec mov r0, r2                                            |     r0 = r2;
    0x0013c8ee add.w r1, r5, 0x10                                    |     r1 = r5 + 0x10;
    0x0013c8f2 str r2, [sp, 0x10]                                    |     var_10h = r2;
    0x0013c8f4 blx 0x3f268                                           |     r0 = fcn_0003f268 ();
    0x0013c8f8 cmp r0, 0                                             |     
    0x0013c8fa ldr r2, [sp, 0x10]                                    |     r2 = var_10h;
                                                                     |     if (r0 < 0) {
    0x0013c8fc blt 0x13c980                                          |         goto label_10;
                                                                     |     }
                                                                     |     if (r0 == 0) {
    0x0013c8fe beq 0x13c988                                          |         goto label_12;
                                                                     |     }
                                                                     | label_11:
    0x0013c900 adds r6, r4, 1                                        |     r6 = r4 + 1;
    0x0013c902 cmp r6, r7                                            |     
                                                                     |     if (r6 <= r7) {
    0x0013c904 blo 0x13c8c8                                          |         goto label_0;
                                                                     |     }
                                                                     | label_2:
    0x0013c906 movs r0, 0                                            |     r0 = 0;
                                                                     | label_3:
    0x0013c908 ldr r2, [pc, 0x198]                                   |     
    0x0013c90a ldr r3, [pc, 0x194]                                   |     r3 = *(0x13caa2);
    0x0013c90c add r2, pc                                            |     r2 = 0x2793b4;
    0x0013c90e ldr r3, [r2, r3]                                      |     r3 = *(0x2793b4);
    0x0013c910 ldr r2, [r3]                                          |     r2 = *(0x2793b4);
    0x0013c912 ldr r3, [sp, 0x64]                                    |     r3 = var_64h;
    0x0013c914 eors r2, r3                                           |     r2 ^= r3;
    0x0013c916 mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x0013c91a bne.w 0x13ca96                                        |         goto label_13;
                                                                     |     }
    0x0013c91e add sp, 0x6c                                          |     
    0x0013c920 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}            |     
    0x0013c924 add sp, 8                                             |     
    0x0013c926 bx lr                                                 |     return;
                                                                     | label_9:
    0x0013c928 ldr r3, [pc, 0x17c]                                   |     
    0x0013c92a add r3, pc                                            |     r3 = 0x2793d6;
    0x0013c92c ldm.w r3, {r0, r1, r2}                                |     r0 = *(r3);
                                                                     |     r1 = *((r3 + 4));
                                                                     |     r2 = *((r3 + 8));
    0x0013c930 add r3, sp, 0x1c                                      |     r3 += var_1ch;
    0x0013c932 stm.w r3, {r0, r1, r2}                                |     *(r3) = r0;
                                                                     |     *((r3 + 4)) = r1;
                                                                     |     *((r3 + 8)) = r2;
    0x0013c936 mov r0, r3                                            |     r0 = r3;
    0x0013c938 mov r1, r5                                            |     r1 = r5;
    0x0013c93a blx 0x3a5e0                                           |     r0 = fcn_0003a5e0 ();
    0x0013c93e mov r4, r0                                            |     r4 = r0;
    0x0013c940 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0013c942 bne 0x13c8a0                                          |         goto label_1;
                                                                     |     }
    0x0013c944 ldr r1, [pc, 0x164]                                   |     
    0x0013c946 mov r0, r5                                            |     r0 = r5;
    0x0013c948 add r1, pc                                            |     r1 = 0x2793f8;
    0x0013c94a blx 0x3e9ec                                           |     r0 = epoll_ctl ();
    0x0013c94e cmp r0, 0x1f                                          |     
    0x0013c950 mov r6, r0                                            |     r6 = r0;
                                                                     |     if (r0 < 0x1f) {
    0x0013c952 bls 0x13c99a                                          |         goto label_14;
                                                                     |     }
    0x0013c954 blx 0x3d534                                           |     r0 = fcn_0003d534 ();
    0x0013c958 cmp r0, 6                                             |     
                                                                     |     if (r0 <= 6) {
    0x0013c95a ble 0x13c8a0                                          |         goto label_1;
                                                                     |     }
    0x0013c95c ldr r3, [pc, 0x150]                                   |     
    0x0013c95e mov r1, r4                                            |     r1 = r4;
    0x0013c960 ldr r2, [pc, 0x150]                                   |     
    0x0013c962 movs r0, 7                                            |     r0 = 7;
    0x0013c964 str r5, [sp, 0xc]                                     |     var_ch = r5;
    0x0013c966 add r3, pc                                            |     r3 = 0x27941a;
    0x0013c968 str r6, [sp, 8]                                       |     var_8h = r6;
    0x0013c96a str r3, [sp, 4]                                       |     var_4h = r3;
    0x0013c96c add r2, pc                                            |     r2 = 0x279424;
    0x0013c96e ldr r3, [pc, 0x148]                                   |     
    0x0013c970 adds r2, 7                                            |     r2 += 7;
    0x0013c972 add r3, pc                                            |     r3 = 0x279430;
    0x0013c974 str r3, [sp]                                          |     *(sp) = r3;
    0x0013c976 movw r3, 0x233                                        |     r3 = 0x233;
    0x0013c97a blx 0x39c0c                                           |     fcn_00039c0c ();
    0x0013c97e b 0x13c8a0                                            |     goto label_1;
                                                                     | label_10:
    0x0013c980 cmp r6, r4                                            |     
                                                                     |     if (r6 >= r4) {
    0x0013c982 bhs 0x13c906                                          |         goto label_2;
                                                                     |     }
    0x0013c984 mov r7, r4                                            |     r7 = r4;
    0x0013c986 b 0x13c8c8                                            |     goto label_0;
                                                                     | label_12:
    0x0013c988 mov r2, sb                                            |     r2 = sb;
                                                                     | label_8:
    0x0013c98a ldr r3, [sp, 0x14]                                    |     r3 = var_14h;
    0x0013c98c mla r3, r3, r2, fp                                    |     __asm ("mla r3, r3, r2, fp");
    0x0013c990 ldr r2, [r5, 0x30]                                    |     r2 = *((r5 + 0x30));
    0x0013c992 add r3, r2                                            |     r3 += r2;
    0x0013c994 add.w r0, r8, r3                                      |     r0 = r8 + r3;
    0x0013c998 b 0x13c908                                            |     goto label_3;
                                                                     | label_14:
    0x0013c99a mov r2, r0                                            |     r2 = r0;
    0x0013c99c movs r3, 0x20                                         |     r3 = 0x20;
    0x0013c99e mov r0, sl                                            |     r0 = sl;
    0x0013c9a0 mov r1, r5                                            |     r1 = r5;
    0x0013c9a2 blx 0x3a15c                                           |     fcn_0003a15c ();
    0x0013c9a6 ldr.w r2, [r8, 0x20]                                  |     r2 = *((r8 + 0x20));
    0x0013c9aa add.w r3, r6, 0x68                                    |     r3 = r6 + 0x68;
    0x0013c9ae ldr.w r7, [r8, 0x18]                                  |     r7 = *((r8 + 0x18));
    0x0013c9b2 add.w r6, sp, r3                                      |     r6 = sp + r3;
    0x0013c9b6 mov r3, sl                                            |     r3 = sl;
    0x0013c9b8 ldr.w fp, [r8, 0x10]                                  |     fp = *((r8 + 0x10));
    0x0013c9bc mov sl, sb                                            |     sl = sb;
    0x0013c9be mov sb, r8                                            |     sb = r8;
    0x0013c9c0 mov r8, r2                                            |     r8 = r2;
    0x0013c9c2 mov r2, r3                                            |     r2 = r3;
    0x0013c9c4 strb r4, [r6, -0x30]                                  |     var_30h = r4;
    0x0013c9c8 str r7, [sp, 0x14]                                    |     var_14h = r7;
                                                                     | label_4:
    0x0013c9ca cmp r7, r4                                            |     
                                                                     |     if (r7 < r4) {
    0x0013c9cc bls 0x13ca12                                          |         goto label_15;
                                                                     |     }
                                                                     | label_5:
    0x0013c9ce adds r6, r4, r7                                       |     r6 = r4 + r7;
    0x0013c9d0 mov r1, sl                                            |     r1 = sl;
    0x0013c9d2 lsrs r6, r6, 1                                        |     r6 >>= 1;
    0x0013c9d4 mla r5, r6, r8, fp                                    |     __asm ("mla r5, r6, r8, fp");
    0x0013c9d8 add r5, sb                                            |     r5 += sb;
    0x0013c9da subs r3, r5, 1                                        |     r3 = r5 - 1;
    0x0013c9dc add.w lr, r5, 0xf                                     |     lr = r5 + 0xf;
                                                                     |     do {
    0x0013c9e0 ldrb ip, [r1], 1                                      |         ip = *(r1);
                                                                     |         r1++;
    0x0013c9e4 ldrb r0, [r3, 1]!                                     |         r0 = *((r3 += 1));
    0x0013c9e8 cmp ip, r0                                            |         
                                                                     |         if (ip <= r0) {
    0x0013c9ea blo 0x13ca0a                                          |             goto label_16;
                                                                     |         }
                                                                     |         if (ip > r0) {
    0x0013c9ec bhi 0x13ca06                                          |             goto label_17;
                                                                     |         }
    0x0013c9ee cmp r3, lr                                            |         
    0x0013c9f0 bne 0x13c9e0                                          |         
                                                                     |     } while (r3 != lr);
    0x0013c9f2 mov r0, r2                                            |     r0 = r2;
    0x0013c9f4 add.w r1, r5, 0x10                                    |     r1 = r5 + 0x10;
    0x0013c9f8 str r2, [sp, 0x10]                                    |     var_10h = r2;
    0x0013c9fa blx 0x3f268                                           |     r0 = fcn_0003f268 ();
    0x0013c9fe cmp r0, 0                                             |     
    0x0013ca00 ldr r2, [sp, 0x10]                                    |     r2 = var_10h;
                                                                     |     if (r0 >= 0) {
    0x0013ca02 blt 0x13ca0a                                          |         
                                                                     |         if (r0 == 0) {
    0x0013ca04 beq 0x13ca88                                          |             goto label_18;
                                                                     |         }
                                                                     | label_17:
    0x0013ca06 adds r4, r6, 1                                        |         r4 = r6 + 1;
    0x0013ca08 b 0x13c9ca                                            |         goto label_4;
                                                                     |     }
                                                                     | label_16:
    0x0013ca0a cmp r6, r4                                            |     
                                                                     |     if (r6 >= r4) {
    0x0013ca0c bls 0x13ca12                                          |         
    0x0013ca0e mov r7, r6                                            |         r7 = r6;
    0x0013ca10 b 0x13c9ce                                            |         goto label_5;
                                                                     |     }
                                                                     | label_15:
    0x0013ca12 mov r3, r2                                            |     r3 = r2;
    0x0013ca14 movs r1, 0x5f                                         |     r1 = 0x5f;
    0x0013ca16 mov r2, r8                                            |     r2 = r8;
    0x0013ca18 mov r0, r3                                            |     r0 = r3;
    0x0013ca1a str r2, [sp, 0x10]                                    |     var_10h = r2;
    0x0013ca1c mov r8, sb                                            |     r8 = sb;
    0x0013ca1e mov sb, sl                                            |     sb = sl;
    0x0013ca20 mov sl, r3                                            |     sl = r3;
    0x0013ca22 blx 0x39820                                           |     dirname ();
    0x0013ca26 ldr r2, [sp, 0x10]                                    |     r2 = var_10h;
    0x0013ca28 mov r3, r0                                            |     r3 = r0;
    0x0013ca2a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0013ca2c beq.w 0x13c8a0                                        |         goto label_1;
                                                                     |     }
    0x0013ca30 movs r4, 0                                            |     r4 = 0;
    0x0013ca32 mov r7, sl                                            |     r7 = sl;
    0x0013ca34 strb r4, [r3]                                         |     *(r3) = r4;
    0x0013ca36 mov sl, sb                                            |     sl = sb;
    0x0013ca38 ldr r3, [sp, 0x14]                                    |     r3 = var_14h;
    0x0013ca3a mov sb, r8                                            |     sb = r8;
    0x0013ca3c mov r8, r2                                            |     r8 = r2;
    0x0013ca3e str r3, [sp, 0x10]                                    |     var_10h = r3;
                                                                     | label_6:
    0x0013ca40 ldr r3, [sp, 0x10]                                    |     r3 = var_10h;
    0x0013ca42 cmp r4, r3                                            |     
                                                                     |     if (r4 >= r3) {
    0x0013ca44 bhs 0x13ca8e                                          |         goto label_19;
                                                                     |     }
                                                                     | label_7:
    0x0013ca46 ldr r3, [sp, 0x10]                                    |     r3 = var_10h;
    0x0013ca48 mov r2, sl                                            |     r2 = sl;
    0x0013ca4a adds r6, r4, r3                                       |     r6 = r4 + r3;
    0x0013ca4c lsrs r6, r6, 1                                        |     r6 >>= 1;
    0x0013ca4e mla r5, r6, r8, fp                                    |     __asm ("mla r5, r6, r8, fp");
    0x0013ca52 add r5, sb                                            |     r5 += sb;
    0x0013ca54 subs r3, r5, 1                                        |     r3 = r5 - 1;
    0x0013ca56 add.w ip, r5, 0xf                                     |     
                                                                     |     do {
    0x0013ca5a ldrb r0, [r2], 1                                      |         r0 = *(r2);
                                                                     |         r2++;
    0x0013ca5e ldrb r1, [r3, 1]!                                     |         r1 = *((r3 += 1));
    0x0013ca62 cmp r0, r1                                            |         
                                                                     |         if (r0 <= r1) {
    0x0013ca64 blo 0x13ca80                                          |             goto label_20;
                                                                     |         }
                                                                     |         if (r0 > r1) {
    0x0013ca66 bhi 0x13ca7c                                          |             goto label_21;
                                                                     |         }
    0x0013ca68 cmp ip, r3                                            |         
    0x0013ca6a bne 0x13ca5a                                          |         
                                                                     |     } while (ip != r3);
    0x0013ca6c add.w r1, r5, 0x10                                    |     r1 = r5 + 0x10;
    0x0013ca70 mov r0, r7                                            |     r0 = r7;
    0x0013ca72 blx 0x3f268                                           |     r0 = fcn_0003f268 ();
    0x0013ca76 cmp r0, 0                                             |     
                                                                     |     if (r0 >= 0) {
    0x0013ca78 blt 0x13ca80                                          |         
                                                                     |         if (r0 == 0) {
    0x0013ca7a beq 0x13ca88                                          |             goto label_18;
                                                                     |         }
                                                                     | label_21:
    0x0013ca7c adds r4, r6, 1                                        |         r4 = r6 + 1;
    0x0013ca7e b 0x13ca40                                            |         goto label_6;
                                                                     |     }
                                                                     | label_20:
    0x0013ca80 cmp r4, r6                                            |     
                                                                     |     if (r4 < r6) {
    0x0013ca82 bhs 0x13ca8e                                          |         
    0x0013ca84 str r6, [sp, 0x10]                                    |         var_10h = r6;
    0x0013ca86 b 0x13ca46                                            |         goto label_7;
                                                                     | label_18:
    0x0013ca88 mov r2, r8                                            |         r2 = r8;
    0x0013ca8a mov r8, sb                                            |         r8 = sb;
    0x0013ca8c b 0x13c98a                                            |         goto label_8;
                                                                     |     }
                                                                     | label_19:
    0x0013ca8e mov r8, sb                                            |     r8 = sb;
    0x0013ca90 mov sb, sl                                            |     sb = sl;
    0x0013ca92 mov sl, r7                                            |     sl = r7;
    0x0013ca94 b 0x13c8a0                                            |     goto label_1;
                                                                     | label_13:
    0x0013ca96 blx 0x3d208                                           |     fcn_0003d208 ();
    0x0013ca9a nop                                                   |     
    0x0013ca9c add sp, 0x128                                         |     
    0x0013ca9e movs r0, r1                                           |     r0 = r1;
    0x0013caa0 movs r6, 0xb0                                         |     r6 = 0xb0;
    0x0013caa2 movs r0, r0                                           |     
    0x0013caa4 add r7, sp, 0x2b0                                     |     r7 += arg_2b0h;
    0x0013caa6 movs r0, r1                                           |     r0 = r1;
    0x0013caa8 b 0x13d158                                            |     return void (*0x13d158)() ();
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/libsystemd-shared-249.so @ 0x117ee0 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.bus_socket_write_message ()                      | void bus_socket_write_message (uint32_t arg1, uint32_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00117ee0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00117ee4 mov r6, r2                                        |     r6 = r2;
    0x00117ee6 ldr r2, [pc, 0x3ec]                               |     
    0x00117ee8 sub sp, 0x2c                                      |     
    0x00117eea add r7, sp, 0                                     |     r7 += var_0h;
    0x00117eec ldr r3, [pc, 0x3e8]                               |     r3 = *(0x1182d8);
    0x00117eee add r2, pc                                        |     r2 = 0x2301c8;
    0x00117ef0 ldr r3, [r2, r3]                                  |     
    0x00117ef2 ldr r3, [r3]                                      |     r3 = *(0x2301c8);
    0x00117ef4 str r3, [r7, 0x24]                                |     *((r7 + 0x24)) = r3;
    0x00117ef6 mov.w r3, 0                                       |     r3 = 0;
    0x00117efa cmp r0, 0                                         |     
                                                                 |     if (var_0h == ) {
    0x00117efc beq.w 0x11804c                                    |         goto label_9;
                                                                 |     }
    0x00117f00 mov r4, r1                                        |     r4 = r1;
    0x00117f02 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00117f04 beq.w 0x118062                                    |         goto label_10;
                                                                 |     }
    0x00117f08 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00117f0a beq.w 0x118078                                    |         goto label_11;
                                                                 |     }
    0x00117f0e ldr r3, [r0, 4]                                   |     r3 = *((r0 + 4));
    0x00117f10 mov r5, r0                                        |     r5 = r0;
    0x00117f12 subs r3, 4                                        |     r3 -= 4;
    0x00117f14 cmp r3, 1                                         |     
                                                                 |     if (r3 >= 1) {
    0x00117f16 bls 0x117f2e                                      |         
    0x00117f18 ldr r1, [pc, 0x3c0]                               |         
    0x00117f1a movw r2, 0x3fd                                    |         r2 = 0x3fd;
    0x00117f1e ldr r3, [pc, 0x3c0]                               |         
    0x00117f20 ldr r0, [pc, 0x3c0]                               |         
    0x00117f22 add r1, pc                                        |         r1 = 0x230202;
    0x00117f24 add r3, pc                                        |         r3 = 0x23020a;
    0x00117f26 adds r1, 7                                        |         r1 += 7;
    0x00117f28 add r0, pc                                        |         r0 = 0x230210;
    0x00117f2a blx 0x3b5e8                                       |         fcn_0003b5e8 ();
                                                                 |     }
    0x00117f2e ldrd r1, r3, [r1, 0x114]                          |     __asm ("ldrd r1, r3, aav.0x000000ff");
    0x00117f32 ldr r2, [r6]                                      |     r2 = *(r6);
    0x00117f34 adds r1, 7                                        |     r1 += 7;
    0x00117f36 adds r3, 0x10                                     |     r3 += 0x10;
    0x00117f38 bic r1, r1, 7                                     |     r1 = BIT_MASK (r1, 7);
    0x00117f3c add r3, r1                                        |     r3 += r1;
    0x00117f3e cmp r2, r3                                        |     
                                                                 |     if (r2 > r3) {
    0x00117f40 blo 0x117f62                                      |         
                                                                 | label_1:
    0x00117f42 movs r0, 0                                        |         r0 = 0;
                                                                 | label_0:
    0x00117f44 ldr r2, [pc, 0x3a0]                               |         
    0x00117f46 ldr r3, [pc, 0x390]                               |         r3 = *(0x1182da);
    0x00117f48 add r2, pc                                        |         r2 = 0x230234;
    0x00117f4a ldr r3, [r2, r3]                                  |         r3 = *(0x230234);
    0x00117f4c ldr r2, [r3]                                      |         r2 = *(0x230234);
    0x00117f4e ldr r3, [r7, 0x24]                                |         r3 = *((r7 + 0x24));
    0x00117f50 eors r2, r3                                       |         r2 ^= r3;
    0x00117f52 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00117f56 bne.w 0x1182b6                                    |             goto label_12;
                                                                 |         }
    0x00117f5a adds r7, 0x2c                                     |         r7 += 0x2c;
    0x00117f5c mov sp, r7                                        |         
    0x00117f5e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 |     }
    0x00117f62 ldrb.w r3, [r4, 0x100]                            |     r3 = *((r4 + 0x100));
    0x00117f66 lsls r3, r3, 0x1f                                 |     r3 <<= 0x1f;
                                                                 |     if (r3 >= r3) {
    0x00117f68 bpl.w 0x1180b6                                    |         goto label_13;
                                                                 |     }
    0x00117f6c ldr.w sb, [r4, 0x1b4]                             |     sb = *((r4 + 0x1b4));
    0x00117f70 cmp.w sb, 0                                       |     
                                                                 |     if (sb != 0) {
    0x00117f74 bne 0x118024                                      |         goto label_14;
                                                                 |     }
    0x00117f76 ldr.w r3, [r4, 0x1a0]                             |     r3 = *((r4 + 0x1a0));
    0x00117f7a cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00117f7c bne.w 0x118198                                    |         goto label_15;
                                                                 |     }
    0x00117f80 ldr.w r3, [r4, 0x14c]                             |     r3 = *((r4 + 0x14c));
    0x00117f84 add.w sl, r3, 1                                   |     sl = r3 + 1;
    0x00117f88 cmp.w sl, 1                                       |     
    0x00117f8c itt ls                                            |     
                                                                 |     if (sl > 1) {
    0x00117f8e addls r3, r4, 0x1a4                               |         r3 = r4 + 0x1a4;
                                                                 |     }
                                                                 |     if (sl <= 1) {
    0x00117f92 str.w r3, [r4, 0x1a0]                             |         __asm ("str.w r3, aav.0x000000ff");
                                                                 |     }
                                                                 |     if (sl > 1) {
    0x00117f96 bhi.w 0x1181de                                    |         goto label_16;
                                                                 |     }
                                                                 | label_6:
    0x00117f9a ldr.w r3, [r4, 0x104]                             |     r3 = *((r4 + 0x104));
    0x00117f9e add.w r2, r1, 0x10                                |     r2 = r1 + 0x10;
    0x00117fa2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00117fa4 beq 0x11808e                                      |         goto label_17;
                                                                 |     }
    0x00117fa6 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00117fa8 beq 0x1180a2                                      |         goto label_18;
                                                                 |     }
    0x00117faa ldr.w r1, [r4, 0x1a0]                             |     r1 = *((r4 + 0x1a0));
    0x00117fae movs r0, 1                                        |     r0 = 1;
    0x00117fb0 str.w r0, [r4, 0x1b4]                             |     __asm ("str.w r0, aav.0x000000ff");
    0x00117fb4 add.w r8, r4, 0x120                               |     r8 = r4 + 0x120;
    0x00117fb8 strd r3, r2, [r1]                                 |     __asm ("strd r3, r2, [r1]");
    0x00117fbc ldr.w r3, [r4, 0x14c]                             |     r3 = *((r4 + 0x14c));
                                                                 |     if (r3 == 0) {
    0x00117fc0 cbz r3, 0x118008                                  |         goto label_19;
                                                                 |     }
                                                                 |     do {
    0x00117fc2 mov r0, r8                                        |         r0 = r8;
    0x00117fc4 blx 0x3e660                                       |         r0 = fcn_0003e660 ();
    0x00117fc8 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x00117fca blt.w 0x11818a                                    |             goto label_20;
                                                                 |         }
    0x00117fce ldr.w r1, [r8, 4]                                 |         r1 = *((r8 + 4));
    0x00117fd2 ldr.w r0, [r8, 0xc]                               |         r0 = *((r8 + 0xc));
    0x00117fd6 cmp r1, 0                                         |         
                                                                 |         if (r1 == 0) {
    0x00117fd8 beq 0x11808e                                      |             goto label_17;
                                                                 |         }
    0x00117fda cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00117fdc beq 0x1180a2                                      |             goto label_18;
                                                                 |         }
    0x00117fde ldr.w r2, [r4, 0x1b4]                             |         r2 = *((r4 + 0x1b4));
    0x00117fe2 add.w sb, sb, 1                                   |         sb++;
    0x00117fe6 ldr.w r3, [r4, 0x1a0]                             |         r3 = *((r4 + 0x1a0));
    0x00117fea add.w ip, r2, 1                                   |         
    0x00117fee str.w ip, [r4, 0x1b4]                             |         __asm ("str.w ip, aav.0x000000ff");
    0x00117ff2 str.w r1, [r3, r2, lsl 3]                         |         __asm ("str.w r1, [r3, r2, lsl 3]");
    0x00117ff6 add.w r3, r3, r2, lsl 3                           |         r3 += (r2 << 3);
    0x00117ffa str r0, [r3, 4]                                   |         *((r3 + 4)) = r0;
    0x00117ffc ldr.w r3, [r4, 0x14c]                             |         r3 = *((r4 + 0x14c));
    0x00118000 ldr.w r8, [r8]                                    |         r8 = *(r8);
    0x00118004 cmp sb, r3                                        |         
    0x00118006 blo 0x117fc2                                      |         
                                                                 |     } while (sb <= r3);
                                                                 | label_19:
    0x00118008 ldr.w sb, [r4, 0x1b4]                             |     sb = *((r4 + 0x1b4));
    0x0011800c cmp sl, sb                                        |     
                                                                 |     if (sl != sb) {
    0x0011800e beq 0x118024                                      |         
    0x00118010 ldr r1, [pc, 0x2d8]                               |         
    0x00118012 movs r2, 0x64                                     |         r2 = 0x64;
    0x00118014 ldr r3, [pc, 0x2d8]                               |         
    0x00118016 ldr r0, [pc, 0x2dc]                               |         
    0x00118018 add r1, pc                                        |         r1 = 0x230308;
    0x0011801a add r3, pc                                        |         r3 = 0x23030e;
    0x0011801c adds r1, 7                                        |         r1 += 7;
    0x0011801e add r0, pc                                        |         r0 = 0x230318;
    0x00118020 blx 0x3b5e8                                       |         fcn_0003b5e8 ();
                                                                 |     }
                                                                 | label_14:
    0x00118024 lsls.w r2, sb, 3                                  |     r2 = sb << 3;
                                                                 |     if (r2 != sb) {
    0x00118028 bne.w 0x1181ac                                    |         goto label_21;
                                                                 |     }
    0x0011802c lsl.w r3, sb, 6                                   |     r3 = sb << 6;
    0x00118030 cmp.w r3, 0x400000                                |     
                                                                 |     if (r3 >= 0x400000) {
    0x00118034 bls 0x1180ca                                      |         
                                                                 | label_3:
    0x00118036 ldr r1, [pc, 0x2c0]                               |         
    0x00118038 movw r2, 0x407                                    |         r2 = 0x407;
    0x0011803c ldr r3, [pc, 0x2bc]                               |         
    0x0011803e ldr r0, [pc, 0x2c0]                               |         
    0x00118040 add r1, pc                                        |         r1 = 0x23033e;
    0x00118042 add r3, pc                                        |         r3 = 0x230342;
    0x00118044 adds r1, 7                                        |         r1 += 7;
    0x00118046 add r0, pc                                        |         r0 = 0x23034c;
    0x00118048 blx 0x3b5e8                                       |         fcn_0003b5e8 ();
                                                                 | label_9:
    0x0011804c ldr r1, [pc, 0x2b4]                               |         
    0x0011804e movw r2, 0x3fa                                    |         r2 = 0x3fa;
    0x00118052 ldr r3, [pc, 0x2b4]                               |         
    0x00118054 ldr r0, [pc, 0x2b4]                               |         
    0x00118056 add r1, pc                                        |         r1 = 0x23035e;
    0x00118058 add r3, pc                                        |         r3 = 0x230366;
    0x0011805a adds r1, 7                                        |         r1 += 7;
    0x0011805c add r0, pc                                        |         r0 = 0x23036c;
    0x0011805e blx 0x3b5e8                                       |         fcn_0003b5e8 ();
                                                                 | label_10:
    0x00118062 ldr r1, [pc, 0x2ac]                               |         
    0x00118064 movw r2, 0x3fb                                    |         r2 = 0x3fb;
    0x00118068 ldr r3, [pc, 0x2a8]                               |         
    0x0011806a ldr r0, [pc, 0x2ac]                               |         
    0x0011806c add r1, pc                                        |         r1 = 0x230382;
    0x0011806e add r3, pc                                        |         r3 = 0x230386;
    0x00118070 adds r1, 7                                        |         r1 += 7;
    0x00118072 add r0, pc                                        |         r0 = 0x230390;
    0x00118074 blx 0x3b5e8                                       |         fcn_0003b5e8 ();
                                                                 | label_11:
    0x00118078 ldr r1, [pc, 0x2a0]                               |         
    0x0011807a mov.w r2, 0x3fc                                   |         r2 = 0x3fc;
    0x0011807e ldr r3, [pc, 0x2a0]                               |         
    0x00118080 ldr r0, [pc, 0x2a0]                               |         
    0x00118082 add r1, pc                                        |         r1 = 0x2303a2;
    0x00118084 add r3, pc                                        |         r3 = 0x2303aa;
    0x00118086 adds r1, 7                                        |         r1 += 7;
    0x00118088 add r0, pc                                        |         r0 = 0x2303b0;
    0x0011808a blx 0x3b5e8                                       |         fcn_0003b5e8 ();
                                                                 | label_17:
    0x0011808e ldr r1, [pc, 0x298]                               |         
    0x00118090 movs r2, 0x36                                     |         r2 = 0x36;
    0x00118092 ldr r3, [pc, 0x298]                               |         
    0x00118094 ldr r0, [pc, 0x298]                               |         
    0x00118096 add r1, pc                                        |         r1 = 0x2303c4;
    0x00118098 add r3, pc                                        |         r3 = 0x2303ca;
    0x0011809a adds r1, 7                                        |         r1 += 7;
    0x0011809c add r0, pc                                        |         r0 = 0x2303d0;
    0x0011809e blx 0x3b5e8                                       |         fcn_0003b5e8 ();
                                                                 | label_18:
    0x001180a2 ldr r1, [pc, 0x290]                               |         
    0x001180a4 movs r2, 0x37                                     |         r2 = 0x37;
    0x001180a6 ldr r3, [pc, 0x290]                               |         
    0x001180a8 ldr r0, [pc, 0x290]                               |         
    0x001180aa add r1, pc                                        |         r1 = 0x2303e4;
    0x001180ac add r3, pc                                        |         r3 = 0x2303ea;
    0x001180ae adds r1, 7                                        |         r1 += 7;
    0x001180b0 add r0, pc                                        |         r0 = 0x2303f0;
    0x001180b2 blx 0x3b5e8                                       |         fcn_0003b5e8 ();
                                                                 | label_13:
    0x001180b6 ldr r1, [pc, 0x288]                               |         
    0x001180b8 movs r2, 0x44                                     |         r2 = 0x44;
    0x001180ba ldr r3, [pc, 0x288]                               |         
    0x001180bc ldr r0, [pc, 0x288]                               |         
    0x001180be add r1, pc                                        |         r1 = 0x230404;
    0x001180c0 add r3, pc                                        |         r3 = 0x23040a;
    0x001180c2 adds r1, 7                                        |         r1 += 7;
    0x001180c4 add r0, pc                                        |         r0 = 0x230410;
    0x001180c6 blx 0x3b5e8                                       |         fcn_0003b5e8 ();
                                                                 |     }
    0x001180ca cmp r3, 1                                         |     
    0x001180cc it lo                                             |     
                                                                 |     if (r3 >= 1) {
    0x001180ce movlo r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x001180d0 adds r3, 7                                        |     r3 += 7;
    0x001180d2 bic r3, r3, 7                                     |     r3 = BIT_MASK (r3, 7);
    0x001180d6 sub.w sp, sp, r3                                  |     
    0x001180da mov r8, sp                                        |     r8 = sp;
                                                                 | label_4:
    0x001180dc ldr r2, [r6]                                      |     r2 = *(r6);
    0x001180de ldrb r1, [r5, 0x1c]                               |     r1 = *((r5 + 0x1c));
    0x001180e0 and r1, r1, 0x40                                  |     r1 &= 0x40;
    0x001180e4 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x001180e6 beq.w 0x118226                                    |         goto label_22;
                                                                 |     }
    0x001180ea mov r3, r8                                        |     r3 = r8;
    0x001180ec mov.w ip, 0                                       |     
    0x001180f0 b 0x1180fe                                        |     
                                                                 |     while (r0 < r2) {
    0x001180f2 subs r2, r2, r0                                   |         r2 -= r0;
    0x001180f4 strd ip, ip, [r3]                                 |         __asm ("strd ip, ip, [r3]");
    0x001180f8 add.w r3, r3, 8                                   |         r3 += 8;
                                                                 |         if (r2 == r2) {
    0x001180fc beq 0x11810e                                      |             goto label_23;
                                                                 |         }
    0x001180fe ldr r0, [r3, 4]                                   |         r0 = *((r3 + 4));
    0x00118100 cmp r0, r2                                        |         
    0x00118102 bls 0x1180f2                                      |         
                                                                 |     }
    0x00118104 subs r0, r0, r2                                   |     r0 -= r2;
    0x00118106 str r0, [r3, 4]                                   |     *((r3 + 4)) = r0;
    0x00118108 ldr r0, [r3]                                      |     r0 = *(r3);
    0x0011810a add r0, r2                                        |     r0 += r2;
    0x0011810c str r0, [r3]                                      |     *(r3) = r0;
                                                                 |     if (r1 == 0) {
                                                                 | label_23:
    0x0011810e cbz r1, 0x11813e                                  |         goto label_24;
                                                                 |     }
                                                                 | label_7:
    0x00118110 mov r2, sb                                        |     r2 = sb;
    0x00118112 ldr r0, [r5, 0xc]                                 |     r0 = *((r5 + 0xc));
    0x00118114 mov r1, r8                                        |     r1 = r8;
    0x00118116 blx 0x3a57c                                       |     r0 = fcn_0003a57c ();
    0x0011811a mov sb, r0                                        |     sb = r0;
                                                                 | label_2:
    0x0011811c cmp.w sb, 0                                       |     
                                                                 |     if (sb >= 0) {
    0x00118120 bge 0x118134                                      |         goto label_25;
                                                                 |     }
    0x00118122 blx 0x3f370                                       |     r0 = fcn_0003f370 ();
    0x00118126 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00118128 cmp r0, 0xb                                       |     
    0x0011812a it ne                                             |     
                                                                 |     if (r0 == 0xb) {
    0x0011812c rsbne r0, r0, 0                                   |         __asm ("rsbne r0, r0, 0");
                                                                 |         goto label_26;
                                                                 |     }
                                                                 |     if (r0 != 0xb) {
                                                                 | label_26:
    0x0011812e bne.w 0x117f44                                    |         goto label_0;
                                                                 |     }
    0x00118132 b 0x117f42                                        |     goto label_1;
                                                                 |     do {
                                                                 | label_25:
    0x00118134 ldr r3, [r6]                                      |         r3 = *(r6);
    0x00118136 movs r0, 1                                        |         r0 = 1;
    0x00118138 add r3, sb                                        |         r3 += sb;
    0x0011813a str r3, [r6]                                      |         *(r6) = r3;
    0x0011813c b 0x117f44                                        |         goto label_0;
                                                                 | label_24:
    0x0011813e add.w sl, r7, 8                                   |         sl = r7 + 8;
    0x00118142 str.w sb, [r7, 0x14]                              |         __asm ("str.w sb, [r7, 0x14]");
    0x00118146 str r1, [r7, 8]                                   |         *((r7 + 8)) = r1;
    0x00118148 strd r1, r8, [r7, 0xc]                            |         __asm ("strd r1, r8, [r7, 0xc]");
    0x0011814c strd r1, r1, [r7, 0x18]                           |         __asm ("strd r1, r1, [r7, 0x18]");
    0x00118150 str r1, [r7, 0x20]                                |         *((r7 + 0x20)) = r1;
                                                                 | label_8:
    0x00118152 ldr r0, [r5, 0xc]                                 |         r0 = *((r5 + 0xc));
    0x00118154 movw r2, 0x4040                                   |         r2 = 0x4040;
    0x00118158 mov r1, sl                                        |         r1 = sl;
    0x0011815a blx 0x3a9b8                                       |         r0 = fcn_0003a9b8 ();
    0x0011815e subs.w sb, r0, 0                                  |         sb = r0 - 0;
    0x00118162 bge 0x118134                                      |         
                                                                 |     } while (sb >= r0);
    0x00118164 blx 0x3f370                                       |     r0 = fcn_0003f370 ();
    0x00118168 ldr r3, [r0]                                      |     r3 = *(r0);
    0x0011816a cmp r3, 0x58                                      |     
                                                                 |     if (r3 != 0x58) {
    0x0011816c bne 0x11811c                                      |         goto label_2;
                                                                 |     }
    0x0011816e ldrb r3, [r5, 0x1c]                               |     r3 = *((r5 + 0x1c));
    0x00118170 mov r1, r8                                        |     r1 = r8;
    0x00118172 ldr r0, [r5, 0xc]                                 |     r0 = *((r5 + 0xc));
    0x00118174 orr r3, r3, 0x40                                  |     r3 |= 0x40;
    0x00118178 strb r3, [r5, 0x1c]                               |     *((r5 + 0x1c)) = r3;
    0x0011817a ldr.w r2, [r4, 0x1b4]                             |     r2 = *((r4 + 0x1b4));
    0x0011817e blx 0x3a57c                                       |     r0 = fcn_0003a57c ();
    0x00118182 mov sb, r0                                        |     sb = r0;
    0x00118184 b 0x11811c                                        |     goto label_2;
                                                                 | label_5:
    0x00118186 mvn r0, 0xb                                       |     r0 = ~0xb;
                                                                 | label_20:
    0x0011818a ldrb.w r3, [r4, 0x100]                            |     r3 = *((r4 + 0x100));
    0x0011818e orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00118192 strb.w r3, [r4, 0x100]                            |     *((r4 + 0x100)) = r3;
    0x00118196 b 0x117f44                                        |     goto label_0;
                                                                 | label_15:
    0x00118198 ldr r1, [pc, 0x1b0]                               |     
    0x0011819a movs r2, 0x49                                     |     r2 = 0x49;
    0x0011819c ldr r3, [pc, 0x1b0]                               |     
    0x0011819e ldr r0, [pc, 0x1b4]                               |     
    0x001181a0 add r1, pc                                        |     r1 = 0x2304f0;
    0x001181a2 add r3, pc                                        |     r3 = 0x2304f6;
    0x001181a4 adds r1, 7                                        |     r1 += 7;
    0x001181a6 add r0, pc                                        |     r0 = 0x230500;
    0x001181a8 blx 0x3b5e8                                       |     fcn_0003b5e8 ();
                                                                 | label_21:
    0x001181ac lsrs r3, r2, 0x1d                                 |     r3 = r2 >> 0x1d;
                                                                 |     if (r3 != r2) {
    0x001181ae bne.w 0x1182ba                                    |         goto label_27;
                                                                 |     }
    0x001181b2 lsl.w r3, sb, 6                                   |     r3 = sb << 6;
    0x001181b6 cmp.w r3, 0x400000                                |     
                                                                 |     if (r3 > 0x400000) {
    0x001181ba bhi.w 0x118036                                    |         goto label_3;
                                                                 |     }
    0x001181be cmp r3, 1                                         |     
    0x001181c0 ldr.w r1, [r4, 0x1a0]                             |     r1 = *((r4 + 0x1a0));
    0x001181c4 it lo                                             |     
                                                                 |     if (r3 >= 1) {
    0x001181c6 movlo r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x001181c8 adds r3, 7                                        |     r3 += 7;
    0x001181ca bic r3, r3, 7                                     |     r3 = BIT_MASK (r3, 7);
    0x001181ce sub.w sp, sp, r3                                  |     
    0x001181d2 mov r8, sp                                        |     r8 = sp;
                                                                 |     if (r1 == 0) {
    0x001181d4 cbz r1, 0x118212                                  |         goto label_28;
                                                                 |     }
    0x001181d6 mov r0, r8                                        |     r0 = r8;
    0x001181d8 blx 0x3b8e8                                       |     fcn_0003b8e8 ();
    0x001181dc b 0x1180dc                                        |     goto label_4;
                                                                 | label_16:
    0x001181de lsrs.w r3, sl, 0x1d                               |     r3 = sl >> 0x1d;
    0x001181e2 str r1, [r7, 4]                                   |     *((r7 + 4)) = r1;
                                                                 |     if (r3 != sl) {
    0x001181e4 bne 0x118186                                      |         goto label_5;
                                                                 |     }
    0x001181e6 lsl.w r0, sl, 3                                   |     r0 = sl << 3;
    0x001181ea cmp r0, 1                                         |     
    0x001181ec it lo                                             |     
                                                                 |     if (r0 >= 1) {
    0x001181ee movlo r0, 1                                       |         r0 = 1;
                                                                 |     }
    0x001181f0 blx 0x3d0b4                                       |     fcn_0003d0b4 ();
    0x001181f4 ldr r1, [r7, 4]                                   |     r1 = *((r7 + 4));
    0x001181f6 str.w r0, [r4, 0x1a0]                             |     __asm ("str.w r0, aav.0x000000ff");
    0x001181fa cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x001181fc bne.w 0x117f9a                                    |         goto label_6;
                                                                 |     }
    0x00118200 ldrb.w r3, [r4, 0x100]                            |     r3 = *((r4 + 0x100));
    0x00118204 mvn r0, 0xb                                       |     r0 = ~0xb;
    0x00118208 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0011820c strb.w r3, [r4, 0x100]                            |     *((r4 + 0x100)) = r3;
    0x00118210 b 0x117f44                                        |     goto label_0;
                                                                 | label_28:
    0x00118212 ldr r1, [pc, 0x144]                               |     
    0x00118214 movs r2, 0x16                                     |     r2 = 0x16;
    0x00118216 ldr r3, [pc, 0x144]                               |     
    0x00118218 ldr r0, [pc, 0x144]                               |     
    0x0011821a add r1, pc                                        |     r1 = 0x230578;
    0x0011821c add r3, pc                                        |     r3 = 0x23057e;
    0x0011821e adds r1, 7                                        |     r1 += 7;
    0x00118220 add r0, pc                                        |     r0 = 0x230584;
    0x00118222 blx 0x3b5e8                                       |     fcn_0003b5e8 ();
                                                                 | label_22:
    0x00118226 cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x00118228 bne.w 0x118110                                    |         goto label_7;
                                                                 |     }
    0x0011822c ldr.w r3, [r4, 0x15c]                             |     r3 = *((r4 + 0x15c));
    0x00118230 add.w sl, r7, 8                                   |     sl = r7 + 8;
    0x00118234 str.w sb, [r7, 0x14]                              |     __asm ("str.w sb, [r7, 0x14]");
    0x00118238 str r1, [r7, 8]                                   |     *((r7 + 8)) = r1;
    0x0011823a strd r1, r8, [r7, 0xc]                            |     __asm ("strd r1, r8, [r7, 0xc]");
    0x0011823e strd r1, r1, [r7, 0x18]                           |     __asm ("strd r1, r1, [r7, 0x18]");
    0x00118242 str r1, [r7, 0x20]                                |     *((r7 + 0x20)) = r1;
    0x00118244 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00118246 beq 0x118152                                      |         goto label_8;
                                                                 |     }
    0x00118248 add.w sb, r3, 1                                   |     sb = r3 + 1;
    0x0011824c lsl.w sb, sb, 2                                   |     sb <<= 2;
    0x00118250 add.w fp, sb, 8                                   |     
    0x00118254 cmp.w fp, 0x400000                                |     
    0x00118258 str.w fp, [r7, 0x1c]                              |     __asm ("str.w fp, [r7, 0x1c]");
                                                                 |     if (fp <= 0x400000) {
    0x0011825c bhi 0x1182a0                                      |         
    0x0011825e mov r3, fp                                        |         r3 = fp;
    0x00118260 mov r2, fp                                        |         r2 = fp;
    0x00118262 cmp r3, 1                                         |         
    0x00118264 str r1, [r7, 4]                                   |         *((r7 + 4)) = r1;
    0x00118266 it lo                                             |         
                                                                 |         if (r3 >= 1) {
    0x00118268 movlo r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x0011826a adds r3, 7                                        |         r3 += 7;
    0x0011826c bic r3, r3, 7                                     |         r3 = BIT_MASK (r3, 7);
    0x00118270 sub.w sp, sp, r3                                  |         
    0x00118274 mov r0, sp                                        |         r0 = sp;
    0x00118276 blx 0x39d84                                       |         fcn_00039d84 ();
    0x0011827a cmp.w fp, 0xb                                     |         
    0x0011827e ldr r1, [r7, 4]                                   |         r1 = *((r7 + 4));
    0x00118280 str r0, [r7, 0x18]                                |         *((r7 + 0x18)) = r0;
                                                                 |         if (fp < 0xb) {
    0x00118282 bls 0x1182d0                                      |             goto label_29;
                                                                 |         }
    0x00118284 movs r3, 1                                        |         r3 = 1;
    0x00118286 ldr.w r1, [r4, 0x160]                             |         r1 = *((r4 + 0x160));
    0x0011828a strd r3, r3, [r0, 4]                              |         __asm ("strd r3, r3, [r0, 4]");
    0x0011828e add.w r3, sb, 8                                   |         r3 = sb + 8;
    0x00118292 str r3, [r0]                                      |         *(r0) = r3;
    0x00118294 sub.w r2, sb, 4                                   |         r2 = sb - 4;
    0x00118298 adds r0, 0xc                                      |         r0 += 0xc;
    0x0011829a blx 0x3b8e8                                       |         fcn_0003b8e8 ();
    0x0011829e b 0x118152                                        |         goto label_8;
                                                                 |     }
    0x001182a0 ldr r1, [pc, 0xc0]                                |     
    0x001182a2 movw r2, 0x419                                    |     r2 = 0x419;
    0x001182a6 ldr r3, [pc, 0xc0]                                |     
    0x001182a8 ldr r0, [pc, 0xc0]                                |     
    0x001182aa add r1, pc                                        |     r1 = 0x230612;
    0x001182ac add r3, pc                                        |     r3 = 0x23061a;
    0x001182ae adds r1, 7                                        |     r1 += 7;
    0x001182b0 add r0, pc                                        |     r0 = 0x230620;
    0x001182b2 blx 0x3b5e8                                       |     fcn_0003b5e8 ();
                                                                 | label_12:
    0x001182b6 blx 0x3d208                                       |     fcn_0003d208 ();
                                                                 | label_27:
    0x001182ba ldr r1, [pc, 0xb4]                                |     
    0x001182bc movw r2, 0x407                                    |     r2 = 0x407;
    0x001182c0 ldr r3, [pc, 0xb0]                                |     
    0x001182c2 ldr r0, [pc, 0xb4]                                |     
    0x001182c4 add r1, pc                                        |     r1 = 0x23063a;
    0x001182c6 add r3, pc                                        |     r3 = 0x23063e;
    0x001182c8 adds r1, 7                                        |     r1 += 7;
    0x001182ca add r0, pc                                        |     r0 = 0x230648;
    0x001182cc blx 0x3b5e8                                       |     fcn_0003b5e8 ();
                                                                 | label_29:
    0x001182d0 str r1, [r1]                                      |     *(r1) = r1;
    0x001182d2 udf 0xff                                          |     __asm ("udf 0xff");
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/libsystemd-shared-249.so @ 0x123f88 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.device_monitor_receive_device ()         | void device_monitor_receive_device (int16_t arg_40h, int16_t arg_80h, int16_t arg_100h, int16_t arg_20c0h, uint32_t arg1, int16_t arg2) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     int16_t var_8h;
                                                         |     int16_t var_ch;
                                                         |     int16_t var_1ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00123f88 svcmi 0xf0e92d                            |     __asm ("svcmi aav.0x000000ff");
    0x00123f8c mov r7, r1                                |     r7 = r1;
    0x00123f8e ldr.w r1, [pc, 0x5b0]                     |     r1 = *(0x00124540);
    0x00123f92 sub.w sp, sp, 0x2100                      |     
    0x00123f96 sub sp, 4                                 |     
    0x00123f98 movs r2, 0                                |     r2 = 0;
    0x00123f9a ldr.w r3, [pc, 0x5a8]                     |     
    0x00123f9e add.w r5, sp, 0x20c0                      |     r5 += arg_20c0h;
    0x00123fa2 add r1, pc                                |     r1 += pc;
    0x00123fa4 adds r5, 0x3c                             |     r5 += 0x3c;
    0x00123fa6 add r4, sp, 0x100                         |     r4 += arg_100h;
    0x00123fa8 add.w sb, sp, 0x40                        |     sb += arg_40h;
    0x00123fac ldr r3, [r1, r3]                          |     r3 = *((r1 + r3));
    0x00123fae add r1, sp, 0x80                          |     r1 += arg_80h;
    0x00123fb0 sub.w sl, r4, 4                           |     sl = r4 - 4;
    0x00123fb4 ldr r3, [r3]                              |     r3 = *(0x124546);
    0x00123fb6 str r3, [r5]                              |     *(r5) = r3;
    0x00123fb8 mov.w r3, 0                               |     r3 = 0;
    0x00123fbc mov.w r3, 0x2000                          |     r3 = 0x2000;
    0x00123fc0 str r3, [r4, -0xc4]                       |     *((r4 - 0xc4)) = r3;
    0x00123fc4 subs r3, r1, 4                            |     r3 = r1 - 4;
    0x00123fc6 str r3, [r4, -0xb8]                       |     *((r4 - 0xb8)) = r3;
    0x00123fca movs r3, 0x80                             |     r3 = 0x80;
    0x00123fcc str r3, [r4, -0xb4]                       |     *((r4 - 0xb4)) = r3;
    0x00123fd0 sub.w r3, sb, 8                           |     r3 = sb - 8;
    0x00123fd4 str r3, [r4, -0xb0]                       |     *((r4 - 0xb0)) = r3;
    0x00123fd8 movs r3, 1                                |     r3 = 1;
    0x00123fda str r3, [r4, -0xac]                       |     *((r4 - 0xac)) = r3;
    0x00123fde sub.w r3, r1, 0x1c                        |     r3 = r1 - 0x1c;
    0x00123fe2 str r3, [r4, -0xa8]                       |     *((r4 - 0xa8)) = r3;
    0x00123fe6 movs r3, 0x18                             |     r3 = 0x18;
    0x00123fe8 str r2, [r4, -0xdc]                       |     *((r4 - 0xdc)) = r2;
    0x00123fec str sl, [r4, -0xc8]                       |     *((r4 - 0xc8)) = sl;
    0x00123ff0 str r2, [r4, -0xa0]                       |     *((r4 - 0xa0)) = r2;
    0x00123ff4 str r3, [r4, -0xa4]                       |     *((r4 - 0xa4)) = r3;
    0x00123ff8 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00123ffa beq.w 0x12429a                            |         goto label_7;
                                                         |     }
    0x00123ffe cmp r7, 0                                 |     
                                                         |     if (r7 == 0) {
    0x00124000 beq.w 0x1242b0                            |         goto label_8;
                                                         |     }
    0x00124004 mov r5, r0                                |     r5 = r0;
    0x00124006 subs r1, 0x38                             |     r1 -= 0x38;
    0x00124008 ldr r0, [r0, 4]                           |     r0 = *((r0 + 4));
    0x0012400a blx 0x3e4a8                               |     r0 = fcn_0003e4a8 ();
    0x0012400e subs.w r8, r0, 0                          |     r8 = r0 - 0;
                                                         |     if (r8 < r0) {
    0x00124012 blt.w 0x12421c                            |         goto label_9;
                                                         |     }
    0x00124016 cmp.w r8, 0x1f                            |     
                                                         |     if (r8 <= 0x1f) {
    0x0012401a ble.w 0x1241dc                            |         goto label_10;
                                                         |     }
    0x0012401e ldr r6, [r4, -0xa0]                       |     r6 = *((r4 - 0xa0));
    0x00124022 ands r6, r6, 0x20                         |     r6 &= 0x20;
                                                         |     if (r6 != r6) {
    0x00124026 bne.w 0x1241dc                            |         goto label_10;
                                                         |     }
    0x0012402a ldr r3, [r4, -0x7c]                       |     r3 = *((r4 - 0x7c));
    0x0012402e cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00124030 beq.w 0x124234                            |         goto label_11;
                                                         |     }
    0x00124034 cmp r3, 1                                 |     
                                                         |     if (r3 == 1) {
    0x00124036 beq.w 0x124300                            |         goto label_12;
                                                         |     }
                                                         |     do {
                                                         | label_1:
    0x0012403a ldr r3, [r4, -0xa4]                       |         r3 = *((r4 - 0xa4));
    0x0012403e cmp r3, 0xb                               |         
                                                         |         if (r3 < 0xb) {
    0x00124040 bls.w 0x124252                            |             goto label_13;
                                                         |         }
    0x00124044 ldr r3, [r4, -0xa8]                       |         r3 = *((r4 - 0xa8));
    0x00124048 movs r0, r0                               |         
    0x0012404a movs r0, r0                               |         
    0x0012404c adr r1, 0x370                             |         r1 = case.0x1574d2.11;
    0x0012404e movs r7, r2                               |         r7 = r2;
    0x00124050 movs r1, r0                               |         r1 = r0;
    0x00124052 movs r0, r0                               |         
    0x00124054 eors r0, r1                               |         r0 ^= r1;
    0x00124056 movs r2, r2                               |         
    0x00124058 movs r7, r0                               |         r7 = r0;
    0x0012405a movs r0, r0                               |         
    0x0012405c subs r7, 0x8c                             |         r7 -= 0x8c;
    0x0012405e movs r2, r2                               |         
    0x00124060 strh r1, [r7, 0xa]                        |         *((r7 + 0xa)) = r1;
    0x00124062 ldr r2, [r4, -0x4]                        |         r2 = *((r4 - 0x4));
    0x00124066 movw r3, 0x696c                           |         
    0x0012406a movt r3, 0x7562                           |         r3 = 0x7562696c;
    0x0012406e cmp r2, r3                                |         
                                                         |         if (r2 == r3) {
    0x00124070 beq.w 0x12437a                            |             goto label_14;
                                                         |         }
                                                         | label_5:
    0x00124074 mov r0, sl                                |         r0 = sl;
    0x00124076 blx 0x3b5f4                               |         r0 = fcn_0003b5f4 ();
    0x0012407a add.w fp, r0, 1                           |         
    0x0012407e cmp r8, fp                                |         
    0x00124080 ite gt                                    |         
                                                         |         if (r8 <= fp) {
    0x00124082 movgt r3, 0                               |             r3 = 0;
                                                         |         }
                                                         |         if (r8 > fp) {
    0x00124084 movle r3, 1                               |             r3 = 1;
                                                         |         }
    0x00124086 cmp.w fp, 4                               |         
    0x0012408a it ls                                     |         
                                                         |         if (fp > 4) {
    0x0012408c orrls r3, r3, 1                           |             r3 |= 1;
                                                         |         }
    0x00124090 cmp r3, 0                                 |         
                                                         |         if (r3 != 0) {
    0x00124092 bne.w 0x124400                            |             goto label_15;
                                                         |         }
    0x00124096 ldr.w r1, [pc, 0x4b0]                     |         
    0x0012409a mov r0, sl                                |         r0 = sl;
    0x0012409c add r1, pc                                |         r1 = 0x2485ea;
    0x0012409e blx 0x3c930                               |         r0 = fcn_0003c930 ();
    0x001240a2 cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x001240a4 beq.w 0x12445a                            |             goto label_16;
                                                         |         }
                                                         | label_10:
    0x001241dc blx 0x3d534                               |         r0 = fcn_0003d534 ();
    0x001241e0 cmp r0, 6                                 |         
    0x001241e2 it le                                     |         
                                                         |         if (r0 > 6) {
    0x001241e4 mvnle r6, 0x15                            |             r6 = ~0x15;
                                                         |         }
                                                         |         if (r0 > 6) {
    0x001241e8 bgt 0x12426e                              |             goto label_17;
                                                         |         }
                                                         | label_9:
    0x0012421c blx 0x3f370                               |         r0 = fcn_0003f370 ();
    0x00124220 ldr r6, [r0]                              |         r6 = *(r0);
    0x00124222 mov r5, r0                                |         r5 = r0;
    0x00124224 cmp r6, 4                                 |         
                                                         |         if (r6 != 4) {
    0x00124226 beq 0x124230                              |             
    0x00124228 blx 0x3d534                               |             r0 = fcn_0003d534 ();
    0x0012422c cmp r0, 6                                 |             
                                                         |             if (r0 > 6) {
    0x0012422e bgt 0x1242c6                              |                 goto label_18;
                                                         |             }
                                                         |         }
                                                         | label_0:
    0x00124230 rsbs r6, r6, 0                            |         r6 -= ;
    0x00124232 b 0x1241ea                                |         void (*0x1241ea)() ();
                                                         | label_11:
    0x00124234 ldr.w r3, [r5, 0x8c]                      |         r3 = *((r5 + 0x8c));
                                                         |         if (r3 == 0) {
    0x00124238 cbz r3, 0x124244                          |             goto label_19;
                                                         |         }
    0x0012423a ldr r2, [r4, -0x80]                       |         r2 = *((r4 - 0x80));
    0x0012423e cmp r3, r2                                |         
    0x00124240 beq.w 0x12403a                            |         
                                                         |     } while (r3 == r2);
                                                         | label_19:
    0x00124244 blx 0x3d534                               |     r0 = fcn_0003d534 ();
    0x00124248 cmp r0, 6                                 |     
                                                         |     if (r0 > 6) {
    0x0012424a bgt 0x124340                              |         goto label_20;
                                                         |     }
                                                         |     do {
                                                         | label_2:
    0x0012424c mvn r6, 0xa                               |         r6 = ~0xa;
    0x00124250 b 0x1241ea                                |         void (*0x1241ea)() ();
                                                         | label_13:
    0x00124252 blx 0x3d534                               |         r0 = fcn_0003d534 ();
    0x00124256 cmp r0, 6                                 |         
    0x00124258 ble 0x12424c                              |         
                                                         |     } while (r0 <= 6);
    0x0012425a ldr r2, [pc, 0x300]                       |     
    0x0012425c movs r1, 0xb                              |     r1 = 0xb;
    0x0012425e ldr r5, [pc, 0x300]                       |     
    0x00124260 mov.w r3, 0x1d8                           |     r3 = 0x1d8;
    0x00124264 ldr r0, [pc, 0x2fc]                       |     
    0x00124266 add r2, pc                                |     r2 = 0x2487c8;
    0x00124268 add r5, pc                                |     r5 = 0x2487ce;
    0x0012426a add r0, pc                                |     r0 = 0x2487d2;
    0x0012426c b 0x124280                                |     goto label_3;
                                                         | label_17:
    0x0012426e ldr r2, [pc, 0x2f8]                       |     
    0x00124270 movs r1, 0x16                             |     r1 = 0x16;
    0x00124272 ldr r5, [pc, 0x2f8]                       |     
    0x00124274 mov.w r3, 0x1c6                           |     r3 = 0x1c6;
    0x00124278 ldr r0, [pc, 0x2f4]                       |     
    0x0012427a add r2, pc                                |     r2 = 0x2487e8;
    0x0012427c add r5, pc                                |     r5 = 0x2487ee;
    0x0012427e add r0, pc                                |     r0 = 0x2487f2;
                                                         | label_3:
    0x00124280 strd r0, r5, [sp]                         |     __asm ("strd r0, r5, [sp]");
    0x00124284 movt r1, 0x4000                           |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x00124288 adds r2, 7                                |     r2 += 7;
    0x0012428a movs r0, 7                                |     r0 = 7;
    0x0012428c blx 0x39c0c                               |     r0 = fcn_00039c0c ();
    0x00124290 subs r6, r0, 0                            |     r6 = r0 - 0;
                                                         |     if (r6 < r0) {
    0x00124292 blt 0x1241ea                              |         void (*0x1241ea)() ();
                                                         |     }
                                                         | label_7:
    0x0012429a ldr r1, [pc, 0x2d8]                       |     
    0x0012429c movw r2, 0x1bb                            |     r2 = 0x1bb;
    0x001242a0 ldr r3, [pc, 0x2d4]                       |     
    0x001242a2 ldr r0, [pc, 0x2d8]                       |     
    0x001242a4 add r1, pc                                |     r1 = 0x24881e;
    0x001242a6 add r3, pc                                |     r3 = 0x248822;
    0x001242a8 adds r1, 7                                |     r1 += 7;
    0x001242aa add r0, pc                                |     r0 = 0x24882c;
    0x001242ac blx 0x3b5e8                               |     fcn_0003b5e8 ();
                                                         | label_8:
    0x001242b0 ldr r1, [pc, 0x2cc]                       |     
    0x001242b2 mov.w r2, 0x1bc                           |     r2 = 0x1bc;
    0x001242b6 ldr r3, [pc, 0x2cc]                       |     
    0x001242b8 ldr r0, [pc, 0x2cc]                       |     
    0x001242ba add r1, pc                                |     r1 = 0x24883e;
    0x001242bc add r3, pc                                |     r3 = 0x248846;
    0x001242be adds r1, 7                                |     r1 += 7;
    0x001242c0 add r0, pc                                |     r0 = 0x24884c;
    0x001242c2 blx 0x3b5e8                               |     fcn_0003b5e8 ();
                                                         | label_18:
    0x001242c6 ldr r3, [pc, 0x2c4]                       |     
    0x001242c8 mov r1, r6                                |     r1 = r6;
    0x001242ca ldr r2, [pc, 0x2c4]                       |     
    0x001242cc movs r0, 7                                |     r0 = 7;
    0x001242ce add r3, pc                                |     r3 = 0x248860;
    0x001242d0 str r3, [sp, 4]                           |     var_4h = r3;
    0x001242d2 add r2, pc                                |     r2 = 0x248868;
    0x001242d4 ldr r3, [pc, 0x2bc]                       |     
    0x001242d6 adds r2, 7                                |     r2 += 7;
    0x001242d8 add r3, pc                                |     r3 = 0x248870;
    0x001242da str r3, [sp]                              |     *(sp) = r3;
    0x001242dc movw r3, 0x1c1                            |     r3 = 0x1c1;
    0x001242e0 blx 0x39c0c                               |     fcn_00039c0c ();
    0x001242e4 ldr r6, [r5]                              |     r6 = *(r5);
    0x001242e6 b 0x124230                                |     goto label_0;
                                                         | label_12:
    0x00124300 ldr fp, [r4, -0x80]                       |     fp = *((r4 - 0x80));
    0x00124304 cmp.w fp, 0                               |     
                                                         |     if (fp == 0) {
    0x00124308 beq.w 0x12403a                            |         goto label_1;
                                                         |     }
    0x0012430c blx 0x3d534                               |     r0 = fcn_0003d534 ();
    0x00124310 cmp r0, 6                                 |     
                                                         |     if (r0 <= 6) {
    0x00124312 ble 0x12424c                              |         goto label_2;
                                                         |     }
    0x00124314 ldr r2, [pc, 0x284]                       |     
    0x00124316 movs r1, 0xb                              |     r1 = 0xb;
    0x00124318 ldr r3, [pc, 0x284]                       |     
    0x0012431a ldr r0, [pc, 0x288]                       |     
    0x0012431c add r2, pc                                |     r2 = 0x2488bc;
    0x0012431e str.w fp, [sp, 8]                         |     __asm ("str.w fp, [var_8h]");
    0x00124322 add r3, pc                                |     r3 = 0x2488c6;
    0x00124324 adds r2, 7                                |     r2 += 7;
    0x00124326 str r3, [sp, 4]                           |     var_4h = r3;
    0x00124328 add r0, pc                                |     r0 = 0x2488d2;
    0x0012432a mov.w r3, 0x1d2                           |     r3 = 0x1d2;
                                                         | label_4:
    0x0012432e str r0, [sp]                              |     *(sp) = r0;
    0x00124330 movt r1, 0x4000                           |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x00124334 movs r0, 7                                |     r0 = 7;
    0x00124336 blx 0x39c0c                               |     r0 = fcn_00039c0c ();
    0x0012433a subs r6, r0, 0                            |     r6 = r0 - 0;
                                                         |     if (r6 >= r0) {
    0x0012433c bge 0x124294                              |         void (*0x124294)() ();
                                                         |     }
    0x0012433e b 0x1241ea                                |     void (*0x1241ea)() ();
                                                         | label_20:
    0x00124340 ldr r2, [pc, 0x264]                       |     
    0x00124342 movs r1, 0xb                              |     r1 = 0xb;
    0x00124344 ldr r5, [pc, 0x264]                       |     
    0x00124346 movw r3, 0x1cd                            |     r3 = 0x1cd;
    0x0012434a ldr r0, [pc, 0x264]                       |     
    0x0012434c add r2, pc                                |     r2 = 0x2488f8;
    0x0012434e add r5, pc                                |     r5 = 0x2488fe;
    0x00124350 add r0, pc                                |     r0 = 0x248906;
    0x00124352 b 0x124280                                |     goto label_3;
    0x00124354 blx 0x3d534                               |     r0 = fcn_0003d534 ();
    0x00124358 cmp r0, 6                                 |     
                                                         |     if (r0 <= 6) {
    0x0012435a ble.w 0x12424c                            |         goto label_2;
                                                         |     }
    0x0012435e ldr r2, [pc, 0x254]                       |     
    0x00124360 movs r1, 0xb                              |     r1 = 0xb;
    0x00124362 ldr r3, [pc, 0x254]                       |     
    0x00124364 ldr r0, [pc, 0x254]                       |     
    0x00124366 add r2, pc                                |     r2 = 0x248920;
    0x00124368 str.w fp, [sp, 8]                         |     __asm ("str.w fp, [var_8h]");
    0x0012436c add r3, pc                                |     r3 = 0x24892a;
    0x0012436e adds r2, 7                                |     r2 += 7;
    0x00124370 str r3, [sp, 4]                           |     var_4h = r3;
    0x00124372 add r0, pc                                |     r0 = 0x248932;
    0x00124374 movw r3, 0x1dd                            |     r3 = 0x1dd;
    0x00124378 b 0x12432e                                |     goto label_4;
                                                         | label_14:
    0x0012437a ldr.w r2, [sl, 4]                         |     r2 = *((sl + 4));
    0x0012437e movw r3, 0x6564                           |     
    0x00124382 movt r3, 0x76                             |     r3 = 0x766564;
    0x00124386 cmp r2, r3                                |     
                                                         |     if (r2 != r3) {
    0x00124388 bne.w 0x124074                            |         goto label_5;
                                                         |     }
    0x0012438c ldr r3, [r4, 4]                           |     r3 = *((r4 + 4));
    0x0012438e movw fp, 0xedfe                           |     
    0x00124392 movt fp, 0xfeca                           |     fp = 0xfecaedfe;
    0x00124396 cmp r3, fp                                |     
    0x00124398 str r3, [sp, 0x1c]                        |     var_1ch = r3;
                                                         |     if (r3 == fp) {
    0x0012439a beq 0x1243d8                              |         goto label_21;
                                                         |     }
    0x0012439c blx 0x3d534                               |     r0 = fcn_0003d534 ();
    0x001243a0 cmp r0, 6                                 |     
                                                         |     if (r0 <= 6) {
    0x001243a2 ble.w 0x12424c                            |         goto label_2;
                                                         |     }
    0x001243a6 ldr r3, [sp, 0x1c]                        |     r3 = var_1ch;
    0x001243a8 movs r1, 0xb                              |     r1 = 0xb;
    0x001243aa ldr r2, [pc, 0x214]                       |     
    0x001243ac ldr r5, [pc, 0x214]                       |     
    0x001243ae ldr r0, [pc, 0x218]                       |     
    0x001243b0 str r3, [sp, 8]                           |     var_8h = r3;
    0x001243b2 add r2, pc                                |     r2 = 0x248978;
    0x001243b4 add r5, pc                                |     r5 = 0x24897c;
    0x001243b6 movw r3, 0x1e3                            |     r3 = 0x1e3;
    0x001243ba add r0, pc                                |     r0 = 0x248988;
    0x001243bc str.w fp, [sp, 0xc]                       |     __asm ("str.w fp, [var_ch]");
                                                         | label_6:
    0x001243c0 strd r0, r5, [sp]                         |     __asm ("strd r0, r5, [sp]");
    0x001243c4 adds r2, 7                                |     r2 += 7;
    0x001243c6 movt r1, 0x4000                           |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x001243ca movs r0, 7                                |     r0 = 7;
    0x001243cc blx 0x39c0c                               |     r0 = fcn_00039c0c ();
    0x001243d0 subs r6, r0, 0                            |     r6 = r0 - 0;
                                                         |     if (r6 >= r0) {
    0x001243d2 bge.w 0x124294                            |         void (*0x124294)() ();
                                                         |     }
    0x001243d6 b 0x1241ea                                |     void (*0x1241ea)() ();
                                                         | label_21:
    0x001243d8 ldr r1, [r4, 0xc]                         |     r1 = *((r4 + 0xc));
    0x001243da add.w fp, r1, 0x20                        |     
    0x001243de cmp fp, r8                                |     
                                                         |     if (fp > r8) {
    0x001243e0 bhi 0x124438                              |         goto label_22;
                                                         |     }
    0x001243e2 sub.w r2, r8, r1                          |     r2 = r8 - r1;
    0x001243e6 sub.w r0, sb, 0x1c                        |     r0 = sb - 0x1c;
    0x001243ea add r1, sl                                |     r1 += sl;
    0x001243ec blx 0x3c3ac                               |     r0 = fcn_0003c3ac ();
    0x001243f0 subs.w r8, r0, 0                          |     r8 = r0 - 0;
                                                         |     if (r8 < r0) {
    0x001243f4 blt 0x12441e                              |         void (*0x12441e)() ();
                                                         |     }
    0x001243f6 ldr r0, [r4, -0xdc]                       |     r0 = *((r4 - 0xdc));
    0x001243fa blx 0x3af60                               |     fcn_0003af60 ();
    0x001243fe b 0x1240c0                                |     void (*0x1240c0)() ();
                                                         | label_15:
    0x00124400 blx 0x3d534                               |     r0 = fcn_0003d534 ();
    0x00124404 cmp r0, 6                                 |     
                                                         |     if (r0 <= 6) {
    0x00124406 ble.w 0x12424c                            |         goto label_2;
                                                         |     }
    0x0012440a ldr r2, [pc, 0x1c0]                       |     
    0x0012440c movs r1, 0xb                              |     r1 = 0xb;
    0x0012440e ldr r5, [pc, 0x1c0]                       |     
    0x00124410 movw r3, 0x1f5                            |     r3 = 0x1f5;
    0x00124414 ldr r0, [pc, 0x1bc]                       |     
    0x00124416 add r2, pc                                |     r2 = 0x2489e8;
    0x00124418 add r5, pc                                |     r5 = 0x2489ee;
    0x0012441a add r0, pc                                |     r0 = 0x2489f2;
    0x0012441c b 0x124280                                |     goto label_3;
                                                         | label_22:
    0x00124438 blx 0x3d534                               |     r0 = fcn_0003d534 ();
    0x0012443c cmp r0, 6                                 |     
                                                         |     if (r0 <= 6) {
    0x0012443e ble.w 0x12424c                            |         goto label_2;
                                                         |     }
    0x00124442 ldr r2, [pc, 0x194]                       |     
    0x00124444 movs r1, 0xb                              |     r1 = 0xb;
    0x00124446 ldr r5, [pc, 0x194]                       |     
    0x00124448 mov.w r3, 0x1e8                           |     r3 = 0x1e8;
    0x0012444c ldr r0, [pc, 0x190]                       |     
    0x0012444e add r2, pc                                |     r2 = 0x248a2c;
    0x00124450 strd fp, r8, [sp, 8]                      |     __asm ("strd fp, r8, [sp, 8]");
    0x00124454 add r5, pc                                |     r5 = 0x248a36;
    0x00124456 add r0, pc                                |     r0 = 0x248a3a;
    0x00124458 b 0x1243c0                                |     goto label_6;
                                                         | label_16:
    0x0012445a blx 0x3d534                               |     r0 = fcn_0003d534 ();
    0x0012445e cmp r0, 6                                 |     
                                                         |     if (r0 <= 6) {
    0x00124460 ble.w 0x12424c                            |         goto label_2;
                                                         |     }
    0x00124464 ldr r2, [pc, 0x17c]                       |     
    0x00124466 movs r1, 0xb                              |     r1 = 0xb;
    0x00124468 ldr r5, [pc, 0x17c]                       |     
    0x0012446a mov.w r3, 0x1fa                           |     r3 = 0x1fa;
    0x0012446e ldr r0, [pc, 0x17c]                       |     
    0x00124470 add r2, pc                                |     r2 = 0x248a58;
    0x00124472 add r5, pc                                |     r5 = 0x248a5e;
    0x00124474 add r0, pc                                |     r0 = 0x248a66;
    0x00124476 b 0x124280                                |     goto label_3;
                                                         | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/libsystemd-shared-249.so @ 0xf7464 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.get_user_creds ()                                    | void get_user_creds (int16_t arg_38h, int16_t arg_3ch, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_0h_2;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x000f7464 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x000f7468 mov r7, r2                                            |     r7 = r2;
    0x000f746a ldr r2, [pc, 0x1e4]                                   |     r2 = *(0xf7652);
    0x000f746c mov r5, r3                                            |     r5 = r3;
    0x000f746e sub sp, 0x14                                          |     
    0x000f7470 ldr r3, [pc, 0x1e0]                                   |     
    0x000f7472 add r2, pc                                            |     r2 += pc;
    0x000f7474 ldr.w sl, [sp, 0x38]                                  |     sl = *(arg_38h);
    0x000f7478 ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x000f747a ldr r3, [r3]                                          |     r3 = *(0xf7654);
    0x000f747c str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x000f747e mov.w r3, 0                                           |     r3 = 0;
    0x000f7482 mov.w r3, -1                                          |     r3 = -1;
    0x000f7486 str r3, [sp, 8]                                       |     var_8h = r3;
    0x000f7488 cmp r0, 0                                             |     
                                                                     |     if (arg_38h == ) {
    0x000f748a beq.w 0xf75f0                                         |         goto label_9;
                                                                     |     }
    0x000f748e mov r4, r0                                            |     r4 = r0;
    0x000f7490 ldr r0, [r0]                                          |     r0 = *(r0);
    0x000f7492 cmp r0, 0                                             |     
                                                                     |     if (arg_38h == ) {
    0x000f7494 beq.w 0xf7604                                         |         goto label_10;
                                                                     |     }
    0x000f7498 ldr r3, [sp, 0x3c]                                    |     r3 = *(arg_3ch);
    0x000f749a mov r8, r1                                            |     r8 = r1;
    0x000f749c ands fp, r3, 1                                        |     
                                                                     |     if (fp == r3) {
    0x000f74a0 beq 0xf751c                                           |         goto label_11;
                                                                     |     }
    0x000f74a2 orrs.w r3, r5, sl                                     |     r3 = r5 | sl;
    0x000f74a6 beq 0xf751c                                           |     
                                                                     |     while (1) {
    0x000f74a8 add r1, sp, 8                                         |         r1 += var_8h;
    0x000f74aa blx 0x3f578                                           |         r0 = fcn_0003f578 ();
    0x000f74ae mov r6, r0                                            |         r6 = r0;
    0x000f74b0 blx 0x3f370                                           |         fcn_0003f370 ();
    0x000f74b4 cmp r6, 0                                             |         
    0x000f74b6 mov.w r2, 0                                           |         r2 = 0;
    0x000f74ba mov sb, r0                                            |         sb = r0;
    0x000f74bc str r2, [r0]                                          |         *(r0) = r2;
                                                                     |         if (r6 < 0) {
    0x000f74be blt 0xf753c                                           |             goto label_12;
                                                                     |         }
    0x000f74c0 ldr r0, [sp, 8]                                       |         r0 = var_8h;
    0x000f74c2 blx 0x3ba18                                           |         r0 = fcn_0003ba18 ();
    0x000f74c6 mov r6, r0                                            |         r6 = r0;
    0x000f74c8 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x000f74ca beq 0xf7590                                           |             goto label_13;
                                                                     |         }
    0x000f74cc ldr r3, [r0]                                          |         r3 = *(r0);
    0x000f74ce str r3, [r4]                                          |         *(r4) = r3;
                                                                     | label_0:
    0x000f74d0 cmp.w r8, 0                                           |         
                                                                     |         if (r8 != 0) {
    0x000f74d4 beq 0xf74e8                                           |             
    0x000f74d6 ldr r0, [r6, 8]                                       |             r0 = *((r6 + 8));
    0x000f74d8 blx 0x387b0                                           |             r0 = fcn_000387b0 ();
    0x000f74dc cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x000f74de beq.w 0xf7630                                         |                 goto label_14;
                                                                     |             }
    0x000f74e2 ldr r3, [r6, 8]                                       |             r3 = *((r6 + 8));
    0x000f74e4 str.w r3, [r8]                                        |             __asm ("str.w r3, [r8]");
                                                                     |         }
                                                                     |         if (r7 != 0) {
    0x000f74e8 cbz r7, 0xf74fa                                       |             
    0x000f74ea ldr r0, [r6, 0xc]                                     |             r0 = *((r6 + 0xc));
    0x000f74ec blx 0x387b0                                           |             r0 = fcn_000387b0 ();
    0x000f74f0 cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x000f74f2 beq.w 0xf7630                                         |                 goto label_14;
                                                                     |             }
    0x000f74f6 ldr r3, [r6, 0xc]                                     |             r3 = *((r6 + 0xc));
    0x000f74f8 str r3, [r7]                                          |             *(r7) = r3;
                                                                     |         }
                                                                     |         if (r5 != 0) {
    0x000f74fa cbz r5, 0xf7506                                       |             
    0x000f74fc ldr r3, [sp, 0x3c]                                    |             r3 = *(arg_3ch);
    0x000f74fe ldr r4, [r6, 0x14]                                    |             r4 = *((r6 + 0x14));
    0x000f7500 lsls r2, r3, 0x1d                                     |             r2 = r3 << 0x1d;
                                                                     |             if (r2 < r3) {
    0x000f7502 bmi 0xf75b0                                           |                 goto label_15;
                                                                     |             }
                                                                     | label_8:
    0x000f7504 str r4, [r5]                                          |             *(r5) = r4;
                                                                     |         }
    0x000f7506 cmp.w sl, 0                                           |         
                                                                     |         if (sl == 0) {
    0x000f750a beq 0xf7572                                           |             goto label_2;
                                                                     |         }
    0x000f750c ldr r3, [sp, 0x3c]                                    |         r3 = *(arg_3ch);
    0x000f750e lsls r3, r3, 0x1d                                     |         r3 <<= 0x1d;
                                                                     |         if (r3 < r3) {
    0x000f7510 bmi 0xf75c2                                           |             goto label_16;
                                                                     |         }
                                                                     | label_6:
    0x000f7512 ldr r3, [r6, 0x18]                                    |         r3 = *((r6 + 0x18));
    0x000f7514 movs r6, 0                                            |         r6 = 0;
    0x000f7516 str.w r3, [sl]                                        |         __asm ("str.w r3, [sl]");
    0x000f751a b 0xf7574                                             |         goto label_3;
                                                                     | label_11:
    0x000f751c ldr r3, [sp, 0x3c]                                    |         r3 = *(arg_3ch);
    0x000f751e mov r2, r7                                            |         r2 = r7;
    0x000f7520 mov r1, r8                                            |         r1 = r8;
    0x000f7522 mov r0, r4                                            |         r0 = r4;
    0x000f7524 strd sl, r3, [sp]                                     |         __asm ("strd sl, r3, [sp]");
    0x000f7528 mov r3, r5                                            |         r3 = r5;
    0x000f752a bl 0xf7344                                            |         r0 = fcn_000f7344 (r0, r1, r2, r3, r4, r5);
    0x000f752e subs r6, r0, 0                                        |         r6 = r0 - 0;
                                                                     |         if (r6 >= r0) {
    0x000f7530 bge 0xf7572                                           |             goto label_2;
                                                                     |         }
    0x000f7532 cmn.w r6, 0x7b                                        |         
                                                                     |         if (r6 != 0x7b) {
    0x000f7536 bne 0xf7574                                           |             goto label_3;
                                                                     |         }
    0x000f7538 ldr r0, [r4]                                          |         r0 = *(r4);
    0x000f753a b 0xf74a8                                             |         
                                                                     |     }
                                                                     | label_12:
    0x000f753c ldr r0, [r4]                                          |     r0 = *(r4);
    0x000f753e blx 0x3f590                                           |     r0 = fcn_0003f590 ();
    0x000f7542 mov r6, r0                                            |     r6 = r0;
    0x000f7544 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x000f7546 bne 0xf74d0                                           |         goto label_0;
                                                                     |     }
                                                                     |     do {
                                                                     | label_1:
    0x000f7548 ldr.w r6, [sb]                                        |         r6 = *(sb);
    0x000f754c cmp r6, 0                                             |         
    0x000f754e it le                                                 |         
                                                                     |         if (r6 > 0) {
    0x000f7550 mvnle r6, 2                                           |             r6 = ~2;
                                                                     |         }
                                                                     |         if (r6 > 0) {
    0x000f7554 bgt 0xf75ac                                           |             goto label_17;
                                                                     |         }
                                                                     | label_4:
    0x000f7556 cmp.w fp, 0                                           |         
                                                                     |         if (fp != 0) {
    0x000f755a beq 0xf7574                                           |             
    0x000f755c ldr r3, [sp, 0x3c]                                    |             r3 = *(arg_3ch);
    0x000f755e mov r2, r7                                            |             r2 = r7;
    0x000f7560 mov r1, r8                                            |             r1 = r8;
    0x000f7562 mov r0, r4                                            |             r0 = r4;
    0x000f7564 strd sl, r3, [sp]                                     |             __asm ("strd sl, r3, [sp]");
    0x000f7568 mov r3, r5                                            |             r3 = r5;
    0x000f756a bl 0xf7344                                            |             r0 = fcn_000f7344 (r0, r1, r2, r3, r4, r5);
    0x000f756e cmp r0, 0                                             |             
                                                                     |             if (r0 < 0) {
    0x000f7570 blt 0xf7574                                           |                 goto label_3;
                                                                     |             }
                                                                     | label_2:
    0x000f7572 movs r6, 0                                            |             r6 = 0;
                                                                     |         }
                                                                     | label_3:
    0x000f7574 ldr r2, [pc, 0xe0]                                    |         
    0x000f7576 ldr r3, [pc, 0xdc]                                    |         r3 = *(0xf7656);
    0x000f7578 add r2, pc                                            |         r2 = 0x1eebd4;
    0x000f757a ldr r3, [r2, r3]                                      |         r3 = *(0x1eebd4);
    0x000f757c ldr r2, [r3]                                          |         r2 = *(0x1eebd4);
    0x000f757e ldr r3, [sp, 0xc]                                     |         r3 = var_ch;
    0x000f7580 eors r2, r3                                           |         r2 ^= r3;
    0x000f7582 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x000f7586 bne 0xf764a                                           |             goto label_18;
                                                                     |         }
    0x000f7588 mov r0, r6                                            |         r0 = r6;
    0x000f758a add sp, 0x14                                          |         
    0x000f758c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_13:
    0x000f7590 ldr r3, [sp, 0x3c]                                    |         r3 = *(arg_3ch);
    0x000f7592 lsls r1, r3, 0x1e                                     |         r1 = r3 << 0x1e;
    0x000f7594 bpl 0xf7548                                           |         
                                                                     |     } while (r1 >= r3);
    0x000f7596 orr.w r6, sl, r7                                      |     r6 = sl | r7;
    0x000f759a orrs r6, r5                                           |     r6 |= r5;
                                                                     |     if (r6 != r5) {
    0x000f759c bne 0xf7548                                           |         goto label_1;
                                                                     |     }
    0x000f759e cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x000f75a2 beq 0xf7572                                           |         goto label_2;
                                                                     |     }
    0x000f75a4 ldr r3, [sp, 8]                                       |     r3 = var_8h;
    0x000f75a6 str.w r3, [r8]                                        |     __asm ("str.w r3, [r8]");
    0x000f75aa b 0xf7574                                             |     goto label_3;
                                                                     | label_17:
    0x000f75ac rsbs r6, r6, 0                                        |     r6 -= ;
    0x000f75ae b 0xf7556                                             |     goto label_4;
                                                                     | label_15:
    0x000f75b0 mov r0, r4                                            |     r0 = r4;
    0x000f75b2 blx 0x392e4                                           |     r0 = fcn_000392e4 ();
                                                                     |     if (r0 == 0) {
    0x000f75b6 cbz r0, 0xf7618                                       |         goto label_19;
                                                                     |     }
                                                                     | label_7:
    0x000f75b8 movs r3, 0                                            |     r3 = 0;
    0x000f75ba str r3, [r5]                                          |     *(r5) = r3;
    0x000f75bc cmp.w sl, 0                                           |     
                                                                     |     if (sl == 0) {
    0x000f75c0 beq 0xf7572                                           |         goto label_2;
                                                                     |     }
                                                                     | label_16:
    0x000f75c2 ldr r4, [r6, 0x18]                                    |     r4 = *((r6 + 0x18));
                                                                     |     if (r4 == 0) {
    0x000f75c4 cbz r4, 0xf75ca                                       |         goto label_5;
                                                                     |     }
    0x000f75c6 ldrb r5, [r4]                                         |     r5 = *(r4);
    0x000f75c8 cbnz r5, 0xf75d4                                      |     
                                                                     |     while (r0 == 0) {
                                                                     | label_5:
    0x000f75ca movs r3, 0                                            |         r3 = 0;
    0x000f75cc mov r6, r3                                            |         r6 = r3;
    0x000f75ce str.w r3, [sl]                                        |         __asm ("str.w r3, [sl]");
    0x000f75d2 b 0xf7574                                             |         goto label_3;
    0x000f75d4 ldr r0, [r6, 0x14]                                    |         r0 = *((r6 + 0x14));
    0x000f75d6 movs r1, 1                                            |         r1 = 1;
    0x000f75d8 blx 0x3cb54                                           |         r0 = fcn_0003cb54 ();
    0x000f75dc cmp r0, 0                                             |         
    0x000f75de beq 0xf75ca                                           |         
                                                                     |     }
    0x000f75e0 cmp r5, 0x2f                                          |     
                                                                     |     if (r5 != 0x2f) {
    0x000f75e2 bne 0xf75ca                                           |         goto label_5;
                                                                     |     }
    0x000f75e4 mov r0, r4                                            |     r0 = r4;
    0x000f75e6 blx 0x39004                                           |     r0 = fcn_00039004 ();
    0x000f75ea cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x000f75ec bne 0xf75ca                                           |         goto label_5;
                                                                     |     }
    0x000f75ee b 0xf7512                                             |     goto label_6;
                                                                     | label_9:
    0x000f75f0 ldr r1, [pc, 0x68]                                    |     
    0x000f75f2 movs r2, 0xd8                                         |     r2 = 0xd8;
    0x000f75f4 ldr r3, [pc, 0x68]                                    |     
    0x000f75f6 ldr r0, [pc, 0x6c]                                    |     
    0x000f75f8 add r1, pc                                            |     r1 = 0x1eec58;
    0x000f75fa add r3, pc                                            |     r3 = 0x1eec5e;
    0x000f75fc adds r1, 7                                            |     r1 += 7;
    0x000f75fe add r0, pc                                            |     r0 = 0x1eec68;
    0x000f7600 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_10:
    0x000f7604 ldr r1, [pc, 0x60]                                    |     
    0x000f7606 movs r2, 0xd9                                         |     r2 = 0xd9;
    0x000f7608 ldr r3, [pc, 0x60]                                    |     
    0x000f760a ldr r0, [pc, 0x64]                                    |     
    0x000f760c add r1, pc                                            |     r1 = 0x1eec78;
    0x000f760e add r3, pc                                            |     r3 = 0x1eec7e;
    0x000f7610 adds r1, 7                                            |     r1 += 7;
    0x000f7612 add r0, pc                                            |     r0 = 0x1eec88;
    0x000f7614 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_19:
    0x000f7618 ldr r4, [r6, 0x14]                                    |     r4 = *((r6 + 0x14));
    0x000f761a movs r1, 1                                            |     r1 = 1;
    0x000f761c mov r0, r4                                            |     r0 = r4;
    0x000f761e blx 0x3cb54                                           |     r0 = fcn_0003cb54 ();
    0x000f7622 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x000f7624 beq 0xf75b8                                           |         goto label_7;
                                                                     |     }
                                                                     |     if (r4 == 0) {
    0x000f7626 cbz r4, 0xf7636                                       |         goto label_20;
                                                                     |     }
    0x000f7628 ldrb r3, [r4]                                         |     r3 = *(r4);
    0x000f762a cmp r3, 0x2f                                          |     
                                                                     |     if (r3 != 0x2f) {
    0x000f762c bne 0xf75b8                                           |         goto label_7;
                                                                     |     }
    0x000f762e b 0xf7504                                             |     goto label_8;
                                                                     | label_14:
    0x000f7630 mvn r6, 0x49                                          |     r6 = ~0x49;
    0x000f7634 b 0xf7574                                             |     goto label_3;
                                                                     | label_20:
    0x000f7636 ldr r1, [pc, 0x3c]                                    |     
    0x000f7638 movs r2, 0x33                                         |     r2 = 0x33;
    0x000f763a ldr r3, [pc, 0x3c]                                    |     
    0x000f763c ldr r0, [pc, 0x3c]                                    |     
    0x000f763e add r1, pc                                            |     r1 = 0x1eecb8;
    0x000f7640 add r3, pc                                            |     r3 = 0x1eecbe;
    0x000f7642 adds r1, 7                                            |     r1 += 7;
    0x000f7644 add r0, pc                                            |     r0 = 0x1eecc4;
    0x000f7646 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_18:
    0x000f764a blx 0x3d208                                           |     fcn_0003d208 ();
    0x000f764e nop                                                   |     
    0x000f7650 lsls r6, r0, 0x11                                     |     r6 = r0 << 0x11;
    0x000f7652 movs r5, r1                                           |     r5 = r1;
    0x000f7654 movs r6, 0xb0                                         |     r6 = 0xb0;
    0x000f7656 movs r0, r0                                           |     
    0x000f7658 lsls r0, r0, 0xd                                      |     r0 <<= 0xd;
    0x000f765a movs r5, r1                                           |     r5 = r1;
    0x000f765c push {r3, r4, r5}                                     |     
    0x000f765e movs r1, r1                                           |     
    0x000f7660 invalid                                               |     
                                                                     | }
    ; assembly                                                                   | /* r2dec pseudo code output */
                                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/libsystemd-shared-249.so @ 0x88ee4 */
                                                                                 | #include <stdint.h>
                                                                                 |  
                                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                                 |  
    ; (fcn) sym.journal_importer_process_data ()                                 | void journal_importer_process_data (int16_t arg_270h, int16_t arg_278h, int16_t arg_280h, int16_t arg_2a8h, int16_t arg_2b0h, int16_t arg_2c0h, int16_t arg_2c8h, int16_t arg_2f0h, int16_t arg_2f8h, int16_t arg_310h, int16_t arg_380h, int16_t arg_390h, int16_t arg_3b8h, int16_t arg_3d0h, int16_t arg_3f0h, int16_t arg_240h, int16_t arg1) {
                                                                                 |     int16_t var_10h_2;
                                                                                 |     int16_t var_48h;
                                                                                 |     int16_t var_60h;
                                                                                 |     int16_t var_68h;
                                                                                 |     int16_t var_70h;
                                                                                 |     int16_t var_78h;
                                                                                 |     int16_t var_90h;
                                                                                 |     int16_t var_98h;
                                                                                 |     int16_t var_e0h;
                                                                                 |     int16_t var_68h_2;
                                                                                 |     int16_t var_110h;
                                                                                 |     int16_t var_118h;
                                                                                 |     int16_t var_128h;
                                                                                 |     int16_t var_130h;
                                                                                 |     int32_t var_4h_2;
                                                                                 |     int32_t var_8h_2;
                                                                                 |     int16_t var_140h;
                                                                                 |     int16_t var_7h;
                                                                                 |     int16_t var_17h_2;
                                                                                 |     int16_t var_160h;
                                                                                 |     int16_t var_60h_2;
                                                                                 |     int16_t var_1a8h;
                                                                                 |     int16_t var_1b0h;
                                                                                 |     int16_t var_1b8h;
                                                                                 |     int16_t var_128h_2;
                                                                                 |     int16_t var_390h;
                                                                                 |     int16_t var_1d8h;
                                                                                 |     int16_t var_1e0h;
                                                                                 |     int16_t var_0h_2;
                                                                                 |     int16_t var_4h;
                                                                                 |     int16_t var_8h;
                                                                                 |     int16_t var_ch;
                                                                                 |     int16_t var_10h;
                                                                                 |     int32_t var_0h_3;
                                                                                 |     int16_t var_17h;
                                                                                 |     int16_t var_ch_2;
                                                                                 |     int16_t var_208h;
                                                                                 |     int16_t var_218h;
                                                                                 |     int16_t var_218h_2;
                                                                                 |     int16_t var_1a8h_2;
                                                                                 |     int32_t var_4ch;
                                                                                 |     int16_t var_248h;
                                                                                 |     int16_t var_0h;
                                                                                 |     int16_t var_1b8h_2;
                                                                                 |     int16_t var_260h;
                                                                                 |     r0 = arg1;
    0x00088ee4 stmdahs r8, {r0, r1, r2, r3, r4, r6, r7, fp, ip, sp, lr, pc}      |     __asm ("stmdahs r8, {r0, r1, r2, r3, r4, r6, r7, fp, ip, sp, lr, pc}");
    0x00088ee8 ldr.w r3, [pc, 0x808]                                             |     
    0x00088eec push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}                       |     
    0x00088ef0 sub sp, 0x64                                                      |     
    0x00088ef2 add r2, pc                                                        |     r2 += pc;
    0x00088ef4 add r7, sp, 0x10                                                  |     r7 += var_10h;
    0x00088ef6 mov r4, r0                                                        |     r4 = r0;
    0x00088ef8 ldr r3, [r2, r3]                                                  |     r3 = *((r2 + r3));
    0x00088efa ldr r5, [r0, 0x2c]                                                |     r5 = *(arg_270hx2c);
    0x00088efc ldr r3, [r3]                                                      |     r3 = *(0x896f4);
    0x00088efe str r3, [r7, 0x4c]                                                |     var_4ch = r3;
    0x00088f00 mov.w r3, 0                                                       |     r3 = 0;
    0x00088f04 cmp r5, 3                                                         |     
                                                                                 |     if (r5 > 3) {
    0x00088f06 bhi.w 0x896d8                                                     |         goto label_12;
                                                                                 |     }
                                                                                 |     /* switch table (4 cases) at 0x88f0e */
    0x00088f0a tbb [pc, r5]                                                      |     __asm ("tbb aav.0x000000ff");
    0x00088f12 ldr r2, [r0, 0x20]                                                |     r2 = *(arg_270hx20);
    0x00088f14 cmp r2, 0                                                         |     
                                                                                 |     if (r2 == 0) {
    0x00088f16 beq.w 0x891e8                                                     |         goto label_13;
                                                                                 |     }
    0x00088f1a mov r1, r7                                                        |     r1 = r7;
    0x00088f1c bl 0x88c78                                                        |     r0 = fcn_00088c78 (r0, r1, r2);
    0x00088f20 subs r5, r0, 0                                                    |     r5 = r0 - 0;
                                                                                 |     if (r5 <= r0) {
    0x00088f22 ble.w 0x890e8                                                     |         goto label_14;
                                                                                 |     }
    0x00088f26 ldr r3, [r7]                                                      |     r3 = *(r7);
    0x00088f28 cmp r3, 0                                                         |     
                                                                                 |     if (r3 == 0) {
    0x00088f2a beq.w 0x893d6                                                     |         goto label_15;
                                                                                 |     }
    0x00088f2e ldr r2, [r4, 0x1c]                                                |     r2 = *((r4 + 0x1c));
    0x00088f30 subs r3, r3, r2                                                   |     r3 -= r2;
    0x00088f32 sub.w r1, r3, 8                                                   |     r1 = r3 - 8;
    0x00088f36 mov r0, r3                                                        |     r0 = r3;
    0x00088f38 blx 0x3da24                                                       |     fcn_0003da24 ();
    0x00088f3c ldrd r5, r2, [r4, 0x1c]                                           |     __asm ("ldrd r5, r2, [r4, 0x1c]");
    0x00088f40 mov r1, r0                                                        |     r1 = r0;
    0x00088f42 add.w r0, r4, 0x24                                                |     r0 = r4 + 0x24;
    0x00088f46 add r2, r5                                                        |     r2 += r5;
    0x00088f48 blx 0x3cb94                                                       |     r0 = fcn_0003cb94 ();
    0x00088f4c subs r5, r0, 0                                                    |     r5 = r0 - 0;
                                                                                 |     if (r5 < r0) {
    0x00088f4e blt.w 0x8909c                                                     |         goto label_3;
                                                                                 |     }
                                                                                 | label_0:
    0x00088f52 movs r3, 3                                                        |     r3 = 3;
                                                                                 |     do {
                                                                                 | label_1:
    0x00088f54 movs r5, 0                                                        |         r5 = 0;
    0x00088f56 str r3, [r4, 0x2c]                                                |         *((r4 + 0x2c)) = r3;
    0x00088f58 b 0x8909c                                                         |         goto label_3;
    0x00088f5a ldr r3, [r0, 0x20]                                                |         r3 = *(arg_270hx20);
    0x00088f5c cmp r3, 0                                                         |         
                                                                                 |         if (r3 != 0) {
    0x00088f5e bne.w 0x89204                                                     |             goto label_16;
                                                                                 |         }
    0x00088f60 strh r1, [r2, 0xa]                                                |         *((r2 + 0xa)) = r1;
    0x00088f62 movs r2, 8                                                        |         r2 = 8;
    0x00088f64 mov r1, r7                                                        |         r1 = r7;
    0x00088f66 bl 0x88c78                                                        |         r0 = fcn_00088c78 (r0, r1, r2);
    0x00088f6a subs r5, r0, 0                                                    |         r5 = r0 - 0;
                                                                                 |         if (r5 <= r0) {
    0x00088f6c ble.w 0x890e8                                                     |             goto label_14;
                                                                                 |         }
    0x00088f70 ldr r3, [r7]                                                      |         r3 = *(r7);
    0x00088f72 ldr r5, [r3]                                                      |         r5 = *(r3);
    0x00088f74 cmp.w r5, 0x30000000                                              |         
    0x00088f78 str r5, [r4, 0x20]                                                |         *((r4 + 0x20)) = r5;
                                                                                 |         if (r5 > 0x30000000) {
    0x00088f7a bhi.w 0x89150                                                     |             goto label_17;
                                                                                 |         }
    0x00088f7e movs r3, 2                                                        |         r3 = 2;
    0x00088f80 cmp r5, 0                                                         |         
    0x00088f82 bne 0x88f54                                                       |         
                                                                                 |     } while (r5 != 0);
    0x00088f84 blx 0x3d534                                                       |     r0 = fcn_0003d534 ();
    0x00088f88 cmp r0, 3                                                         |     
                                                                                 |     if (r0 <= 3) {
    0x00088f8a ble 0x88f52                                                       |         goto label_0;
                                                                                 |     }
    0x00088f8c ldr.w r2, [pc, 0x768]                                             |     
    0x00088f90 movs r3, 0xaa                                                     |     r3 = 0xaa;
    0x00088f92 ldr.w r6, [pc, 0x768]                                             |     r6 = *(0x000896fc);
    0x00088f96 mov r1, r5                                                        |     r1 = r5;
    0x00088f98 ldr.w r0, [pc, 0x764]                                             |     r0 = *(0x00089700);
    0x00088f9c add r2, pc                                                        |     r2 = 0x112698;
    0x00088f9e add r6, pc                                                        |     r6 += pc;
    0x00088fa0 adds r2, 7                                                        |     r2 += 7;
    0x00088fa2 add r0, pc                                                        |     r0 += pc;
    0x00088fa4 strd r0, r6, [sp]                                                 |     __asm ("strd r0, r6, [sp]");
    0x00088fa8 movs r0, 4                                                        |     r0 = 4;
    0x00088faa blx 0x39c0c                                                       |     fcn_00039c0c ();
    0x00088fae ldr r3, [r4, 0x20]                                                |     r3 = *((r4 + 0x20));
    0x00088fb0 cmp r3, 0                                                         |     
    0x00088fb2 ite ne                                                            |     
                                                                                 |     if (r3 == 0) {
    0x00088fb4 movne r3, 2                                                       |         r3 = 2;
                                                                                 |     }
                                                                                 |     if (r3 != 0) {
    0x00088fb6 moveq r3, 3                                                       |         r3 = 3;
                                                                                 |     }
    0x00088fb8 b 0x88f54                                                         |     goto label_1;
    0x00088fba ldr r3, [r0, 0x20]                                                |     r3 = *(arg_270hx20);
    0x00088fbc cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x00088fbe bne.w 0x891cc                                                     |         goto label_18;
                                                                                 |     }
    0x00088fc2 ldr r6, [r0, 0x18]                                                |     r6 = *(arg_270hx18);
    0x00088fc4 ldr r3, [r0, 0x10]                                                |     r3 = *(arg_270hx10);
    0x00088fc6 cmp r3, r6                                                        |     
                                                                                 |     if (r3 > r6) {
    0x00088fc8 bhi.w 0x8911a                                                     |         goto label_19;
                                                                                 |     }
    0x00088fcc ldr r0, [r0, 0xc]                                                 |     r0 = *(arg_270hxc);
    0x00088fce blx 0x3999c                                                       |     r0 = fcn_0003999c ();
    0x00088fd2 cmp r6, r0                                                        |     
                                                                                 |     if (r6 > r0) {
    0x00088fd4 bhi.w 0x892e6                                                     |         goto label_20;
                                                                                 |     }
    0x00088fd8 ldr r3, [r4]                                                      |     r3 = *(r4);
    0x00088fda cmp r3, 0                                                         |     
                                                                                 |     if (r3 < 0) {
    0x00088fdc blt.w 0x8931a                                                     |         goto label_21;
                                                                                 |     }
    0x00088fe0 ldr r6, [r4, 0x18]                                                |     r6 = *((r4 + 0x18));
    0x00088fe2 mov.w r8, 0                                                       |     r8 = 0;
    0x00088fe6 movw sb, 0xffff                                                   |     
    0x00088fea movt r8, 0x3020                                                   |     r8 = (r8 & 0xFFFF) | 0x30200000;
    0x00088fee movt sb, 0x301f                                                   |     sb = 0x301fffff;
                                                                                 |     do {
    0x00088ff2 ldr.w sl, [r4, 0xc]                                               |         sl = *((r4 + 0xc));
    0x00088ff6 cmp.w sl, 0                                                       |         
                                                                                 |         if (sl != 0) {
    0x00088ffa beq 0x89016                                                       |             
    0x00088ffc ldrd fp, r0, [r4, 0x10]                                           |             __asm ("ldrd fp, r0, [r4, 0x10]");
    0x00089000 movs r1, 0xa                                                      |             r1 = 0xa;
    0x00089002 cmp r0, fp                                                        |             
    0x00089004 it lo                                                             |             
                                                                                 |             if (r0 >= fp) {
    0x00089006 movlo r0, fp                                                      |                 r0 = fp;
                                                                                 |             }
    0x00089008 subs r2, r6, r0                                                   |             r2 = r6 - r0;
    0x0008900a add r0, sl                                                        |             r0 += sl;
    0x0008900c blx 0x3f108                                                       |             r0 = fcn_0003f108 ();
    0x00089010 cmp r0, 0                                                         |             
                                                                                 |             if (r0 != 0) {
    0x00089012 bne.w 0x89220                                                     |                 goto label_22;
                                                                                 |             }
                                                                                 |         }
    0x00089016 cmp.w r6, 0x30000000                                              |         
    0x0008901a str r6, [r4, 0x14]                                                |         *((r4 + 0x14)) = r6;
                                                                                 |         if (r6 >= 0x30000000) {
    0x0008901c bhs.w 0x89368                                                     |             goto label_23;
                                                                                 |         }
    0x00089020 ldrb r3, [r4, 4]                                                  |         r3 = *((r4 + 4));
    0x00089022 cmp r3, 0                                                         |         
                                                                                 |         if (r3 != 0) {
    0x00089024 bne.w 0x892e0                                                     |             goto label_6;
                                                                                 |         }
    0x00089028 mov r0, sl                                                        |         r0 = sl;
    0x0008902a blx 0x3999c                                                       |         fcn_0003999c ();
    0x0008902e ldr r1, [r4, 0x18]                                                |         r1 = *((r4 + 0x18));
    0x00089030 ldr r6, [r4, 0xc]                                                 |         r6 = *((r4 + 0xc));
    0x00089032 subs r0, r0, r1                                                   |         r0 -= r1;
    0x00089034 cmp.w r0, 0x2000                                                  |         
                                                                                 |         if (r0 <= 0x2000) {
    0x00089038 blo 0x890c0                                                       |             goto label_24;
                                                                                 |         }
                                                                                 | label_2:
    0x0008903a cmp r6, 0                                                         |         
                                                                                 |         if (r6 == 0) {
    0x0008903c beq 0x890f0                                                       |             goto label_25;
                                                                                 |         }
    0x0008903e mov r0, r6                                                        |         r0 = r6;
    0x00089040 blx 0x3999c                                                       |         fcn_0003999c ();
    0x00089044 ldr r6, [r4, 0x18]                                                |         r6 = *((r4 + 0x18));
    0x00089046 mov r3, r0                                                        |         r3 = r0;
    0x00089048 ldr r0, [r4, 0xc]                                                 |         r0 = *((r4 + 0xc));
    0x0008904a subs r3, r3, r6                                                   |         r3 -= r6;
    0x0008904c cmp.w r3, 0x2000                                                  |         
                                                                                 |         if (r3 <= 0x2000) {
    0x00089050 blo 0x8910a                                                       |             goto label_26;
                                                                                 |         }
                                                                                 | label_4:
    0x00089052 ldr.w sl, [r4]                                                    |         sl = *(r4);
    0x00089056 add r6, r0                                                        |         r6 += r0;
    0x00089058 blx 0x3999c                                                       |         fcn_0003999c ();
    0x0008905c ldr r3, [r4, 0x18]                                                |         r3 = *((r4 + 0x18));
    0x0008905e mov r2, r0                                                        |         r2 = r0;
    0x00089060 mov r1, r6                                                        |         r1 = r6;
    0x00089062 mov r0, sl                                                        |         r0 = sl;
    0x00089064 subs r2, r2, r3                                                   |         r2 -= r3;
    0x00089066 blx 0x3a9e8                                                       |         r0 = fcn_0003a9e8 ();
    0x0008906a cmp r0, 0                                                         |         
                                                                                 |         if (r0 < 0) {
    0x0008906c blt.w 0x893ae                                                     |             goto label_27;
                                                                                 |         }
                                                                                 |         if (r0 == 0) {
    0x00089070 beq 0x890ea                                                       |             goto label_5;
                                                                                 |         }
    0x00089072 ldr r3, [r4, 0x18]                                                |         r3 = *((r4 + 0x18));
    0x00089074 adds r6, r0, r3                                                   |         r6 = r0 + r3;
    0x00089076 str r6, [r4, 0x18]                                                |         *((r4 + 0x18)) = r6;
    0x00089078 b 0x88ff2                                                         |         
                                                                                 |     } while (1);
    0x0008907a movs r2, 1                                                        |     r2 = 1;
    0x0008907c mov r1, r7                                                        |     r1 = r7;
    0x0008907e bl 0x88c78                                                        |     r0 = fcn_00088c78 (r0, r1, r2);
    0x00089082 subs r5, r0, 0                                                    |     r5 = r0 - 0;
                                                                                 |     if (r5 <= r0) {
    0x00089084 ble 0x890e8                                                       |         goto label_14;
                                                                                 |     }
    0x00089086 ldr r3, [r7]                                                      |     r3 = *(r7);
    0x00089088 cmp r3, 0                                                         |     
                                                                                 |     if (r3 == 0) {
    0x0008908a beq.w 0x89300                                                     |         goto label_28;
                                                                                 |     }
    0x0008908e ldrb r0, [r3]                                                     |     r0 = *(r3);
    0x00089090 cmp r0, 0xa                                                       |     
                                                                                 |     if (r0 != 0xa) {
    0x00089092 bne 0x89134                                                       |         goto label_29;
                                                                                 |     }
    0x00089094 movs r3, 0                                                        |     r3 = 0;
    0x00089096 mov r5, r3                                                        |     r5 = r3;
    0x00089098 str r3, [r4, 0x20]                                                |     *((r4 + 0x20)) = r3;
    0x0008909a str r3, [r4, 0x2c]                                                |     *((r4 + 0x2c)) = r3;
                                                                                 |     do {
                                                                                 | label_3:
    0x0008909c ldr.w r2, [pc, 0x664]                                             |         
    0x000890a0 ldr.w r3, [pc, 0x650]                                             |         r3 = *(0x896f4);
    0x000890a4 add r2, pc                                                        |         r2 = 0x1127ac;
    0x000890a6 ldr r3, [r2, r3]                                                  |         r3 = *(0x1127ac);
    0x000890a8 ldr r2, [r3]                                                      |         r2 = *(0x1127ac);
    0x000890aa ldr r3, [r7, 0x4c]                                                |         r3 = var_4ch;
    0x000890ac eors r2, r3                                                       |         r2 ^= r3;
    0x000890ae mov.w r3, 0                                                       |         r3 = 0;
                                                                                 |         if (r2 != r3) {
    0x000890b2 bne.w 0x89674                                                     |             goto label_30;
                                                                                 |         }
    0x000890b6 mov r0, r5                                                        |         r0 = r5;
    0x000890b8 adds r7, 0x54                                                     |         r7 += 0x54;
    0x000890ba mov sp, r7                                                        |         
    0x000890bc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}                        |         
                                                                                 | label_24:
    0x000890c0 add.w r1, r1, 0x2000                                              |         r1 += 0x2000;
    0x000890c4 movs r2, 1                                                        |         r2 = 1;
    0x000890c6 cmp r1, r8                                                        |         
    0x000890c8 add.w r0, r4, 0xc                                                 |         r0 = r4 + 0xc;
    0x000890cc it hs                                                             |         
                                                                                 |         if (r1 < r8) {
    0x000890ce movhs r1, r8                                                      |             r1 = r8;
                                                                                 |         }
    0x000890d0 blx 0x3e210                                                       |         r0 = fcn_0003e210 ();
    0x000890d4 cmp r0, 0                                                         |         
                                                                                 |         if (r0 == 0) {
    0x000890d6 beq 0x89190                                                       |             goto label_31;
                                                                                 |         }
    0x000890d8 mov r1, r6                                                        |         r1 = r6;
    0x000890da ldr r2, [r4, 0xc]                                                 |         r2 = *((r4 + 0xc));
    0x000890dc add.w r0, r4, 0x24                                                |         r0 = r4 + 0x24;
    0x000890e0 blx 0x3a968                                                       |         fcn_0003a968 ();
    0x000890e4 ldr r6, [r4, 0xc]                                                 |         r6 = *((r4 + 0xc));
    0x000890e6 b 0x8903a                                                         |         goto label_2;
                                                                                 | label_14:
    0x000890e8 bne 0x8909c                                                       |         
                                                                                 |     } while (r0 != 0);
                                                                                 | label_5:
    0x000890ea movs r3, 4                                                        |     r3 = 4;
    0x000890ec str r3, [r4, 0x2c]                                                |     *((r4 + 0x2c)) = r3;
    0x000890ee b 0x8909c                                                         |     goto label_3;
                                                                                 | label_25:
    0x000890f0 ldr.w r1, [pc, 0x614]                                             |     r1 = *(0x00089708);
    0x000890f4 movs r2, 0x57                                                     |     r2 = 0x57;
    0x000890f6 ldr.w r3, [pc, 0x614]                                             |     
    0x000890fa ldr.w r0, [pc, 0x614]                                             |     
    0x000890fe add r1, pc                                                        |     r1 += pc;
    0x00089100 add r3, pc                                                        |     r3 = 0x112812;
    0x00089102 adds r1, 7                                                        |     r1 += 7;
    0x00089104 add r0, pc                                                        |     r0 = 0x11281a;
    0x00089106 blx 0x3b5e8                                                       |     fcn_0003b5e8 ();
                                                                                 | label_26:
    0x0008910a blx 0x3999c                                                       |     r0 = fcn_0003999c ();
    0x0008910e cmp r0, sb                                                        |     
                                                                                 |     if (r0 < sb) {
    0x00089110 bls.w 0x8940c                                                     |         goto label_32;
                                                                                 |     }
    0x00089114 ldr r0, [r4, 0xc]                                                 |     r0 = *((r4 + 0xc));
    0x00089116 ldr r6, [r4, 0x18]                                                |     r6 = *((r4 + 0x18));
    0x00089118 b 0x89052                                                         |     goto label_4;
                                                                                 | label_19:
    0x0008911a ldr.w r1, [pc, 0x5f8]                                             |     
    0x0008911e movs r2, 0x38                                                     |     r2 = 0x38;
    0x00089120 ldr.w r3, [pc, 0x5f4]                                             |     r3 = *(0x00089718);
    0x00089124 ldr.w r0, [pc, 0x5f4]                                             |     r0 = *(0x0008971c);
    0x00089128 add r1, pc                                                        |     r1 = 0x112842;
    0x0008912a add r3, pc                                                        |     r3 += pc;
    0x0008912c adds r1, 7                                                        |     r1 += 7;
    0x0008912e add r0, pc                                                        |     r0 += pc;
    0x00089130 blx 0x3b5e8                                                       |     fcn_0003b5e8 ();
                                                                                 | label_29:
    0x00089134 add.w r5, r7, 0xc                                                 |     r5 += var_ch_2;
    0x00089138 mov r1, r5                                                        |     r1 = r5;
    0x0008913a blx 0x3e7c4                                                       |     r0 = fcn_0003e7c4 ();
    0x0008913e mov r4, r0                                                        |     r4 = r0;
    0x00089140 blx 0x3d534                                                       |     r0 = fcn_0003d534 ();
    0x00089144 cmp r0, 3                                                         |     
                                                                                 |     if (r0 > 3) {
    0x00089146 bgt.w 0x89334                                                     |         goto label_33;
                                                                                 |     }
                                                                                 |     do {
    0x0008914a mvn r5, 0x15                                                      |         r5 = ~0x15;
    0x0008914e b 0x8909c                                                         |         goto label_3;
                                                                                 | label_17:
    0x00089150 blx 0x3d534                                                       |         r0 = fcn_0003d534 ();
    0x00089154 cmp r0, 3                                                         |         
    0x00089156 ble 0x8914a                                                       |         
                                                                                 |     } while (r0 <= 3);
    0x00089158 ldr.w r2, [pc, 0x5c4]                                             |     
    0x0008915c mov.w r0, 0x30000000                                              |     r0 = 0x30000000;
    0x00089160 ldr.w r6, [pc, 0x5c0]                                             |     r6 = *(0x00089724);
    0x00089164 movs r1, 0x16                                                     |     r1 = 0x16;
    0x00089166 ldr.w r4, [pc, 0x5c0]                                             |     r4 = *(0x00089728);
    0x00089168 cmp r8, r8                                                        |     
    0x0008916a movs r3, 0xa6                                                     |     r3 = 0xa6;
    0x0008916c add r2, pc                                                        |     r2 = 0x112890;
    0x0008916e strd r5, r0, [sp, 8]                                              |     __asm ("strd r5, r0, [var_8h]");
    0x00089172 add r6, pc                                                        |     r6 += pc;
    0x00089174 adds r2, 7                                                        |     r2 += 7;
    0x00089176 add r4, pc                                                        |     r4 += pc;
    0x00089178 movt r1, 0x4000                                                   |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x0008917c movs r0, 4                                                        |     r0 = 4;
    0x0008917e strd r4, r6, [sp]                                                 |     __asm ("strd r4, r6, [sp]");
    0x00089182 blx 0x39c0c                                                       |     r0 = fcn_00039c0c ();
    0x00089186 subs r5, r0, 0                                                    |     r5 = r0 - 0;
    0x00089188 it ge                                                             |     
                                                                                 |     if (r5 < r0) {
    0x0008918a mvnge r5, 0x55                                                    |         r5 = ~0x55;
                                                                                 |     }
    0x0008918e b 0x8909c                                                         |     goto label_3;
                                                                                 | label_31:
    0x00089190 ldr.w r1, [pc, 0x598]                                             |     
    0x00089194 movs r2, 0x55                                                     |     r2 = 0x55;
    0x00089196 ldr.w r3, [pc, 0x598]                                             |     r3 = *(0x00089730);
    0x0008919a movs r0, 3                                                        |     r0 = 3;
    0x0008919c add r1, pc                                                        |     r1 = 0x1128cc;
    0x0008919e add r3, pc                                                        |     r3 += pc;
    0x000891a0 adds r1, 7                                                        |     r1 += 7;
    0x000891a2 blx 0x3d344                                                       |     r0 = fcn_0003d344 ();
    0x000891a6 cmp r0, 0                                                         |     
                                                                                 |     if (r0 < 0) {
    0x000891a8 blt 0x891c8                                                       |         goto label_34;
                                                                                 |     }
                                                                                 |     if (r0 == 0) {
                                                                                 | label_7:
    0x000891aa beq 0x890ea                                                       |         goto label_5;
                                                                                 |     }
                                                                                 |     do {
    0x000891ac ldr.w r1, [pc, 0x584]                                             |         
    0x000891b0 mov.w r2, 0x12a                                                   |         r2 = 0x12a;
    0x000891b4 ldr.w r3, [pc, 0x580]                                             |         r3 = *(0x00089738);
    0x000891b8 ldr.w r0, [pc, 0x580]                                             |         r0 = *(0x0008973c);
    0x000891bc add r1, pc                                                        |         r1 = 0x1128f4;
    0x000891be add r3, pc                                                        |         r3 += pc;
    0x000891c0 adds r1, 7                                                        |         r1 += 7;
    0x000891c2 add r0, pc                                                        |         r0 += pc;
    0x000891c4 blx 0x3b5e8                                                       |         r0 = fcn_0003b5e8 ();
                                                                                 | label_34:
    0x000891c8 mov r5, r0                                                        |         r5 = r0;
    0x000891ca b 0x8909c                                                         |         goto label_3;
                                                                                 | label_18:
    0x000891cc ldr.w r1, [pc, 0x570]                                             |         r1 = sym.ellipsize_mem;
    0x000891d0 movw r2, 0x121                                                    |         r2 = 0x121;
    0x000891d4 ldr.w r3, [pc, 0x56c]                                             |         r3 = *(0x00089744);
    0x000891d8 ldr.w r0, [pc, 0x56c]                                             |         r0 = *(0x00089748);
    0x000891dc add r1, pc                                                        |         r1 += pc;
    0x000891de add r3, pc                                                        |         r3 += pc;
    0x000891e0 adds r1, 7                                                        |         r1 += 7;
    0x000891e2 add r0, pc                                                        |         r0 += pc;
    0x000891e4 blx 0x3b5e8                                                       |         fcn_0003b5e8 ();
                                                                                 | label_13:
    0x000891e8 ldr.w r1, [pc, 0x560]                                             |         
    0x000891ec mov.w r2, 0x17c                                                   |         r2 = 0x17c;
    0x000891f0 ldr.w r3, [pc, 0x55c]                                             |         r3 = *(0x00089750);
    0x000891f4 ldr.w r0, [pc, 0x55c]                                             |         r0 = *(0x00089754);
    0x000891f8 add r1, pc                                                        |         r1 = 0x112948;
    0x000891fa add r3, pc                                                        |         r3 += pc;
    0x000891fc adds r1, 7                                                        |         r1 += 7;
    0x000891fe add r0, pc                                                        |         r0 += pc;
    0x00089200 blx 0x3b5e8                                                       |         fcn_0003b5e8 ();
                                                                                 | label_16:
    0x00089204 ldr.w r1, [pc, 0x550]                                             |         
    0x00089208 mov.w r2, 0x168                                                   |         r2 = 0x168;
    0x0008920c ldr.w r3, [pc, 0x54c]                                             |         r3 = *(0x0008975c);
    0x00089210 ldr.w r0, [pc, 0x54c]                                             |         r0 = *(0x00089760);
    0x00089214 add r1, pc                                                        |         r1 = 0x112970;
    0x00089216 add r3, pc                                                        |         r3 += pc;
    0x00089218 adds r1, 7                                                        |         r1 += 7;
    0x0008921a add r0, pc                                                        |         r0 += pc;
    0x0008921c blx 0x3b5e8                                                       |         r0 = fcn_0003b5e8 ();
                                                                                 | label_22:
    0x00089220 adds r6, r0, 1                                                    |         r6 = r0 + 1;
    0x00089222 add.w r8, sl, fp                                                  |         r8 = sl + fp;
    0x00089226 sub.w r6, r6, sl                                                  |         r6 -= sl;
    0x0008922a str r6, [r4, 0x10]                                                |         *((r4 + 0x10)) = r6;
    0x0008922c subs.w r6, r6, fp                                                 |         r6 -= fp;
    0x00089230 beq 0x891ac                                                       |         
                                                                                 |     } while (r6 == r6);
    0x00089232 add.w sb, r6, -1                                                  |     sb = r6 + -1;
    0x00089236 ldrb.w r3, [r8, sb]                                               |     r3 = *((r8 + sb));
    0x0008923a cmp r3, 0xa                                                       |     
                                                                                 |     if (r3 != 0xa) {
    0x0008923c bne.w 0x89484                                                     |         goto label_35;
                                                                                 |     }
    0x00089240 cmp r6, 1                                                         |     
    0x00089242 it eq                                                             |     
                                                                                 |     if (r6 == 1) {
    0x00089244 moveq r5, r6                                                      |         r5 = r6;
                                                                                 |         goto label_36;
                                                                                 |     }
                                                                                 |     if (r6 == 1) {
                                                                                 | label_36:
    0x00089246 beq.w 0x8909c                                                     |         goto label_3;
                                                                                 |     }
    0x0008924a mov r2, r6                                                        |     r2 = r6;
    0x0008924c movs r1, 0x3d                                                     |     r1 = 0x3d;
    0x0008924e mov r0, r8                                                        |     r0 = r8;
    0x00089250 blx 0x3f108                                                       |     r0 = fcn_0003f108 ();
    0x00089254 cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x00089256 beq.w 0x893ec                                                     |         goto label_37;
                                                                                 |     }
    0x0008925a sub.w r6, r0, r8                                                  |     r6 = r0 - r8;
    0x0008925e movs r2, 1                                                        |     r2 = 1;
    0x00089260 mov r1, r6                                                        |     r1 = r6;
    0x00089262 mov r0, r8                                                        |     r0 = r8;
    0x00089264 blx 0x3da00                                                       |     r0 = fcn_0003da00 ();
    0x00089268 mov sl, r0                                                        |     sl = r0;
    0x0008926a cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x0008926c beq.w 0x89420                                                     |         goto label_38;
                                                                                 |     }
    0x00089270 ldr.w r1, [pc, 0x4f0]                                             |     
    0x00089274 movs r3, 0                                                        |     r3 = 0;
    0x00089276 mov r0, r8                                                        |     r0 = r8;
    0x00089278 strb.w r3, [r8, sb]                                               |     *((r8 + sb)) = r3;
    0x0008927c add r1, pc                                                        |     r1 = 0x1129e4;
    0x0008927e blx 0x3d2b4                                                       |     r0 = fcn_0003d2b4 ();
    0x00089282 mov r6, r0                                                        |     r6 = r0;
    0x00089284 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x00089286 bne.w 0x8909c                                                     |         goto label_3;
                                                                                 |     }
    0x0008928a ldr.w r1, [pc, 0x4dc]                                             |     
    0x0008928e mov r0, r8                                                        |     r0 = r8;
    0x00089290 add r1, pc                                                        |     r1 = 0x1129fe;
    0x00089292 blx 0x3d2b4                                                       |     r0 = fcn_0003d2b4 ();
    0x00089296 mov sl, r0                                                        |     sl = r0;
    0x00089298 cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x0008929a beq.w 0x894d0                                                     |         goto label_39;
                                                                                 |     }
    0x0008929c strh r1, [r3, 8]                                                  |     *((r3 + 8)) = r1;
    0x0008929e mov r1, r6                                                        |     r1 = r6;
    0x000892a0 mov r2, r7                                                        |     r2 = r7;
    0x000892a2 blx 0x3e6f0                                                       |     r0 = fcn_0003e6f0 ();
    0x000892a6 subs r6, r0, 0                                                    |     r6 = r0 - 0;
                                                                                 |     if (r6 < r0) {
    0x000892a8 blt.w 0x895bc                                                     |         goto label_40;
                                                                                 |     }
    0x000892ac ldrd r6, r8, [r7]                                                 |     __asm ("ldrd r6, r8, [r7]");
    0x000892b0 movw r3, 0xffff                                                   |     
    0x000892b4 mvn r0, 1                                                         |     r0 = ~1;
    0x000892b8 movt r3, 0x7f                                                     |     r3 = 0x7fffff;
    0x000892bc subs r1, r6, 1                                                    |     r1 = r6 - 1;
    0x000892be adc r2, r8, -1                                                    |     __asm ("adc r2, var_10h");
    0x000892c2 cmp r0, r1                                                        |     
    0x000892c4 sbcs r3, r2                                                       |     __asm ("sbcs r3, r2");
    0x000892c6 it hs                                                             |     
                                                                                 |     if (r0 < r1) {
    0x000892c8 strdhs r6, r8, [r4, 0x30]                                         |         __asm ("strdhs r6, r8, [r4, 0x30]");
                                                                                 |         goto label_41;
                                                                                 |     }
                                                                                 |     if (r0 >= r1) {
                                                                                 | label_41:
    0x000892cc bhs.w 0x8909c                                                     |         goto label_3;
                                                                                 |     }
    0x000892d0 blx 0x3d534                                                       |     r0 = fcn_0003d534 ();
    0x000892d4 cmp r0, 3                                                         |     
                                                                                 |     if (r0 > 3) {
    0x000892d6 bgt.w 0x89660                                                     |         goto label_42;
                                                                                 |     }
                                                                                 | label_9:
    0x000892da mvn r5, 0x21                                                      |     r5 = ~0x21;
    0x000892de b 0x8909c                                                         |     goto label_3;
                                                                                 | label_6:
    0x000892e0 mvn r5, 0xa                                                       |     r5 = ~0xa;
    0x000892e4 b 0x8909c                                                         |     goto label_3;
                                                                                 | label_20:
    0x000892e6 ldr.w r1, [pc, 0x484]                                             |     
    0x000892ea movs r2, 0x39                                                     |     r2 = 0x39;
    0x000892ec ldr.w r3, [pc, 0x480]                                             |     r3 = *(0x00089770);
    0x000892f0 ldr.w r0, [pc, 0x480]                                             |     r0 = *(0x00089774);
    0x000892f4 add r1, pc                                                        |     r1 = 0x112a66;
    0x000892f6 add r3, pc                                                        |     r3 += pc;
    0x000892f8 adds r1, 7                                                        |     r1 += 7;
    0x000892fa add r0, pc                                                        |     r0 += pc;
    0x000892fc blx 0x3b5e8                                                       |     fcn_0003b5e8 ();
                                                                                 | label_28:
    0x00089300 ldr.w r1, [pc, 0x474]                                             |     r1 = *(0x00089778);
    0x00089304 movs r2, 0xc8                                                     |     r2 = 0xc8;
    0x00089306 ldr.w r3, [pc, 0x474]                                             |     
    0x0008930a ldr.w r0, [pc, 0x474]                                             |     
    0x0008930e add r1, pc                                                        |     r1 += pc;
    0x00089310 add r3, pc                                                        |     r3 = 0x112a92;
    0x00089312 adds r1, 7                                                        |     r1 += 7;
    0x00089314 add r0, pc                                                        |     r0 = 0x112a9a;
    0x00089316 blx 0x3b5e8                                                       |     fcn_0003b5e8 ();
                                                                                 | label_21:
    0x0008931a ldr.w r1, [pc, 0x468]                                             |     
    0x0008931e movs r2, 0x3a                                                     |     r2 = 0x3a;
    0x00089320 ldr.w r3, [pc, 0x464]                                             |     r3 = *(0x00089788);
    0x00089324 ldr.w r0, [pc, 0x464]                                             |     r0 = *(0x0008978c);
    0x00089328 add r1, pc                                                        |     r1 = 0x112ab2;
    0x0008932a add r3, pc                                                        |     r3 += pc;
    0x0008932c adds r1, 7                                                        |     r1 += 7;
    0x0008932e add r0, pc                                                        |     r0 += pc;
    0x00089330 blx 0x3b5e8                                                       |     fcn_0003b5e8 ();
                                                                                 | label_33:
    0x00089334 ldr.w r2, [pc, 0x458]                                             |     
    0x00089338 movs r1, 0x16                                                     |     r1 = 0x16;
    0x0008933a ldr.w ip, [pc, 0x458]                                             |     ip = *(0x00089794);
    0x0008933e movs r3, 0xce                                                     |     r3 = 0xce;
    0x00089340 ldr.w r6, [pc, 0x454]                                             |     r6 = *(0x00089798);
    0x00089344 movt r1, 0x4000                                                   |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x00089348 add r2, pc                                                        |     r2 = 0x112adc;
    0x0008934a strd r4, r5, [sp, 8]                                              |     __asm ("strd r4, r5, [var_8h]");
    0x0008934e add ip, pc                                                        |     
    0x00089350 adds r2, 7                                                        |     r2 += 7;
    0x00089352 add r6, pc                                                        |     r6 += pc;
    0x00089354 movs r0, 4                                                        |     r0 = 4;
    0x00089356 strd r6, ip, [sp]                                                 |     __asm ("strd r6, ip, [sp]");
    0x00089358 ldr r0, [r0, 0x40]                                                |     r0 = *((r0 + 0x40));
    0x0008935a blx 0x39c0c                                                       |     r0 = fcn_00039c0c ();
    0x0008935e subs r5, r0, 0                                                    |     r5 = r0 - 0;
    0x00089360 it ge                                                             |     
                                                                                 |     if (r5 < r0) {
    0x00089362 mvnge r5, 0x55                                                    |         r5 = ~0x55;
                                                                                 |     }
    0x00089366 b 0x8909c                                                         |     goto label_3;
                                                                                 | label_23:
    0x00089368 blx 0x3d534                                                       |     r0 = fcn_0003d534 ();
    0x0008936c cmp r0, 3                                                         |     
    0x0008936e it le                                                             |     
                                                                                 |     if (r0 <= 3) {
    0x00089370 mvnle r5, 0x68                                                    |         r5 = ~0x68;
                                                                                 |         goto label_43;
                                                                                 |     }
                                                                                 |     if (r0 <= 3) {
                                                                                 | label_43:
    0x00089374 ble.w 0x8909c                                                     |         goto label_3;
                                                                                 |     }
    0x00089378 ldr.w r2, [pc, 0x420]                                             |     
    0x0008937c mov.w r0, 0x30000000                                              |     r0 = 0x30000000;
    0x00089380 ldr.w r5, [pc, 0x41c]                                             |     
    0x00089384 movs r1, 0x69                                                     |     r1 = 0x69;
    0x00089386 ldr.w r4, [pc, 0x41c]                                             |     
    0x0008938a movs r3, 0x48                                                     |     r3 = 0x48;
    0x0008938c add r2, pc                                                        |     r2 = 0x112b2c;
    0x0008938e str r0, [sp, 8]                                                   |     var_8h = r0;
    0x00089390 add r5, pc                                                        |     r5 = 0x112b34;
    0x00089392 adds r2, 7                                                        |     r2 += 7;
    0x00089394 add r4, pc                                                        |     r4 = 0x112b3e;
    0x00089396 movt r1, 0x4000                                                   |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x0008939a strd r4, r5, [sp]                                                 |     __asm ("strd r4, r5, [sp]");
    0x0008939e movs r0, 4                                                        |     r0 = 4;
    0x000893a0 blx 0x39c0c                                                       |     r0 = fcn_00039c0c ();
    0x000893a4 subs r5, r0, 0                                                    |     r5 = r0 - 0;
    0x000893a6 it ge                                                             |     
                                                                                 |     if (r5 < r0) {
    0x000893a8 mvnge r5, 0x55                                                    |         r5 = ~0x55;
                                                                                 |     }
    0x000893ac b 0x8909c                                                         |     goto label_3;
                                                                                 | label_27:
    0x000893ae blx 0x3f370                                                       |     r0 = fcn_0003f370 ();
    0x000893b2 ldr.w r8, [r0]                                                    |     r8 = *(r0);
    0x000893b4 strh r0, [r0]                                                     |     *(r0) = r0;
    0x000893b6 mov r6, r0                                                        |     r6 = r0;
    0x000893b8 cmp.w r8, 0xb                                                     |     
                                                                                 |     if (r8 == 0xb) {
    0x000893bc beq 0x892e0                                                       |         goto label_6;
                                                                                 |     }
    0x000893be blx 0x3d534                                                       |     r0 = fcn_0003d534 ();
    0x000893c2 cmp r0, 2                                                         |     
                                                                                 |     if (r0 > 2) {
    0x000893c4 bgt 0x8949a                                                       |         goto label_44;
                                                                                 |     }
                                                                                 | label_8:
    0x000893c6 cmp.w r8, 0                                                       |     
    0x000893ca it gt                                                             |     
                                                                                 |     if (r8 <= 0) {
    0x000893cc rsbgt r5, r8, 0                                                   |         __asm ("rsbgt r5, r8, 0");
                                                                                 |         goto label_45;
                                                                                 |     }
                                                                                 |     if (r8 <= 0) {
                                                                                 | label_45:
    0x000893d0 ble.w 0x891aa                                                     |         goto label_7;
                                                                                 |     }
    0x000893d4 b 0x8909c                                                         |     goto label_3;
                                                                                 | label_15:
    0x000893d6 ldr r1, [pc, 0x3d0]                                               |     
    0x000893d8 movw r2, 0x187                                                    |     r2 = 0x187;
    0x000893dc ldr r3, [pc, 0x3cc]                                               |     
    0x000893de ldr r0, [pc, 0x3d0]                                               |     
    0x000893e0 add r1, pc                                                        |     r1 = 0x112b8e;
    0x000893e2 add r3, pc                                                        |     r3 = 0x112b92;
    0x000893e4 adds r1, 7                                                        |     r1 += 7;
    0x000893e6 add r0, pc                                                        |     r0 = 0x112b9c;
    0x000893e8 blx 0x3b5e8                                                       |     fcn_0003b5e8 ();
                                                                                 | label_37:
    0x000893ec movs r2, 1                                                        |     r2 = 1;
    0x000893ee mov r1, sb                                                        |     r1 = sb;
    0x000893f0 mov r0, r8                                                        |     r0 = r8;
    0x000893f2 blx 0x3da00                                                       |     r0 = fcn_0003da00 ();
    0x000893f6 mov sl, r0                                                        |     sl = r0;
    0x000893f8 cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x000893fa beq.w 0x8952c                                                     |         goto label_46;
                                                                                 |     }
    0x000893fe movs r3, 0x3d                                                     |     r3 = 0x3d;
    0x00089400 strb.w r3, [r8, sb]                                               |     *((r8 + sb)) = r3;
    0x00089404 movs r3, 1                                                        |     r3 = 1;
    0x00089406 str r6, [r4, 0x1c]                                                |     *((r4 + 0x1c)) = r6;
    0x00089408 str r3, [r4, 0x2c]                                                |     *((r4 + 0x2c)) = r3;
    0x0008940a b 0x8909c                                                         |     goto label_3;
                                                                                 | label_32:
    0x0008940c ldr r1, [pc, 0x3a4]                                               |     
    0x0008940e movs r2, 0x58                                                     |     r2 = 0x58;
    0x00089410 ldr r3, [pc, 0x3a4]                                               |     
    0x00089412 ldr r0, [pc, 0x3a8]                                               |     
    0x00089414 add r1, pc                                                        |     r1 = 0x112bcc;
    0x00089416 add r3, pc                                                        |     r3 = 0x112bd2;
    0x00089418 adds r1, 7                                                        |     r1 += 7;
    0x0008941a add r0, pc                                                        |     r0 = 0x112bdc;
    0x0008941c blx 0x3b5e8                                                       |     fcn_0003b5e8 ();
                                                                                 | label_38:
    0x00089420 mov r1, r6                                                        |     r1 = r6;
    0x00089422 mov r0, r8                                                        |     r0 = r8;
    0x00089424 blx 0x3d4e0                                                       |     r0 = getgrgid ();
    0x00089428 add.w r3, r0, 8                                                   |     r3 = r0 + 8;
    0x0008942c mov r2, r0                                                        |     r2 = r0;
    0x0008942e bic r3, r3, 7                                                     |     r3 = BIT_MASK (r3, 7);
    0x00089430 lsls r7, r0, 0xc                                                  |     r7 = r0 << 0xc;
    0x00089432 mov r1, r8                                                        |     r1 = r8;
    0x00089434 sub.w sp, sp, r3                                                  |     
    0x00089438 add.w r0, sp, 0x17                                                |     r0 += var_17h;
    0x0008943c lsrs r3, r0, 3                                                    |     r3 = r0 >> 3;
    0x0008943e bic r0, r0, 7                                                     |     r0 = BIT_MASK (var_7h, );
    0x00089442 strb.w sl, [r2, r3, lsl 3]                                        |     offset_0 = r3 << 3;
                                                                                 |     *((r2 + offset_0)) = sl;
    0x00089446 blx 0x3b8e8                                                       |     r0 = fcn_0003b8e8 ();
    0x0008944a mov r4, r0                                                        |     r4 = r0;
    0x0008944c blx 0x3d534                                                       |     r0 = fcn_0003d534 ();
    0x00089450 cmp r0, 6                                                         |     
                                                                                 |     if (r0 <= 6) {
    0x00089452 ble.w 0x8909c                                                     |         goto label_3;
                                                                                 |     }
    0x00089456 mov r2, r4                                                        |     r2 = r4;
    0x00089458 movs r1, 0x40                                                     |     r1 = 0x40;
    0x0008945a add.w r0, r7, 0xc                                                 |     r0 += var_ch_2;
    0x0008945c movs r4, r1                                                       |     r4 = r1;
    0x0008945e ldr r4, [pc, 0x360]                                               |     
    0x00089460 blx 0x3f258                                                       |     fcn_0003f258 ();
    0x00089464 ldr r2, [pc, 0x35c]                                               |     
    0x00089466 mov r1, sl                                                        |     r1 = sl;
    0x00089468 ldr r3, [pc, 0x35c]                                               |     
    0x0008946a add r4, pc                                                        |     r4 = 0x112c30;
    0x0008946c str r0, [sp, 8]                                                   |     var_8h = r0;
    0x0008946e movs r0, 7                                                        |     r0 = 7;
    0x00089470 add r2, pc                                                        |     r2 = 0x112c38;
    0x00089472 str r4, [sp]                                                      |     *(sp) = r4;
    0x00089474 add r3, pc                                                        |     r3 = 0x112c40;
    0x00089476 adds r2, 7                                                        |     r2 += 7;
    0x00089478 str r3, [sp, 4]                                                   |     var_4h = r3;
    0x0008947a mov.w r3, 0x140                                                   |     r3 = 0x140;
    0x0008947c strb r0, [r4, 0xe]                                                |     *((r4 + 0xe)) = r0;
    0x0008947e blx 0x39c0c                                                       |     fcn_00039c0c ();
    0x00089482 b 0x8909c                                                         |     goto label_3;
                                                                                 | label_35:
    0x00089484 ldr r1, [pc, 0x344]                                               |     
    0x00089486 movw r2, 0x12b                                                    |     r2 = 0x12b;
    0x0008948a ldr r3, [pc, 0x344]                                               |     
    0x0008948c ldr r0, [pc, 0x344]                                               |     
    0x0008948e add r1, pc                                                        |     r1 = 0x112c5e;
    0x00089490 add r3, pc                                                        |     r3 = 0x112c66;
    0x00089492 adds r1, 7                                                        |     r1 += 7;
    0x00089494 add r0, pc                                                        |     r0 = 0x112c6c;
    0x00089496 blx 0x3b5e8                                                       |     fcn_0003b5e8 ();
                                                                                 | label_44:
    0x0008949a ldr r0, [r4, 0xc]                                                 |     r0 = *((r4 + 0xc));
    0x0008949c ldr.w sb, [r4]                                                    |     sb = *(r4);
    0x000894a0 blx 0x3999c                                                       |     fcn_0003999c ();
    0x000894a4 ldr r3, [pc, 0x330]                                               |     
    0x000894a6 mov r1, r8                                                        |     r1 = r8;
    0x000894a8 str.w sb, [sp, 8]                                                 |     __asm ("str.w sb, [var_8h]");
    0x000894ac add r3, pc                                                        |     r3 = 0x112c88;
    0x000894ae str r3, [sp, 4]                                                   |     var_4h = r3;
    0x000894b0 ldr r3, [pc, 0x328]                                               |     
    0x000894b2 add r3, pc                                                        |     r3 = 0x112c92;
    0x000894b4 str r3, [sp]                                                      |     *(sp) = r3;
    0x000894b6 movs r3, 0x60                                                     |     r3 = 0x60;
    0x000894b8 ldr r2, [r4, 0x18]                                                |     r2 = *((r4 + 0x18));
    0x000894ba subs r0, r0, r2                                                   |     r0 -= r2;
    0x000894bc ldr r2, [pc, 0x320]                                               |     
    0x000894be str r0, [sp, 0xc]                                                 |     var_ch = r0;
    0x000894c0 movs r0, 3                                                        |     r0 = 3;
    0x000894c2 add r2, pc                                                        |     r2 = 0x112ca6;
    0x000894c4 adds r2, 7                                                        |     r2 += 7;
    0x000894c6 blx 0x39c0c                                                       |     fcn_00039c0c ();
    0x000894ca ldr.w r8, [r6]                                                    |     r8 = *(r6);
    0x000894cc strh r0, [r0]                                                     |     *(r0) = r0;
    0x000894ce b 0x893c6                                                         |     goto label_8;
                                                                                 | label_39:
    0x000894d0 ldr r1, [pc, 0x310]                                               |     
    0x000894d2 mov r0, r8                                                        |     r0 = r8;
    0x000894d4 add r1, pc                                                        |     r1 = 0x112cbc;
    0x000894d6 blx 0x3d2b4                                                       |     r0 = fcn_0003d2b4 ();
    0x000894da mov r6, r0                                                        |     r6 = r0;
    0x000894dc cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x000894de beq 0x89590                                                       |         goto label_47;
                                                                                 |     }
    0x000894e0 mov r2, r7                                                        |     r2 = r7;
    0x000894e2 movs r1, 0                                                        |     r1 = 0;
    0x000894e4 blx 0x3e6f0                                                       |     r0 = fcn_0003e6f0 ();
    0x000894e8 subs.w r8, r0, 0                                                  |     r8 = r0 - 0;
                                                                                 |     if (r8 < r0) {
    0x000894ec blt.w 0x89678                                                     |         goto label_48;
                                                                                 |     }
    0x000894f0 ldrd r8, r6, [r7]                                                 |     __asm ("ldrd r8, r6, [r7]");
    0x000894f4 cmp.w r6, 0x800000                                                |     
                                                                                 |     if (r6 <= 0x800000) {
    0x000894f8 blo.w 0x8961c                                                     |         goto label_49;
                                                                                 |     }
    0x000894fc blx 0x3d534                                                       |     r0 = fcn_0003d534 ();
    0x00089500 cmp r0, 3                                                         |     
                                                                                 |     if (r0 <= 3) {
    0x00089502 ble.w 0x892da                                                     |         goto label_9;
                                                                                 |     }
    0x00089506 ldr r2, [pc, 0x2e0]                                               |     
    0x00089508 movs r3, 0xfb                                                     |     r3 = 0xfb;
    0x0008950a ldr r5, [pc, 0x2e0]                                               |     
    0x0008950c ldr r4, [pc, 0x2e0]                                               |     
    0x0008950e add r2, pc                                                        |     r2 = 0x112cfc;
    0x00089510 strd r8, r6, [sp, 8]                                              |     __asm ("strd r8, r6, [var_8h]");
    0x00089514 add r5, pc                                                        |     r5 = 0x112d06;
    0x00089516 add r4, pc                                                        |     r4 = 0x112d0a;
                                                                                 | label_11:
    0x00089518 strd r4, r5, [sp]                                                 |     __asm ("strd r4, r5, [sp]");
    0x0008951c adds r2, 7                                                        |     r2 += 7;
    0x0008951e movs r1, 0                                                        |     r1 = 0;
    0x00089520 movs r0, 4                                                        |     r0 = 4;
    0x00089522 mvn r5, 0x21                                                      |     r5 = ~0x21;
    0x00089526 blx 0x39c0c                                                       |     fcn_00039c0c ();
    0x0008952a b 0x8909c                                                         |     goto label_3;
                                                                                 | label_46:
    0x0008952c mov r1, sb                                                        |     r1 = sb;
    0x0008952e mov r0, r8                                                        |     r0 = r8;
    0x00089530 blx 0x3d4e0                                                       |     r0 = getgrgid ();
    0x00089534 add.w r3, r0, 8                                                   |     r3 = r0 + 8;
    0x00089538 mov r2, r0                                                        |     r2 = r0;
    0x0008953a bic r3, r3, 7                                                     |     r3 = BIT_MASK (r3, 7);
    0x0008953e mov r1, r8                                                        |     r1 = r8;
    0x00089540 sub.w sp, sp, r3                                                  |     
    0x00089544 add.w r0, sp, 0x17                                                |     r0 += var_17h;
    0x00089548 lsrs r3, r0, 3                                                    |     r3 = r0 >> 3;
    0x0008954a bic r0, r0, 7                                                     |     r0 = BIT_MASK (var_7h, );
    0x0008954e strb.w sl, [r2, r3, lsl 3]                                        |     offset_1 = r3 << 3;
                                                                                 |     *((r2 + offset_1)) = sl;
    0x00089550 adr r0, 0xcc                                                      |     r0 = 0xcc;
    0x00089552 blx 0x3b8e8                                                       |     r0 = fcn_0003b8e8 ();
    0x00089556 mov r4, r0                                                        |     r4 = r0;
    0x00089558 blx 0x3d534                                                       |     r0 = fcn_0003d534 ();
    0x0008955c cmp r0, 6                                                         |     
                                                                                 |     if (r0 <= 6) {
    0x0008955e ble.w 0x8909c                                                     |         goto label_3;
                                                                                 |     }
    0x00089562 mov r2, r4                                                        |     r2 = r4;
    0x00089564 movs r1, 0x40                                                     |     r1 = 0x40;
    0x00089566 add.w r0, r7, 0xc                                                 |     r0 += var_ch_2;
    0x0008956a ldr r4, [pc, 0x288]                                               |     
    0x0008956c blx 0x3f258                                                       |     fcn_0003f258 ();
    0x00089570 ldr r2, [pc, 0x284]                                               |     
    0x00089572 mov r1, sl                                                        |     r1 = sl;
    0x00089574 ldr r3, [pc, 0x284]                                               |     
    0x00089576 add r4, pc                                                        |     r4 = 0x112d70;
    0x00089578 str r0, [sp, 8]                                                   |     var_8h = r0;
    0x0008957a movs r0, 7                                                        |     r0 = 7;
    0x0008957c add r2, pc                                                        |     r2 = 0x112d78;
    0x0008957e str r4, [sp]                                                      |     *(sp) = r4;
    0x00089580 add r3, pc                                                        |     r3 = 0x112d80;
    0x00089582 adds r2, 7                                                        |     r2 += 7;
    0x00089584 str r3, [sp, 4]                                                   |     var_4h = r3;
    0x00089586 movw r3, 0x153                                                    |     r3 = 0x153;
    0x0008958a blx 0x39c0c                                                       |     fcn_00039c0c ();
    0x0008958e b 0x8909c                                                         |     goto label_3;
                                                                                 | label_47:
    0x00089590 ldr r1, [pc, 0x26c]                                               |     
    0x00089592 mov r0, r8                                                        |     r0 = r8;
    0x00089594 add r1, pc                                                        |     r1 = 0x112d98;
    0x00089596 blx 0x3d2b4                                                       |     r0 = fcn_0003d2b4 ();
    0x0008959a mov r6, r0                                                        |     r6 = r0;
                                                                                 |     if (r0 == 0) {
    0x0008959c cbz r0, 0x895d4                                                   |         goto label_50;
                                                                                 |     }
    0x0008959e add.w r1, r4, 0x40                                                |     r1 = r4 + 0x40;
    0x000895a2 blx 0x3bae8                                                       |     r0 = fcn_0003bae8 ();
    0x000895a6 subs r5, r0, 0                                                    |     r5 = r0 - 0;
                                                                                 |     if (r5 < r0) {
    0x000895a8 blt 0x89622                                                       |         goto label_51;
                                                                                 |     }
                                                                                 |     do {
    0x000895aa mov r2, sb                                                        |         r2 = sb;
    0x000895ac mov r1, r8                                                        |         r1 = r8;
    0x000895ae add.w r0, r4, 0x24                                                |         r0 = r4 + 0x24;
    0x000895b2 blx 0x3cb94                                                       |         r0 = fcn_0003cb94 ();
    0x000895b6 and.w r5, r0, r0, asr 31                                          |         r5 = r0 & (r0 >> 31);
    0x000895ba b 0x8909c                                                         |         goto label_3;
                                                                                 | label_40:
    0x000895bc blx 0x3d534                                                       |         r0 = fcn_0003d534 ();
    0x000895c0 cmp r0, 3                                                         |         
                                                                                 |         if (r0 > 3) {
    0x000895c2 bgt 0x89632                                                       |             goto label_52;
                                                                                 |         }
    0x000895c4 rsbs r3, r6, 0                                                    |         r3 = r6 - ;
    0x000895c6 uxtb r3, r3                                                       |         r3 = (int8_t) r3;
    0x000895c8 rsbs r5, r3, 0                                                    |         r5 = r3 - ;
                                                                                 | label_10:
    0x000895ca cmp r5, 0                                                         |         
    0x000895cc it ge                                                             |         
                                                                                 |         if (r5 < 0) {
    0x000895ce mvnge r5, 0x55                                                    |             r5 = ~0x55;
                                                                                 |         }
    0x000895d2 b 0x8909c                                                         |         goto label_3;
                                                                                 | label_50:
    0x000895d4 ldr r1, [pc, 0x22c]                                               |         
    0x000895d6 mov r0, r8                                                        |         r0 = r8;
    0x000895d8 add r1, pc                                                        |         r1 = 0x112de0;
    0x000895da blx 0x3d2b4                                                       |         r0 = fcn_0003d2b4 ();
    0x000895de mov sl, r0                                                        |         sl = r0;
    0x000895e0 cmp r0, 0                                                         |         
    0x000895e2 beq 0x895aa                                                       |         
                                                                                 |     } while (r0 == 0);
    0x000895e4 blx 0x3d534                                                       |     r0 = fcn_0003d534 ();
    0x000895e8 cmp r0, 4                                                         |     
                                                                                 |     if (r0 <= 4) {
    0x000895ea ble.w 0x8909c                                                     |         goto label_3;
                                                                                 |     }
    0x000895ee mov r2, sl                                                        |     r2 = sl;
    0x000895f0 movs r1, 0x40                                                     |     r1 = 0x40;
    0x000895f2 add.w r0, r7, 0xc                                                 |     r0 += var_ch_2;
    0x000895f6 ldr r4, [pc, 0x210]                                               |     
    0x000895f8 blx 0x3f258                                                       |     fcn_0003f258 ();
    0x000895fc ldr r2, [pc, 0x20c]                                               |     
    0x000895fe mov r1, r6                                                        |     r1 = r6;
    0x00089600 ldr r3, [pc, 0x20c]                                               |     
    0x00089602 add r4, pc                                                        |     r4 = 0x112e10;
    0x00089604 str r0, [sp, 8]                                                   |     var_8h = r0;
    0x00089606 movs r0, 5                                                        |     r0 = 5;
    0x00089608 add r2, pc                                                        |     r2 = 0x112e18;
    0x0008960a str r4, [sp]                                                      |     *(sp) = r4;
    0x0008960c add r3, pc                                                        |     r3 = 0x112e20;
    0x0008960e adds r2, 7                                                        |     r2 += 7;
    0x00089610 str r3, [sp, 4]                                                   |     var_4h = r3;
    0x00089612 movw r3, 0x111                                                    |     r3 = 0x111;
    0x00089616 blx 0x39c0c                                                       |     fcn_00039c0c ();
    0x0008961a b 0x8909c                                                         |     goto label_3;
                                                                                 | label_49:
    0x0008961c strd r8, r6, [r4, 0x38]                                           |     __asm ("strd r8, r6, [r4, 0x38]");
    0x00089620 b 0x8909c                                                         |     goto label_3;
                                                                                 | label_51:
    0x00089622 blx 0x3d534                                                       |     r0 = fcn_0003d534 ();
    0x00089626 cmp r0, 3                                                         |     
                                                                                 |     if (r0 > 3) {
    0x00089628 bgt 0x8968a                                                       |         goto label_53;
                                                                                 |     }
    0x0008962a rsbs r5, r5, 0                                                    |     r5 -= ;
    0x0008962c uxtb r5, r5                                                       |     r5 = (int8_t) r5;
    0x0008962e rsbs r5, r5, 0                                                    |     r5 -= ;
    0x00089630 b 0x895ca                                                         |     goto label_10;
                                                                                 | label_52:
    0x00089632 mov r2, sl                                                        |     r2 = sl;
    0x00089634 movs r1, 0x40                                                     |     r1 = 0x40;
    0x00089636 add.w r0, r7, 0xc                                                 |     r0 += var_ch_2;
    0x0008963a ldr r5, [pc, 0x1d8]                                               |     
    0x0008963c blx 0x3f258                                                       |     fcn_0003f258 ();
    0x00089640 ldr r4, [pc, 0x1d4]                                               |     
    0x00089642 movs r3, 0xe7                                                     |     r3 = 0xe7;
    0x00089644 ldr r2, [pc, 0x1d4]                                               |     
    0x00089646 add r5, pc                                                        |     r5 = 0x112e60;
    0x00089648 mov r1, r6                                                        |     r1 = r6;
    0x0008964a add r4, pc                                                        |     r4 = 0x112e66;
    0x0008964c add r2, pc                                                        |     r2 = 0x112e6c;
                                                                                 |     do {
    0x0008964e str r0, [sp, 8]                                                   |         var_8h = r0;
    0x00089650 adds r2, 7                                                        |         r2 += 7;
    0x00089652 str r5, [sp, 4]                                                   |         var_4h = r5;
    0x00089654 movs r0, 4                                                        |         r0 = 4;
    0x00089656 str r4, [sp]                                                      |         *(sp) = r4;
    0x00089658 blx 0x39c0c                                                       |         r0 = fcn_00039c0c ();
    0x0008965c mov r5, r0                                                        |         r5 = r0;
    0x0008965e b 0x895ca                                                         |         goto label_10;
                                                                                 | label_42:
    0x00089660 ldr r2, [pc, 0x1bc]                                               |         
    0x00089662 movs r3, 0xea                                                     |         r3 = 0xea;
    0x00089664 ldr r5, [pc, 0x1bc]                                               |         
    0x00089666 ldr r4, [pc, 0x1c0]                                               |         
    0x00089668 add r2, pc                                                        |         r2 = 0x112e8c;
    0x0008966a strd r6, r8, [sp, 8]                                              |         __asm ("strd r6, r8, [var_8h]");
    0x0008966e add r5, pc                                                        |         r5 = 0x112e96;
    0x00089670 add r4, pc                                                        |         r4 = 0x112e9e;
    0x00089672 b 0x89518                                                         |         goto label_11;
                                                                                 | label_30:
    0x00089674 blx 0x3d208                                                       |         fcn_0003d208 ();
                                                                                 | label_48:
    0x00089678 blx 0x3d534                                                       |         r0 = fcn_0003d534 ();
    0x0008967c cmp r0, 3                                                         |         
                                                                                 |         if (r0 <= 3) {
    0x0008967e bgt 0x896ba                                                       |             
    0x00089680 rsb.w r3, r8, 0                                                   |             r3 = r8 - ;
    0x00089684 uxtb r3, r3                                                       |             r3 = (int8_t) r3;
    0x00089686 rsbs r5, r3, 0                                                    |             r5 = r3 - ;
    0x00089688 b 0x895ca                                                         |             goto label_10;
                                                                                 | label_53:
    0x0008968a mov r2, r6                                                        |             r2 = r6;
    0x0008968c movs r1, 0x40                                                     |             r1 = 0x40;
    0x0008968e add.w r0, r7, 0xc                                                 |             r0 += var_ch_2;
    0x00089692 ldr r6, [pc, 0x198]                                               |             
    0x00089694 blx 0x3f258                                                       |             fcn_0003f258 ();
    0x00089698 ldr r4, [pc, 0x194]                                               |             
    0x0008969a mov r1, r5                                                        |             r1 = r5;
    0x0008969c ldr r2, [pc, 0x194]                                               |             
    0x0008969e add r6, pc                                                        |             r6 = 0x112ed0;
    0x000896a0 str r0, [sp, 8]                                                   |             var_8h = r0;
    0x000896a2 mov.w r3, 0x108                                                   |             r3 = 0x108;
    0x000896a6 add r4, pc                                                        |             r4 = 0x112eda;
    0x000896a8 movs r0, 4                                                        |             r0 = 4;
    0x000896aa add r2, pc                                                        |             r2 = 0x112ee2;
    0x000896ac str r6, [sp, 4]                                                   |             var_4h = r6;
    0x000896ae adds r2, 7                                                        |             r2 += 7;
    0x000896b0 str r4, [sp]                                                      |             *(sp) = r4;
    0x000896b2 blx 0x39c0c                                                       |             r0 = fcn_00039c0c ();
    0x000896b6 mov r5, r0                                                        |             r5 = r0;
    0x000896b8 b 0x895ca                                                         |             goto label_10;
                                                                                 |         }
    0x000896ba mov r2, r6                                                        |         r2 = r6;
    0x000896bc movs r1, 0x40                                                     |         r1 = 0x40;
    0x000896be add.w r0, r7, 0xc                                                 |         r0 += var_ch_2;
    0x000896c2 ldr r5, [pc, 0x174]                                               |         
    0x000896c4 blx 0x3f258                                                       |         fcn_0003f258 ();
    0x000896c8 ldr r4, [pc, 0x170]                                               |         
    0x000896ca movs r3, 0xf8                                                     |         r3 = 0xf8;
    0x000896cc ldr r2, [pc, 0x170]                                               |         
    0x000896ce add r5, pc                                                        |         r5 = 0x112f0c;
    0x000896d0 mov r1, r8                                                        |         r1 = r8;
    0x000896d2 add r4, pc                                                        |         r4 = 0x112f12;
    0x000896d4 add r2, pc                                                        |         r2 = 0x112f18;
    0x000896d6 b 0x8964e                                                         |         
                                                                                 |     } while (1);
                                                                                 | label_12:
    0x000896d8 ldr r1, [pc, 0x168]                                               |     
    0x000896da mov.w r2, 0x1a4                                                   |     r2 = 0x1a4;
    0x000896de ldr r3, [pc, 0x168]                                               |     
    0x000896e0 ldr r0, [pc, 0x168]                                               |     
    0x000896e2 add r1, pc                                                        |     r1 = 0x112f2a;
    0x000896e4 add r3, pc                                                        |     r3 = 0x112f32;
    0x000896e6 adds r1, 7                                                        |     r1 += 7;
    0x000896e8 add r0, pc                                                        |     r0 = 0x112f38;
    0x000896ea blx 0x395a4                                                       |     fcn_000395a4 ();
    0x000896ee nop                                                               |     
    0x000896f0 strd r0, r0, [r6, 0x4c]                                           |     __asm ("strd r0, r0, [r6, 0x4c]");
    0x000896f4 movs r6, 0xb0                                                     |     r6 = 0xb0;
    0x000896f6 movs r0, r0                                                       |     
    0x000896f8 add r7, sp, 0x240                                                 |     r7 += arg_240h;
    0x000896fa movs r6, r1                                                       |     r6 = r1;
                                                                                 |     if (r2 != 0) {
    0x000896fc cbz r2, 0x8974e                                                   |         
    0x000896fe movs r6, r1                                                       |         r6 = r1;
    0x00089700 push {r1, r5, r7, lr}                                             |         
    0x00089702 movs r6, r1                                                       |         r6 = r1;
    0x00089704 invalid                                                           |         
                                                                                 |     }
    0x0008974e movs r6, r1                                                       |     r6 = r1;
    0x00089750 sxth r6, r5                                                       |     __asm ("sxth r6, r5");
    0x00089752 movs r6, r1                                                       |     r6 = r1;
    0x00089754 sub sp, 0x1e8                                                     |     
    0x00089756 movs r6, r1                                                       |     r6 = r1;
    0x00089758 add r5, sp, 0x60                                                  |     r5 += var_60h;
    0x0008975a movs r6, r1                                                       |     r6 = r1;
    0x0008975c sxth r2, r2                                                       |     __asm ("sxth r2, r2");
    0x0008975e movs r6, r1                                                       |     r6 = r1;
    0x00089760 add r6, sp, 0x118                                                 |     r6 += var_118h;
    0x00089762 movs r6, r1                                                       |     r6 = r1;
    0x00089764 add r6, sp, 0x310                                                 |     r6 += arg_310h;
    0x00089766 movs r6, r1                                                       |     r6 = r1;
    0x00089768 add r6, sp, 0x2f0                                                 |     r6 += arg_2f0h;
    0x0008976a movs r6, r1                                                       |     r6 = r1;
    0x0008976c add r4, sp, 0xe0                                                  |     r4 += var_e0h;
    0x0008976e movs r6, r1                                                       |     r6 = r1;
                                                                                 |     if (r6 != 0) {
    0x00089770 cbz r6, 0x8977c                                                   |         
    0x00089772 movs r6, r1                                                       |         r6 = r1;
    0x00089774 add r4, sp, 0x248                                                 |         r4 += var_248h;
    0x00089776 movs r6, r1                                                       |         r6 = r1;
    0x00089778 add r4, sp, 0x78                                                  |         r4 += var_78h;
    0x0008977a movs r6, r1                                                       |         r6 = r1;
                                                                                 |     }
                                                                                 |     if (r4 != 0) {
    0x0008977c cbz r4, 0x89794                                                   |         
    0x0008977e movs r6, r1                                                       |         r6 = r1;
    0x00089780 subs r3, 0xa0                                                     |         r3 -= 0xa0;
    0x00089782 movs r2, r2                                                       |         
    0x00089784 add r4, sp, 0x10                                                  |         r4 += var_10h_2;
    0x00089786 movs r6, r1                                                       |         r6 = r1;
    0x00089788 sub sp, 0x1c8                                                     |         
    0x0008978a movs r6, r1                                                       |         r6 = r1;
    0x0008978c add r4, sp, 0x228                                                 |         r4 += var_60h;
    0x0008978e movs r6, r1                                                       |         r6 = r1;
    0x00089790 add r3, sp, 0x390                                                 |         r3 += var_390h;
    0x00089792 movs r6, r1                                                       |         r6 = r1;
                                                                                 |     }
    0x00089794 add r7, sp, 0x2f8                                                 |     r7 += arg_2f8h;
    0x00089796 movs r6, r1                                                       |     r6 = r1;
                                                                                 |     if (r6 != 0) {
    0x00089798 cbz r6, 0x897ce                                                   |         
    0x0008979a movs r6, r1                                                       |         r6 = r1;
    0x0008979c add r3, sp, 0x280                                                 |         r3 += arg_280h;
    0x0008979e movs r6, r1                                                       |         r6 = r1;
    0x000897a0 add r4, sp, 0x390                                                 |         r4 += arg_390h;
    0x000897a2 movs r6, r1                                                       |         r6 = r1;
                                                                                 |         if (r4 != 0) {
    0x000897a4 cbz r4, 0x897b8                                                   |             
    0x000897a6 movs r6, r1                                                       |             r6 = r1;
    0x000897a8 add r3, sp, 0x130                                                 |             r3 += var_130h;
    0x000897aa movs r6, r1                                                       |             r6 = r1;
    0x000897ac add sp, 0x118                                                     |             
    0x000897ae movs r6, r1                                                       |             r6 = r1;
    0x000897b0 subs r2, 0xce                                                     |             r2 -= 0xce;
    0x000897b2 movs r2, r2                                                       |             
    0x000897b4 add r3, sp, 0x60                                                  |             r3 += var_60h;
    0x000897b6 movs r6, r1                                                       |             r6 = r1;
                                                                                 |         }
    0x000897b8 add sp, 0x18                                                      |         
    0x000897ba movs r6, r1                                                       |         r6 = r1;
    0x000897bc add r4, sp, 0x218                                                 |         r4 += var_218h;
    0x000897be movs r6, r1                                                       |         r6 = r1;
    0x000897c0 add sp, 0x1e8                                                     |         
    0x000897c2 movs r6, r1                                                       |         r6 = r1;
    0x000897c4 add r2, sp, 0x2f0                                                 |         r2 += arg_2f0h;
    0x000897c6 movs r6, r1                                                       |         r6 = r1;
    0x000897c8 add r4, sp, 0x2b0                                                 |         r4 += arg_2b0h;
    0x000897ca movs r6, r1                                                       |         r6 = r1;
    0x000897cc add r2, sp, 0x278                                                 |         r2 += arg_278h;
                                                                                 |     }
    0x000897ce movs r6, r1                                                       |     r6 = r1;
    0x000897d0 add r7, sp, 0x260                                                 |     r7 += var_260h;
    0x000897d2 movs r6, r1                                                       |     r6 = r1;
    0x000897d4 add r4, sp, 0x1e0                                                 |     r4 += var_1e0h;
    0x000897d6 movs r6, r1                                                       |     r6 = r1;
    0x000897d8 add r3, sp, 0x70                                                  |     r3 += var_70h;
    0x000897da movs r6, r1                                                       |     r6 = r1;
    0x000897dc add sp, 0x98                                                      |     
    0x000897de movs r6, r1                                                       |     r6 = r1;
    0x000897e0 add r2, sp, 0x1a8                                                 |     r2 += var_1a8h;
    0x000897e2 movs r6, r1                                                       |     r6 = r1;
    0x000897e4 add r4, sp, 0x3d0                                                 |     r4 += arg_3d0h;
    0x000897e6 movs r6, r1                                                       |     r6 = r1;
    0x000897e8 add r2, sp, 0x78                                                  |     r2 += var_78h;
    0x000897ea movs r6, r1                                                       |     r6 = r1;
    0x000897ec add r4, sp, 0x3f0                                                 |     r4 += arg_3f0h;
    0x000897ee movs r6, r1                                                       |     r6 = r1;
    0x000897f0 add r7, sp, 0x2a8                                                 |     r7 += arg_2a8h;
    0x000897f2 movs r6, r1                                                       |     r6 = r1;
    0x000897f4 add r7, sp, 0x1b8                                                 |     r7 += var_1b8h;
    0x000897f6 movs r6, r1                                                       |     r6 = r1;
    0x000897f8 add r1, sp, 0x2c0                                                 |     r1 += arg_2c0h;
    0x000897fa movs r6, r1                                                       |     r6 = r1;
    0x000897fc add r3, sp, 0x280                                                 |     r3 += arg_280h;
    0x000897fe movs r6, r1                                                       |     r6 = r1;
    0x00089800 add r4, sp, 0x2c0                                                 |     r4 += arg_2c0h;
    0x00089802 movs r6, r1                                                       |     r6 = r1;
    0x00089804 add r4, sp, 0x270                                                 |     r4 += arg_270h;
    0x00089806 movs r6, r1                                                       |     r6 = r1;
    0x00089808 add r6, sp, 0x2f8                                                 |     r6 += arg_2f8h;
    0x0008980a movs r6, r1                                                       |     r6 = r1;
    0x0008980c add r1, sp, 0x90                                                  |     r1 += var_90h;
    0x0008980e movs r6, r1                                                       |     r6 = r1;
    0x00089810 add r4, sp, 0x1b0                                                 |     r4 += var_1b0h;
    0x00089812 movs r6, r1                                                       |     r6 = r1;
    0x00089814 add r3, sp, 0x78                                                  |     r3 += var_78h;
    0x00089816 movs r6, r1                                                       |     r6 = r1;
    0x00089818 add r6, sp, 0x1d8                                                 |     r6 += var_1d8h;
    0x0008981a movs r6, r1                                                       |     r6 = r1;
    0x0008981c add r0, sp, 0x380                                                 |     r0 += arg_380h;
    0x0008981e movs r6, r1                                                       |     r6 = r1;
    0x00089820 add r0, sp, 0x310                                                 |     r0 += arg_310h;
    0x00089822 movs r6, r1                                                       |     r6 = r1;
    0x00089824 add r3, sp, 0x98                                                  |     r3 += var_98h;
    0x00089826 movs r6, r1                                                       |     r6 = r1;
    0x00089828 add r6, sp, 0x140                                                 |     r6 += var_1d8h;
    0x0008982a movs r6, r1                                                       |     r6 = r1;
    0x0008982c add r3, sp, 0x2c8                                                 |     r3 += arg_2c8h;
    0x0008982e movs r6, r1                                                       |     r6 = r1;
    0x00089830 add r6, sp, 0x68                                                  |     r6 += var_68h;
    0x00089832 movs r6, r1                                                       |     r6 = r1;
    0x00089834 add r0, sp, 0x208                                                 |     r0 += var_208h;
    0x00089836 movs r6, r1                                                       |     r6 = r1;
    0x00089838 add r3, sp, 0x48                                                  |     r3 += var_e0h;
    0x0008983a movs r6, r1                                                       |     r6 = r1;
    0x0008983c add r5, sp, 0x3b8                                                 |     r5 += arg_3b8h;
    0x0008983e movs r6, r1                                                       |     r6 = r1;
    0x00089840 add r0, sp, 0x160                                                 |     r0 += var_10h;
    0x00089842 movs r6, r1                                                       |     r6 = r1;
    0x00089844 add r0, sp, 0x128                                                 |     r0 += var_128h;
    0x00089846 movs r6, r1                                                       |     r6 = r1;
    0x00089848 add r5, sp, 0x110                                                 |     r5 += var_1a8h;
    0x0008984a movs r6, r1                                                       |     r6 = r1;
    0x0008984c add r4, sp, 0x110                                                 |     r4 += var_1a8h;
    0x0008984e movs r6, r1                                                       |     r6 = r1;
                                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/libsystemd-shared-249.so @ 0x7ad9c */
                                                                     | #include <stdint.h>
                                                                     |  
                                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                     |  
    ; (fcn) sym.table_print ()                                       | void table_print (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg_10h, int16_t arg_14h, int16_t arg_18h, uint32_t arg1, int16_t arg2) {
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_8h_2;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_8h_6;
                                                                     |     int16_t var_8h_5;
                                                                     |     int16_t var_8h_4;
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_8h;
                                                                     |     int32_t var_4h_2;
                                                                     |     int32_t var_8h_3;
                                                                     |     int32_t var_ch_2;
                                                                     |     int32_t var_10h;
                                                                     |     int32_t var_14h;
                                                                     |     int32_t var_18h;
                                                                     |     int32_t var_1ch;
                                                                     |     int32_t var_20h;
                                                                     |     int32_t var_24h;
                                                                     |     int32_t var_28h;
                                                                     |     int32_t var_2ch;
                                                                     |     int32_t var_30h;
                                                                     |     int32_t var_34h;
                                                                     |     int32_t var_38h;
                                                                     |     int32_t var_3ch;
                                                                     |     int32_t var_40h;
                                                                     |     int32_t var_44h;
                                                                     |     int32_t var_48h;
                                                                     |     int32_t var_4ch;
                                                                     |     int32_t var_50h;
                                                                     |     int32_t var_54h;
                                                                     |     int32_t var_58h;
                                                                     |     int32_t var_5ch;
                                                                     |     int32_t var_60h;
                                                                     |     int32_t var_64h;
                                                                     |     int32_t var_68h;
                                                                     |     int32_t var_6ch;
                                                                     |     int8_t var_70h;
                                                                     |     int32_t var_74h;
                                                                     |     int16_t var_78h;
                                                                     |     int32_t var_7ch;
                                                                     |     int16_t var_0h_2;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0007ad9c ldr.w r3, [pc, 0xbfc]                                 |     r3 = *(0x0007b99c);
    0x0007ada0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0007ada4 sub sp, 0x8c                                          |     
    0x0007ada6 ldr.w r2, [pc, 0xbf8]                                 |     
    0x0007ada8 cmp r3, 0xf8                                          |     
    0x0007adaa add r3, pc                                            |     r3 += pc;
    0x0007adac add r7, sp, 8                                         |     r7 += var_8h;
    0x0007adae str r3, [r7, 0x44]                                    |     var_44h = r3;
    0x0007adb0 ldr.w r3, [pc, 0xbf0]                                 |     r3 = *(0x7b9a4);
    0x0007adb4 add r2, pc                                            |     r2 = 0xf675a;
    0x0007adb6 str r1, [r7, 0x68]                                    |     var_68h = r1;
    0x0007adb8 ldr r3, [r2, r3]                                      |     
    0x0007adba ldr r3, [r3]                                          |     r3 = *(0xf675a);
    0x0007adbc str r3, [r7, 0x7c]                                    |     var_7ch = r3;
    0x0007adbe mov.w r3, 0                                           |     r3 = 0;
    0x0007adc2 cmp r0, 0                                             |     
                                                                     |     if (arg_0h == ) {
    0x0007adc4 beq.w 0x7b2fe                                         |         goto label_43;
                                                                     |     }
    0x0007adc8 ldr r3, [r7, 0x68]                                    |     r3 = var_68h;
    0x0007adca mov sl, r0                                            |     sl = r0;
    0x0007adcc cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0007adce beq.w 0x7b23e                                         |         goto label_44;
                                                                     |     }
                                                                     | label_5:
    0x0007add2 ldrd r5, r4, [sl]                                     |     __asm ("ldrd r5, r4, [sl]");
    0x0007add6 mov r1, r5                                            |     r1 = r5;
    0x0007add8 mov r0, r4                                            |     r0 = r4;
    0x0007adda bl 0x15f7fc                                           |     r0 = fcn_0015f7fc (r0, r1, r2);
    0x0007adde mov fp, r0                                            |     
    0x0007ade0 cmp r1, 0                                             |     
                                                                     |     if (r1 != 0) {
    0x0007ade2 bne.w 0x7b31a                                         |         goto label_45;
                                                                     |     }
    0x0007ade6 cmp r4, r5                                            |     
                                                                     |     if (r4 <= r5) {
    0x0007ade8 blo.w 0x7b352                                         |         goto label_46;
                                                                     |     }
    0x0007adec ldr.w r3, [sl, 0x20]                                  |     r3 = *((sl + 0x20));
    0x0007adf0 str r3, [r7, 0x5c]                                    |     var_5ch = r3;
                                                                     |     if (r3 == 0) {
    0x0007adf2 cbz r3, 0x7ae40                                       |         goto label_47;
                                                                     |     }
    0x0007adf4 lsrs r3, r0, 0x1e                                     |     r3 = r0 >> 0x1e;
    0x0007adf6 ite ne                                                |     
                                                                     |     if (r3 == r0) {
    0x0007adf8 movne r4, 1                                           |         r4 = 1;
                                                                     |     }
                                                                     |     if (r3 != r0) {
    0x0007adfa moveq r4, 0                                           |         r4 = 0;
                                                                     |     }
                                                                     |     if (r3 != r0) {
    0x0007adfc bne.w 0x7b406                                         |         goto label_48;
                                                                     |     }
    0x0007ae00 lsls r0, r0, 2                                        |     r0 <<= 2;
    0x0007ae02 cmp r0, 1                                             |     
    0x0007ae04 it lo                                                 |     
                                                                     |     if (r0 >= 1) {
    0x0007ae06 movlo r0, 1                                           |         r0 = 1;
                                                                     |     }
    0x0007ae08 blx 0x3d0b4                                           |     fcn_0003d0b4 ();
    0x0007ae0c str r0, [r7, 0x5c]                                    |     var_5ch = r0;
    0x0007ae0e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007ae10 beq.w 0x7b406                                         |         goto label_48;
                                                                     |     }
    0x0007ae14 ldr r3, [r7, 0x5c]                                    |     r3 = var_5ch;
    0x0007ae16 subs r2, r3, 4                                        |     r2 = r3 - 4;
    0x0007ae18 mov r3, r4                                            |     r3 = r4;
                                                                     |     do {
    0x0007ae1a adds r4, 1                                            |         r4++;
    0x0007ae1c str r3, [r2, 4]!                                      |         *((r2 += 4)) = r3;
    0x0007ae20 cmp fp, r4                                            |         
    0x0007ae22 add r3, r5                                            |         r3 += r5;
    0x0007ae24 bhi 0x7ae1a                                           |         
                                                                     |     } while (fp > r4);
    0x0007ae26 cmp.w fp, 1                                           |     
                                                                     |     if (fp >= 1) {
    0x0007ae2a bls 0x7ae40                                           |         
    0x0007ae2c ldr.w r3, [pc, 0xb78]                                 |         r3 = *(0x0007b9a8);
    0x0007ae30 movs r2, 4                                            |         r2 = 4;
    0x0007ae32 ldr r0, [r7, 0x5c]                                    |         r0 = var_5ch;
    0x0007ae34 mov r1, fp                                            |         r1 = fp;
    0x0007ae36 str.w sl, [sp]                                        |         __asm ("str.w sl, [sp]");
    0x0007ae3a add r3, pc                                            |         r3 += pc;
    0x0007ae3c blx 0x3d09c                                           |         chdir ();
                                                                     |     }
                                                                     | label_47:
    0x0007ae40 ldr.w r3, [sl, 0x18]                                  |     r3 = *((sl + 0x18));
    0x0007ae44 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0007ae46 beq.w 0x7b236                                         |         goto label_49;
                                                                     |     }
    0x0007ae4a ldr.w r3, [sl, 0x1c]                                  |     r3 = *((sl + 0x1c));
    0x0007ae4e str r3, [r7, 0x6c]                                    |     var_6ch = r3;
                                                                     | label_4:
    0x0007ae50 ldr r3, [r7, 0x6c]                                    |     r3 = var_6ch;
    0x0007ae52 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0007ae54 beq.w 0x7b36e                                         |         goto label_50;
                                                                     |     }
    0x0007ae58 ldr r2, [r7, 0x6c]                                    |     r2 = var_6ch;
    0x0007ae5a lsrs r3, r2, 0x1e                                     |     r3 = r2 >> 0x1e;
                                                                     |     if (r3 != r2) {
    0x0007ae5c bne.w 0x7b4da                                         |         goto label_51;
                                                                     |     }
    0x0007ae60 lsls r3, r2, 2                                        |     r3 = r2 << 2;
    0x0007ae62 cmp.w r3, 0x400000                                    |     
    0x0007ae66 str r3, [r7, 0x4c]                                    |     var_4ch = r3;
                                                                     |     if (r3 > 0x400000) {
    0x0007ae68 bhi.w 0x7b3a6                                         |         goto label_52;
                                                                     |     }
    0x0007ae6c ldr r3, [r7, 0x4c]                                    |     r3 = var_4ch;
    0x0007ae6e cmp r3, 1                                             |     
    0x0007ae70 it lo                                                 |     
                                                                     |     if (r3 >= 1) {
    0x0007ae72 movlo r3, 1                                           |         r3 = 1;
                                                                     |     }
    0x0007ae74 adds r3, 7                                            |     r3 += 7;
    0x0007ae76 str r3, [r7, 0x18]                                    |     var_18h = r3;
    0x0007ae78 bic r3, r3, 7                                         |     r3 = BIT_MASK (r3, 7);
    0x0007ae7c sub.w sp, sp, r3                                      |     
    0x0007ae80 add r2, sp, 8                                         |     r2 += var_8h;
    0x0007ae82 sub.w sp, sp, r3                                      |     
    0x0007ae86 str r2, [r7, 0x40]                                    |     var_40h = r2;
    0x0007ae88 add r2, sp, 8                                         |     r2 += var_8h;
    0x0007ae8a sub.w sp, sp, r3                                      |     
    0x0007ae8e str r2, [r7, 0x34]                                    |     var_34h = r2;
    0x0007ae90 add r3, sp, 8                                         |     r3 += var_8h;
    0x0007ae92 str r3, [r7, 0x30]                                    |     var_30h = r3;
    0x0007ae94 ldr r3, [r7, 0x6c]                                    |     r3 = var_6ch;
    0x0007ae96 lsrs r1, r3, 0x1d                                     |     r1 = r3 >> 0x1d;
                                                                     |     if (r1 != r3) {
    0x0007ae98 bne.w 0x7b49a                                         |         goto label_53;
                                                                     |     }
    0x0007ae9c lsls r4, r3, 3                                        |     r4 = r3 << 3;
    0x0007ae9e cmp.w r4, 0x400000                                    |     
                                                                     |     if (r4 > 0x400000) {
    0x0007aea2 bhi.w 0x7b3c2                                         |         goto label_54;
                                                                     |     }
    0x0007aea6 cmp r4, 1                                             |     
    0x0007aea8 mov r2, r4                                            |     r2 = r4;
    0x0007aeaa it lo                                                 |     
                                                                     |     if (r4 >= 1) {
    0x0007aeac movlo r2, 1                                           |         r2 = 1;
                                                                     |     }
    0x0007aeae adds r3, r2, 7                                        |     r3 = r2 + 7;
    0x0007aeb0 bic r3, r3, 7                                         |     r3 = BIT_MASK (r3, 7);
    0x0007aeb4 sub.w sp, sp, r3                                      |     
    0x0007aeb8 add r0, sp, 8                                         |     r0 += var_8h;
    0x0007aeba blx 0x39d84                                           |     fcn_00039d84 ();
    0x0007aebe ldr r2, [r7, 0x4c]                                    |     r2 = var_4ch;
    0x0007aec0 ldr r3, [r7, 0x40]                                    |     r3 = var_40h;
    0x0007aec2 str r0, [r7, 0x28]                                    |     var_28h = r0;
    0x0007aec4 adds r1, r2, r3                                       |     r1 = r2 + r3;
    0x0007aec6 movs r2, 1                                            |     r2 = 1;
                                                                     |     do {
    0x0007aec8 str r2, [r3], 4                                       |         *(r3) = r2;
                                                                     |         r3 += 4;
    0x0007aecc cmp r3, r1                                            |         
    0x0007aece bne 0x7aec8                                           |         
                                                                     |     } while (r3 != r1);
    0x0007aed0 ldr r3, [r7, 0x28]                                    |     r3 = var_28h;
    0x0007aed2 movs r1, 0xff                                         |     r1 = 0xff;
    0x0007aed4 ldr r0, [r7, 0x34]                                    |     r0 = var_34h;
    0x0007aed6 adds r3, r4, r3                                       |     r3 = r4 + r3;
    0x0007aed8 ldr r4, [r7, 0x4c]                                    |     r4 = var_4ch;
    0x0007aeda str r3, [r7, 8]                                       |     var_8h_3 = r3;
    0x0007aedc mov r2, r4                                            |     r2 = r4;
    0x0007aede blx 0x39d84                                           |     fcn_00039d84 ();
    0x0007aee2 ldr r3, [r7, 0x6c]                                    |     r3 = var_6ch;
    0x0007aee4 mov r2, r4                                            |     r2 = r4;
    0x0007aee6 str.w fp, [r7, 0x24]                                  |     __asm ("str.w fp, [var_24h]");
    0x0007aeea mov fp, sl                                            |     
    0x0007aeec cmp r3, 0                                             |     
    0x0007aeee mov.w r3, 0                                           |     r3 = 0;
    0x0007aef2 str r3, [r7, 0x10]                                    |     var_10h = r3;
    0x0007aef4 it eq                                                 |     
                                                                     |     if (r3 != 0) {
    0x0007aef6 moveq r2, 4                                           |         r2 = 4;
                                                                     |     }
    0x0007aef8 str r3, [r7, 0x3c]                                    |     var_3ch = r3;
    0x0007aefa ldr r3, [r7, 0x40]                                    |     r3 = var_40h;
    0x0007aefc str r2, [r7, 4]                                       |     var_4h_2 = r2;
    0x0007aefe subs r3, 4                                            |     r3 -= 4;
    0x0007af00 str r3, [r7, 0x20]                                    |     var_20h = r3;
    0x0007af02 ldr r3, [r7, 0x30]                                    |     r3 = var_30h;
    0x0007af04 subs r3, 4                                            |     r3 -= 4;
    0x0007af06 str r3, [r7, 0x1c]                                    |     var_1ch = r3;
                                                                     | label_41:
    0x0007af08 ldr r2, [r7, 0x4c]                                    |     r2 = var_4ch;
    0x0007af0a movs r1, 0xff                                         |     r1 = 0xff;
    0x0007af0c ldr r0, [r7, 0x30]                                    |     r0 = var_30h;
    0x0007af0e blx 0x39d84                                           |     fcn_00039d84 ();
    0x0007af12 mov.w r3, 0                                           |     r3 = 0;
    0x0007af16 ldr r2, [r7, 0x24]                                    |     r2 = var_24h;
    0x0007af18 strb.w r3, [r7, 0x70]                                 |     var_70h = r3;
    0x0007af1c ldrb.w r3, [fp, 8]                                    |     r3 = *(arg_8h);
    0x0007af20 eor r3, r3, 1                                         |     r3 ^= 1;
    0x0007af24 cmp r2, r3                                            |     
    0x0007af26 str r3, [r7, 0x14]                                    |     var_14h = r3;
                                                                     |     if (r2 < r3) {
    0x0007af28 bls.w 0x7b0cc                                         |         goto label_55;
                                                                     |     }
    0x0007af2c ldr r3, [r7, 0x28]                                    |     r3 = var_28h;
    0x0007af2e subs r3, 8                                            |     r3 -= 8;
    0x0007af30 str r3, [r7, 0xc]                                     |     var_ch_2 = r3;
                                                                     | label_1:
    0x0007af32 ldr r2, [r7, 0x14]                                    |     r2 = var_14h;
    0x0007af34 mov.w r8, 0                                           |     r8 = 0;
    0x0007af38 ldr.w r3, [fp]                                        |     r3 = *(fp);
    0x0007af3c mul r3, r2, r3                                        |     r3 = r2 * r3;
    0x0007af40 ldr.w r2, [fp, 0x14]                                  |     r2 = *(arg_14h);
    0x0007af44 add.w r3, r2, r3, lsl 2                               |     r3 = r2 + (r3 << 2);
    0x0007af48 str r3, [r7, 0x38]                                    |     var_38h = r3;
    0x0007af4a ldr r3, [r7, 0xc]                                     |     r3 = var_ch_2;
    0x0007af4c str r3, [r7, 0x58]                                    |     var_58h = r3;
    0x0007af4e ldr r3, [r7, 0x34]                                    |     r3 = var_34h;
    0x0007af50 str r3, [r7, 0x64]                                    |     var_64h = r3;
    0x0007af52 ldr r3, [r7, 0x20]                                    |     r3 = var_20h;
    0x0007af54 str r3, [r7, 0x54]                                    |     var_54h = r3;
    0x0007af56 ldr r3, [r7, 0x1c]                                    |     r3 = var_1ch;
    0x0007af58 str r3, [r7, 0x50]                                    |     var_50h = r3;
    0x0007af5a add.w r3, r7, 0x74                                    |     r3 += var_74h;
    0x0007af5c lsls r4, r6, 0xd                                      |     r4 = r6 << 0xd;
    0x0007af5e str r3, [r7, 0x2c]                                    |     var_2ch = r3;
                                                                     | label_0:
    0x0007af60 ldr.w r2, [fp, 0x18]                                  |     r2 = *(arg_18h);
    0x0007af64 lsl.w r3, r8, 2                                       |     r3 = r8 << 2;
                                                                     |     if (r2 != 0) {
    0x0007af68 cbz r2, 0x7af70                                       |         
    0x0007af6a ldr.w r3, [r2, r8, lsl 2]                             |         offset_0 = r8 << 2;
                                                                     |         r3 = *((r2 + offset_0));
    0x0007af6e lsls r3, r3, 2                                        |         r3 <<= 2;
                                                                     |     }
    0x0007af70 ldr r2, [r7, 0x38]                                    |     r2 = var_38h;
    0x0007af72 ldr r6, [r2, r3]                                      |     r6 = *((r2 + r3));
    0x0007af74 cmp r6, 0                                             |     
                                                                     |     if (r6 == 0) {
    0x0007af76 beq.w 0x7b336                                         |         goto label_56;
                                                                     |     }
    0x0007af7a ldr r3, [r7, 0x3c]                                    |     r3 = var_3ch;
    0x0007af7c cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0007af7e beq.w 0x7b2a0                                         |         goto label_57;
                                                                     |     }
    0x0007af82 ldr.w r3, [r3, r8, lsl 2]                             |     offset_1 = r8 << 2;
                                                                     |     r3 = *((r3 + offset_1));
    0x0007af86 str r3, [r7, 0x60]                                    |     var_60h = r3;
                                                                     | label_8:
    0x0007af88 ldr r3, [r7, 0x2c]                                    |     r3 = var_2ch;
    0x0007af8a movs r2, 0                                            |     r2 = 0;
    0x0007af8c mov r1, r6                                            |     r1 = r6;
    0x0007af8e mov r0, fp                                            |     r0 = fp;
    0x0007af90 str r3, [sp]                                          |     *(sp) = r3;
    0x0007af92 movs r3, 0                                            |     r3 = 0;
    0x0007af94 str r3, [r7, 0x78]                                    |     var_78h = r3;
    0x0007af96 strb.w r3, [r7, 0x74]                                 |     var_74h = r3;
    0x0007af9a ldr r3, [r7, 0x60]                                    |     r3 = var_60h;
    0x0007af9c bl 0x79038                                            |     r0 = fcn_00079038 (r0, r1, r2, r3, r4, r5);
    0x0007afa0 mov sl, r0                                            |     sl = r0;
    0x0007afa2 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007afa4 beq.w 0x7b486                                         |         goto label_58;
                                                                     |     }
    0x0007afa8 ldr.w r1, [fp, 0x10]                                  |     r1 = *(arg_10h);
    0x0007afac adds r5, r1, 1                                        |     r5 = r1 + 1;
                                                                     |     if (r5 == r1) {
    0x0007afae beq.w 0x7b29a                                         |         goto label_59;
                                                                     |     }
    0x0007afb2 add.w r2, r7, 0x78                                    |     r2 += var_78h;
    0x0007afb6 blx 0x3d994                                           |     r0 = fcn_0003d994 ();
    0x0007afba subs r2, r0, 0                                        |     r2 = r0 - 0;
                                                                     |     if (r2 < r0) {
    0x0007afbc blt.w 0x7b262                                         |         goto label_11;
                                                                     |     }
    0x0007afc0 ldr.w sl, [r7, 0x78]                                  |     sl = var_78h;
    0x0007afc4 ite ne                                                |     
                                                                     |     if (r2 == r0) {
    0x0007afc6 movne r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     |     if (r2 != r0) {
    0x0007afc8 moveq r3, 0                                           |         r3 = 0;
                                                                     |     }
    0x0007afca str r3, [r7, 0x48]                                    |     var_48h = r3;
    0x0007afcc cmp.w sl, 0                                           |     
                                                                     |     if (sl == 0) {
    0x0007afd0 beq.w 0x7b38a                                         |         goto label_60;
                                                                     |     }
                                                                     | label_7:
    0x0007afd4 movs r5, 0                                            |     r5 = 0;
    0x0007afd6 mov sb, sl                                            |     sb = sl;
                                                                     |     do {
    0x0007afd8 movs r1, 0xa                                          |         r1 = 0xa;
    0x0007afda mov r0, sb                                            |         r0 = sb;
    0x0007afdc blx 0x39820                                           |         r0 = dirname ();
    0x0007afe0 mov r4, r0                                            |         r4 = r0;
    0x0007afe2 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0007afe4 beq.w 0x7b24c                                         |             goto label_61;
                                                                     |         }
    0x0007afe8 sub.w r1, r0, sb                                      |         r1 = r0 - sb;
    0x0007afec mov r0, sb                                            |         r0 = sb;
    0x0007afee blx 0x3b5a8                                           |         r0 = fstatfs64 ();
    0x0007aff2 mov sb, r0                                            |         sb = r0;
    0x0007aff4 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0007aff6 beq.w 0x7b400                                         |             goto label_62;
                                                                     |         }
    0x0007affa blx 0x39c9c                                           |         r0 = fcn_00039c9c ();
    0x0007affe mov sl, r0                                            |         sl = r0;
    0x0007b000 mov r0, sb                                            |         r0 = sb;
    0x0007b002 blx 0x3a9a0                                           |         fcn_0003a9a0 ();
    0x0007b006 cmp.w sl, -1                                          |         
    0x0007b00a add.w sb, r4, 1                                       |         sb = r4 + 1;
                                                                     |         if (sl == -1) {
    0x0007b00e beq.w 0x7b25e                                         |             goto label_63;
                                                                     |         }
    0x0007b012 ldrb r3, [r4, 1]                                      |         r3 = *((r4 + 1));
    0x0007b014 cmp r5, sl                                            |         
    0x0007b016 it lo                                                 |         
                                                                     |         if (r5 >= sl) {
    0x0007b018 movlo r5, sl                                          |             r5 = sl;
                                                                     |         }
    0x0007b01a cmp r3, 0                                             |         
    0x0007b01c bne 0x7afd8                                           |         
                                                                     |     } while (r3 != 0);
                                                                     | label_6:
    0x0007b01e ldr r3, [r6, 0xc]                                     |     r3 = *((r6 + 0xc));
    0x0007b020 ldr r2, [r6, 8]                                       |     r2 = *((r6 + 8));
    0x0007b022 cmp r5, r3                                            |     
    0x0007b024 it hs                                                 |     
                                                                     |     if (r5 < r3) {
    0x0007b026 movhs r5, r3                                          |         r5 = r3;
                                                                     |     }
    0x0007b028 ldrb.w r3, [r7, 0x74]                                 |     r3 = var_74h;
    0x0007b02c cmp r5, r2                                            |     
    0x0007b02e it lo                                                 |     
                                                                     |     if (r5 >= r2) {
    0x0007b030 movlo r5, r2                                          |         r5 = r2;
                                                                     |     }
                                                                     |     if (r3 != 0) {
    0x0007b032 cbz r3, 0x7b03a                                       |         
    0x0007b034 movs r3, 1                                            |         r3 = 1;
    0x0007b036 strb.w r3, [r7, 0x70]                                 |         var_70h = r3;
                                                                     |     }
    0x0007b03a ldr r0, [r7, 0x78]                                    |     r0 = var_78h;
    0x0007b03c blx 0x3a9a0                                           |     fcn_0003a9a0 ();
    0x0007b040 ldr r3, [r7, 0x48]                                    |     r3 = var_48h;
    0x0007b042 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0007b044 bne.w 0x7b2a8                                         |         goto label_64;
                                                                     |     }
                                                                     | label_9:
    0x0007b048 ldr r1, [r7, 0x50]                                    |     r1 = var_50h;
    0x0007b04a ldr r2, [r1, 4]!                                      |     r2 = *((r1 += 4));
    0x0007b04e sub.w r3, r2, -1                                      |     r3 = r2 - -1;
    0x0007b052 str r1, [r7, 0x50]                                    |     var_50h = r1;
    0x0007b054 clz r3, r3                                            |     r3 &= r3;
    0x0007b058 lsrs r3, r3, 5                                        |     r3 >>= 5;
    0x0007b05a cmp r2, r5                                            |     
    0x0007b05c it lo                                                 |     
                                                                     |     if (r2 >= r5) {
    0x0007b05e orrlo r3, r3, 1                                       |         r3 |= 1;
                                                                     |     }
                                                                     |     if (r3 != 0) {
    0x0007b062 cbz r3, 0x7b066                                       |         
    0x0007b064 str r5, [r1]                                          |         *(r1) = r5;
                                                                     |     }
    0x0007b066 ldr r1, [r7, 0x54]                                    |     r1 = var_54h;
    0x0007b068 ldr r3, [r6, 8]                                       |     r3 = *((r6 + 8));
    0x0007b06a ldr r2, [r1, 4]!                                      |     r2 = *((r1 += 4));
    0x0007b06e cmp r2, r3                                            |     
    0x0007b070 str r1, [r7, 0x54]                                    |     var_54h = r1;
    0x0007b072 it lo                                                 |     
                                                                     |     if (r2 >= r3) {
    0x0007b074 strlo r3, [r1]                                        |         *(r1) = r3;
                                                                     |     }
    0x0007b076 ldr r3, [r6, 0xc]                                     |     r3 = *((r6 + 0xc));
    0x0007b078 adds r1, r3, 1                                        |     r1 = r3 + 1;
                                                                     |     if (r1 != r3) {
    0x0007b07a beq 0x7b096                                           |         
    0x0007b07c ldr r0, [r7, 0x64]                                    |         r0 = var_64h;
    0x0007b07e ldr r1, [r0]                                          |         r1 = *(r0);
    0x0007b080 cmp r3, r1                                            |         
    0x0007b082 ite hs                                                |         
                                                                     |         if (r3 < r1) {
    0x0007b084 movhs r2, 0                                           |             r2 = 0;
                                                                     |         }
                                                                     |         if (r3 >= r1) {
    0x0007b086 movlo r2, 1                                           |             r2 = 1;
                                                                     |         }
    0x0007b088 cmp.w r1, -1                                          |         
    0x0007b08c it eq                                                 |         
                                                                     |         if (r1 != -1) {
    0x0007b08e orreq r2, r2, 1                                       |             r2 |= 1;
                                                                     |         }
                                                                     |         if (r2 == 0) {
    0x0007b092 cbz r2, 0x7b096                                       |             goto label_65;
                                                                     |         }
    0x0007b094 str r3, [r0]                                          |         *(r0) = r3;
                                                                     |     }
                                                                     | label_65:
    0x0007b096 ldr r3, [r7, 0x64]                                    |     r3 = var_64h;
    0x0007b098 add.w r8, r8, 1                                       |     r8++;
    0x0007b09c ldr r1, [r7, 0x58]                                    |     r1 = var_58h;
    0x0007b09e ldr r2, [r6, 0x14]                                    |     r2 = *((r6 + 0x14));
    0x0007b0a0 adds r3, 4                                            |     r3 += 4;
    0x0007b0a2 str r3, [r7, 0x64]                                    |     var_64h = r3;
    0x0007b0a4 ldr r3, [r1, 8]!                                      |     r3 = *((r1 += 8));
    0x0007b0a8 adds r3, r3, r2                                       |     r3 += r2;
    0x0007b0aa str r1, [r7, 0x58]                                    |     var_58h = r1;
    0x0007b0ac str r3, [r1]                                          |     *(r1) = r3;
    0x0007b0ae ldr r3, [r1, 4]                                       |     r3 = *((r1 + 4));
    0x0007b0b0 adc r3, r3, 0                                         |     __asm ("adc r3, r3, 0");
    0x0007b0b4 str r3, [r1, 4]                                       |     *((r1 + 4)) = r3;
    0x0007b0b6 ldr r3, [r7, 0x6c]                                    |     r3 = var_6ch;
    0x0007b0b8 cmp r3, r8                                            |     
                                                                     |     if (r3 != r8) {
    0x0007b0ba bne.w 0x7af60                                         |         goto label_0;
                                                                     |     }
    0x0007b0be ldr r3, [r7, 0x14]                                    |     r3 = var_14h;
    0x0007b0c0 ldr r2, [r7, 0x24]                                    |     r2 = var_24h;
    0x0007b0c2 adds r3, 1                                            |     r3++;
    0x0007b0c4 cmp r2, r3                                            |     
    0x0007b0c6 str r3, [r7, 0x14]                                    |     var_14h = r3;
                                                                     |     if (r2 > r3) {
    0x0007b0c8 bhi.w 0x7af32                                         |         goto label_1;
                                                                     |     }
                                                                     | label_55:
    0x0007b0cc ldr r3, [r7, 0x6c]                                    |     r3 = var_6ch;
    0x0007b0ce mov.w sl, 0                                           |     sl = 0;
    0x0007b0d2 ldr r2, [r7, 0x34]                                    |     r2 = var_34h;
    0x0007b0d4 ldr r6, [r7, 0x20]                                    |     r6 = var_20h;
    0x0007b0d6 ldr r0, [r7, 0x1c]                                    |     r0 = var_1ch;
    0x0007b0d8 subs r3, 1                                            |     r3--;
    0x0007b0da ldr r1, [r7, 0x28]                                    |     r1 = var_28h;
    0x0007b0dc mov r5, r3                                            |     r5 = r3;
    0x0007b0de ldr.w ip, [r7, 8]                                     |     ip = var_8h_3;
    0x0007b0e2 mov r8, r3                                            |     r8 = r3;
    0x0007b0e4 mov sb, r3                                            |     sb = r3;
    0x0007b0e6 str r3, [r7, 0xc]                                     |     var_ch_2 = r3;
    0x0007b0e8 subs r4, r2, 4                                        |     r4 = r2 - 4;
    0x0007b0ea mov r3, sl                                            |     r3 = sl;
                                                                     |     do {
    0x0007b0ec ldr r2, [r1]                                          |         r2 = *(r1);
    0x0007b0ee adds r1, 8                                            |         r1 += 8;
    0x0007b0f0 adds.w r2, r2, sl                                     |         r2 += sl;
    0x0007b0f4 mov sl, r2                                            |         sl = r2;
    0x0007b0f6 ldr r2, [r1, -0x4]                                    |         r2 = *((r1 - 0x4));
    0x0007b0fa adc.w r3, r2, r3                                      |         __asm ("adc.w r3, r2, r3");
    0x0007b0fe ldr r2, [r6, 4]!                                      |         r2 = *((r6 += 4));
    0x0007b100 cmp r7, 4                                             |         
    0x0007b102 add r5, r2                                            |         r5 += r2;
    0x0007b104 ldr r2, [r4, 4]!                                      |         r2 = *((r4 += 4));
    0x0007b108 cmp.w r2, -1                                          |         
    0x0007b10c ite ne                                                |         
                                                                     |         if (r2 == -1) {
    0x0007b10e addne sb, r2                                          |             sb += r2;
                                                                     |         }
                                                                     |         if (r2 != -1) {
    0x0007b110 moveq sb, r2                                          |             sb = r2;
                                                                     |         }
    0x0007b112 ldr r2, [r0, 4]!                                      |         r2 = *((r0 += 4));
    0x0007b116 cmp ip, r1                                            |         
    0x0007b118 add r8, r2                                            |         r8 += r2;
    0x0007b11a bne 0x7b0ec                                           |         
                                                                     |     } while (ip != r1);
    0x0007b11c ldr.w r0, [fp, 0xc]                                   |     r0 = *(arg_ch);
    0x0007b120 str r3, [r7, 0x54]                                    |     var_54h = r3;
    0x0007b122 subs r1, r0, 1                                        |     r1 = r0 - 1;
    0x0007b124 adds r1, 3                                            |     r1 += 3;
                                                                     |     if (r1 >= 3) {
    0x0007b126 bls 0x7b13e                                           |         
                                                                     |         if (r0 != 0) {
    0x0007b128 cbz r0, 0x7b13c                                       |             
    0x0007b12a ldr r3, [r7, 0x10]                                    |             r3 = var_10h;
    0x0007b12c cmp r3, 0                                             |             
                                                                     |             if (r3 == 0) {
    0x0007b12e beq.w 0x7b4ce                                         |                 goto label_66;
                                                                     |             }
                                                                     | label_17:
    0x0007b132 blx 0x3bfcc                                           |             r0 = fcn_0003bfcc ();
    0x0007b136 cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x0007b138 beq.w 0x7b4b6                                         |                 goto label_67;
                                                                     |             }
                                                                     |         }
                                                                     | label_15:
    0x0007b13c mov r0, r8                                            |         r0 = r8;
                                                                     |     }
                                                                     | label_16:
    0x0007b13e ldr r3, [r7, 0x3c]                                    |     r3 = var_3ch;
    0x0007b140 cmp sb, r0                                            |     
    0x0007b142 mov r4, sb                                            |     r4 = sb;
    0x0007b144 it hs                                                 |     
                                                                     |     if (sb < r0) {
    0x0007b146 movhs r4, r0                                          |         r4 = r0;
                                                                     |     }
    0x0007b148 cmp r4, r5                                            |     
    0x0007b14a it lo                                                 |     
                                                                     |     if (r4 >= r5) {
    0x0007b14c movlo r4, r5                                          |         r4 = r5;
                                                                     |     }
    0x0007b14e cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0007b150 beq.w 0x7b476                                         |         goto label_68;
                                                                     |     }
                                                                     | label_14:
    0x0007b154 cmp r8, r4                                            |     
                                                                     |     if (r8 < r4) {
    0x0007b156 bls.w 0x7b4fc                                         |         goto label_69;
                                                                     |     }
    0x0007b15a subs r3, r4, r5                                       |     r3 = r4 - r5;
    0x0007b15c ldr r4, [r7, 0x3c]                                    |     r4 = var_3ch;
    0x0007b15e ldr r2, [r7, 4]                                       |     r2 = var_4h_2;
    0x0007b160 movs r1, 0xff                                         |     r1 = 0xff;
    0x0007b162 str r3, [r7, 0x58]                                    |     var_58h = r3;
    0x0007b164 mov r0, r4                                            |     r0 = r4;
    0x0007b166 blx 0x39d84                                           |     fcn_00039d84 ();
    0x0007b16a ldr.w sb, [r7, 0x54]                                  |     sb = var_54h;
    0x0007b16e movs r3, 0                                            |     r3 = 0;
    0x0007b170 str r3, [r7, 0x60]                                    |     var_60h = r3;
    0x0007b172 subs r3, r4, 4                                        |     r3 = r4 - 4;
    0x0007b174 str r3, [r7, 0x38]                                    |     var_38h = r3;
    0x0007b176 str.w fp, [r7, 0x2c]                                  |     __asm ("str.w fp, [var_2ch]");
    0x0007b178 add sp, 0xb0                                          |     
                                                                     | label_13:
    0x0007b17a ldr r3, [r7, 0x6c]                                    |     r3 = var_6ch;
    0x0007b17c ldr r5, [r7, 0x38]                                    |     r5 = var_38h;
    0x0007b17e ldr r6, [r7, 0x30]                                    |     r6 = var_30h;
    0x0007b180 str r3, [r7, 0x64]                                    |     var_64h = r3;
    0x0007b182 movs r3, 0                                            |     r3 = 0;
    0x0007b184 str r3, [r7, 0x54]                                    |     var_54h = r3;
    0x0007b186 ldr r3, [r7, 0x60]                                    |     r3 = var_60h;
    0x0007b188 ldr.w fp, [r7, 0x40]                                  |     fp = var_40h;
    0x0007b18c ldr r4, [r7, 0x28]                                    |     r4 = var_28h;
    0x0007b18e eor r3, r3, 1                                         |     r3 ^= 1;
    0x0007b192 str r3, [r7, 0x48]                                    |     var_48h = r3;
    0x0007b194 b 0x7b202                                             |     goto label_70;
                                                                     | label_2:
    0x0007b196 ldr r1, [r7, 0x64]                                    |     r1 = var_64h;
    0x0007b198 ldr r0, [r7, 0x58]                                    |     r0 = var_58h;
    0x0007b19a bl 0x15f5a0                                           |     r0 = fcn_0015f5a0 (r0, r1, r2);
    0x0007b19e add.w r2, r0, r8                                      |     r2 = r0 + r8;
    0x0007b1a0 lsls r0, r1, 8                                        |     r0 = r1 << 8;
                                                                     | label_3:
    0x0007b1a2 ldr r3, [r6]                                          |     r3 = *(r6);
    0x0007b1a4 cmp r3, r2                                            |     
                                                                     |     if (r3 < r2) {
    0x0007b1a6 bls.w 0x7b3fa                                         |         goto label_71;
                                                                     |     }
    0x0007b1aa ldr r3, [r7, 0x60]                                    |     r3 = var_60h;
                                                                     |     if (r3 == 0) {
    0x0007b1ac cbz r3, 0x7b1f0                                       |         goto label_72;
                                                                     |     }
    0x0007b1ae mov r3, r2                                            |     r3 = r2;
                                                                     | label_10:
    0x0007b1b0 cmp r8, r3                                            |     
    0x0007b1b2 str r3, [r5]                                          |     *(r5) = r3;
                                                                     |     if (r8 > r3) {
    0x0007b1b4 bhi.w 0x7b448                                         |         goto label_73;
                                                                     |     }
    0x0007b1b8 ldr r1, [r7, 0x58]                                    |     r1 = var_58h;
    0x0007b1ba sub.w r2, r3, r8                                      |     r2 = r3 - r8;
    0x0007b1be cmp r2, r1                                            |     
                                                                     |     if (r2 > r1) {
    0x0007b1c0 bhi.w 0x7b42c                                         |         goto label_74;
                                                                     |     }
    0x0007b1c4 ldr r2, [r7, 0x58]                                    |     r2 = var_58h;
    0x0007b1c6 add r8, r2                                            |     r8 += r2;
    0x0007b1c8 sub.w r3, r8, r3                                      |     r3 = r8 - r3;
    0x0007b1cc str r3, [r7, 0x58]                                    |     var_58h = r3;
    0x0007b1ce ldrd r3, r2, [r4]                                     |     __asm ("ldrd r3, r2, [r4]");
    0x0007b1d2 cmp sl, r3                                            |     
    0x0007b1d4 sbcs.w r1, sb, r2                                     |     __asm ("sbcs.w r1, sb, r2");
                                                                     |     if (sl <= r3) {
    0x0007b1d8 blo.w 0x7b410                                         |         goto label_75;
                                                                     |     }
    0x0007b1dc subs.w r3, sl, r3                                     |     r3 = sl - r3;
    0x0007b1e0 sbc.w sb, sb, r2                                      |     __asm ("sbc.w sb, sb, r2");
    0x0007b1e4 mov sl, r3                                            |     sl = r3;
    0x0007b1e6 ldr r2, [r7, 0x48]                                    |     r2 = var_48h;
    0x0007b1e8 ldr r3, [r7, 0x54]                                    |     r3 = var_54h;
    0x0007b1ea tst r3, r2                                            |     
                                                                     |     if ((r3 & r2) != 0) {
    0x0007b1ec bne.w 0x7b4f6                                         |         goto label_76;
                                                                     |     }
                                                                     |     do {
                                                                     | label_72:
    0x0007b1f0 ldr r3, [r7, 0x64]                                    |         r3 = var_64h;
    0x0007b1f2 adds r4, 8                                            |         r4 += 8;
    0x0007b1f4 adds r6, 4                                            |         r6 += 4;
    0x0007b1f6 add.w fp, fp, 4                                       |         
    0x0007b1fa subs r3, 1                                            |         r3--;
    0x0007b1fc str r3, [r7, 0x64]                                    |         var_64h = r3;
                                                                     |         if (r3 == 1) {
    0x0007b1fe beq.w 0x7b464                                         |             goto label_77;
                                                                     |         }
                                                                     | label_70:
    0x0007b202 ldr r3, [r5, 4]!                                      |         r3 = *((r5 += 4));
    0x0007b206 adds r3, 1                                            |         r3++;
    0x0007b208 bne 0x7b1f0                                           |         
                                                                     |     } while (r3 != 1);
    0x0007b20a orrs.w r3, sl, sb                                     |     r3 = sl | sb;
    0x0007b20e ldr.w r8, [fp]                                        |     r8 = *(fp);
                                                                     |     if (r3 == sl) {
    0x0007b212 beq 0x7b196                                           |         goto label_2;
                                                                     |     }
    0x0007b214 ldrd r0, r3, [r4]                                     |     __asm ("ldrd r0, r3, [r4]");
    0x0007b218 mov r2, sl                                            |     r2 = sl;
    0x0007b21a ldr r1, [r7, 0x58]                                    |     r1 = var_58h;
    0x0007b21c str r3, [r7, 0x50]                                    |     var_50h = r3;
    0x0007b21e mov r3, sb                                            |     r3 = sb;
    0x0007b220 umull lr, ip, r0, r1                                  |     lr:ip = r0 * r1;
    0x0007b224 ldr r0, [r7, 0x50]                                    |     r0 = var_50h;
    0x0007b226 mla r1, r1, r0, ip                                    |     __asm ("mla r1, r1, r0, ip");
    0x0007b22a mov r0, lr                                            |     r0 = lr;
    0x0007b22c bl 0x15fee0                                           |     r0 = fcn_0015fee0 (r0, r1, r2, r3, r4, r5);
    0x0007b230 add.w r2, r8, r0                                      |     r2 = r8 + r0;
    0x0007b234 b 0x7b1a2                                             |     goto label_3;
                                                                     | label_49:
    0x0007b236 ldr.w r3, [sl]                                        |     r3 = *(sl);
    0x0007b23a str r3, [r7, 0x6c]                                    |     var_6ch = r3;
    0x0007b23c b 0x7ae50                                             |     goto label_4;
                                                                     | label_44:
    0x0007b23e ldr.w r3, [pc, 0x76c]                                 |     
    0x0007b242 ldr r2, [r7, 0x44]                                    |     r2 = var_44h;
    0x0007b244 ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0007b246 ldr r3, [r3]                                          |     r3 = *(0x7b9ae);
    0x0007b248 str r3, [r7, 0x68]                                    |     var_68h = r3;
    0x0007b24a b 0x7add2                                             |     goto label_5;
                                                                     | label_61:
    0x0007b24c mov r0, sb                                            |     r0 = sb;
    0x0007b24e blx 0x39c9c                                           |     r0 = fcn_00039c9c ();
    0x0007b252 adds r4, r0, 1                                        |     r4 = r0 + 1;
                                                                     |     if (r4 != r0) {
    0x0007b254 beq 0x7b25e                                           |         
    0x0007b256 cmp r5, r0                                            |         
    0x0007b258 it lo                                                 |         
                                                                     |         if (r5 >= r0) {
    0x0007b25a movlo r5, r0                                          |             r5 = r0;
                                                                     |         }
    0x0007b25c b 0x7b01e                                             |         goto label_6;
                                                                     |     }
                                                                     | label_63:
    0x0007b25e mvn r2, 0x15                                          |     r2 = ~0x15;
                                                                     |     do {
                                                                     | label_11:
    0x0007b262 ldr r0, [r7, 0x78]                                    |         r0 = var_78h;
    0x0007b264 str r2, [r7, 0x6c]                                    |         var_6ch = r2;
    0x0007b266 blx 0x3a9a0                                           |         fcn_0003a9a0 ();
    0x0007b26a ldr r2, [r7, 0x6c]                                    |         r2 = var_6ch;
                                                                     | label_12:
    0x0007b26c ldr r0, [r7, 0x5c]                                    |         r0 = var_5ch;
    0x0007b26e str r2, [r7, 0x6c]                                    |         var_6ch = r2;
    0x0007b270 blx 0x3a9a0                                           |         fcn_0003a9a0 ();
    0x0007b274 ldr.w r1, [pc, 0x738]                                 |         r1 = *(0x0007b9b0);
    0x0007b278 ldr.w r3, [pc, 0x728]                                 |         r3 = *(0x7b9a4);
    0x0007b27c ldr r2, [r7, 0x6c]                                    |         r2 = var_6ch;
    0x0007b27e add r1, pc                                            |         r1 += pc;
    0x0007b280 ldr r3, [r1, r3]                                      |         r3 = *((r1 + r3));
    0x0007b282 ldr r1, [r3]                                          |         r1 = *(0x7b9a4);
    0x0007b284 ldr r3, [r7, 0x7c]                                    |         r3 = var_7ch;
    0x0007b286 eors r1, r3                                           |         r1 ^= r3;
    0x0007b288 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r1 != r3) {
    0x0007b28c bne.w 0x7b496                                         |             goto label_78;
                                                                     |         }
    0x0007b290 mov r0, r2                                            |         r0 = r2;
    0x0007b292 adds r7, 0x84                                         |         r7 += 0x84;
    0x0007b294 mov sp, r7                                            |         
    0x0007b296 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_59:
    0x0007b29a movs r3, 0                                            |         r3 = 0;
    0x0007b29c str r3, [r7, 0x48]                                    |         var_48h = r3;
    0x0007b29e b 0x7afd4                                             |         goto label_7;
                                                                     | label_57:
    0x0007b2a0 mov.w r3, -1                                          |         r3 = -1;
    0x0007b2a4 str r3, [r7, 0x60]                                    |         var_60h = r3;
    0x0007b2a6 b 0x7af88                                             |         goto label_8;
                                                                     | label_64:
    0x0007b2a8 movs r2, 0                                            |         r2 = 0;
    0x0007b2aa ldr r3, [r7, 0x60]                                    |         r3 = var_60h;
    0x0007b2ac str r2, [r7, 0x78]                                    |         var_78h = r2;
    0x0007b2ae add.w r2, r7, 0x70                                    |         r2 += var_70h;
    0x0007b2b2 str r2, [sp]                                          |         *(sp) = r2;
    0x0007b2b4 mov r1, r6                                            |         r1 = r6;
    0x0007b2b6 movs r2, 0                                            |         r2 = 0;
    0x0007b2b8 mov r0, fp                                            |         r0 = fp;
    0x0007b2ba bl 0x79038                                            |         r0 = fcn_00079038 (r0, r1, r2, r3, r4, r5);
    0x0007b2be cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0007b2c0 beq.w 0x7b400                                         |             goto label_62;
                                                                     |         }
    0x0007b2c4 ldr.w r1, [fp, 0x10]                                  |         r1 = *(arg_10h);
    0x0007b2c8 cmp r1, 0                                             |         
                                                                     |         if (r1 == 0) {
    0x0007b2ca beq.w 0x7b3de                                         |             goto label_79;
                                                                     |         }
    0x0007b2ce add.w r2, r7, 0x78                                    |         r2 += var_78h;
    0x0007b2d2 subs r1, 1                                            |         r1--;
    0x0007b2d4 blx 0x3eb08                                           |         r0 = fcn_0003eb08 ();
    0x0007b2d8 subs r2, r0, 0                                        |         r2 = r0 - 0;
    0x0007b2da blt 0x7b262                                           |         
                                                                     |     } while (r2 < r0);
    0x0007b2dc ldr r0, [r7, 0x78]                                    |     r0 = var_78h;
    0x0007b2de blx 0x39c9c                                           |     r0 = fcn_00039c9c ();
    0x0007b2e2 mov r4, r0                                            |     r4 = r0;
    0x0007b2e4 movs r0, 0xe                                          |     r0 = 0xe;
    0x0007b2e6 blx 0x3d8dc                                           |     fcn_0003d8dc ();
    0x0007b2ea blx 0x39c9c                                           |     r0 = fcn_00039c9c ();
    0x0007b2ee add r4, r0                                            |     r4 += r0;
    0x0007b2f0 ldr r0, [r7, 0x78]                                    |     r0 = var_78h;
    0x0007b2f2 cmp r5, r4                                            |     
    0x0007b2f4 it lo                                                 |     
                                                                     |     if (r5 >= r4) {
    0x0007b2f6 movlo r5, r4                                          |         r5 = r4;
                                                                     |     }
    0x0007b2f8 blx 0x3a9a0                                           |     fcn_0003a9a0 ();
    0x0007b2fc b 0x7b048                                             |     goto label_9;
                                                                     | label_43:
    0x0007b2fe ldr.w r1, [pc, 0x6b4]                                 |     r1 = *(0x0007b9b4);
    0x0007b302 movw r2, 0x786                                        |     r2 = 0x786;
    0x0007b306 ldr.w r3, [pc, 0x6b0]                                 |     
    0x0007b30a ldr.w r0, [pc, 0x6b0]                                 |     
    0x0007b30e add r1, pc                                            |     r1 += pc;
    0x0007b310 add r3, pc                                            |     r3 = 0xf6cce;
    0x0007b312 adds r1, 7                                            |     r1 += 7;
    0x0007b314 add r0, pc                                            |     r0 = 0xf6cd6;
    0x0007b316 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
    0x0007b318 invalid                                               |     
                                                                     | label_45:
    0x0007b31a ldr.w r1, [pc, 0x6a4]                                 |     r1 = *(0x0007b9c0);
    0x0007b31e movw r2, 0x78c                                        |     r2 = 0x78c;
    0x0007b322 ldr.w r3, [pc, 0x6a0]                                 |     
    0x0007b326 ldr.w r0, [pc, 0x6a0]                                 |     
    0x0007b32a add r1, pc                                            |     r1 += pc;
    0x0007b32c add r3, pc                                            |     r3 = 0xf6cf6;
    0x0007b32e adds r1, 7                                            |     r1 += 7;
    0x0007b330 add r0, pc                                            |     r0 = 0xf6cfe;
    0x0007b332 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_56:
    0x0007b336 ldr.w r1, [pc, 0x694]                                 |     r1 = *(0x0007b9cc);
    0x0007b33a movw r2, 0x7c2                                        |     r2 = 0x7c2;
    0x0007b33e ldr.w r3, [pc, 0x690]                                 |     
    0x0007b342 ldr.w r0, [pc, 0x690]                                 |     
    0x0007b346 add r1, pc                                            |     r1 += pc;
    0x0007b348 add r3, pc                                            |     r3 = 0xf6d1e;
    0x0007b34a adds r1, 7                                            |     r1 += 7;
    0x0007b34c add r0, pc                                            |     r0 = 0xf6d26;
    0x0007b34e blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_46:
    0x0007b352 ldr.w r1, [pc, 0x684]                                 |     r1 = *(0x0007b9d8);
    0x0007b356 movw r2, 0x78f                                        |     r2 = 0x78f;
    0x0007b35a ldr.w r3, [pc, 0x680]                                 |     
    0x0007b35e ldr.w r0, [pc, 0x680]                                 |     
    0x0007b362 add r1, pc                                            |     r1 += pc;
    0x0007b364 add r3, pc                                            |     r3 = 0xf6d46;
    0x0007b366 adds r1, 7                                            |     r1 += 7;
    0x0007b368 add r0, pc                                            |     r0 = 0xf6d4e;
    0x0007b36a blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_50:
    0x0007b36e ldr.w r1, [pc, 0x674]                                 |     r1 = *(0x0007b9e4);
    0x0007b372 movw r2, 0x7a3                                        |     r2 = 0x7a3;
    0x0007b376 ldr.w r3, [pc, 0x670]                                 |     
    0x0007b37a ldr.w r0, [pc, 0x670]                                 |     
    0x0007b37e add r1, pc                                            |     r1 += pc;
    0x0007b380 add r3, pc                                            |     r3 = 0xf6d6e;
    0x0007b382 adds r1, 7                                            |     r1 += 7;
    0x0007b384 add r0, pc                                            |     r0 = 0xf6d76;
    0x0007b386 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_60:
    0x0007b38a ldr.w r1, [pc, 0x664]                                 |     r1 = *(0x0007b9f0);
    0x0007b38e mov.w r2, 0x6c8                                       |     r2 = 0x6c8;
    0x0007b392 ldr.w r3, [pc, 0x660]                                 |     
    0x0007b396 ldr.w r0, [pc, 0x660]                                 |     
    0x0007b39a add r1, pc                                            |     r1 += pc;
    0x0007b39c add r3, pc                                            |     r3 = 0xf6d96;
    0x0007b39e adds r1, 7                                            |     r1 += 7;
    0x0007b3a0 add r0, pc                                            |     r0 = 0xf6d9e;
    0x0007b3a2 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
    0x0007b3a4 invalid                                               |     
                                                                     | label_52:
    0x0007b3a6 ldr.w r1, [pc, 0x654]                                 |     r1 = *(0x0007b9fc);
    0x0007b3aa movw r2, 0x7a5                                        |     r2 = 0x7a5;
    0x0007b3ae ldr.w r3, [pc, 0x650]                                 |     
    0x0007b3b2 ldr.w r0, [pc, 0x650]                                 |     
    0x0007b3b6 add r1, pc                                            |     r1 += pc;
    0x0007b3b8 add r3, pc                                            |     r3 = 0xf6dbe;
    0x0007b3ba adds r1, 7                                            |     r1 += 7;
    0x0007b3bc add r0, pc                                            |     r0 = 0xf6dc6;
    0x0007b3be blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_54:
    0x0007b3c2 ldr.w r1, [pc, 0x644]                                 |     r1 = *(0x0007ba08);
    0x0007b3c6 mov.w r2, 0x7a8                                       |     r2 = 0x7a8;
    0x0007b3ca ldr.w r3, [pc, 0x640]                                 |     
    0x0007b3ce ldr.w r0, [pc, 0x640]                                 |     
    0x0007b3d2 add r1, pc                                            |     r1 += pc;
    0x0007b3d4 add r3, pc                                            |     r3 = 0xf6de6;
    0x0007b3d6 adds r1, 7                                            |     r1 += 7;
    0x0007b3d8 add r0, pc                                            |     r0 = 0xf6dee;
    0x0007b3da blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_79:
    0x0007b3de ldr.w r1, [pc, 0x634]                                 |     r1 = *(0x0007ba14);
    0x0007b3e2 mov.w r2, 0x7d8                                       |     r2 = 0x7d8;
    0x0007b3e6 ldr.w r3, [pc, 0x630]                                 |     
    0x0007b3ea ldr.w r0, [pc, 0x630]                                 |     
    0x0007b3ee add r1, pc                                            |     r1 += pc;
    0x0007b3f0 add r3, pc                                            |     r3 = 0xf6e0e;
    0x0007b3f2 adds r1, 7                                            |     r1 += 7;
    0x0007b3f4 add r0, pc                                            |     r0 = 0xf6e16;
    0x0007b3f6 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_71:
    0x0007b3fa movs r2, 1                                            |     r2 = 1;
    0x0007b3fc str r2, [r7, 0x54]                                    |     var_54h = r2;
    0x0007b3fe b 0x7b1b0                                             |     goto label_10;
                                                                     | label_62:
    0x0007b400 mvn r2, 0xb                                           |     r2 = ~0xb;
    0x0007b404 b 0x7b262                                             |     goto label_11;
                                                                     | label_48:
    0x0007b406 movs r3, 0                                            |     r3 = 0;
    0x0007b408 mvn r2, 0xb                                           |     r2 = ~0xb;
    0x0007b40c str r3, [r7, 0x5c]                                    |     var_5ch = r3;
    0x0007b40e b 0x7b26c                                             |     goto label_12;
                                                                     | label_75:
    0x0007b410 ldr.w r1, [pc, 0x60c]                                 |     
    0x0007b414 movw r2, 0x86b                                        |     r2 = 0x86b;
    0x0007b418 ldr.w r3, [pc, 0x608]                                 |     r3 = *(0x0007ba24);
    0x0007b41c ldr.w r0, [pc, 0x608]                                 |     r0 = *(0x0007ba28);
    0x0007b420 add r1, pc                                            |     r1 = 0xf6e44;
    0x0007b422 add r3, pc                                            |     r3 += pc;
    0x0007b424 adds r1, 7                                            |     r1 += 7;
    0x0007b426 add r0, pc                                            |     r0 += pc;
    0x0007b428 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_74:
    0x0007b42c ldr.w r1, [pc, 0x5fc]                                 |     
    0x0007b430 movw r2, 0x868                                        |     r2 = 0x868;
    0x0007b434 ldr.w r3, [pc, 0x5f8]                                 |     r3 = *(0x0007ba30);
    0x0007b438 ldr.w r0, [pc, 0x5f8]                                 |     r0 = *(0x0007ba34);
    0x0007b43c add r1, pc                                            |     r1 = 0xf6e6c;
    0x0007b43e add r3, pc                                            |     r3 += pc;
    0x0007b440 adds r1, 7                                            |     r1 += 7;
    0x0007b442 add r0, pc                                            |     r0 += pc;
    0x0007b444 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_73:
    0x0007b448 ldr.w r1, [pc, 0x5ec]                                 |     
    0x0007b44c movw r2, 0x865                                        |     r2 = 0x865;
    0x0007b450 ldr.w r3, [pc, 0x5e8]                                 |     r3 = *(0x0007ba3c);
    0x0007b454 ldr.w r0, [pc, 0x5e8]                                 |     r0 = *(0x0007ba40);
    0x0007b458 add r1, pc                                            |     r1 = 0xf6e94;
    0x0007b45a add r3, pc                                            |     r3 += pc;
    0x0007b45c adds r1, 7                                            |     r1 += 7;
    0x0007b45e add r0, pc                                            |     r0 += pc;
    0x0007b460 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_77:
    0x0007b464 ldr r3, [r7, 0x60]                                    |     r3 = var_60h;
    0x0007b466 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0007b468 bne.w 0x7b5c4                                         |         goto label_80;
                                                                     |     }
    0x0007b46c ldr r3, [r7, 0x54]                                    |     r3 = var_54h;
    0x0007b46e eor r3, r3, 1                                         |     r3 ^= 1;
    0x0007b472 str r3, [r7, 0x60]                                    |     var_60h = r3;
    0x0007b474 b 0x7b17a                                             |     goto label_13;
                                                                     | label_68:
    0x0007b476 ldr r3, [r7, 0x18]                                    |     r3 = var_18h;
    0x0007b478 bic r2, r3, 7                                         |     r2 = BIT_MASK (r3, 7);
    0x0007b47c sub.w sp, sp, r2                                      |     
    0x0007b480 add r3, sp, 8                                         |     r3 += var_8h;
    0x0007b482 str r3, [r7, 0x3c]                                    |     var_3ch = r3;
    0x0007b484 b 0x7b154                                             |     goto label_14;
                                                                     | label_58:
    0x0007b486 mvn r2, 0xb                                           |     r2 = ~0xb;
    0x0007b48a ldr r0, [r7, 0x78]                                    |     r0 = var_78h;
    0x0007b48c str r2, [r7, 0x6c]                                    |     var_6ch = r2;
    0x0007b48e blx 0x3a9a0                                           |     fcn_0003a9a0 ();
    0x0007b492 ldr r2, [r7, 0x6c]                                    |     r2 = var_6ch;
    0x0007b494 b 0x7b26c                                             |     goto label_12;
                                                                     | label_78:
    0x0007b496 blx 0x3d208                                           |     fcn_0003d208 ();
                                                                     | label_53:
    0x0007b49a ldr.w r1, [pc, 0x5a8]                                 |     r1 = *(0x0007ba44);
    0x0007b49e mov.w r2, 0x7a8                                       |     r2 = 0x7a8;
    0x0007b4a2 ldr.w r3, [pc, 0x5a4]                                 |     
    0x0007b4a6 ldr.w r0, [pc, 0x5a4]                                 |     
    0x0007b4aa add r1, pc                                            |     r1 += pc;
    0x0007b4ac add r3, pc                                            |     r3 = 0xf6efa;
    0x0007b4ae adds r1, 7                                            |     r1 += 7;
    0x0007b4b0 add r0, pc                                            |     r0 = 0xf6f02;
    0x0007b4b2 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
    0x0007b4b4 invalid                                               |     
                                                                     | label_67:
    0x0007b4b6 movs r0, 1                                            |     r0 = 1;
    0x0007b4b8 blx 0x3b330                                           |     r0 = fcn_0003b330 ();
    0x0007b4bc cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007b4be beq.w 0x7b13c                                         |         goto label_15;
                                                                     |     }
                                                                     | label_18:
    0x0007b4c2 blx 0x3a758                                           |     r0 = fcn_0003a758 ();
    0x0007b4c6 cmp r0, r8                                            |     
    0x0007b4c8 it hs                                                 |     
                                                                     |     if (r0 < r8) {
    0x0007b4ca movhs r0, r8                                          |         r0 = r8;
                                                                     |     }
    0x0007b4cc b 0x7b13e                                             |     goto label_16;
                                                                     | label_66:
    0x0007b4ce ldrb.w r2, [r7, 0x70]                                 |     r2 = var_70h;
    0x0007b4d2 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0007b4d4 beq.w 0x7b132                                         |         goto label_17;
                                                                     |     }
    0x0007b4d8 b 0x7b4c2                                             |     goto label_18;
                                                                     | label_51:
    0x0007b4da ldr.w r1, [pc, 0x574]                                 |     r1 = *(0x0007ba50);
    0x0007b4de movw r2, 0x7a5                                        |     r2 = 0x7a5;
    0x0007b4e2 ldr.w r3, [pc, 0x570]                                 |     
    0x0007b4e6 ldr.w r0, [pc, 0x570]                                 |     
    0x0007b4ea add r1, pc                                            |     r1 += pc;
    0x0007b4ec add r3, pc                                            |     r3 = 0xf6f46;
    0x0007b4ee adds r1, 7                                            |     r1 += 7;
    0x0007b4f0 add r0, pc                                            |     r0 = 0xf6f4e;
    0x0007b4f2 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_76:
    0x0007b4f6 movs r3, 0                                            |     r3 = 0;
    0x0007b4f8 str r3, [r7, 0x60]                                    |     var_60h = r3;
    0x0007b4fa b 0x7b17a                                             |     goto label_13;
                                                                     | label_69:
    0x0007b4fc ldr r3, [r7, 0x3c]                                    |     r3 = var_3ch;
    0x0007b4fe mov sb, sl                                            |     sb = sl;
    0x0007b500 ldr r2, [r7, 0x28]                                    |     r2 = var_28h;
    0x0007b502 mov sl, fp                                            |     sl = fp;
    0x0007b504 ldr.w fp, [r7, 0x24]                                  |     fp = var_24h;
    0x0007b508 sub.w r8, r4, r8                                      |     r8 = r4 - r8;
    0x0007b50c subs r3, 4                                            |     r3 -= 4;
    0x0007b50e str.w sl, [r7, 0x58]                                  |     __asm ("str.w sl, [var_58h]");
    0x0007b512 subs r2, 8                                            |     r2 -= 8;
    0x0007b514 mov sl, r3                                            |     sl = r3;
    0x0007b516 str r3, [r7, 0x38]                                    |     var_38h = r3;
    0x0007b518 movs r6, 0                                            |     r6 = 0;
    0x0007b51a str.w fp, [r7, 0x60]                                  |     __asm ("str.w fp, [var_60h]");
    0x0007b51e mov fp, sb                                            |     
    0x0007b520 ldr r3, [r7, 0x54]                                    |     r3 = var_54h;
    0x0007b522 str r2, [r7, 0x64]                                    |     var_64h = r2;
    0x0007b524 b 0x7b596                                             |     
                                                                     |     while (r1 == fp) {
    0x0007b526 str r3, [r7, 0x54]                                    |         var_54h = r3;
    0x0007b528 mov r0, r8                                            |         r0 = r8;
    0x0007b52a ldr r3, [r7, 0x6c]                                    |         r3 = var_6ch;
    0x0007b52c subs r1, r3, r6                                       |         r1 = r3 - r6;
    0x0007b52e bl 0x15f5a0                                           |         fcn_0015f5a0 (r0, r1, r2);
    0x0007b532 ldr r3, [r7, 0x54]                                    |         r3 = var_54h;
    0x0007b534 adds r1, r0, r5                                       |         r1 = r0 + r5;
                                                                     | label_19:
    0x0007b536 ldr r2, [r7, 0x34]                                    |         r2 = var_34h;
    0x0007b538 str.w r1, [sl, 4]                                     |         __asm ("str.w r1, [sl, 4]");
    0x0007b53c ldr.w r0, [r2, r6, lsl 2]                             |         offset_2 = r6 << 2;
                                                                     |         r0 = *((r2 + offset_2));
    0x0007b540 adds r2, r0, 1                                        |         r2 = r0 + 1;
                                                                     |         if (r2 != r0) {
    0x0007b542 beq 0x7b54c                                           |             
    0x0007b544 cmp r0, r1                                            |             
    0x0007b546 it lo                                                 |             
                                                                     |             if (r0 < r1) {
    0x0007b548 strlo r0, [sl, 4]                                     |                 *((sl + 4)) = r0;
                                                                     |                 goto label_81;
                                                                     |             }
                                                                     |         }
                                                                     | label_81:
    0x0007b54c ldr r2, [r7, 0x40]                                    |         r2 = var_40h;
    0x0007b54e ldr.w r0, [sl, 4]                                     |         r0 = *((sl + 4));
    0x0007b552 ldr.w r1, [r2, r6, lsl 2]                             |         offset_3 = r6 << 2;
                                                                     |         r1 = *((r2 + offset_3));
    0x0007b554 asrs r6, r4, 0x20                                     |         r6 = r4 >> 0x20;
    0x0007b556 cmp r0, r1                                            |         
    0x0007b558 it lo                                                 |         
                                                                     |         if (r0 >= r1) {
    0x0007b55a strlo r1, [sl, 4]                                     |             *((sl + 4)) = r1;
                                                                     |         }
    0x0007b55e ldr r1, [sl, 4]!                                      |         r1 = *((sl += 4));
    0x0007b562 cmp r5, r1                                            |         
    0x0007b564 ite lo                                                |         
                                                                     |         if (r5 >= r1) {
    0x0007b566 sublo r1, r1, r5                                      |             r1 -= r5;
                                                                     |         }
                                                                     |         if (r5 < r1) {
    0x0007b568 movhs r1, 0                                           |             r1 = 0;
                                                                     |         }
    0x0007b56a cmp r1, r8                                            |         
    0x0007b56c ite lo                                                |         
                                                                     |         if (r1 >= r8) {
    0x0007b56e sublo r8, r8, r1                                      |             r8 -= r1;
                                                                     |         }
                                                                     |         if (r1 >= r8) {
    0x0007b572 mov.w r8, 0                                           |             r8 = 0;
                                                                     |         }
    0x0007b576 cmp fp, r4                                            |         
    0x0007b578 sbcs.w r1, r3, sb                                     |         __asm ("sbcs.w r1, r3, sb");
                                                                     |         if (fp <= r4) {
    0x0007b57c blo.w 0x7bc0c                                         |             goto label_82;
                                                                     |         }
    0x0007b580 ldr r2, [r7, 0x6c]                                    |         r2 = var_6ch;
    0x0007b582 subs.w r4, fp, r4                                     |         r4 = fp - r4;
    0x0007b586 add.w r6, r6, 1                                       |         r6++;
    0x0007b58a sbc.w r3, r3, sb                                      |         __asm ("sbc.w r3, r3, sb");
    0x0007b58e mov fp, r4                                            |         
    0x0007b590 cmp r2, r6                                            |         
                                                                     |         if (r2 == r6) {
    0x0007b592 beq.w 0x7bc02                                         |             goto label_83;
                                                                     |         }
    0x0007b596 ldr r2, [r7, 0x64]                                    |         r2 = var_64h;
    0x0007b598 ldr r1, [r7, 0x30]                                    |         r1 = var_30h;
    0x0007b59a ldr r4, [r2, 8]!                                      |         r4 = *((r2 += 8));
    0x0007b59e ldr.w r5, [r1, r6, lsl 2]                             |         offset_4 = r6 << 2;
                                                                     |         r5 = *((r1 + offset_4));
    0x0007b5a2 orrs.w r1, fp, r3                                     |         r1 = fp | r3;
    0x0007b5a6 ldr.w sb, [r2, 4]                                     |         sb = *((r2 + 4));
    0x0007b5aa str r2, [r7, 0x64]                                    |         var_64h = r2;
    0x0007b5ac beq 0x7b526                                           |         
                                                                     |     }
    0x0007b5ae umull r0, r1, r8, r4                                  |     r0:r1 = r8 * r4;
    0x0007b5b2 mov r2, fp                                            |     r2 = fp;
    0x0007b5b4 str r3, [r7, 0x54]                                    |     var_54h = r3;
    0x0007b5b6 mla r1, r8, sb, r1                                    |     __asm ("mla r1, r8, sb, r1");
    0x0007b5ba bl 0x15fee0                                           |     fcn_0015fee0 (r0, r1, r2, r3, r4, r5);
    0x0007b5be ldr r3, [r7, 0x54]                                    |     r3 = var_54h;
    0x0007b5c0 adds r1, r5, r0                                       |     r1 = r5 + r0;
    0x0007b5c2 b 0x7b536                                             |     goto label_19;
                                                                     | label_80:
    0x0007b5c4 ldrb.w r3, [r7, 0x70]                                 |     r3 = var_70h;
    0x0007b5c8 ldr.w fp, [r7, 0x2c]                                  |     fp = var_2ch;
                                                                     |     if (r3 != 0) {
    0x0007b5cc cbz r3, 0x7b5d6                                       |         
    0x0007b5ce ldr r3, [r7, 0x10]                                    |         r3 = var_10h;
    0x0007b5d0 cmp r3, 0                                             |         
                                                                     |         if (r3 == 0) {
    0x0007b5d2 beq.w 0x7bbfa                                         |             goto label_84;
                                                                     |         }
                                                                     |     }
    0x0007b5d6 mov sl, fp                                            |     sl = fp;
    0x0007b5d8 ldr.w fp, [r7, 0x24]                                  |     fp = var_24h;
                                                                     | label_42:
    0x0007b5dc ldrb.w r3, [sl, 8]                                    |     r3 = *((sl + 8));
    0x0007b5e0 eor r3, r3, 1                                         |     r3 ^= 1;
    0x0007b5e4 cmp fp, r3                                            |     
    0x0007b5e6 str r3, [r7, 0x48]                                    |     var_48h = r3;
                                                                     |     if (fp < r3) {
    0x0007b5e8 bls.w 0x7b79c                                         |         goto label_85;
                                                                     |     }
    0x0007b5ec movw r3, 0x851f                                       |     
    0x0007b5f0 str.w fp, [r7, 0x28]                                  |     __asm ("str.w fp, [var_28h]");
                                                                     |     /* if there is a right shift of 5, then it's a division by 1/100 */
    0x0007b5f4 movt r3, 0x51eb                                       |     r3 = 0x51eb851f;
    0x0007b5f8 mov fp, sl                                            |     
    0x0007b5fa str r3, [r7, 0x3c]                                    |     var_3ch = r3;
    0x0007b5fc ldr.w r3, [pc, 0x45c]                                 |     
    0x0007b600 add r3, pc                                            |     r3 = 0xf7060;
    0x0007b602 str r3, [r7, 0x34]                                    |     var_34h = r3;
    0x0007b604 ldr.w r3, [pc, 0x458]                                 |     
    0x0007b608 add r3, pc                                            |     r3 = 0xf706c;
    0x0007b60a str r3, [r7, 0x30]                                    |     var_30h = r3;
    0x0007b60c ldr.w r3, [pc, 0x454]                                 |     
    0x0007b610 add r3, pc                                            |     r3 = 0xf7078;
    0x0007b612 str r3, [r7, 0x2c]                                    |     var_2ch = r3;
    0x0007b614 ldr.w r3, [pc, 0x450]                                 |     
    0x0007b618 add r3, pc                                            |     r3 = 0xf7084;
    0x0007b61a str r3, [r7, 0x40]                                    |     var_40h = r3;
                                                                     | label_21:
    0x0007b61c ldr r2, [r7, 0x5c]                                    |     r2 = var_5ch;
    0x0007b61e ldr.w r3, [fp, 0x14]                                  |     r3 = *(arg_14h);
    0x0007b622 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0007b624 beq.w 0x7b988                                         |         goto label_86;
                                                                     |     }
    0x0007b628 ldr r1, [r7, 0x48]                                    |     r1 = var_48h;
    0x0007b62a ldr.w r2, [r2, r1, lsl 2]                             |     offset_5 = r1 << 2;
                                                                     |     r2 = *((r2 + offset_5));
    0x0007b62e add.w r3, r3, r2, lsl 2                               |     r3 += (r2 << 2);
    0x0007b632 str r3, [r7, 0x58]                                    |     var_58h = r3;
                                                                     | label_34:
    0x0007b634 movs r3, 0                                            |     r3 = 0;
    0x0007b636 str r3, [r7, 0x50]                                    |     var_50h = r3;
                                                                     | label_20:
    0x0007b638 ldr r3, [r7, 0x38]                                    |     r3 = var_38h;
    0x0007b63a mov.w sl, 0                                           |     sl = 0;
    0x0007b63e str.w sl, [r7, 0x54]                                  |     __asm ("str.w sl, [var_54h]");
    0x0007b642 str.w sl, [r7, 0x4c]                                  |     __asm ("str.w sl, [var_4ch]");
    0x0007b646 str r3, [r7, 0x60]                                    |     var_60h = r3;
                                                                     |     do {
    0x0007b648 ldr.w r2, [fp, 0x18]                                  |         r2 = *(arg_18h);
    0x0007b64c movs r3, 0                                            |         r3 = 0;
    0x0007b64e str r3, [r7, 0x70]                                    |         var_70h = r3;
    0x0007b650 lsl.w r3, sl, 2                                       |         r3 = sl << 2;
                                                                     |         if (r2 != 0) {
    0x0007b654 cbz r2, 0x7b65c                                       |             
    0x0007b656 ldr.w r3, [r2, sl, lsl 2]                             |             offset_6 = sl << 2;
                                                                     |             r3 = *((r2 + offset_6));
    0x0007b65a lsls r3, r3, 2                                        |             r3 <<= 2;
                                                                     |         }
    0x0007b65c ldr r2, [r7, 0x58]                                    |         r2 = var_58h;
    0x0007b65e ldr r6, [r2, r3]                                      |         r6 = *((r2 + r3));
    0x0007b660 cmp r6, 0                                             |         
                                                                     |         if (r6 == 0) {
    0x0007b662 beq.w 0x7b972                                         |             goto label_87;
                                                                     |         }
    0x0007b666 ldr r3, [r7, 0x60]                                    |         r3 = var_60h;
    0x0007b668 movs r4, 0                                            |         r4 = 0;
    0x0007b66a mov r2, r4                                            |         r2 = r4;
    0x0007b66c mov r1, r6                                            |         r1 = r6;
    0x0007b66e mov r0, fp                                            |         r0 = fp;
    0x0007b670 ldr r8, [r3, 4]!                                      |         r8 = *((r3 += 4));
    0x0007b674 str r4, [sp]                                          |         *(sp) = r4;
    0x0007b676 str r3, [r7, 0x60]                                    |         var_60h = r3;
    0x0007b678 mov r3, r8                                            |         r3 = r8;
    0x0007b67a bl 0x79038                                            |         r0 = fcn_00079038 (r0, r1, r2, r3, r4, r5);
    0x0007b67e mov sb, r0                                            |         sb = r0;
    0x0007b680 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0007b682 beq.w 0x7bb04                                         |             goto label_88;
                                                                     |         }
    0x0007b686 ldr r5, [r7, 0x50]                                    |         r5 = var_50h;
    0x0007b688 add.w r2, r7, 0x70                                    |         r2 += var_70h;
    0x0007b68c mov r1, r5                                            |         r1 = r5;
    0x0007b68e blx 0x3eb08                                           |         r0 = fcn_0003eb08 ();
    0x0007b692 cmp r0, 0                                             |         
                                                                     |         if (r0 < 0) {
    0x0007b694 blt.w 0x7bb56                                         |             goto label_89;
                                                                     |         }
    0x0007b698 it eq                                                 |         
                                                                     |         if (r0 != 0) {
    0x0007b69a moveq r4, r0                                          |             r4 = r0;
                                                                     |         }
                                                                     |         if (r0 != 0) {
    0x0007b69c beq 0x7b6b8                                           |             
    0x0007b69e ldr.w r3, [fp, 0x10]                                  |             r3 = *(arg_10h);
    0x0007b6a2 adds r2, r3, 1                                        |             r2 = r3 + 1;
                                                                     |             if (r2 == r3) {
    0x0007b6a4 beq.w 0x7b92c                                         |                 goto label_90;
                                                                     |             }
    0x0007b6a8 mov r2, r5                                            |             r2 = r5;
    0x0007b6aa adds r2, 1                                            |             r2++;
    0x0007b6ac cmp r2, r3                                            |             
    0x0007b6ae ldr r3, [r7, 0x4c]                                    |             r3 = var_4ch;
    0x0007b6b0 ite hs                                                |             
                                                                     |             if (r2 < r3) {
    0x0007b6b2 movhs r4, 1                                           |                 r4 = 1;
                                                                     |             }
                                                                     |             if (r2 >= r3) {
    0x0007b6b4 movlo r3, 1                                           |                 r3 = 1;
                                                                     |             }
    0x0007b6b6 str r3, [r7, 0x4c]                                    |             var_4ch = r3;
                                                                     |         }
                                                                     | label_32:
    0x0007b6b8 ldr r5, [r7, 0x70]                                    |         r5 = var_70h;
    0x0007b6ba cmp r5, 0                                             |         
    0x0007b6bc it eq                                                 |         
                                                                     |         if (r5 != 0) {
    0x0007b6be moveq r5, sb                                          |             r5 = sb;
                                                                     |         }
    0x0007b6c0 mov r0, r5                                            |         r0 = r5;
    0x0007b6c2 blx 0x39c9c                                           |         r0 = fcn_00039c9c ();
    0x0007b6c6 cmp r8, r0                                            |         
    0x0007b6c8 mov sb, r0                                            |         sb = r0;
                                                                     |         if (r8 >= r0) {
    0x0007b6ca bhs 0x7b7a6                                           |             goto label_91;
                                                                     |         }
    0x0007b6cc cmp r4, 0                                             |         
                                                                     |         if (r4 != 0) {
    0x0007b6ce bne.w 0x7b90e                                         |             goto label_92;
                                                                     |         }
    0x0007b6d2 ldr r4, [r6, 0x18]                                    |         r4 = *((r6 + 0x18));
                                                                     | label_29:
    0x0007b6d4 mov r0, r5                                            |         r0 = r5;
    0x0007b6d6 blx 0x3b5f4                                           |         fcn_0003b5f4 ();
    0x0007b6da mov r3, r4                                            |         r3 = r4;
    0x0007b6dc mov r1, r0                                            |         r1 = r0;
    0x0007b6de mov r2, r8                                            |         r2 = r8;
    0x0007b6e0 mov r0, r5                                            |         r0 = r5;
    0x0007b6e2 blx 0x3aba0                                           |         r0 = fcn_0003aba0 ();
    0x0007b6e6 mov r5, r0                                            |         r5 = r0;
    0x0007b6e8 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0007b6ea beq.w 0x7bb04                                         |             goto label_88;
                                                                     |         }
    0x0007b6ee ldr r4, [r6, 0x2c]                                    |         r4 = *((r6 + 0x2c));
    0x0007b6f0 str r0, [r7, 0x64]                                    |         var_64h = r0;
                                                                     |         if (r4 != 0) {
                                                                     | label_22:
    0x0007b6f2 cbz r4, 0x7b716                                       |             
    0x0007b6f4 movs r3, 0                                            |             r3 = 0;
    0x0007b6f6 mov r1, r5                                            |             r1 = r5;
    0x0007b6f8 mov r0, r4                                            |             r0 = r4;
    0x0007b6fa add.w r2, r7, 0x78                                    |             r2 += var_78h;
    0x0007b6fe str r3, [r7, 0x78]                                    |             var_78h = r3;
    0x0007b700 blx 0x3df04                                           |             r0 = fcn_0003df04 ();
    0x0007b704 cmp r0, 0                                             |             
                                                                     |             if (r0 < 0) {
    0x0007b706 blt.w 0x7bbb0                                         |                 goto label_93;
                                                                     |             }
    0x0007b70a ldr r0, [r7, 0x64]                                    |             r0 = var_64h;
    0x0007b70c blx 0x3a9a0                                           |             fcn_0003a9a0 ();
    0x0007b710 ldr r3, [r7, 0x78]                                    |             r3 = var_78h;
    0x0007b712 mov r5, r3                                            |             r5 = r3;
    0x0007b714 str r3, [r7, 0x64]                                    |             var_64h = r3;
                                                                     |         }
                                                                     | label_23:
    0x0007b716 blx 0x3d7c4                                           |         r0 = fcn_0003d7c4 ();
                                                                     |         if (r0 != 0) {
    0x0007b71a cbz r0, 0x7b72a                                       |             
    0x0007b71c ldr r0, [r7, 0x54]                                    |             r0 = var_54h;
    0x0007b71e cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x0007b720 beq.w 0x7b912                                         |                 goto label_94;
                                                                     |             }
                                                                     | label_31:
    0x0007b724 ldr r1, [r7, 0x68]                                    |             r1 = var_68h;
    0x0007b726 blx 0x3f6b4                                           |             fcn_0003f6b4 ();
                                                                     |         }
                                                                     | label_30:
    0x0007b72a cmp.w sl, 0                                           |         
                                                                     |         if (sl != 0) {
    0x0007b72e beq 0x7b738                                           |             
    0x0007b730 ldr r1, [r7, 0x68]                                    |             r1 = var_68h;
    0x0007b732 movs r0, 0x20                                         |             r0 = 0x20;
    0x0007b734 blx 0x3d5f0                                           |             fcn_0003d5f0 ();
                                                                     |         }
    0x0007b738 blx 0x3d7c4                                           |         r0 = fcn_0003d7c4 ();
    0x0007b73c cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0007b73e bne.w 0x7b8b4                                         |             goto label_95;
                                                                     |         }
                                                                     | label_24:
    0x0007b742 ldr r1, [r7, 0x68]                                    |         r1 = var_68h;
    0x0007b744 mov r0, r5                                            |         r0 = r5;
    0x0007b746 blx 0x3f6b4                                           |         fcn_0003f6b4 ();
    0x0007b74a blx 0x3d7c4                                           |         r0 = fcn_0003d7c4 ();
                                                                     |         if (r0 != 0) {
    0x0007b74e cbz r0, 0x7b75c                                       |             
                                                                     | label_28:
    0x0007b750 ldr.w r3, [fp, 0x14]                                  |             r3 = *(arg_14h);
    0x0007b754 ldr r2, [r7, 0x58]                                    |             r2 = var_58h;
    0x0007b756 cmp r3, r2                                            |             
                                                                     |             if (r3 == r2) {
    0x0007b758 beq.w 0x7b8a6                                         |                 goto label_96;
                                                                     |             }
                                                                     |         }
                                                                     | label_25:
    0x0007b75c ldr r3, [r6, 0x28]                                    |         r3 = *((r6 + 0x28));
    0x0007b75e add.w sl, sl, 1                                       |         sl++;
    0x0007b762 ldr r0, [r7, 0x70]                                    |         r0 = var_70h;
    0x0007b764 str r3, [r7, 0x54]                                    |         var_54h = r3;
    0x0007b766 blx 0x3a9a0                                           |         fcn_0003a9a0 ();
    0x0007b76a ldr r0, [r7, 0x64]                                    |         r0 = var_64h;
    0x0007b76c blx 0x3a9a0                                           |         fcn_0003a9a0 ();
    0x0007b770 ldr r3, [r7, 0x6c]                                    |         r3 = var_6ch;
    0x0007b772 cmp r3, sl                                            |         
    0x0007b774 bne.w 0x7b648                                         |         
                                                                     |     } while (r3 != sl);
    0x0007b778 ldr r3, [r7, 0x50]                                    |     r3 = var_50h;
    0x0007b77a movs r0, 0xa                                          |     r0 = 0xa;
    0x0007b77c ldr r1, [r7, 0x68]                                    |     r1 = var_68h;
    0x0007b77e adds r3, 1                                            |     r3++;
    0x0007b780 str r3, [r7, 0x50]                                    |     var_50h = r3;
    0x0007b782 blx 0x3d5f0                                           |     fcn_0003d5f0 ();
    0x0007b786 ldr r3, [r7, 0x4c]                                    |     r3 = var_4ch;
    0x0007b788 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0007b78a bne.w 0x7b638                                         |         goto label_20;
                                                                     |     }
    0x0007b78e ldr r3, [r7, 0x48]                                    |     r3 = var_48h;
    0x0007b790 ldr r2, [r7, 0x28]                                    |     r2 = var_28h;
    0x0007b792 adds r3, 1                                            |     r3++;
    0x0007b794 cmp r2, r3                                            |     
    0x0007b796 str r3, [r7, 0x48]                                    |     var_48h = r3;
                                                                     |     if (r2 > r3) {
    0x0007b798 bhi.w 0x7b61c                                         |         goto label_21;
                                                                     |     }
                                                                     | label_85:
    0x0007b79c ldr r0, [r7, 0x68]                                    |     r0 = var_68h;
    0x0007b79e blx 0x3d1d8                                           |     r0 = fcn_0003d1d8 ();
    0x0007b7a2 mov r2, r0                                            |     r2 = r0;
    0x0007b7a4 b 0x7b26c                                             |     goto label_12;
                                                                     | label_91:
    0x0007b7a6 cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0007b7a8 bne.w 0x7b932                                         |         goto label_97;
                                                                     |     }
    0x0007b7ac str r4, [r7, 0x64]                                    |     var_64h = r4;
                                                                     | label_33:
    0x0007b7ae cmp r8, sb                                            |     
    0x0007b7b0 ldr r4, [r6, 0x2c]                                    |     r4 = *((r6 + 0x2c));
                                                                     |     if (r8 < sb) {
    0x0007b7b2 bls 0x7b6f2                                           |         goto label_22;
                                                                     |     }
    0x0007b7b4 ldr r3, [r6, 0x1c]                                    |     r3 = *((r6 + 0x1c));
    0x0007b7b6 mov r2, r3                                            |     r2 = r3;
    0x0007b7b8 str r3, [r7, 0x14]                                    |     var_14h = r3;
    0x0007b7ba cmp r2, 0x64                                          |     
    0x0007b7bc mov.w r3, 0                                           |     r3 = 0;
    0x0007b7c0 str r3, [r7, 0x74]                                    |     var_74h = r3;
                                                                     |     if (r2 > 0x64) {
    0x0007b7c2 bhi.w 0x7bb5c                                         |         goto label_98;
                                                                     |     }
    0x0007b7c6 mov r0, r5                                            |     r0 = r5;
    0x0007b7c8 blx 0x3b5f4                                           |     r0 = fcn_0003b5f4 ();
    0x0007b7cc mov sb, r0                                            |     sb = r0;
    0x0007b7ce cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0007b7d0 beq.w 0x7bb00                                         |         goto label_99;
                                                                     |     }
    0x0007b7d4 mov r0, r4                                            |     r0 = r4;
    0x0007b7d6 add.w r2, r7, 0x74                                    |     r2 += var_74h;
    0x0007b7da mov r1, r5                                            |     r1 = r5;
    0x0007b7dc blx 0x3df04                                           |     r0 = fcn_0003df04 ();
    0x0007b7e0 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0007b7e2 blt.w 0x7bb9c                                         |         goto label_100;
                                                                     |     }
    0x0007b7e6 ldr r0, [r7, 0x74]                                    |     r0 = var_74h;
    0x0007b7e8 blx 0x3b5f4                                           |     fcn_0003b5f4 ();
    0x0007b7ec str r0, [r7, 0x24]                                    |     var_24h = r0;
                                                                     | label_36:
    0x0007b7ee add.w r3, r5, sb                                      |     r3 = r5 + sb;
    0x0007b7f2 movs r4, 0                                            |     r4 = 0;
    0x0007b7f4 cmp r3, r5                                            |     
                                                                     |     if (r3 < r5) {
    0x0007b7f6 bls 0x7b83c                                           |         goto label_101;
                                                                     |     }
    0x0007b7f8 ldr.w sb, [r7, 0x44]                                  |     sb = var_44h;
    0x0007b7fc add.w r2, r7, 0x78                                    |     r2 += var_78h;
    0x0007b800 strd r6, r8, [r7, 0x1c]                               |     __asm ("strd r6, r8, [var_1ch]");
    0x0007b804 mov r6, r3                                            |     r6 = r3;
    0x0007b806 mov r8, r2                                            |     r8 = r2;
    0x0007b808 str r5, [r7, 0x18]                                    |     var_18h = r5;
                                                                     |     do {
    0x0007b80a mov r0, r5                                            |         r0 = r5;
    0x0007b80c mov r1, r8                                            |         r1 = r8;
    0x0007b80e blx 0x3d864                                           |         r0 = fcn_0003d864 ();
    0x0007b812 cmp r0, 0                                             |         
    0x0007b814 itt lt                                                |         
                                                                     |         if (r0 >= 0) {
    0x0007b816 addlt r5, 1                                           |             r5++;
                                                                     |         }
                                                                     |         if (r0 >= 0) {
    0x0007b818 addlt r4, 1                                           |             r4++;
                                                                     |         }
                                                                     |         if (r0 >= 0) {
    0x0007b81a blt 0x7b832                                           |             
    0x0007b81c ldr r2, [pc, 0x24c]                                   |             r2 = *(0x7ba6c);
    0x0007b81e ldr r0, [r7, 0x78]                                    |             r0 = var_78h;
    0x0007b820 ldr.w r1, [sb, r2]                                    |             r1 = *((sb + r2));
    0x0007b824 ldrb r2, [r5]                                         |             r2 = *(r5);
    0x0007b826 ldrb r2, [r1, r2]                                     |             r2 = *((r1 + r2));
    0x0007b828 add r5, r2                                            |             r5 += r2;
    0x0007b82a blx 0x3c0d8                                           |             fcn_0003c0d8 ();
    0x0007b82e adds r0, 1                                            |             r0++;
    0x0007b830 add r4, r0                                            |             r4 += r0;
                                                                     |         }
    0x0007b832 cmp r5, r6                                            |         
    0x0007b834 blo 0x7b80a                                           |         
                                                                     |     } while (r5 <= r6);
    0x0007b836 ldrd r6, r8, [r7, 0x1c]                               |     __asm ("ldrd r6, r8, [var_1ch]");
    0x0007b83a ldr r5, [r7, 0x18]                                    |     r5 = var_18h;
                                                                     | label_101:
    0x0007b83c cmp r8, r4                                            |     
    0x0007b83e ldr.w sb, [r7, 0x74]                                  |     sb = var_74h;
                                                                     |     if (r8 > r4) {
    0x0007b842 bhi.w 0x7ba88                                         |         goto label_102;
                                                                     |     }
    0x0007b846 cmp.w sb, 0                                           |     
                                                                     |     if (sb == 0) {
    0x0007b84a beq.w 0x7bb84                                         |         goto label_103;
                                                                     |     }
    0x0007b84e mov r5, sb                                            |     r5 = sb;
    0x0007b850 mov.w sb, 0                                           |     sb = 0;
                                                                     | label_35:
    0x0007b854 mov r0, sb                                            |     r0 = sb;
    0x0007b856 blx 0x3a9a0                                           |     fcn_0003a9a0 ();
                                                                     | label_39:
    0x0007b85a ldr r3, [r7, 0xc]                                     |     r3 = var_ch_2;
    0x0007b85c cmp r3, sl                                            |     
                                                                     |     if (r3 == sl) {
    0x0007b85e beq.w 0x7bb20                                         |         goto label_104;
                                                                     |     }
                                                                     | label_37:
    0x0007b862 ldr r0, [r7, 0x64]                                    |     r0 = var_64h;
    0x0007b864 blx 0x3a9a0                                           |     fcn_0003a9a0 ();
    0x0007b868 str r5, [r7, 0x64]                                    |     var_64h = r5;
    0x0007b86a b 0x7b716                                             |     goto label_23;
                                                                     | label_26:
    0x0007b86c cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007b86e beq.w 0x7b742                                         |         goto label_24;
                                                                     |     }
    0x0007b872 ldr.w r3, [fp, 0x14]                                  |     r3 = *(arg_14h);
    0x0007b876 ldr r2, [r7, 0x58]                                    |     r2 = var_58h;
    0x0007b878 cmp r3, r2                                            |     
                                                                     |     if (r3 == r2) {
    0x0007b87a bne 0x7b88a                                           |         
    0x0007b87c ldr r0, [pc, 0x1f0]                                   |         
    0x0007b87e movs r2, 4                                            |         r2 = 4;
    0x0007b880 ldr r3, [r7, 0x68]                                    |         r3 = var_68h;
    0x0007b882 movs r1, 1                                            |         r1 = 1;
    0x0007b884 add r0, pc                                            |         r0 = 0xf72f8;
    0x0007b886 blx 0x3caac                                           |         fcn_0003caac ();
                                                                     |     }
                                                                     | label_27:
    0x0007b88a mov r0, r4                                            |     r0 = r4;
    0x0007b88c ldr r4, [r7, 0x68]                                    |     r4 = var_68h;
    0x0007b88e mov r1, r4                                            |     r1 = r4;
    0x0007b890 blx 0x3f6b4                                           |     fcn_0003f6b4 ();
    0x0007b894 mov r1, r4                                            |     r1 = r4;
    0x0007b896 mov r0, r5                                            |     r0 = r5;
    0x0007b898 blx 0x3f6b4                                           |     fcn_0003f6b4 ();
    0x0007b89c blx 0x3d7c4                                           |     r0 = fcn_0003d7c4 ();
    0x0007b8a0 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007b8a2 beq.w 0x7b75c                                         |         goto label_25;
                                                                     |     }
                                                                     | label_96:
    0x0007b8a6 ldr r3, [r7, 0x68]                                    |     r3 = var_68h;
    0x0007b8a8 movs r2, 4                                            |     r2 = 4;
    0x0007b8aa ldr r0, [r7, 0x40]                                    |     r0 = var_40h;
    0x0007b8ac movs r1, 1                                            |     r1 = 1;
    0x0007b8ae blx 0x3caac                                           |     fcn_0003caac ();
    0x0007b8b2 b 0x7b75c                                             |     goto label_25;
                                                                     | label_95:
    0x0007b8b4 mov r0, r6                                            |     r0 = r6;
    0x0007b8b6 bl 0x78dc8                                            |     fcn_00078dc8 (r0);
    0x0007b8ba ldr r3, [r7, 0x54]                                    |     r3 = var_54h;
    0x0007b8bc mov r4, r0                                            |     r4 = r0;
    0x0007b8be cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0007b8c0 beq 0x7b86c                                           |         goto label_26;
                                                                     |     }
    0x0007b8c2 ldr.w r8, [pc, 0x1b0]                                 |     
    0x0007b8c6 movs r2, 4                                            |     r2 = 4;
    0x0007b8c8 ldr r3, [r7, 0x68]                                    |     r3 = var_68h;
    0x0007b8ca movs r1, 1                                            |     r1 = 1;
    0x0007b8cc add r8, pc                                            |     r8 = 0xf7346;
    0x0007b8ce mov r0, r8                                            |     r0 = r8;
    0x0007b8d0 blx 0x3caac                                           |     fcn_0003caac ();
    0x0007b8d4 cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0007b8d6 bne 0x7b88a                                           |         goto label_27;
                                                                     |     }
    0x0007b8d8 ldr.w r3, [fp, 0x14]                                  |     r3 = *(arg_14h);
    0x0007b8dc ldr r2, [r7, 0x58]                                    |     r2 = var_58h;
    0x0007b8de cmp r3, r2                                            |     
                                                                     |     if (r3 != r2) {
    0x0007b8e0 bne.w 0x7b742                                         |         goto label_24;
                                                                     |     }
    0x0007b8e4 blx 0x3aa40                                           |     r0 = fcn_0003aa40 ();
    0x0007b8e8 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007b8ea beq.w 0x7bbd4                                         |         goto label_105;
                                                                     |     }
    0x0007b8ee ldr r0, [pc, 0x188]                                   |     
    0x0007b8f0 add r0, pc                                            |     r0 = 0xf736e;
                                                                     | label_40:
    0x0007b8f2 ldr r4, [r7, 0x68]                                    |     r4 = var_68h;
    0x0007b8f4 mov r1, r4                                            |     r1 = r4;
    0x0007b8f6 blx 0x3f6b4                                           |     fcn_0003f6b4 ();
    0x0007b8fa mov r1, r4                                            |     r1 = r4;
    0x0007b8fc mov r0, r5                                            |     r0 = r5;
    0x0007b8fe blx 0x3f6b4                                           |     fcn_0003f6b4 ();
    0x0007b902 blx 0x3d7c4                                           |     r0 = fcn_0003d7c4 ();
    0x0007b906 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007b908 beq.w 0x7b75c                                         |         goto label_25;
                                                                     |     }
    0x0007b90c b 0x7b750                                             |     goto label_28;
                                                                     | label_92:
    0x0007b90e movs r4, 0x64                                         |     r4 = 0x64;
    0x0007b910 b 0x7b6d4                                             |     goto label_29;
                                                                     | label_94:
    0x0007b912 ldr.w r3, [fp, 0x14]                                  |     r3 = *(arg_14h);
    0x0007b916 ldr r2, [r7, 0x58]                                    |     r2 = var_58h;
    0x0007b918 cmp r3, r2                                            |     
                                                                     |     if (r3 != r2) {
    0x0007b91a bne.w 0x7b72a                                         |         goto label_30;
                                                                     |     }
    0x0007b91e blx 0x3aa40                                           |     r0 = fcn_0003aa40 ();
    0x0007b922 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007b924 beq.w 0x7bb72                                         |         goto label_106;
                                                                     |     }
    0x0007b928 ldr r0, [r7, 0x34]                                    |     r0 = var_34h;
    0x0007b92a b 0x7b724                                             |     goto label_31;
                                                                     | label_90:
    0x0007b92c movs r3, 1                                            |     r3 = 1;
    0x0007b92e str r3, [r7, 0x4c]                                    |     var_4ch = r3;
    0x0007b930 b 0x7b6b8                                             |     goto label_32;
                                                                     | label_97:
    0x0007b932 movs r0, 0xe                                          |     r0 = 0xe;
    0x0007b934 blx 0x3d8dc                                           |     fcn_0003d8dc ();
    0x0007b938 movs r2, 0                                            |     r2 = 0;
    0x0007b93a mov r1, r0                                            |     r1 = r0;
    0x0007b93c mov r0, r5                                            |     r0 = r5;
    0x0007b93e blx 0x3918c                                           |     r0 = fcn_0003918c ();
    0x0007b942 mov r4, r0                                            |     r4 = r0;
    0x0007b944 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007b946 beq.w 0x7bbc0                                         |         goto label_107;
                                                                     |     }
    0x0007b94a blx 0x3b5f4                                           |     fcn_0003b5f4 ();
    0x0007b94e movs r3, 0x64                                         |     r3 = 0x64;
    0x0007b950 mov r1, r0                                            |     r1 = r0;
    0x0007b952 mov r2, r8                                            |     r2 = r8;
    0x0007b954 mov r0, r4                                            |     r0 = r4;
    0x0007b956 blx 0x3aba0                                           |     r0 = fcn_0003aba0 ();
    0x0007b95a mov r5, r0                                            |     r5 = r0;
    0x0007b95c cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007b95e beq.w 0x7bbc0                                         |         goto label_107;
                                                                     |     }
    0x0007b962 blx 0x39c9c                                           |     r0 = fcn_00039c9c ();
    0x0007b966 mov sb, r0                                            |     sb = r0;
    0x0007b968 mov r0, r4                                            |     r0 = r4;
    0x0007b96a blx 0x3a9a0                                           |     fcn_0003a9a0 ();
    0x0007b96e str r5, [r7, 0x64]                                    |     var_64h = r5;
    0x0007b970 b 0x7b7ae                                             |     goto label_33;
                                                                     | label_87:
    0x0007b972 ldr r1, [pc, 0x108]                                   |     
    0x0007b974 movw r2, 0x896                                        |     r2 = 0x896;
    0x0007b978 ldr r3, [pc, 0x104]                                   |     
    0x0007b97a ldr r0, [pc, 0x108]                                   |     
    0x0007b97c add r1, pc                                            |     r1 = 0xf73fe;
    0x0007b97e add r3, pc                                            |     r3 = 0xf7402;
    0x0007b980 adds r1, 7                                            |     r1 += 7;
    0x0007b982 add r0, pc                                            |     r0 = 0xf740c;
    0x0007b984 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_86:
    0x0007b988 ldr.w r2, [fp]                                        |     r2 = *(fp);
    0x0007b98c ldr r1, [r7, 0x48]                                    |     r1 = var_48h;
    0x0007b98e mul r2, r1, r2                                        |     r2 = r1 * r2;
    0x0007b992 add.w r3, r3, r2, lsl 2                               |     r3 += (r2 << 2);
    0x0007b996 str r3, [r7, 0x58]                                    |     var_58h = r3;
    0x0007b998 b 0x7b634                                             |     goto label_34;
                                                                     | label_102:
    0x0007ba88 ldr r2, [r7, 0x14]                                    |     r2 = var_14h;
    0x0007ba8a sub.w r3, r8, r4                                      |     r3 = r8 - r4;
    0x0007ba8e ldr r1, [r7, 0x24]                                    |     r1 = var_24h;
    0x0007ba90 str r3, [r7, 0x1c]                                    |     var_1ch = r3;
    0x0007ba92 mul r2, r3, r2                                        |     r2 = r3 * r2;
    0x0007ba96 add r3, r1                                            |     r3 += r1;
    0x0007ba98 adds r0, r3, 1                                        |     r0 = r3 + 1;
    0x0007ba9a str r3, [r7, 0x20]                                    |     var_20h = r3;
    0x0007ba9c ldr r3, [r7, 0x3c]                                    |     r3 = var_3ch;
    0x0007ba9e cmp r0, 1                                             |     
    0x0007baa0 it lo                                                 |     
                                                                     |     if (r0 >= 1) {
    0x0007baa2 movlo r0, 1                                           |         r0 = 1;
                                                                     |     }
    0x0007baa4 str r2, [r7, 0x18]                                    |     var_18h = r2;
    0x0007baa6 umull r1, r8, r3, r2                                  |     r1:r8 = r3 * r2;
    0x0007baaa blx 0x3d0b4                                           |     fcn_0003d0b4 ();
    0x0007baae lsr.w r8, r8, 5                                       |     r8 >>= 5;
    0x0007bab2 mov r4, r0                                            |     r4 = r0;
    0x0007bab4 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007bab6 beq.w 0x7bbe4                                         |         goto label_108;
                                                                     |     }
    0x0007baba ldr r2, [r7, 0x18]                                    |     r2 = var_18h;
    0x0007babc cmp r2, 0x63                                          |     
                                                                     |     if (r2 >= 0x63) {
    0x0007babe bls 0x7bac8                                           |         
    0x0007bac0 mov r2, r8                                            |         r2 = r8;
    0x0007bac2 movs r1, 0x20                                         |         r1 = 0x20;
    0x0007bac4 blx 0x39d84                                           |         fcn_00039d84 ();
                                                                     |     }
    0x0007bac8 cmp.w sb, 0                                           |     
    0x0007bacc ite ne                                                |     
                                                                     |     if (sb == 0) {
    0x0007bace movne r1, sb                                          |         r1 = sb;
                                                                     |     }
                                                                     |     if (sb != 0) {
    0x0007bad0 moveq r1, r5                                          |         r1 = r5;
                                                                     |     }
    0x0007bad2 ldr r5, [r7, 0x24]                                    |     r5 = var_24h;
    0x0007bad4 add.w r0, r4, r8                                      |     r0 = r4 + r8;
    0x0007bad8 mov r2, r5                                            |     r2 = r5;
    0x0007bada blx 0x3b8e8                                           |     fcn_0003b8e8 ();
    0x0007bade ldr r3, [r7, 0x20]                                    |     r3 = var_20h;
    0x0007bae0 mov r0, r5                                            |     r0 = r5;
    0x0007bae2 add r0, r8                                            |     r0 += r8;
    0x0007bae4 cmp r3, r0                                            |     
                                                                     |     if (r3 >= r0) {
    0x0007bae6 bls 0x7baf6                                           |         
    0x0007bae8 ldr r3, [r7, 0x1c]                                    |         r3 = var_1ch;
    0x0007baea add r0, r4                                            |         r0 += r4;
    0x0007baec movs r1, 0x20                                         |         r1 = 0x20;
    0x0007baee sub.w r2, r3, r8                                      |         r2 = r3 - r8;
    0x0007baf2 blx 0x39d84                                           |         fcn_00039d84 ();
                                                                     |     }
    0x0007baf6 ldr r3, [r7, 0x20]                                    |     r3 = var_20h;
    0x0007baf8 movs r2, 0                                            |     r2 = 0;
    0x0007bafa mov r5, r4                                            |     r5 = r4;
    0x0007bafc strb r2, [r4, r3]                                     |     *((r4 + r3)) = r2;
    0x0007bafe b 0x7b854                                             |     goto label_35;
                                                                     | label_99:
    0x0007bb00 str r0, [r7, 0x24]                                    |     var_24h = r0;
    0x0007bb02 b 0x7b7ee                                             |     goto label_36;
                                                                     | label_88:
    0x0007bb04 mov.w sb, 0                                           |     sb = 0;
    0x0007bb08 mvn r2, 0xb                                           |     r2 = ~0xb;
                                                                     | label_38:
    0x0007bb0c ldr r0, [r7, 0x70]                                    |     r0 = var_70h;
    0x0007bb0e str r2, [r7, 0x6c]                                    |     var_6ch = r2;
    0x0007bb10 blx 0x3a9a0                                           |     fcn_0003a9a0 ();
    0x0007bb14 mov r0, sb                                            |     r0 = sb;
    0x0007bb16 blx 0x3a9a0                                           |     fcn_0003a9a0 ();
    0x0007bb1a ldr r2, [r7, 0x6c]                                    |     r2 = var_6ch;
    0x0007bb1c b.w 0x7b26c                                           |     goto label_12;
                                                                     | label_104:
    0x0007bb20 blx 0x3d7c4                                           |     r0 = fcn_0003d7c4 ();
                                                                     |     if (r0 == 0) {
    0x0007bb24 cbz r0, 0x7bb3e                                       |         goto label_109;
                                                                     |     }
    0x0007bb26 mov r0, r6                                            |     r0 = r6;
    0x0007bb28 bl 0x78dc8                                            |     r0 = fcn_00078dc8 (r0);
    0x0007bb2c cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0007bb2e bne.w 0x7b862                                         |         goto label_37;
                                                                     |     }
    0x0007bb32 ldr.w r3, [fp, 0x14]                                  |     r3 = *(arg_14h);
    0x0007bb36 ldr r2, [r7, 0x58]                                    |     r2 = var_58h;
    0x0007bb38 cmp r3, r2                                            |     
                                                                     |     if (r3 == r2) {
    0x0007bb3a beq.w 0x7b862                                         |         goto label_37;
                                                                     |     }
                                                                     | label_109:
    0x0007bb3e blx 0x38c44                                           |     r0 = fcn_00038c44 ();
                                                                     |     if (r0 == 0) {
    0x0007bb42 cbz r0, 0x7bb4c                                       |         goto label_110;
                                                                     |     }
    0x0007bb44 ldr r3, [r6, 0x2c]                                    |     r3 = *((r6 + 0x2c));
    0x0007bb46 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0007bb48 bne.w 0x7b862                                         |         goto label_37;
                                                                     |     }
                                                                     | label_110:
    0x0007bb4c movs r1, 0                                            |     r1 = 0;
    0x0007bb4e mov r0, r5                                            |     r0 = r5;
    0x0007bb50 blx 0x3c80c                                           |     fcn_0003c80c ();
    0x0007bb54 b 0x7b862                                             |     goto label_37;
                                                                     | label_89:
    0x0007bb56 mov r2, r0                                            |     r2 = r0;
    0x0007bb58 mov sb, r4                                            |     sb = r4;
    0x0007bb5a b 0x7bb0c                                             |     goto label_38;
                                                                     | label_98:
    0x0007bb5c ldr r1, [pc, 0xc4]                                    |     
    0x0007bb5e movw r2, 0x729                                        |     r2 = 0x729;
    0x0007bb62 ldr r3, [pc, 0xc4]                                    |     
    0x0007bb64 ldr r0, [pc, 0xc4]                                    |     
    0x0007bb66 add r1, pc                                            |     r1 = 0xf778e;
    0x0007bb68 add r3, pc                                            |     r3 = 0xf7796;
    0x0007bb6a adds r1, 7                                            |     r1 += 7;
    0x0007bb6c add r0, pc                                            |     r0 = 0xf779c;
    0x0007bb6e blx 0x3b5e8                                           |     fcn_0003b5e8 ();
                                                                     | label_106:
    0x0007bb72 blx 0x3d7c4                                           |     fcn_0003d7c4 ();
    0x0007bb76 ldrd r2, r3, [r7, 0x2c]                               |     __asm ("ldrd r2, r3, [var_2ch]");
    0x0007bb7a cmp r0, 0                                             |     
    0x0007bb7c ite ne                                                |     
                                                                     |     if (r0 == 0) {
    0x0007bb7e movne r0, r3                                          |         r0 = r3;
                                                                     |     }
                                                                     |     if (r0 != 0) {
    0x0007bb80 moveq r0, r2                                          |         r0 = r2;
                                                                     |     }
    0x0007bb82 b 0x7b724                                             |     goto label_31;
                                                                     | label_103:
    0x0007bb84 mov r0, r5                                            |     r0 = r5;
    0x0007bb86 blx 0x3d034                                           |     r0 = fcn_0003d034 ();
    0x0007bb8a mov r5, r0                                            |     r5 = r0;
    0x0007bb8c cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0007bb8e bne.w 0x7b85a                                         |         goto label_39;
                                                                     |     }
    0x0007bb92 ldr.w sb, [r7, 0x64]                                  |     sb = var_64h;
    0x0007bb96 mvn r2, 0xb                                           |     r2 = ~0xb;
    0x0007bb98 lsls r3, r1, 8                                        |     r3 = r1 << 8;
    0x0007bb9a b 0x7bb0c                                             |     goto label_38;
                                                                     | label_100:
    0x0007bb9c mvn r2, 0xb                                           |     r2 = ~0xb;
    0x0007bba0 ldr r0, [r7, 0x74]                                    |     r0 = var_74h;
    0x0007bba2 str r2, [r7, 0x6c]                                    |     var_6ch = r2;
    0x0007bba4 ldr.w sb, [r7, 0x64]                                  |     sb = var_64h;
    0x0007bba8 blx 0x3a9a0                                           |     fcn_0003a9a0 ();
    0x0007bbac ldr r2, [r7, 0x6c]                                    |     r2 = var_6ch;
    0x0007bbae b 0x7bb0c                                             |     goto label_38;
                                                                     | label_93:
    0x0007bbb0 str r0, [r7, 0x6c]                                    |     var_6ch = r0;
    0x0007bbb2 ldr r0, [r7, 0x78]                                    |     r0 = var_78h;
    0x0007bbb4 ldr.w sb, [r7, 0x64]                                  |     sb = var_64h;
    0x0007bbb8 blx 0x3a9a0                                           |     fcn_0003a9a0 ();
    0x0007bbbc ldr r2, [r7, 0x6c]                                    |     r2 = var_6ch;
    0x0007bbbe b 0x7bb0c                                             |     goto label_38;
                                                                     | label_107:
    0x0007bbc0 mvn r2, 0xb                                           |     r2 = ~0xb;
    0x0007bbc4 mov r0, r4                                            |     r0 = r4;
    0x0007bbc6 str r2, [r7, 0x6c]                                    |     var_6ch = r2;
    0x0007bbc8 mov.w sb, 0                                           |     sb = 0;
    0x0007bbcc blx 0x3a9a0                                           |     fcn_0003a9a0 ();
    0x0007bbd0 ldr r2, [r7, 0x6c]                                    |     r2 = var_6ch;
    0x0007bbd2 b 0x7bb0c                                             |     goto label_38;
                                                                     | label_105:
    0x0007bbd4 blx 0x3d7c4                                           |     r0 = fcn_0003d7c4 ();
                                                                     |     if (r0 == 0) {
    0x0007bbd8 cbnz r0, 0x7bbe0                                      |         
    0x0007bbda ldr r0, [pc, 0x54]                                    |         
    0x0007bbdc add r0, pc                                            |         r0 = 0xf7812;
    0x0007bbde b 0x7b8f2                                             |         goto label_40;
                                                                     |     }
    0x0007bbe0 mov r0, r8                                            |     r0 = r8;
    0x0007bbe2 b 0x7b8f2                                             |     goto label_40;
                                                                     | label_108:
    0x0007bbe4 mov r3, sb                                            |     r3 = sb;
    0x0007bbe6 mvn r2, 0xb                                           |     r2 = ~0xb;
    0x0007bbea mov r0, r3                                            |     r0 = r3;
    0x0007bbec str r2, [r7, 0x6c]                                    |     var_6ch = r2;
    0x0007bbee ldr.w sb, [r7, 0x64]                                  |     sb = var_64h;
    0x0007bbf2 blx 0x3a9a0                                           |     fcn_0003a9a0 ();
    0x0007bbf6 ldr r2, [r7, 0x6c]                                    |     r2 = var_6ch;
    0x0007bbf8 b 0x7bb0c                                             |     goto label_38;
                                                                     | label_84:
    0x0007bbfa movs r3, 1                                            |     r3 = 1;
    0x0007bbfc str r3, [r7, 0x10]                                    |     var_10h = r3;
    0x0007bbfe b.w 0x7af08                                           |     goto label_41;
                                                                     | label_83:
    0x0007bc02 ldr.w fp, [r7, 0x60]                                  |     fp = var_60h;
    0x0007bc06 ldr.w sl, [r7, 0x58]                                  |     sl = var_58h;
    0x0007bc0a b 0x7b5dc                                             |     goto label_42;
                                                                     | label_82:
    0x0007bc0c ldr r1, [pc, 0x24]                                    |     
    0x0007bc0e movw r2, 0x838                                        |     r2 = 0x838;
    0x0007bc12 ldr r3, [pc, 0x24]                                    |     
    0x0007bc14 ldr r0, [pc, 0x24]                                    |     
    0x0007bc16 add r1, pc                                            |     r1 = 0xf784e;
    0x0007bc18 add r3, pc                                            |     r3 = 0xf7856;
    0x0007bc1a adds r1, 7                                            |     r1 += 7;
    0x0007bc1c add r0, pc                                            |     r0 = 0xf785c;
    0x0007bc1e blx 0x3b5e8                                           |     fcn_0003b5e8 ();
    0x0007bc22 nop                                                   |     
    0x0007bc24 subs r2, 0xf2                                         |     r2 -= 0xf2;
    0x0007bc26 movs r7, r1                                           |     r7 = r1;
    0x0007bc28 subs r7, 0xac                                         |     r7 -= 0xac;
    0x0007bc2a movs r7, r1                                           |     r7 = r1;
    0x0007bc2c subs r4, 0x58                                         |     r4 -= 0x58;
    0x0007bc2e movs r7, r1                                           |     r7 = r1;
    0x0007bc30 ldm r6, {r3, r4, r5, r6, r7}                          |     r3 = *(r6);
                                                                     |     r4 = *((r6 + 4));
                                                                     |     r5 = *((r6 + 8));
                                                                     |     r6 = *((r6 + 12));
                                                                     |     r7 = *((r6 + 16));
    0x0007bc32 movs r2, r2                                           |     
    0x0007bc34 subs r2, 0x42                                         |     r2 -= 0x42;
    0x0007bc36 movs r7, r1                                           |     r7 = r1;
    0x0007bc38 subs r7, 0x64                                         |     r7 -= 0x64;
    0x0007bc3a movs r7, r1                                           |     r7 = r1;
    0x0007bc3c subs r6, 0x20                                         |     r6 -= 0x20;
    0x0007bc3e movs r7, r1                                           |     r7 = r1;
                                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/libsystemd-shared-249.so @ 0x7c33c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.table_print_json ()              | void table_print_json (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 |     r2 = arg3;
    0x0007c33c ssub16mi fp, r6, r0               |     __asm ("ssub16mi fp, r6, r0");
    0x0007c340 ldr r2, [pc, 0x94]                |     
    0x0007c342 sub sp, 8                         |     
    0x0007c344 ldr r3, [pc, 0x94]                |     r3 = *(0x7c3dc);
    0x0007c346 add r2, pc                        |     r2 = 0xf8722;
    0x0007c348 ldr r3, [r2, r3]                  |     
    0x0007c34a ldr r2, [pc, 0x94]                |     
    0x0007c34c ldr r3, [r3]                      |     r3 = *(0xf8722);
    0x0007c34e str r3, [sp, 4]                   |     var_4h = r3;
    0x0007c350 mov.w r3, 0                       |     r3 = 0;
    0x0007c354 movs r3, 0                        |     r3 = 0;
    0x0007c356 str r3, [sp]                      |     *(sp) = r3;
    0x0007c358 add r2, pc                        |     r2 = 0xf873e;
                                                 |     if (r0 == 0) {
    0x0007c35a cbz r0, 0x7c3be                   |         goto label_2;
                                                 |     }
    0x0007c35c lsls r3, r6, 0x16                 |     r3 = r6 << 0x16;
                                                 |     if (r3 < r6) {
    0x0007c35e bmi 0x7c3b0                       |         goto label_3;
                                                 |     }
    0x0007c360 mov r5, r1                        |     r5 = r1;
    0x0007c362 mov r3, r0                        |     r3 = r0;
    0x0007c364 cbz r1, 0x7c3a8                   |     
                                                 |     while (1) {
    0x0007c366 mov r1, sp                        |         r1 = sp;
    0x0007c368 mov r0, r3                        |         r0 = r3;
    0x0007c36a blx 0x396cc                       |         r0 = fcn_000396cc ();
    0x0007c36e subs r4, r0, 0                    |         r4 = r0 - 0;
                                                 |         if (r4 >= r0) {
    0x0007c370 blt 0x7c386                       |             
    0x0007c372 ldr r0, [sp]                      |             r0 = *(sp);
    0x0007c374 movs r3, 0                        |             r3 = 0;
    0x0007c376 mov r2, r5                        |             r2 = r5;
    0x0007c378 mov r1, r6                        |             r1 = r6;
    0x0007c37a blx 0x3a9c4                       |             fcn_0003a9c4 ();
    0x0007c37e mov r0, r5                        |             r0 = r5;
    0x0007c380 blx 0x3d1d8                       |             r0 = fcn_0003d1d8 ();
    0x0007c384 mov r4, r0                        |             r4 = r0;
                                                 |         }
    0x0007c386 ldr r0, [sp]                      |         r0 = *(sp);
                                                 |         if (r0 != 0) {
    0x0007c388 cbz r0, 0x7c38e                   |             
                                                 | label_0:
    0x0007c38a blx 0x3c358                       |             fcn_0003c358 ();
                                                 |         }
                                                 | label_1:
    0x0007c38e ldr r2, [pc, 0x54]                |         
    0x0007c390 ldr r3, [pc, 0x48]                |         r3 = *(0x7c3dc);
    0x0007c392 add r2, pc                        |         r2 = 0xf877c;
    0x0007c394 ldr r3, [r2, r3]                  |         r3 = *(0xf877c);
    0x0007c396 ldr r2, [r3]                      |         r2 = *(0xf877c);
    0x0007c398 ldr r3, [sp, 4]                   |         r3 = var_4h;
    0x0007c39a eors r2, r3                       |         r2 ^= r3;
    0x0007c39c mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0007c3a0 bne 0x7c3d4                       |             goto label_4;
                                                 |         }
    0x0007c3a2 mov r0, r4                        |         r0 = r4;
    0x0007c3a4 add sp, 8                         |         
    0x0007c3a6 pop {r4, r5, r6, pc}              |         
    0x0007c3a8 ldr r1, [pc, 0x3c]                |         r1 = *(0x7c3e8);
    0x0007c3aa ldr r2, [r2, r1]                  |         r2 = *((r2 + r1));
    0x0007c3ac ldr r5, [r2]                      |         r5 = *(r2);
    0x0007c3ae b 0x7c366                         |         
                                                 |     }
                                                 | label_3:
    0x0007c3b0 blx 0x3c4dc                       |     r0 = fcn_0003c4dc ();
    0x0007c3b4 mov r4, r0                        |     r4 = r0;
    0x0007c3b6 ldr r0, [sp]                      |     r0 = *(sp);
    0x0007c3b8 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0007c3ba bne 0x7c38a                       |         goto label_0;
                                                 |     }
    0x0007c3bc b 0x7c38e                         |     goto label_1;
                                                 | label_2:
    0x0007c3be ldr r1, [pc, 0x2c]                |     
    0x0007c3c0 movw r2, 0xa6d                    |     r2 = 0xa6d;
    0x0007c3c4 ldr r3, [pc, 0x28]                |     
    0x0007c3c6 ldr r0, [pc, 0x2c]                |     
    0x0007c3c8 add r1, pc                        |     r1 = 0xf87ba;
    0x0007c3ca add r3, pc                        |     r3 = 0xf87be;
    0x0007c3cc adds r1, 7                        |     r1 += 7;
    0x0007c3ce add r0, pc                        |     r0 = 0xf87c8;
    0x0007c3d0 blx 0x3b5e8                       |     fcn_0003b5e8 ();
                                                 | label_4:
    0x0007c3d4 blx 0x3d208                       |     fcn_0003d208 ();
    0x0007c3d8 push {r1, r4, r5, r6, lr}         |     
    0x0007c3da movs r4, r2                       |     r4 = r2;
    0x0007c3dc movs r6, 0xb0                     |     r6 = 0xb0;
    0x0007c3de movs r0, r0                       |     
    0x0007c3e0 push {r5, r6, lr}                 |     
    0x0007c3e2 movs r4, r2                       |     r4 = r2;
    0x0007c3e4 push {r1, r2, r5, lr}             |     
    0x0007c3e6 movs r4, r2                       |     r4 = r2;
    0x0007c3e8 movs r6, 0xf8                     |     r6 = 0xf8;
    0x0007c3ea movs r0, r0                       |     
    0x0007c3ec adds r2, 0x90                     |     r2 += 0x90;
    0x0007c3ee movs r7, r1                       |     r7 = r1;
    0x0007c3f0 adds r7, 0xbe                     |     r7 += 0xbe;
    0x0007c3f2 movs r7, r1                       |     r7 = r1;
    0x0007c3f4 strh r2, [r3, 0x1a]               |     *((r3 + 0x1a)) = r2;
    0x0007c3f6 movs r1, r2                       |     r1 = r2;
                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/libsystemd-shared-249.so @ 0x7c3f8 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.table_print_with_pager ()            | void table_print_with_pager (uint32_t arg1, uint32_t arg2, int16_t arg3, int16_t arg4) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_0h_2;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r2 = arg3;
                                                     |     r3 = arg4;
    0x0007c3f8 mvnsmi lr, sp, lsr 18                 |     __asm ("mvnsmi lr, sp, lsr 18");
    0x0007c3fc sub sp, 8                             |     
    0x0007c3fe ldr r7, [pc, 0x98]                    |     
    0x0007c400 add r7, pc                            |     r7 = 0xf889e;
    0x0007c402 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0007c404 beq 0x7c480                           |         goto label_0;
                                                     |     }
    0x0007c406 mov r6, r3                            |     r6 = r3;
    0x0007c408 movw r3, 0x206                        |     r3 = 0x206;
    0x0007c40c tst r1, r3                            |     
    0x0007c40e mov r5, r1                            |     r5 = r1;
    0x0007c410 mov r4, r0                            |     r4 = r0;
    0x0007c412 bne 0x7c43a                           |     
                                                     |     while (1) {
    0x0007c414 ldr r3, [pc, 0x84]                    |         r3 = *(0x7c49c);
    0x0007c416 mov r0, r4                            |         r0 = r4;
    0x0007c418 ldrb.w r8, [r4, 8]                    |         r8 = *((r4 + 8));
    0x0007c41c mov r2, r5                            |         r2 = r5;
    0x0007c41e strb r6, [r4, 8]                      |         *((r4 + 8)) = r6;
    0x0007c420 ldr r3, [r7, r3]                      |         r3 = *((r7 + r3));
    0x0007c422 ldr r1, [r3]                          |         r1 = *(0x7c49c);
    0x0007c424 blx 0x3b16c                           |         fcn_0003b16c ();
    0x0007c428 strb.w r8, [r4, 8]                    |         *((r4 + 8)) = r8;
    0x0007c42c subs r4, r0, 0                        |         r4 = r0 - 0;
    0x0007c42e it ge                                 |         
                                                     |         if (r4 < r0) {
    0x0007c430 movge r0, 0                           |             r0 = 0;
                                                     |         }
                                                     |         if (r4 < r0) {
    0x0007c432 blt 0x7c442                           |             goto label_1;
                                                     |         }
    0x0007c434 add sp, 8                             |         
    0x0007c436 pop.w {r4, r5, r6, r7, r8, pc}        |         
    0x0007c43a mov r0, r2                            |         r0 = r2;
    0x0007c43c blx 0x3d174                           |         fcn_0003d174 ();
    0x0007c440 b 0x7c414                             |         
                                                     |     }
                                                     | label_1:
    0x0007c442 blx 0x3d534                           |     r0 = fcn_0003d534 ();
    0x0007c446 cmp r0, 2                             |     
    0x0007c448 ittt le                               |     
                                                     |     if (r0 <= 2) {
    0x0007c44a rsble r0, r4, 0                       |         __asm ("rsble r0, r4, 0");
                                                     |     }
                                                     |     if (r0 <= 2) {
    0x0007c44c uxtble r0, r0                         |         __asm ("uxtble r0, r0");
                                                     |     }
                                                     |     if (r0 <= 2) {
    0x0007c44e rsble r0, r0, 0                       |         __asm ("rsble r0, r0, 0");
                                                     |     }
    0x0007c450 bgt 0x7c460                           |     
                                                     |     while (1) {
    0x0007c452 cmp r0, 0                             |         
    0x0007c454 it ge                                 |         
                                                     |         if (r0 < 0) {
    0x0007c456 mvnge r0, 0x55                        |             r0 = ~0x55;
                                                     |         }
    0x0007c45a add sp, 8                             |         
    0x0007c45c pop.w {r4, r5, r6, r7, r8, pc}        |         
    0x0007c460 ldr r2, [pc, 0x3c]                    |         
    0x0007c462 movw r3, 0xa94                        |         r3 = 0xa94;
    0x0007c466 ldr r5, [pc, 0x3c]                    |         
    0x0007c468 mov r1, r4                            |         r1 = r4;
    0x0007c46a ldr r0, [pc, 0x3c]                    |         
    0x0007c46c add r2, pc                            |         r2 = 0xf8910;
    0x0007c46e add r5, pc                            |         r5 = 0xf8918;
    0x0007c470 adds r2, 7                            |         r2 += 7;
    0x0007c472 add r0, pc                            |         r0 = 0xf8920;
    0x0007c474 strd r0, r5, [sp]                     |         __asm ("strd r0, r5, [sp]");
    0x0007c478 movs r0, 3                            |         r0 = 3;
    0x0007c47a blx 0x39c0c                           |         fcn_00039c0c ();
    0x0007c47e b 0x7c452                             |         
                                                     |     }
                                                     | label_0:
    0x0007c480 ldr r1, [pc, 0x28]                    |     
    0x0007c482 movw r2, 0xa87                        |     r2 = 0xa87;
    0x0007c486 ldr r3, [pc, 0x28]                    |     
    0x0007c488 ldr r0, [pc, 0x28]                    |     
    0x0007c48a add r1, pc                            |     r1 = 0xf893a;
    0x0007c48c add r3, pc                            |     r3 = 0xf8942;
    0x0007c48e adds r1, 7                            |     r1 += 7;
    0x0007c490 add r0, pc                            |     r0 = 0xf8948;
    0x0007c492 blx 0x3b5e8                           |     fcn_0003b5e8 ();
    0x0007c496 nop                                   |     
    0x0007c498 push {r3, r4, r5, r7}                 |     
    0x0007c49a movs r4, r2                           |     r4 = r2;
    0x0007c49c movs r6, 0xf8                         |     r6 = 0xf8;
    0x0007c49e movs r0, r0                           |     
    0x0007c4a0 adds r1, 0xec                         |     r1 += 0xec;
    0x0007c4a2 movs r7, r1                           |     r7 = r1;
    0x0007c4a4 adds r6, 0x5e                         |     r6 += 0x5e;
    0x0007c4a6 movs r7, r1                           |     r7 = r1;
    0x0007c4a8 subs r2, 0x1a                         |     r2 -= 0x1a;
    0x0007c4aa movs r7, r1                           |     r7 = r1;
    0x0007c4ac adds r1, 0xce                         |     r1 += 0xce;
    0x0007c4ae movs r7, r1                           |     r7 = r1;
    0x0007c4b0 adds r6, 0x5c                         |     r6 += 0x5c;
    0x0007c4b2 movs r7, r1                           |     r7 = r1;
    0x0007c4b4 strh r0, [r3, 0x14]                   |     *((r3 + 0x14)) = r0;
    0x0007c4b6 movs r1, r2                           |     r1 = r2;
                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/libsystemd-shared-249.so @ 0x7be2c */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.table_to_json ()                                     | void table_to_json (uint32_t arg1, int16_t arg2) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_28h;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_34h;
                                                                     |     int16_t var_5ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0007be2c ldrths pc, [r4], 0x8df                                |     __asm ("ldrths pc, [r4], 0x8df");
    0x0007be30 ldr.w r3, [pc, 0x4b4]                                 |     
    0x0007be34 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0007be38 sub sp, 0x64                                          |     
    0x0007be3a add r2, pc                                            |     r2 += pc;
    0x0007be3c str r1, [sp, 0x14]                                    |     var_14h = r1;
    0x0007be3e ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0007be40 ldr r3, [r3]                                          |     r3 = *(0x7c2e8);
    0x0007be42 str r3, [sp, 0x5c]                                    |     var_5ch = r3;
    0x0007be44 mov.w r3, 0                                           |     r3 = 0;
    0x0007be48 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007be4a beq.w 0x7bf8a                                         |         goto label_10;
                                                                     |     }
    0x0007be4e ldrd r6, r5, [r0]                                     |     __asm ("ldrd r6, r5, [r0]");
    0x0007be52 mov r4, r0                                            |     r4 = r0;
    0x0007be54 mov r1, r6                                            |     r1 = r6;
    0x0007be56 mov r0, r5                                            |     r0 = r5;
    0x0007be58 bl 0x15f7fc                                           |     r0 = fcn_0015f7fc (r0, r1, r2);
    0x0007be5c mov r8, r0                                            |     r8 = r0;
    0x0007be5e cmp r1, 0                                             |     
                                                                     |     if (r1 != 0) {
    0x0007be60 bne.w 0x7bfa0                                         |         goto label_11;
                                                                     |     }
    0x0007be64 cmp r5, r6                                            |     
                                                                     |     if (r5 <= r6) {
    0x0007be66 blo.w 0x7bfb6                                         |         goto label_12;
                                                                     |     }
    0x0007be6a ldr r3, [r4, 0x20]                                    |     r3 = *((r4 + 0x20));
    0x0007be6c str r3, [sp, 0xc]                                     |     var_ch = r3;
                                                                     |     if (r3 == 0) {
    0x0007be6e cbz r3, 0x7beba                                       |         goto label_13;
                                                                     |     }
    0x0007be70 lsrs r3, r0, 0x1e                                     |     r3 = r0 >> 0x1e;
    0x0007be72 ite ne                                                |     
                                                                     |     if (r3 == r0) {
    0x0007be74 movne r5, 1                                           |         r5 = 1;
                                                                     |     }
                                                                     |     if (r3 != r0) {
    0x0007be76 moveq r5, 0                                           |         r5 = 0;
                                                                     |     }
                                                                     |     if (r3 != r0) {
    0x0007be78 bne.w 0x7c2c2                                         |         goto label_14;
                                                                     |     }
    0x0007be7c lsls r0, r0, 2                                        |     r0 <<= 2;
    0x0007be7e cmp r0, 1                                             |     
    0x0007be80 it lo                                                 |     
                                                                     |     if (r0 >= 1) {
    0x0007be82 movlo r0, 1                                           |         r0 = 1;
                                                                     |     }
    0x0007be84 blx 0x3d0b4                                           |     fcn_0003d0b4 ();
    0x0007be88 str r0, [sp, 0xc]                                     |     var_ch = r0;
    0x0007be8a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007be8c beq.w 0x7c2c2                                         |         goto label_14;
                                                                     |     }
    0x0007be90 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0007be92 subs r2, r3, 4                                        |     r2 = r3 - 4;
    0x0007be94 mov r3, r5                                            |     r3 = r5;
                                                                     |     do {
    0x0007be96 adds r5, 1                                            |         r5++;
    0x0007be98 str r3, [r2, 4]!                                      |         *((r2 += 4)) = r3;
    0x0007be9c cmp r8, r5                                            |         
    0x0007be9e add r3, r6                                            |         r3 += r6;
    0x0007bea0 bhi 0x7be96                                           |         
                                                                     |     } while (r8 > r5);
    0x0007bea2 cmp.w r8, 1                                           |     
                                                                     |     if (r8 >= 1) {
    0x0007bea6 bls 0x7beba                                           |         
    0x0007bea8 ldr.w r3, [pc, 0x440]                                 |         r3 = *(0x0007c2ec);
    0x0007beac movs r2, 4                                            |         r2 = 4;
    0x0007beae ldr r0, [sp, 0xc]                                     |         r0 = var_ch;
    0x0007beb0 mov r1, r8                                            |         r1 = r8;
    0x0007beb2 str r4, [sp]                                          |         *(sp) = r4;
    0x0007beb4 add r3, pc                                            |         r3 += pc;
    0x0007beb6 blx 0x3d09c                                           |         chdir ();
                                                                     |     }
                                                                     | label_13:
    0x0007beba ldr r2, [r4, 0x18]                                    |     r2 = *((r4 + 0x18));
    0x0007bebc cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0007bebe beq 0x7bf6e                                           |         goto label_15;
                                                                     |     }
    0x0007bec0 ldr.w sb, [r4, 0x1c]                                  |     sb = *((r4 + 0x1c));
                                                                     | label_1:
    0x0007bec4 cmp.w sb, 0                                           |     
                                                                     |     if (sb == 0) {
    0x0007bec8 beq.w 0x7c13e                                         |         goto label_16;
                                                                     |     }
    0x0007becc lsl.w r3, sb, 1                                       |     r3 = sb << 1;
    0x0007bed0 movs r1, 4                                            |     r1 = 4;
    0x0007bed2 str r2, [sp, 0x10]                                    |     var_10h = r2;
    0x0007bed4 cmp r3, 1                                             |     
    0x0007bed6 mov r0, r3                                            |     r0 = r3;
    0x0007bed8 it lo                                                 |     
                                                                     |     if (r3 >= 1) {
    0x0007beda movlo r0, 1                                           |         r0 = 1;
                                                                     |     }
    0x0007bedc str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0007bede blx 0x39a94                                           |     fcn_00039a94 ();
    0x0007bee2 str r0, [sp, 0x18]                                    |     var_18h = r0;
    0x0007bee4 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007bee6 beq.w 0x7c2d2                                         |         goto label_17;
                                                                     |     }
    0x0007beea movs r5, 0                                            |     r5 = 0;
    0x0007beec movs r6, 0x5f                                         |     r6 = 0x5f;
    0x0007beee mov sl, r5                                            |     sl = r5;
    0x0007bef0 mov fp, r0                                            |     
    0x0007bef2 ldr r2, [sp, 0x10]                                    |     r2 = var_10h;
    0x0007bef4 str.w r8, [sp, 0x10]                                  |     __asm ("str.w r8, [var_10h]");
                                                                     | label_0:
    0x0007bef8 ldr r1, [r4, 0x14]                                    |     r1 = *((r4 + 0x14));
    0x0007befa lsls r3, r5, 2                                        |     r3 = r5 << 2;
                                                                     |     if (r2 != 0) {
    0x0007befc cbz r2, 0x7bf04                                       |         
    0x0007befe ldr.w r3, [r2, r5, lsl 2]                             |         offset_0 = r5 << 2;
                                                                     |         r3 = *((r2 + offset_0));
    0x0007bf02 lsls r3, r3, 2                                        |         r3 <<= 2;
                                                                     |     }
    0x0007bf04 ldr r1, [r1, r3]                                      |     r1 = *((r1 + r3));
                                                                     |     if (r1 == 0) {
    0x0007bf06 cbz r1, 0x7bf74                                       |         goto label_18;
                                                                     |     }
    0x0007bf08 mov.w r3, -1                                          |     r3 = -1;
    0x0007bf0c movs r2, 1                                            |     r2 = 1;
    0x0007bf0e mov r0, r4                                            |     r0 = r4;
    0x0007bf10 str.w sl, [sp]                                        |     __asm ("str.w sl, [sp]");
    0x0007bf14 bl 0x79038                                            |     r0 = fcn_00079038 (r0, r1, r2, r3, r4, r5);
    0x0007bf18 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007bf1a beq.w 0x7c154                                         |         goto label_19;
                                                                     |     }
    0x0007bf1e blx 0x3d034                                           |     r0 = fcn_0003d034 ();
    0x0007bf22 mov r8, r0                                            |     r8 = r0;
    0x0007bf24 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007bf26 beq.w 0x7c154                                         |         goto label_19;
                                                                     |     }
    0x0007bf2a ldrb r7, [r0]                                         |     r7 = *(r0);
                                                                     |     if (r7 == 0) {
    0x0007bf2c cbz r7, 0x7bf48                                       |         goto label_20;
                                                                     |     }
    0x0007bf2e blx 0x3ce84                                           |     r0 = fcn_0003ce84 ();
    0x0007bf32 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0007bf34 mov r3, r8                                            |     r3 = r8;
                                                                     |     do {
    0x0007bf36 ldrh.w r2, [r0, r7, lsl 1]                            |         offset_1 = r7 << 1;
                                                                     |         r2 = *((r0 + offset_1));
    0x0007bf3a lsls r2, r2, 0x12                                     |         r2 <<= 0x12;
    0x0007bf3c it mi                                                 |         
                                                                     |         if (r2 >= r2) {
    0x0007bf3e strbmi r6, [r3]                                       |             *(r3) = r6;
                                                                     |         }
    0x0007bf40 ldrb r7, [r3, 1]!                                     |         r7 = *((r3 += 1));
    0x0007bf44 cmp r7, 0                                             |         
    0x0007bf46 bne 0x7bf36                                           |         
                                                                     |     } while (r7 != 0);
                                                                     | label_20:
    0x0007bf48 mov.w r2, -1                                          |     r2 = -1;
    0x0007bf4c mov r1, r8                                            |     r1 = r8;
    0x0007bf4e mov r0, fp                                            |     r0 = fp;
    0x0007bf50 blx 0x39aa0                                           |     r0 = fcn_00039aa0 ();
    0x0007bf54 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0007bf56 blt.w 0x7c168                                         |         goto label_21;
                                                                     |     }
    0x0007bf5a mov r0, r8                                            |     r0 = r8;
    0x0007bf5c adds r5, 1                                            |     r5++;
    0x0007bf5e blx 0x3a9a0                                           |     fcn_0003a9a0 ();
    0x0007bf62 cmp sb, r5                                            |     
    0x0007bf64 add.w fp, fp, 8                                       |     
                                                                     |     if (sb != r5) {
    0x0007bf68 beq 0x7bfcc                                           |         
    0x0007bf6a ldr r2, [r4, 0x18]                                    |         r2 = *((r4 + 0x18));
    0x0007bf6c b 0x7bef8                                             |         goto label_0;
                                                                     | label_15:
    0x0007bf6e ldr.w sb, [r4]                                        |         sb = *(r4);
    0x0007bf72 b 0x7bec4                                             |         goto label_1;
                                                                     | label_18:
    0x0007bf74 ldr r1, [pc, 0x378]                                   |         
    0x0007bf76 movw r2, 0xa23                                        |         r2 = 0xa23;
    0x0007bf7a ldr r3, [pc, 0x378]                                   |         
    0x0007bf7c ldr r0, [pc, 0x378]                                   |         
    0x0007bf7e add r1, pc                                            |         r1 = 0xf8272;
    0x0007bf80 add r3, pc                                            |         r3 = 0xf827a;
    0x0007bf82 adds r1, 7                                            |         r1 += 7;
    0x0007bf84 add r0, pc                                            |         r0 = 0xf8280;
    0x0007bf86 blx 0x3b5e8                                           |         fcn_0003b5e8 ();
                                                                     | label_10:
    0x0007bf8a ldr r1, [pc, 0x370]                                   |         
    0x0007bf8c movw r2, 0x9fb                                        |         r2 = 0x9fb;
    0x0007bf90 ldr r3, [pc, 0x36c]                                   |         
    0x0007bf92 ldr r0, [pc, 0x370]                                   |         
    0x0007bf94 add r1, pc                                            |         r1 = 0xf8296;
    0x0007bf96 add r3, pc                                            |         r3 = 0xf829a;
    0x0007bf98 adds r1, 7                                            |         r1 += 7;
    0x0007bf9a add r0, pc                                            |         r0 = 0xf82a4;
    0x0007bf9c blx 0x3b5e8                                           |         fcn_0003b5e8 ();
                                                                     | label_11:
    0x0007bfa0 ldr r1, [pc, 0x364]                                   |         
    0x0007bfa2 movw r2, 0x9fe                                        |         r2 = 0x9fe;
    0x0007bfa6 ldr r3, [pc, 0x364]                                   |         
    0x0007bfa8 ldr r0, [pc, 0x364]                                   |         
    0x0007bfaa add r1, pc                                            |         r1 = 0xf82b6;
    0x0007bfac add r3, pc                                            |         r3 = 0xf82be;
    0x0007bfae adds r1, 7                                            |         r1 += 7;
    0x0007bfb0 add r0, pc                                            |         r0 = 0xf82c4;
    0x0007bfb2 blx 0x3b5e8                                           |         fcn_0003b5e8 ();
                                                                     | label_12:
    0x0007bfb6 ldr r1, [pc, 0x35c]                                   |         
    0x0007bfb8 movw r2, 0xa01                                        |         r2 = 0xa01;
    0x0007bfbc ldr r3, [pc, 0x358]                                   |         
    0x0007bfbe ldr r0, [pc, 0x35c]                                   |         
    0x0007bfc0 add r1, pc                                            |         r1 = 0xf82da;
    0x0007bfc2 add r3, pc                                            |         r3 = 0xf82de;
    0x0007bfc4 adds r1, 7                                            |         r1 += 7;
    0x0007bfc6 add r0, pc                                            |         r0 = 0xf82e8;
    0x0007bfc8 blx 0x3b5e8                                           |         fcn_0003b5e8 ();
                                                                     |     }
    0x0007bfcc ldr.w r8, [sp, 0x10]                                  |     r8 = var_10h;
    0x0007bfd0 movs r1, 4                                            |     r1 = 4;
    0x0007bfd2 add.w r3, r8, -1                                      |     r3 = r8 + -1;
    0x0007bfd6 cmp r3, 1                                             |     
    0x0007bfd8 mov r0, r3                                            |     r0 = r3;
    0x0007bfda it lo                                                 |     
                                                                     |     if (r3 >= 1) {
    0x0007bfdc movlo r0, 1                                           |         r0 = 1;
                                                                     |     }
    0x0007bfde str r3, [sp, 0x20]                                    |     var_20h = r3;
    0x0007bfe0 blx 0x39a94                                           |     fcn_00039a94 ();
    0x0007bfe4 str r0, [sp, 0x10]                                    |     var_10h = r0;
    0x0007bfe6 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007bfe8 beq.w 0x7c2cc                                         |         goto label_22;
                                                                     |     }
    0x0007bfec cmp.w r8, 1                                           |     
                                                                     |     if (r8 < 1) {
    0x0007bff0 bls 0x7c0e2                                           |         goto label_23;
                                                                     |     }
    0x0007bff2 ldr r3, [sp, 0x10]                                    |     r3 = var_10h;
    0x0007bff4 add r2, sp, 0x34                                      |     r2 += var_34h;
    0x0007bff6 str r2, [sp, 0x28]                                    |     var_28h = r2;
    0x0007bff8 str.w r8, [sp, 0x2c]                                  |     __asm ("str.w r8, [var_2ch]");
    0x0007bffc str r3, [sp, 0x24]                                    |     var_24h = r3;
    0x0007bffe movs r3, 1                                            |     r3 = 1;
    0x0007c000 mov fp, r3                                            |     
                                                                     | label_2:
    0x0007c002 ldr r2, [sp, 0xc]                                     |     r2 = var_ch;
    0x0007c004 ldr r3, [r4, 0x14]                                    |     r3 = *((r4 + 0x14));
    0x0007c006 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0007c008 beq.w 0x7c2b6                                         |         goto label_24;
                                                                     |     }
    0x0007c00c ldr.w r2, [r2, fp, lsl 2]                             |     offset_2 = fp << 2;
                                                                     |     r2 = *((r2 + offset_2));
    0x0007c010 add.w sl, r3, r2, lsl 2                               |     sl = r3 + (r2 << 2);
                                                                     | label_6:
    0x0007c014 ldr r6, [sp, 0x18]                                    |     r6 = var_18h;
    0x0007c016 movs r7, 0                                            |     r7 = 0;
                                                                     |     do {
    0x0007c018 ldr r2, [r4, 0x18]                                    |         r2 = *((r4 + 0x18));
    0x0007c01a lsls r3, r7, 2                                        |         r3 = r7 << 2;
                                                                     |         if (r2 != 0) {
    0x0007c01c cbz r2, 0x7c024                                       |             
    0x0007c01e ldr.w r3, [r2, r7, lsl 2]                             |             offset_3 = r7 << 2;
                                                                     |             r3 = *((r2 + offset_3));
    0x0007c022 lsls r3, r3, 2                                        |             r3 <<= 2;
                                                                     |         }
    0x0007c024 ldr.w r8, [sl, r3]                                    |         r8 = *((sl + r3));
    0x0007c028 cmp.w r8, 0                                           |         
                                                                     |         if (r8 == 0) {
    0x0007c02c beq.w 0x7c16e                                         |             goto label_25;
                                                                     |         }
    0x0007c030 ldr r0, [r6, 4]                                       |         r0 = *((r6 + 4));
    0x0007c032 add.w sb, r6, 4                                       |         sb = r6 + 4;
    0x0007c036 blx 0x3c358                                           |         fcn_0003c358 ();
    0x0007c03a str r0, [r6, 4]                                       |         *((r6 + 4)) = r0;
    0x0007c03c ldr.w r3, [r8, 4]                                     |         r3 = *((r8 + 4));
    0x0007c040 cmp r3, 0x20                                          |         
                                                                     |         if (r3 > 0x20) {
    0x0007c042 bhi.w 0x7c2dc                                         |             goto label_26;
                                                                     |         }
                                                                     |         /* switch table (34 cases) at 0x7c04a */
    0x0007c046 tbh [pc, r3, lsl 1]                                   |         __asm ("tbh [pc, r3, lsl 1]");
    0x0007c08c ldrd r2, r3, [r8, 0x38]                               |         __asm ("ldrd r2, r3, [r8, 0x38]");
    0x0007c090 mov r0, sb                                            |         r0 = sb;
    0x0007c092 cmp.w r3, -1                                          |         
    0x0007c094 subs r7, 0xff                                         |         r7 -= 0xff;
    0x0007c096 it eq                                                 |         
                                                                     |         if (r7 == 0xff) {
    0x0007c098 cmpeq r2, -1                                          |             __asm ("cmpeq r2, -1");
                                                                     |         }
                                                                     |         if (r7 == 0xff) {
    0x0007c09c beq.w 0x7c27c                                         |             goto label_27;
                                                                     |         }
                                                                     | label_5:
    0x0007c0a0 blx 0x39f84                                           |         r0 = fcn_00039f84 ();
    0x0007c0a4 mov r3, r0                                            |         r3 = r0;
    0x0007c0a6 b 0x7c0b6                                             |         goto label_4;
    0x0007c0a8 ldr.w r2, [r8, 0x38]                                  |         r2 = *((r8 + 0x38));
    0x0007c0ac mov r0, sb                                            |         r0 = sb;
    0x0007c0ae asrs r3, r2, 0x1f                                     |         r3 = r2 >> 0x1f;
    0x0007c0b0 blx 0x3dbb8                                           |         r0 = fcn_0003dbb8 ();
    0x0007c0b4 mov r3, r0                                            |         r3 = r0;
                                                                     | label_4:
    0x0007c0b6 cmp r3, 0                                             |         
                                                                     |         if (r3 < 0) {
    0x0007c0b8 blt 0x7c0ee                                           |             goto label_9;
                                                                     |         }
    0x0007c0ba adds r7, 1                                            |         r7++;
    0x0007c0bc adds r6, 8                                            |         r6 += 8;
    0x0007c0be cmp r7, r5                                            |         
    0x0007c0c0 blo 0x7c018                                           |         
                                                                     |     } while (r7 <= r5);
    0x0007c0c2 ldr r6, [sp, 0x24]                                    |     r6 = var_24h;
    0x0007c0c4 ldrd r1, r2, [sp, 0x18]                               |     __asm ("ldrd r1, r2, [var_18h]");
    0x0007c0c8 mov r0, r6                                            |     r0 = r6;
    0x0007c0ca blx 0x3ee10                                           |     r0 = fcn_0003ee10 ();
    0x0007c0ce subs r3, r0, 0                                        |     r3 = r0 - 0;
                                                                     |     if (r3 < r0) {
    0x0007c0d0 blt 0x7c0ee                                           |         goto label_9;
                                                                     |     }
    0x0007c0d2 mov r3, r6                                            |     r3 = r6;
    0x0007c0d4 add.w fp, fp, 1                                       |     
    0x0007c0d8 adds r3, 4                                            |     r3 += 4;
    0x0007c0da str r3, [sp, 0x24]                                    |     var_24h = r3;
    0x0007c0dc ldr r3, [sp, 0x2c]                                    |     r3 = var_2ch;
    0x0007c0de cmp r3, fp                                            |     
                                                                     |     if (r3 != fp) {
    0x0007c0e0 bne 0x7c002                                           |         goto label_2;
                                                                     |     }
                                                                     | label_23:
    0x0007c0e2 ldr r0, [sp, 0x14]                                    |     r0 = var_14h;
    0x0007c0e4 ldr r2, [sp, 0x20]                                    |     r2 = var_20h;
    0x0007c0e6 ldr r1, [sp, 0x10]                                    |     r1 = var_10h;
    0x0007c0e8 blx 0x3b7a8                                           |     r0 = fcn_0003b7a8 ();
    0x0007c0ec mov r3, r0                                            |     r3 = r0;
                                                                     | label_9:
    0x0007c0ee ldr r4, [sp, 0x10]                                    |     r4 = var_10h;
    0x0007c0f0 ldr r1, [sp, 0x20]                                    |     r1 = var_20h;
    0x0007c0f2 str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0007c0f4 mov r0, r4                                            |     r0 = r4;
    0x0007c0f6 blx 0x3dfe8                                           |     fcn_0003dfe8 ();
    0x0007c0fa mov r0, r4                                            |     r0 = r4;
    0x0007c0fc blx 0x3a9a0                                           |     fcn_0003a9a0 ();
    0x0007c100 ldr r3, [sp, 0x14]                                    |     r3 = var_14h;
                                                                     |     do {
                                                                     | label_8:
    0x0007c102 ldrd r4, r1, [sp, 0x18]                               |         __asm ("ldrd r4, r1, [var_18h]");
    0x0007c106 str r3, [sp, 0x10]                                    |         var_10h = r3;
    0x0007c108 mov r0, r4                                            |         r0 = r4;
    0x0007c10a blx 0x3dfe8                                           |         fcn_0003dfe8 ();
    0x0007c10e mov r0, r4                                            |         r0 = r4;
    0x0007c110 blx 0x3a9a0                                           |         fcn_0003a9a0 ();
    0x0007c114 ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
                                                                     | label_7:
    0x0007c116 ldr r0, [sp, 0xc]                                     |         r0 = var_ch;
    0x0007c118 str r3, [sp, 0x10]                                    |         var_10h = r3;
    0x0007c11a blx 0x3a9a0                                           |         fcn_0003a9a0 ();
    0x0007c11e ldr r1, [pc, 0x200]                                   |         
    0x0007c120 ldr r2, [pc, 0x1c4]                                   |         r2 = *(0x7c2e8);
    0x0007c122 ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
    0x0007c124 add r1, pc                                            |         r1 = 0xf844a;
    0x0007c126 ldr r2, [r1, r2]                                      |         r2 = *(0xf844a);
    0x0007c128 ldr r1, [r2]                                          |         r1 = *(0xf844a);
    0x0007c12a ldr r2, [sp, 0x5c]                                    |         r2 = var_5ch;
    0x0007c12c eors r1, r2                                           |         r1 ^= r2;
    0x0007c12e mov.w r2, 0                                           |         r2 = 0;
                                                                     |         if (r1 != r2) {
    0x0007c132 bne.w 0x7c2d8                                         |             goto label_28;
                                                                     |         }
    0x0007c136 mov r0, r3                                            |         r0 = r3;
    0x0007c138 add sp, 0x64                                          |         
    0x0007c13a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_16:
    0x0007c13e ldr r1, [pc, 0x1e4]                                   |         
    0x0007c140 movw r2, 0xa16                                        |         r2 = 0xa16;
    0x0007c144 ldr r3, [pc, 0x1e0]                                   |         
    0x0007c146 ldr r0, [pc, 0x1e4]                                   |         
    0x0007c148 add r1, pc                                            |         r1 = 0xf8472;
    0x0007c14a add r3, pc                                            |         r3 = 0xf8476;
    0x0007c14c adds r1, 7                                            |         r1 += 7;
    0x0007c14e add r0, pc                                            |         r0 = 0xf8480;
    0x0007c150 blx 0x3b5e8                                           |         fcn_0003b5e8 ();
                                                                     | label_19:
    0x0007c154 mov.w fp, 0                                           |         
    0x0007c158 mvn r3, 0xb                                           |         r3 = ~0xb;
                                                                     | label_3:
    0x0007c15c mov r0, fp                                            |         r0 = fp;
    0x0007c15e str r3, [sp, 0x10]                                    |         var_10h = r3;
    0x0007c160 blx 0x3a9a0                                           |         fcn_0003a9a0 ();
    0x0007c164 ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
    0x0007c166 b 0x7c102                                             |         
                                                                     |     } while (1);
                                                                     | label_21:
    0x0007c168 mov fp, r8                                            |     
    0x0007c16a mov r3, r0                                            |     r3 = r0;
    0x0007c16c b 0x7c15c                                             |     goto label_3;
                                                                     | label_25:
    0x0007c16e ldr r1, [pc, 0x1c0]                                   |     
    0x0007c170 movw r2, 0xa4a                                        |     r2 = 0xa4a;
    0x0007c174 ldr r3, [pc, 0x1bc]                                   |     
    0x0007c176 ldr r0, [pc, 0x1c0]                                   |     
    0x0007c178 add r1, pc                                            |     r1 = 0xf84ae;
    0x0007c17a add r3, pc                                            |     r3 = 0xf84b2;
    0x0007c17c adds r1, 7                                            |     r1 += 7;
    0x0007c17e add r0, pc                                            |     r0 = 0xf84bc;
    0x0007c180 blx 0x3b5e8                                           |     fcn_0003b5e8 ();
    0x0007c184 ldr.w r0, [r8, 0x38]                                  |     r0 = *((r8 + 0x38));
    0x0007c188 blx 0x387b0                                           |     r0 = fcn_000387b0 ();
                                                                     |     if (r0 == 0) {
    0x0007c18c cbz r0, 0x7c1dc                                       |         goto label_29;
                                                                     |     }
    0x0007c18e movs r3, 0                                            |     r3 = 0;
    0x0007c190 ldr.w r2, [r8, 0x38]                                  |     r2 = *((r8 + 0x38));
    0x0007c194 mov r0, sb                                            |     r0 = sb;
    0x0007c196 blx 0x3dbb8                                           |     r0 = fcn_0003dbb8 ();
    0x0007c19a mov r3, r0                                            |     r3 = r0;
    0x0007c19c b 0x7c0b6                                             |     goto label_4;
    0x0007c19e ldr.w r2, [r8, 0x38]                                  |     r2 = *((r8 + 0x38));
    0x0007c1a2 mov r0, sb                                            |     r0 = sb;
    0x0007c1a4 movs r3, 0                                            |     r3 = 0;
    0x0007c1a6 b 0x7c0a0                                             |     goto label_5;
    0x0007c1a8 ldr.w r2, [r8, 0x38]                                  |     r2 = *((r8 + 0x38));
    0x0007c1ac mov r0, sb                                            |     r0 = sb;
    0x0007c1ae cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x0007c1b0 ble 0x7c27c                                           |         goto label_27;
                                                                     |     }
                                                                     |     do {
    0x0007c1b2 asrs r3, r2, 0x1f                                     |         r3 = r2 >> 0x1f;
    0x0007c1b4 blx 0x3dbb8                                           |         r0 = fcn_0003dbb8 ();
    0x0007c1b8 mov r3, r0                                            |         r3 = r0;
    0x0007c1ba b 0x7c0b6                                             |         goto label_4;
    0x0007c1bc ldr.w r1, [r8, 0x38]                                  |         r1 = *((r8 + 0x38));
    0x0007c1c0 mov r0, sb                                            |         r0 = sb;
    0x0007c1c2 blx 0x3f56c                                           |         r0 = fcn_0003f56c ();
    0x0007c1c6 mov r3, r0                                            |         r3 = r0;
    0x0007c1c8 b 0x7c0b6                                             |         goto label_4;
    0x0007c1ca add.w r1, r8, 0x38                                    |         r1 = r8 + 0x38;
    0x0007c1ce mov r0, sb                                            |         r0 = sb;
    0x0007c1d0 mov.w r2, -1                                          |         r2 = -1;
    0x0007c1d4 blx 0x39aa0                                           |         r0 = fcn_00039aa0 ();
    0x0007c1d8 mov r3, r0                                            |         r3 = r0;
    0x0007c1da b 0x7c0b6                                             |         goto label_4;
                                                                     | label_29:
    0x0007c1dc mov r0, sb                                            |         r0 = sb;
    0x0007c1de blx 0x394b8                                           |         r0 = fcn_000394b8 ();
    0x0007c1e2 mov r3, r0                                            |         r3 = r0;
    0x0007c1e4 b 0x7c0b6                                             |         goto label_4;
    0x0007c1e6 ldrb.w r1, [r8, 0x38]                                 |         r1 = *((r8 + 0x38));
    0x0007c1ea mov r0, sb                                            |         r0 = sb;
    0x0007c1ec blx 0x3b240                                           |         r0 = fcn_0003b240 ();
    0x0007c1f0 mov r3, r0                                            |         r3 = r0;
    0x0007c1f2 b 0x7c0b6                                             |         goto label_4;
    0x0007c1f4 add.w r1, r8, 0x38                                    |         r1 = r8 + 0x38;
    0x0007c1f8 mov r0, sb                                            |         r0 = sb;
    0x0007c1fa movs r2, 4                                            |         r2 = 4;
    0x0007c1fc blx 0x3b300                                           |         r0 = fcn_0003b300 ();
    0x0007c200 mov r3, r0                                            |         r3 = r0;
    0x0007c202 b 0x7c0b6                                             |         goto label_4;
    0x0007c204 add.w r1, r8, 0x38                                    |         r1 = r8 + 0x38;
    0x0007c208 mov r0, sb                                            |         r0 = sb;
    0x0007c20a movs r2, 0x10                                         |         r2 = 0x10;
    0x0007c20c blx 0x3b300                                           |         r0 = fcn_0003b300 ();
    0x0007c210 mov r3, r0                                            |         r3 = r0;
    0x0007c212 b 0x7c0b6                                             |         goto label_4;
    0x0007c214 ldrd r2, r3, [r8, 0x38]                               |         __asm ("ldrd r2, r3, [r8, 0x38]");
    0x0007c218 mov r0, sb                                            |         r0 = sb;
    0x0007c21a blx 0x39f84                                           |         r0 = fcn_00039f84 ();
    0x0007c21e mov r3, r0                                            |         r3 = r0;
    0x0007c220 b 0x7c0b6                                             |         goto label_4;
    0x0007c222 movs r3, 0                                            |         r3 = 0;
    0x0007c224 ldrh.w r2, [r8, 0x38]                                 |         r2 = *((r8 + 0x38));
    0x0007c228 mov r0, sb                                            |         r0 = sb;
    0x0007c22a blx 0x39f84                                           |         r0 = fcn_00039f84 ();
    0x0007c22e mov r3, r0                                            |         r3 = r0;
    0x0007c230 b 0x7c0b6                                             |         goto label_4;
    0x0007c232 movs r3, 0                                            |         r3 = 0;
    0x0007c234 ldrb.w r2, [r8, 0x38]                                 |         r2 = *((r8 + 0x38));
    0x0007c238 mov r0, sb                                            |         r0 = sb;
    0x0007c23a blx 0x39f84                                           |         r0 = fcn_00039f84 ();
    0x0007c23e mov r3, r0                                            |         r3 = r0;
    0x0007c240 b 0x7c0b6                                             |         goto label_4;
    0x0007c242 ldrd r2, r3, [r8, 0x38]                               |         __asm ("ldrd r2, r3, [r8, 0x38]");
    0x0007c246 mov r0, sb                                            |         r0 = sb;
    0x0007c248 blx 0x3dbb8                                           |         r0 = fcn_0003dbb8 ();
    0x0007c24c mov r3, r0                                            |         r3 = r0;
    0x0007c24e b 0x7c0b6                                             |         goto label_4;
    0x0007c250 ldrsh.w r2, [r8, 0x38]                                |         r2 = *((r8 + 0x38));
    0x0007c254 mov r0, sb                                            |         r0 = sb;
    0x0007c256 asrs r3, r2, 0x1f                                     |         r3 = r2 >> 0x1f;
    0x0007c258 blx 0x3dbb8                                           |         r0 = fcn_0003dbb8 ();
    0x0007c25c mov r3, r0                                            |         r3 = r0;
    0x0007c25e b 0x7c0b6                                             |         goto label_4;
    0x0007c260 ldrsb.w r2, [r8, 0x38]                                |         r2 = *((r8 + 0x38));
    0x0007c264 mov r0, sb                                            |         r0 = sb;
    0x0007c266 asrs r3, r2, 0x1f                                     |         r3 = r2 >> 0x1f;
    0x0007c268 blx 0x3dbb8                                           |         r0 = fcn_0003dbb8 ();
    0x0007c26c mov r3, r0                                            |         r3 = r0;
    0x0007c26e b 0x7c0b6                                             |         goto label_4;
    0x0007c270 ldr.w r2, [r8, 0x38]                                  |         r2 = *((r8 + 0x38));
    0x0007c274 mov r0, sb                                            |         r0 = sb;
    0x0007c276 subs r3, r2, 1                                        |         r3 = r2 - 1;
    0x0007c278 cmp r3, 0x3f                                          |         
    0x0007c27a bls 0x7c1b2                                           |         
                                                                     |     } while (r3 < 0x3f);
                                                                     | label_27:
    0x0007c27c blx 0x394b8                                           |     r0 = fcn_000394b8 ();
    0x0007c280 mov r3, r0                                            |     r3 = r0;
    0x0007c282 b 0x7c0b6                                             |     goto label_4;
    0x0007c284 ldr r3, [sp, 0x28]                                    |     r3 = var_28h;
    0x0007c286 add.w r8, r8, 0x38                                    |     r8 += 0x38;
    0x0007c28a str r3, [sp]                                          |     *(sp) = r3;
    0x0007c28c ldm.w r8, {r0, r1, r2, r3}                            |     r0 = *(r8);
                                                                     |     r1 = *((r8 + 4));
                                                                     |     r2 = *((r8 + 8));
                                                                     |     r3 = *((r8 + 12));
    0x0007c290 blx 0x3a53c                                           |     r0 = fcn_0003a53c ();
                                                                     |     do {
    0x0007c294 mov r1, r0                                            |         r1 = r0;
    0x0007c296 mov.w r2, -1                                          |         r2 = -1;
    0x0007c29a mov r0, sb                                            |         r0 = sb;
    0x0007c29c blx 0x39aa0                                           |         r0 = fcn_00039aa0 ();
    0x0007c2a0 mov r3, r0                                            |         r3 = r0;
    0x0007c2a2 b 0x7c0b6                                             |         goto label_4;
    0x0007c2a4 ldr r3, [sp, 0x28]                                    |         r3 = var_28h;
    0x0007c2a6 add.w r8, r8, 0x38                                    |         r8 += 0x38;
    0x0007c2aa str r3, [sp]                                          |         *(sp) = r3;
    0x0007c2ac ldm.w r8, {r0, r1, r2, r3}                            |         r0 = *(r8);
                                                                     |         r1 = *((r8 + 4));
                                                                     |         r2 = *((r8 + 8));
                                                                     |         r3 = *((r8 + 12));
    0x0007c2b0 blx 0x3e784                                           |         fcn_0003e784 ();
    0x0007c2b4 b 0x7c294                                             |         
                                                                     |     } while (1);
                                                                     | label_24:
    0x0007c2b6 ldr r2, [r4]                                          |     r2 = *(r4);
    0x0007c2b8 mul r2, r2, fp                                        |     r2 *= fp;
    0x0007c2bc add.w sl, r3, r2, lsl 2                               |     sl = r3 + (r2 << 2);
    0x0007c2c0 b 0x7c014                                             |     goto label_6;
                                                                     | label_14:
    0x0007c2c2 movs r3, 0                                            |     r3 = 0;
    0x0007c2c4 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0007c2c6 mvn r3, 0xb                                           |     r3 = ~0xb;
    0x0007c2ca b 0x7c116                                             |     goto label_7;
                                                                     | label_22:
    0x0007c2cc mvn r3, 0xb                                           |     r3 = ~0xb;
    0x0007c2d0 b 0x7c102                                             |     goto label_8;
                                                                     | label_17:
    0x0007c2d2 mvn r3, 0xb                                           |     r3 = ~0xb;
    0x0007c2d6 b 0x7c116                                             |     goto label_7;
                                                                     | label_28:
    0x0007c2d8 blx 0x3d208                                           |     fcn_0003d208 ();
                                                                     | label_26:
    0x0007c2dc mvn r3, 0x15                                          |     r3 = ~0x15;
    0x0007c2e0 b 0x7c0ee                                             |     goto label_9;
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/libsystemd-shared-249.so @ 0x8723c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.unit_file_lookup_state ()                        | void unit_file_lookup_state (int16_t arg_4h, int16_t arg_24h, int16_t arg1, uint32_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_ch_2;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int32_t var_4h_2;
                                                                 |     int16_t var_2ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0008723c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00087240 mov r5, r2                                        |     r5 = r2;
    0x00087242 ldr r2, [pc, 0x274]                               |     
    0x00087244 mov r7, r3                                        |     r7 = r3;
    0x00087246 sub sp, 0x34                                      |     
    0x00087248 movs r4, 0                                        |     r4 = 0;
    0x0008724a ldr r3, [pc, 0x270]                               |     r3 = *(0x874be);
    0x0008724c add.w r8, sp, 0x24                                |     r8 += var_24h;
    0x00087250 add r2, pc                                        |     r2 = 0x10e70e;
    0x00087252 ldr r3, [r2, r3]                                  |     
    0x00087254 ldr r3, [r3]                                      |     r3 = *(0x10e70e);
    0x00087256 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00087258 mov.w r3, 0                                       |     r3 = 0;
    0x0008725c str r4, [sp, 0x24]                                |     var_24h = r4;
    0x0008725e str.w r4, [r8, 4]                                 |     __asm ("str.w r4, [var_4h_2]");
    0x00087262 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00087264 beq.w 0x8742c                                     |         goto label_7;
                                                                 |     }
    0x00087268 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0008726a beq.w 0x87442                                     |         goto label_8;
                                                                 |     }
    0x0008726e mov sb, r0                                        |     sb = r0;
    0x00087270 mov r6, r1                                        |     r6 = r1;
    0x00087272 mov r0, r5                                        |     r0 = r5;
    0x00087274 movs r1, 7                                        |     r1 = 7;
    0x00087276 blx 0x3c390                                       |     r0 = fcn_0003c390 ();
    0x0008727a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0008727c beq.w 0x87458                                     |         goto label_9;
                                                                 |     }
    0x00087280 add r3, sp, 0x1c                                  |     r3 += var_1ch;
    0x00087282 strd r4, r4, [sp, 4]                              |     __asm ("strd r4, r4, [var_8h]");
    0x00087286 str r3, [sp]                                      |     *(sp) = r3;
    0x00087288 mov r2, r5                                        |     r2 = r5;
    0x0008728a movs r3, 3                                        |     r3 = 3;
    0x0008728c mov r1, r6                                        |     r1 = r6;
    0x0008728e mov r0, r8                                        |     r0 = r8;
    0x00087290 bl 0x85770                                        |     fcn_00085770 (r0, r1, r2, r3, r4, r5, r6);
    0x00087294 subs r4, r0, 0                                    |     r4 -= var_24h;
                                                                 |     if (r4 < var_24h) {
    0x00087296 blt.w 0x873d6                                     |         goto label_10;
                                                                 |     }
    0x0008729a ldr.w fp, [sp, 0x1c]                              |     fp = var_1ch;
    0x0008729e ldr.w sl, [fp, 0x24]                              |     sl = *(arg_24h);
    0x000872a0 adr r0, 0x90                                      |     r0 = 0x90;
    0x000872a2 bics r4, sl, 2                                    |     __asm ("bics r4, sl, 2");
                                                                 |     if (r4 != var_24h) {
    0x000872a6 beq 0x872be                                       |         
    0x000872a8 ldr r1, [pc, 0x214]                               |         
    0x000872aa movw r2, 0xb0f                                    |         r2 = 0xb0f;
    0x000872ae ldr r3, [pc, 0x214]                               |         
    0x000872b0 ldr r0, [pc, 0x214]                               |         
    0x000872b2 add r1, pc                                        |         r1 = 0x10e776;
    0x000872b4 add r3, pc                                        |         r3 = 0x10e77e;
    0x000872b6 adds r1, 7                                        |         r1 += 7;
    0x000872b8 add r0, pc                                        |         r0 = 0x10e784;
    0x000872ba blx 0x3b5e8                                       |         fcn_0003b5e8 ();
                                                                 |     }
    0x000872be blx 0x3d534                                       |     r0 = fcn_0003d534 ();
    0x000872c2 cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x000872c4 ble 0x87300                                       |         
    0x000872c6 ldr.w r3, [fp, 4]                                 |         r3 = *(arg_4h);
    0x000872ca cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x000872cc beq.w 0x873f6                                     |             goto label_11;
                                                                 |         }
    0x000872d0 cmp.w sl, 0                                       |         
                                                                 |         if (sl != 0) {
    0x000872d4 bne.w 0x873f0                                     |             goto label_2;
                                                                 |         }
                                                                 | label_1:
    0x000872d8 ldr r2, [pc, 0x1f0]                               |         
    0x000872da add r2, pc                                        |         r2 = 0x10e7aa;
                                                                 | label_0:
    0x000872dc strd r3, r2, [sp, 0xc]                            |         __asm ("strd r3, r2, [var_ch]");
    0x000872e0 movs r1, 0                                        |         r1 = 0;
    0x000872e2 ldr r3, [pc, 0x1ec]                               |         
    0x000872e4 movs r0, 7                                        |         r0 = 7;
    0x000872e6 ldr r2, [pc, 0x1ec]                               |         
    0x000872e8 str r5, [sp, 8]                                   |         var_8h = r5;
    0x000872ea add r3, pc                                        |         r3 = 0x10e7c0;
    0x000872ec str r3, [sp, 4]                                   |         var_4h = r3;
    0x000872ee add r2, pc                                        |         r2 = 0x10e7c8;
    0x000872f0 ldr r3, [pc, 0x1e4]                               |         
    0x000872f2 adds r2, 7                                        |         r2 += 7;
    0x000872f4 add r3, pc                                        |         r3 = 0x10e7d0;
    0x000872f6 str r3, [sp]                                      |         *(sp) = r3;
    0x000872f8 mov.w r3, 0xb10                                   |         r3 = 0xb10;
    0x000872fc blx 0x39c0c                                       |         fcn_00039c0c ();
                                                                 |     }
    0x00087300 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00087302 beq 0x873b4                                       |         goto label_4;
                                                                 |     }
    0x00087304 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00087306 ldr r2, [r3, 0x24]                                |     r2 = *((r3 + 0x24));
    0x00087308 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0008730a bne 0x8739a                                       |         
    0x0008730c ldr r0, [r3, 4]                                   |         r0 = *((r3 + 4));
    0x0008730e blx 0x3f46c                                       |         r0 = fcn_0003f46c ();
    0x00087312 mov r1, r0                                        |         r1 = r0;
    0x00087314 mov r0, r5                                        |         r0 = r5;
    0x00087316 blx 0x3f268                                       |         fcn_0003f268 ();
    0x0008731a ldr r5, [sp, 0x1c]                                |         r5 = var_1ch;
                                                                 |         if (r0 != 0) {
    0x0008731c cbz r0, 0x8732c                                   |             
    0x0008731e ldr r0, [r5]                                      |             r0 = *(r5);
    0x00087320 movs r1, 4                                        |             r1 = 4;
    0x00087322 blx 0x3c390                                       |             fcn_0003c390 ();
    0x00087326 movs r3, 4                                        |             r3 = 4;
    0x00087328 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x0008732a beq 0x873b2                                       |                 goto label_6;
                                                                 |             }
                                                                 |         }
    0x0008732c ldr r1, [r5, 4]                                   |         r1 = *((r5 + 4));
    0x0008732e mov r0, r6                                        |         r0 = r6;
    0x00087330 bl 0x8362c                                        |         r0 = fcn_0008362c (r0, r1);
    0x00087334 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x00087336 blt 0x87428                                       |             goto label_12;
                                                                 |         }
    0x00087338 it ne                                             |         
                                                                 |         if (r0 == 0) {
    0x0008733a movne r3, 0xa                                     |             r3 = 0xa;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x0008733c bne 0x873b2                                       |             goto label_6;
                                                                 |         }
    0x0008733e ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x00087340 mov r0, r6                                        |         r0 = r6;
    0x00087342 ldr r1, [r3, 4]                                   |         r1 = *((r3 + 4));
    0x00087344 bl 0x83524                                        |         r0 = fcn_00083524 (r0, r1);
    0x00087348 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0008734a blt 0x87428                                       |             goto label_12;
                                                                 |         }
    0x0008734c it ne                                             |         
                                                                 |         if (r0 == 0) {
    0x0008734e movne r3, 0xb                                     |             r3 = 0xb;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x00087350 bne 0x873b2                                       |             goto label_6;
                                                                 |         }
    0x00087352 add r5, sp, 0x20                                  |         r5 += var_20h;
    0x00087354 movs r3, 1                                        |         r3 = 1;
    0x00087356 ldr r2, [sp, 0x1c]                                |         r2 = var_1ch;
    0x00087358 mov r1, r6                                        |         r1 = r6;
    0x0008735a mov r0, sb                                        |         r0 = sb;
    0x0008735c str r5, [sp]                                      |         *(sp) = r5;
    0x0008735e bl 0x84524                                        |         r0 = fcn_00084524 (r0, r1, r2, r3, r4, r5);
    0x00087362 subs r3, r0, 0                                    |         r3 = r0 - 0;
                                                                 |         if (r3 < r0) {
    0x00087364 blt 0x8745e                                       |             goto label_13;
                                                                 |         }
    0x00087366 it ne                                             |         
                                                                 |         if (r3 == r0) {
    0x00087368 ldrne r3, [sp, 0x20]                              |             r3 = var_20h;
                                                                 |         }
                                                                 |         if (r3 != r0) {
    0x0008736a bne 0x873b2                                       |             goto label_6;
                                                                 |         }
    0x0008736c ldr r2, [sp, 0x1c]                                |         r2 = var_1ch;
    0x0008736e mov r1, r6                                        |         r1 = r6;
    0x00087370 mov r0, sb                                        |         r0 = sb;
    0x00087372 str r5, [sp]                                      |         *(sp) = r5;
    0x00087374 bl 0x84524                                        |         r0 = fcn_00084524 (r0, r1, r2, r3, r4, r5);
    0x00087378 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0008737a blt 0x87428                                       |             goto label_12;
                                                                 |         }
    0x0008737c it ne                                             |         
                                                                 |         if (r0 == 0) {
    0x0008737e movne r3, 9                                       |             r3 = 9;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x00087380 bne 0x873b2                                       |             goto label_6;
                                                                 |         }
    0x00087382 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x00087384 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00087386 beq.w 0x874a0                                     |             goto label_14;
                                                                 |         }
    0x0008738a ldr r2, [r3, 0xc]                                 |         r2 = *((r3 + 0xc));
    0x0008738c cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x0008738e beq 0x87466                                       |             goto label_15;
                                                                 |         }
    0x00087390 ldr r2, [r2]                                      |         r2 = *(r2);
    0x00087392 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x00087394 beq 0x87466                                       |             goto label_15;
                                                                 |         }
                                                                 | label_5:
    0x00087396 movs r3, 8                                        |         r3 = 8;
    0x00087398 b 0x873b2                                         |         
                                                                 |     } else {
    0x0008739a cmp r2, 2                                         |         
                                                                 |         if (r2 != 2) {
    0x0008739c bne 0x8748a                                       |             goto label_16;
                                                                 |         }
    0x0008739e ldr r1, [r3, 4]                                   |         r1 = *((r3 + 4));
    0x000873a0 mov r0, r6                                        |         r0 = r6;
    0x000873a2 movs r2, 1                                        |         r2 = 1;
    0x000873a4 bl 0x84430                                        |         r0 = fcn_00084430 (r0, r1, r2);
    0x000873a8 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x000873aa blt 0x87428                                       |             goto label_12;
                                                                 |         }
    0x000873ac ite eq                                            |         
                                                                 |         if (r0 != 0) {
    0x000873ae moveq r3, 5                                       |             r3 = 5;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x000873b0 movne r3, 6                                       |             r3 = 6;
                                                                 |             goto label_6;
                                                                 |         }
                                                                 |     }
                                                                 | label_6:
    0x000873b2 str r3, [r7]                                      |     *(r7) = r3;
                                                                 |     do {
                                                                 | label_4:
    0x000873b4 mov r0, r8                                        |         r0 = r8;
    0x000873b6 bl 0x8290c                                        |         fcn_0008290c (r0);
    0x000873ba ldr r2, [pc, 0x120]                               |         
    0x000873bc ldr r3, [pc, 0xfc]                                |         r3 = *(0x874bc);
    0x000873be add r2, pc                                        |         r2 = 0x10e8a0;
    0x000873c0 ldr r3, [r2, r3]                                  |         r3 = *(0x10e8a0);
    0x000873c2 ldr r2, [r3]                                      |         r2 = *(0x10e8a0);
    0x000873c4 ldr r3, [sp, 0x2c]                                |         r3 = var_2ch;
    0x000873c6 eors r2, r3                                       |         r2 ^= r3;
    0x000873c8 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000873cc bne 0x87462                                       |             goto label_17;
                                                                 |         }
    0x000873ce mov r0, r4                                        |         r0 = r4;
    0x000873d0 add sp, 0x34                                      |         
    0x000873d2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_10:
    0x000873d6 blx 0x3d534                                       |         r0 = fcn_0003d534 ();
    0x000873da cmp r0, 6                                         |         
    0x000873dc ittt le                                           |         
                                                                 |         if (r0 <= 6) {
    0x000873de rsble r4, r4, 0                                   |             __asm ("rsble r4, r4, 0");
                                                                 |         }
                                                                 |         if (r0 <= 6) {
    0x000873e0 uxtble r4, r4                                     |             __asm ("uxtble r4, r4");
                                                                 |         }
                                                                 |         if (r0 <= 6) {
    0x000873e2 rsble r4, r4, 0                                   |             __asm ("rsble r4, r4, 0");
                                                                 |         }
                                                                 |         if (r0 > 6) {
    0x000873e4 bgt 0x87404                                       |             goto label_18;
                                                                 |         }
                                                                 | label_3:
    0x000873e6 cmp r4, 0                                         |         
    0x000873e8 it ge                                             |         
                                                                 |         if (r4 < 0) {
    0x000873ea mvnge r4, 0x55                                    |             r4 = ~0x55;
                                                                 |         }
    0x000873ee b 0x873b4                                         |         
                                                                 |     } while (1);
                                                                 | label_2:
    0x000873f0 ldr r2, [pc, 0xec]                                |     
    0x000873f2 add r2, pc                                        |     r2 = 0x10e8d6;
    0x000873f4 b 0x872dc                                         |     goto label_0;
                                                                 | label_11:
    0x000873f6 ldr r3, [pc, 0xec]                                |     
    0x000873f8 add r3, pc                                        |     r3 = 0x10e8e2;
    0x000873fa cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x000873fe beq.w 0x872d8                                     |         goto label_1;
                                                                 |     }
    0x00087402 b 0x873f0                                         |     goto label_2;
                                                                 | label_18:
    0x00087404 ldr r2, [pc, 0xe0]                                |     
    0x00087406 mov r1, r4                                        |     r1 = r4;
    0x00087408 ldr r3, [pc, 0xe0]                                |     
    0x0008740a ldr r0, [pc, 0xe4]                                |     
    0x0008740c add r2, pc                                        |     r2 = sd_bus_message_read_array;
    0x0008740e str r5, [sp, 8]                                   |     var_8h = r5;
    0x00087410 add r3, pc                                        |     r3 = 0x10e900;
    0x00087412 adds r2, 7                                        |     r2 += 7;
    0x00087414 add r0, pc                                        |     r0 = 0x10e90a;
    0x00087416 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00087418 str r0, [sp]                                      |     *(sp) = r0;
    0x0008741a movw r3, 0xb0d                                    |     r3 = 0xb0d;
    0x0008741e movs r0, 7                                        |     r0 = 7;
    0x00087420 blx 0x39c0c                                       |     r0 = fcn_00039c0c ();
    0x00087424 mov r4, r0                                        |     r4 = r0;
    0x00087426 b 0x873e6                                         |     goto label_3;
                                                                 | label_12:
    0x00087428 mov r4, r0                                        |     r4 = r0;
    0x0008742a b 0x873b4                                         |     goto label_4;
                                                                 | label_7:
    0x0008742c ldr r1, [pc, 0xc4]                                |     
    0x0008742e movw r2, 0xb04                                    |     r2 = 0xb04;
    0x00087432 ldr r3, [pc, 0xc4]                                |     
    0x00087434 ldr r0, [pc, 0xc4]                                |     
    0x00087436 add r1, pc                                        |     r1 = 0x10e92e;
    0x00087438 add r3, pc                                        |     r3 = 0x10e936;
    0x0008743a adds r1, 7                                        |     r1 += 7;
    0x0008743c add r0, pc                                        |     r0 = 0x10e93c;
    0x0008743e blx 0x3b5e8                                       |     fcn_0003b5e8 ();
                                                                 | label_8:
    0x00087442 ldr r1, [pc, 0xbc]                                |     
    0x00087444 movw r2, 0xb05                                    |     r2 = 0xb05;
    0x00087448 ldr r3, [pc, 0xb8]                                |     
    0x0008744a ldr r0, [pc, 0xbc]                                |     
    0x0008744c add r1, pc                                        |     r1 = 0x10e952;
    0x0008744e add r3, pc                                        |     r3 = 0x10e956;
    0x00087450 adds r1, 7                                        |     r1 += 7;
    0x00087452 add r0, pc                                        |     r0 = 0x10e960;
    0x00087454 blx 0x3b5e8                                       |     fcn_0003b5e8 ();
                                                                 | label_9:
    0x00087458 mvn r4, 0x15                                      |     r4 = ~0x15;
    0x0008745c b 0x873b4                                         |     goto label_4;
                                                                 | label_13:
    0x0008745e mov r4, r3                                        |     r4 = r3;
    0x00087460 b 0x873b4                                         |     goto label_4;
                                                                 | label_17:
    0x00087462 blx 0x3d208                                       |     fcn_0003d208 ();
                                                                 | label_15:
    0x00087466 ldr r2, [r3, 0x10]                                |     r2 = *((r3 + 0x10));
                                                                 |     if (r2 == 0) {
    0x00087468 cbz r2, 0x87470                                   |         goto label_19;
                                                                 |     }
    0x0008746a ldr r2, [r2]                                      |     r2 = *(r2);
    0x0008746c cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x0008746e bne 0x87396                                       |         goto label_5;
                                                                 |     }
                                                                 | label_19:
    0x00087470 ldr r2, [r3, 0x14]                                |     r2 = *((r3 + 0x14));
                                                                 |     if (r2 == 0) {
    0x00087472 cbz r2, 0x8747a                                   |         goto label_20;
                                                                 |     }
    0x00087474 ldr r2, [r2]                                      |     r2 = *(r2);
    0x00087476 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x00087478 bne 0x87396                                       |         goto label_5;
                                                                 |     }
                                                                 | label_20:
    0x0008747a ldr r3, [r3, 0x18]                                |     r3 = *((r3 + 0x18));
                                                                 |     if (r3 != 0) {
    0x0008747c cbz r3, 0x874b4                                   |         
    0x0008747e ldr r3, [r3]                                      |         r3 = *(r3);
    0x00087480 cmp r3, 0                                         |         
    0x00087482 ite eq                                            |         
                                                                 |         if (r3 != 0) {
    0x00087484 moveq r3, 7                                       |             r3 = 7;
                                                                 |         }
                                                                 |         if (r3 == 0) {
    0x00087486 movne r3, 9                                       |             r3 = 9;
                                                                 |         }
    0x00087488 b 0x873b2                                         |         goto label_6;
                                                                 | label_16:
    0x0008748a ldr r1, [pc, 0x80]                                |         
    0x0008748c movw r2, 0xb54                                    |         r2 = 0xb54;
    0x00087490 ldr r3, [pc, 0x7c]                                |         
    0x00087492 ldr r0, [pc, 0x80]                                |         
    0x00087494 add r1, pc                                        |         r1 = 0x10e9a6;
    0x00087496 add r3, pc                                        |         r3 = 0x10e9aa;
    0x00087498 adds r1, 7                                        |         r1 += 7;
    0x0008749a add r0, pc                                        |         r0 = 0x10e9b4;
    0x0008749c blx 0x395a4                                       |         fcn_000395a4 ();
                                                                 | label_14:
    0x000874a0 ldr r1, [pc, 0x74]                                |         
    0x000874a2 movs r2, 0x42                                     |         r2 = 0x42;
    0x000874a4 ldr r3, [pc, 0x74]                                |         
    0x000874a6 ldr r0, [pc, 0x78]                                |         
    0x000874a8 add r1, pc                                        |         r1 = 0x10e9c4;
    0x000874aa add r3, pc                                        |         r3 = 0x10e9ca;
    0x000874ac adds r1, 7                                        |         r1 += 7;
    0x000874ae add r0, pc                                        |         r0 = 0x10e9d4;
    0x000874b0 blx 0x3b5e8                                       |         fcn_0003b5e8 ();
                                                                 |     }
    0x000874b4 movs r3, 7                                        |     r3 = 7;
    0x000874b6 b 0x873b2                                         |     goto label_6;
                                                                 | }

[*] Function popen used 1 times libsystemd-shared-249.so