[*] Binary protection state of mod_http2.so

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


[*] Function mmap tear down of mod_http2.so

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0x6160 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00006160 ()                                  | void fcn_00006160 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_10h;
                                                             |     int16_t var_24h;
                                                             |     int16_t var_28h;
                                                             |     int16_t var_34h;
                                                             |     int16_t var_38h;
                                                             |     int16_t var_3ch;
                                                             |     int16_t var_40h;
                                                             |     int16_t var_44h;
                                                             |     int16_t var_48h_2;
                                                             |     int16_t var_4ch_2;
                                                             |     int16_t var_50h;
                                                             |     int16_t var_54h;
                                                             |     int16_t var_60h;
                                                             |     int16_t var_64h;
                                                             |     int16_t var_68h;
                                                             |     int16_t var_1060h;
                                                             |     int16_t var_1080h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00006160 svcmi 0xf0e92d                                |     __asm ("svcmi 0xf0e92d");
    0x00006164 sub.w sp, sp, 0x1060                          |     
    0x00006168 sub sp, 0xc                                   |     
    0x0000616a mov r4, r0                                    |     r4 = r0;
    0x0000616c add.w r0, sp, 0x1080                          |     r0 += var_1080h;
    0x0000616e str r4, [r0, r2]                              |     *((r0 + r2)) = r4;
    0x00006170 mov r8, r2                                    |     r8 = r2;
    0x00006172 adds r0, 0x10                                 |     r0 += 0x10;
    0x00006174 ldr.w r2, [pc, 0x97c]                         |     
    0x00006178 str r3, [sp, 0x54]                            |     var_54h = r3;
    0x0000617a ldr r0, [r0]                                  |     r0 = *(r0);
    0x0000617c ldr.w r3, [pc, 0x978]                         |     r3 = *(0x6af8);
    0x00006180 add r2, pc                                    |     r2 = 0xcc78;
    0x00006182 str r1, [sp, 0x38]                            |     var_38h = r1;
    0x00006184 add.w r1, sp, 0x1060                          |     r1 += var_1060h;
    0x00006188 str r0, [sp, 0x44]                            |     var_44h = r0;
    0x0000618a adds r1, 4                                    |     r1 += 4;
    0x0000618c ldr r3, [r2, r3]                              |     
    0x0000618e ldr.w sb, [pc, 0x96c]                         |     
    0x00006192 ldr r3, [r3]                                  |     r3 = *(0xcc78);
    0x00006194 str r3, [r1]                                  |     *(r1) = r3;
    0x00006196 mov.w r3, 0                                   |     r3 = 0;
    0x0000619a ldr r3, [r4, 0xc]                             |     r3 = *((r4 + 0xc));
    0x0000619c add sb, pc                                    |     sb = 0xcc9e;
    0x0000619e cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000061a0 beq.w 0x6ae4                                  |         goto label_51;
                                                             |     }
    0x000061a4 ldr r0, [r4, 0x40]                            |     r0 = *((r4 + 0x40));
    0x000061a6 blx 0x4c9c                                    |     nghttp2_option_set_peer_max_concurrent_streams ();
    0x000061aa ldr r3, [r4, 8]                               |     r3 = *((r4 + 8));
    0x000061ac ldr r2, [sp, 0x38]                            |     r2 = var_38h;
    0x000061ae cmp r3, r2                                    |     
                                                             |     if (r3 != r2) {
    0x000061b0 bne.w 0x6ad4                                  |         goto label_52;
                                                             |     }
    0x000061b4 cmp.w r8, 0                                   |     
                                                             |     if (r8 == 0) {
    0x000061b8 beq.w 0x6ac0                                  |         goto label_53;
                                                             |     }
    0x000061bc ldr.w r3, [pc, 0x940]                         |     
    0x000061c0 ldr r2, [sp, 0x38]                            |     r2 = var_38h;
    0x000061c2 ldr.w r3, [sb, r3]                            |     r3 = *((sb + r3));
    0x000061c6 ldr r2, [r2, 0x60]                            |     r2 = *((r2 + 0x60));
    0x000061c8 str r3, [sp, 0x48]                            |     var_48h_2 = r3;
    0x000061ca ldr r3, [r3, 8]                               |     r3 = *(0x6b08);
    0x000061cc cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x000061ce blt.w 0x643a                                  |         goto label_54;
                                                             |     }
    0x000061d2 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000061d4 beq.w 0x68a4                                  |         goto label_55;
                                                             |     }
    0x000061d8 ldr r1, [r2]                                  |     r1 = *(r2);
    0x000061da cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x000061dc beq.w 0x6440                                  |         goto label_19;
                                                             |     }
    0x000061e0 ldrsb r3, [r1, r3]                            |     r3 = *((r1 + r3));
    0x000061e2 cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x000061e4 blt.w 0x6440                                  |         goto label_19;
                                                             |     }
                                                             | label_18:
    0x000061e8 cmp r3, 8                                     |     
    0x000061ea ite le                                        |     
                                                             |     if (r3 > 8) {
    0x000061ec movle r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 <= 8) {
    0x000061ee movgt r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             | label_5:
    0x000061f0 add.w r6, r4, 0x10                            |     r6 = r4 + 0x10;
    0x000061f4 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000061f6 bne.w 0x673c                                  |         goto label_56;
                                                             |     }
                                                             | label_16:
    0x000061fa mov r0, r4                                    |     r0 = r4;
    0x000061fc bl 0x5a6c                                     |     fcn_00005a6c (r0);
    0x00006200 ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x00006202 vmov.i32 d16, 0                               |     __asm ("vmov.i32 d16, 0");
    0x00006206 ldr.w fp, [r4, 0x20]                          |     fp = *((r4 + 0x20));
    0x0000620a vstr d16, [r3]                                |     __asm ("vstr d16, [r3]");
    0x0000620e ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x00006210 subs r3, r3, r6                               |     r3 -= r6;
    0x00006212 clz r3, r3                                    |     r3 &= r3;
    0x00006216 lsrs r3, r3, 5                                |     r3 >>= 5;
    0x00006218 str r3, [sp, 0x50]                            |     var_50h = r3;
    0x0000621a cmp.w fp, 0                                   |     
                                                             |     if (fp != 0) {
    0x0000621e bne.w 0x681e                                  |         goto label_57;
                                                             |     }
    0x00006222 mov.w fp, -1                                  |     
                                                             | label_17:
    0x00006226 add.w r2, r8, 4                               |     r2 = r8 + 4;
    0x0000622a add r3, sp, 0x68                              |     r3 += var_68h;
    0x0000622c mov sl, r2                                    |     sl = r2;
    0x0000622e str r3, [sp, 0x4c]                            |     var_4ch_2 = r3;
    0x00006230 add r3, sp, 0x60                              |     r3 += var_60h;
    0x00006232 str r3, [sp, 0x40]                            |     var_40h = r3;
                                                             | label_12:
    0x00006234 ldr r3, [sp, 0x4c]                            |     r3 = var_4ch_2;
    0x00006236 str r6, [sp, 0x34]                            |     var_34h = r6;
    0x00006238 subs r3, 0xc                                  |     r3 -= 0xc;
    0x0000623a str r3, [sp, 0x3c]                            |     var_3ch = r3;
                                                             |     do {
                                                             | label_7:
    0x0000623c ldr.w r3, [r8, 4]                             |         r3 = *((r8 + 4));
    0x00006240 cmp sl, r3                                    |         
                                                             |         if (sl == r3) {
    0x00006242 beq 0x632e                                    |             goto label_8;
                                                             |         }
    0x00006244 ldr r7, [r4, 0x30]                            |         r7 = *((r4 + 0x30));
    0x00006246 cmp r7, 0                                     |         
                                                             |         if (r7 != 0) {
    0x00006248 bne.w 0x656a                                  |             goto label_58;
                                                             |         }
    0x0000624c ldr r1, [r4, 0xc]                             |         r1 = *((r4 + 0xc));
    0x0000624e cmp r1, 0                                     |         
                                                             |         if (r1 == 0) {
    0x00006250 beq.w 0x6ab0                                  |             goto label_59;
                                                             |         }
    0x00006254 ldr.w r5, [r8, 4]                             |         r5 = *((r8 + 4));
    0x00006258 ldr r3, [r5, 8]                               |         r3 = *((r5 + 8));
    0x0000625a ldr r2, [r3, 8]                               |         r2 = *((r3 + 8));
    0x0000625c cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x0000625e bne.w 0x6540                                  |             goto label_60;
                                                             |         }
    0x00006262 ldr r2, [r5, 0xc]                             |         r2 = *((r5 + 0xc));
    0x00006264 adds r0, r2, 1                                |         r0 = r2 + 1;
                                                             |         if (r0 == r2) {
    0x00006266 beq.w 0x6572                                  |             goto label_61;
                                                             |         }
                                                             | label_11:
    0x0000626a ldr.w r1, [pc, 0x898]                         |         r1 = *(0x6b06);
    0x0000626e ldr.w r1, [sb, r1]                            |         r1 = *((sb + r1));
    0x00006272 cmp r3, r1                                    |         
                                                             |         if (r3 == r1) {
    0x00006274 beq 0x6364                                    |             goto label_62;
                                                             |         }
    0x00006276 ldr.w r1, [pc, 0x890]                         |         r1 = *(0x6b0a);
    0x0000627a ldr.w r1, [sb, r1]                            |         r1 = *((sb + r1));
    0x0000627e cmp r3, r1                                    |         
                                                             |         if (r3 == r1) {
    0x00006280 beq 0x6336                                    |             goto label_63;
                                                             |         }
                                                             | label_2:
    0x00006282 cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x00006284 beq.w 0x658c                                  |             goto label_64;
                                                             |         }
    0x00006288 cmp.w fp, 0                                   |         
                                                             |         if (fp == 0) {
    0x0000628c beq.w 0x65b8                                  |             goto label_65;
                                                             |         }
    0x00006290 ldr.w r2, [pc, 0x878]                         |         r2 = *(0x6b0c);
    0x00006294 ldr.w r2, [sb, r2]                            |         r2 = *((sb + r2));
    0x00006298 cmp r3, r2                                    |         
                                                             |         if (r3 == r2) {
    0x0000629a beq 0x638c                                    |             goto label_66;
                                                             |         }
                                                             | label_0:
    0x0000629c ldr r3, [r3, 0x10]                            |         r3 = *((r3 + 0x10));
    0x0000629e mov r0, r5                                    |         r0 = r5;
    0x000062a0 ldrd r1, r2, [sp, 0x3c]                       |         __asm ("ldrd r1, r2, [var_3ch]");
    0x000062a4 mov r6, r3                                    |         r6 = r3;
    0x000062a6 movs r3, 0                                    |         r3 = 0;
    0x000062a8 blx r6                                        |         r0 = uint32_t (*r6)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x000062aa cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000062ac bne 0x6398                                    |             goto label_10;
                                                             |         }
    0x000062ae mov r2, r0                                    |         r2 = r0;
    0x000062b0 ldr r0, [sp, 0x4c]                            |         r0 = var_4ch_2;
    0x000062b2 ldr.w r3, [r8, 0xc]                           |         r3 = *((r8 + 0xc));
    0x000062b6 ldr r1, [r0, -0x8]                            |         r1 = *((r0 - 0x8));
    0x000062ba ldr r0, [r0, -0xc]                            |         r0 = *((r0 - 0xc));
    0x000062be blx 0x4fe0                                    |         fcn_00004fe0 ();
    0x000062c2 ldr r3, [r5, 4]                               |         r3 = *((r5 + 4));
    0x000062c4 mov r7, r0                                    |         r7 = r0;
    0x000062c6 ldr r2, [r5]                                  |         r2 = *(r5);
    0x000062c8 ldr r0, [r5, 0x18]                            |         r0 = *((r5 + 0x18));
    0x000062ca str r2, [r3]                                  |         *(r3) = r2;
    0x000062cc ldr r3, [r5, 8]                               |         r3 = *((r5 + 8));
    0x000062ce ldr r2, [r5]                                  |         r2 = *(r5);
    0x000062d0 ldr r1, [r5, 4]                               |         r1 = *((r5 + 4));
    0x000062d2 ldr r3, [r3, 0xc]                             |         r3 = *((r3 + 0xc));
    0x000062d4 str r1, [r2, 4]                               |         *((r2 + 4)) = r1;
    0x000062d6 blx r3                                        |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x000062d8 ldr r3, [r5, 0x1c]                            |         r3 = *((r5 + 0x1c));
    0x000062da mov r0, r5                                    |         r0 = r5;
    0x000062dc blx r3                                        |         uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
    0x000062de str.w sl, [r7, 4]                             |         __asm ("str.w sl, [r7, 4]");
    0x000062e2 ldr.w r3, [r8, 4]                             |         r3 = *((r8 + 4));
    0x000062e6 str r3, [r7]                                  |         *(r7) = r3;
    0x000062e8 ldr.w r3, [r8, 4]                             |         r3 = *((r8 + 4));
    0x000062ec str r7, [r3, 4]                               |         *((r3 + 4)) = r7;
    0x000062ee str.w r7, [r8, 4]                             |         __asm ("str.w r7, [r8, 4]");
                                                             | label_1:
    0x000062f2 ldr r3, [r7, 4]                               |         r3 = *((r7 + 4));
    0x000062f4 ldr r2, [r7]                                  |         r2 = *(r7);
    0x000062f6 ldr r5, [sp, 0x44]                            |         r5 = var_44h;
    0x000062f8 str r2, [r3]                                  |         *(r3) = r2;
    0x000062fa ldr r3, [r7]                                  |         r3 = *(r7);
    0x000062fc ldr r2, [r7, 4]                               |         r2 = *((r7 + 4));
    0x000062fe ldr r1, [r5, 4]                               |         r1 = *((r5 + 4));
    0x00006300 str r2, [r3, 4]                               |         *((r3 + 4)) = r2;
    0x00006302 ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x00006304 ldr r2, [r7, 0xc]                             |         r2 = *((r7 + 0xc));
    0x00006306 str r3, [r7]                                  |         *(r7) = r3;
    0x00006308 ldr r3, [r4, 0x14]                            |         r3 = *((r4 + 0x14));
    0x0000630a str r3, [r7, 4]                               |         *((r7 + 4)) = r3;
    0x0000630c ldr r3, [r5]                                  |         r3 = *(r5);
    0x0000630e ldr r0, [r4, 0x14]                            |         r0 = *((r4 + 0x14));
    0x00006310 adds r3, r3, r2                               |         r3 += r2;
    0x00006312 adc r1, r1, 0                                 |         __asm ("adc r1, r1, 0");
    0x00006316 cmp r2, fp                                    |         
    0x00006318 str r7, [r0]                                  |         *(r0) = r7;
    0x0000631a str r7, [r4, 0x14]                            |         *((r4 + 0x14)) = r7;
    0x0000631c strd r3, r1, [r5]                             |         __asm ("strd r3, r1, [r5]");
    0x00006320 ldr r3, [r4, 0x30]                            |         r3 = *((r4 + 0x30));
                                                             |         if (r2 > fp) {
    0x00006322 bhi.w 0x65ae                                  |             goto label_67;
                                                             |         }
    0x00006326 sub.w fp, fp, r2                              |         
    0x0000632a cmp r3, 0                                     |         
    0x0000632c beq 0x623c                                    |         
                                                             |     } while (r3 == 0);
                                                             | label_8:
    0x0000632e ldr r6, [sp, 0x34]                            |     r6 = var_34h;
    0x00006330 mov.w sl, 0                                   |     sl = 0;
    0x00006334 b 0x63ae                                      |     goto label_9;
                                                             | label_63:
    0x00006336 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00006338 beq.w 0x658c                                  |         goto label_64;
                                                             |     }
    0x0000633c cmp.w fp, 0                                   |     
                                                             |     if (fp == 0) {
    0x00006340 beq.w 0x65b8                                  |         goto label_65;
                                                             |     }
    0x00006344 ldr.w r2, [pc, 0x7c4]                         |     r2 = *(0x6b0c);
    0x00006348 ldr.w r2, [sb, r2]                            |     r2 = *((sb + r2));
    0x0000634c cmp r3, r2                                    |     
                                                             |     if (r3 == r2) {
    0x0000634e beq 0x638c                                    |         goto label_66;
                                                             |     }
    0x00006350 ldr r2, [r4, 0x3c]                            |     r2 = *((r4 + 0x3c));
    0x00006352 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00006354 bne 0x629c                                    |         goto label_0;
                                                             |     }
                                                             | label_3:
    0x00006356 ldr r3, [r3, 0x14]                            |     r3 = *((r3 + 0x14));
    0x00006358 mov r0, r5                                    |     r0 = r5;
    0x0000635a ldr r1, [r4, 0xc]                             |     r1 = *((r4 + 0xc));
    0x0000635c blx r3                                        |     r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
                                                             |     if (r0 != 0) {
    0x0000635e cbnz r0, 0x6398                               |         goto label_10;
                                                             |     }
                                                             | label_4:
    0x00006360 mov r7, r5                                    |     r7 = r5;
    0x00006362 b 0x62f2                                      |     goto label_1;
                                                             | label_62:
    0x00006364 ldr r1, [r4, 0x3c]                            |     r1 = *((r4 + 0x3c));
    0x00006366 cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x00006368 bne 0x6282                                    |         goto label_2;
                                                             |     }
    0x0000636a ldr r0, [r5, 0x18]                            |     r0 = *((r5 + 0x18));
    0x0000636c ldr r1, [r0]                                  |     r1 = *(r0);
    0x0000636e cmp r1, 1                                     |     
                                                             |     if (r1 != 1) {
    0x00006370 bne 0x6282                                    |         goto label_2;
                                                             |     }
    0x00006372 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00006374 beq.w 0x658e                                  |         goto label_68;
                                                             |     }
    0x00006378 cmp.w fp, 0                                   |     
                                                             |     if (fp == 0) {
    0x0000637c beq.w 0x65b8                                  |         goto label_65;
                                                             |     }
    0x00006380 ldr.w r2, [pc, 0x788]                         |     r2 = *(0x6b0c);
    0x00006384 ldr.w r2, [sb, r2]                            |     r2 = *((sb + r2));
    0x00006388 cmp r3, r2                                    |     
                                                             |     if (r3 != r2) {
    0x0000638a bne 0x6356                                    |         goto label_3;
                                                             |     }
                                                             | label_66:
    0x0000638c ldr r3, [r2, 0x14]                            |     r3 = *((r2 + 0x14));
    0x0000638e mov r0, r5                                    |     r0 = r5;
    0x00006390 ldr r1, [r4, 0xc]                             |     r1 = *((r4 + 0xc));
    0x00006392 blx r3                                        |     r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x00006394 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00006396 beq 0x6360                                    |         goto label_4;
                                                             |     }
                                                             | label_10:
    0x00006398 ldr r3, [r4, 0x30]                            |     r3 = *((r4 + 0x30));
    0x0000639a ldr r6, [sp, 0x34]                            |     r6 = var_34h;
    0x0000639c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0000639e bne.w 0x699e                                  |         goto label_69;
                                                             |     }
    0x000063a2 cmp r0, 0xb                                   |     
                                                             |     if (r0 == 0xb) {
    0x000063a4 beq.w 0x65c2                                  |         goto label_70;
                                                             |     }
    0x000063a8 ldr.w r3, [r8, 4]                             |     r3 = *((r8 + 4));
    0x000063ac mov sl, r0                                    |     sl = r0;
                                                             | label_9:
    0x000063ae ldr r3, [r4, 0x58]                            |     r3 = *((r4 + 0x58));
                                                             |     if (r3 != 0) {
    0x000063b0 cbz r3, 0x63be                                |         
    0x000063b2 ldr r2, [r4, 0x10]                            |         r2 = *((r4 + 0x10));
    0x000063b4 cmp r2, r6                                    |         
                                                             |         if (r2 == r6) {
    0x000063b6 beq 0x63be                                    |             goto label_71;
                                                             |         }
    0x000063b8 ldr r0, [r4, 0x5c]                            |         r0 = *((r4 + 0x5c));
    0x000063ba mov r1, r4                                    |         r1 = r4;
    0x000063bc blx r3                                        |         uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
                                                             |     }
                                                             | label_71:
    0x000063be ldr r3, [sp, 0x50]                            |     r3 = var_50h;
                                                             |     if (r3 != 0) {
    0x000063c0 cbz r3, 0x63d2                                |         
    0x000063c2 ldr r3, [r4, 0x48]                            |         r3 = *((r4 + 0x48));
                                                             |         if (r3 == 0) {
    0x000063c4 cbz r3, 0x63d2                                |             goto label_72;
                                                             |         }
    0x000063c6 ldr r2, [r4, 0x10]                            |         r2 = *((r4 + 0x10));
    0x000063c8 cmp r2, r6                                    |         
                                                             |         if (r2 == r6) {
    0x000063ca beq 0x63d2                                    |             goto label_72;
                                                             |         }
    0x000063cc ldr r0, [r4, 0x4c]                            |         r0 = *((r4 + 0x4c));
    0x000063ce mov r1, r4                                    |         r1 = r4;
    0x000063d0 blx r3                                        |         uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
                                                             |     }
                                                             | label_72:
    0x000063d2 ldr r0, [r4, 0x44]                            |     r0 = *((r4 + 0x44));
    0x000063d4 blx 0x46d8                                    |     loc_imp_apr_thread_cond_broadcast ();
    0x000063d8 mov r0, r4                                    |     r0 = r4;
    0x000063da bl 0x5ad0                                     |     fcn_00005ad0 (r0, r1);
    0x000063de ldr r3, [r4, 0x30]                            |     r3 = *((r4 + 0x30));
    0x000063e0 ldr r2, [sp, 0x38]                            |     r2 = var_38h;
    0x000063e2 cmp r3, 0                                     |     
    0x000063e4 ldr r3, [sp, 0x48]                            |     r3 = var_48h_2;
    0x000063e6 it ne                                         |     
                                                             |     if (r3 == 0) {
    0x000063e8 movne sl, 0x67                                |         sl = 0x67;
                                                             |     }
    0x000063ec ldr r2, [r2, 0x60]                            |     r2 = *((r2 + 0x60));
    0x000063ee ldr r3, [r3, 8]                               |     r3 = *((r3 + 8));
    0x000063f0 cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x000063f2 blt 0x644c                                    |         goto label_73;
                                                             |     }
    0x000063f4 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000063f6 beq.w 0x6930                                  |         goto label_74;
                                                             |     }
    0x000063fa ldr r1, [r2]                                  |     r1 = *(r2);
                                                             |     if (r1 == 0) {
    0x000063fc cbz r1, 0x6452                                |         goto label_22;
                                                             |     }
    0x000063fe ldrsb r3, [r1, r3]                            |     r3 = *((r1 + r3));
    0x00006400 cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x00006402 blt 0x6452                                    |         goto label_22;
                                                             |     }
                                                             | label_28:
    0x00006404 cmp r3, 8                                     |     
                                                             |     if (r3 > 8) {
    0x00006406 bgt 0x6458                                    |         goto label_75;
                                                             |     }
                                                             |     do {
                                                             | label_6:
    0x00006408 ldr r0, [r4, 0x40]                            |         r0 = *((r4 + 0x40));
    0x0000640a blx 0x50a4                                    |         loc_imp_ap_hook_post_config ();
    0x0000640e ldr.w r2, [pc, 0x700]                         |         
    0x00006412 add.w r1, sp, 0x1060                          |         r1 += var_1060h;
    0x00006416 ldr.w r3, [pc, 0x6e0]                         |         r3 = *(0x6afa);
    0x0000641a adds r1, 4                                    |         r1 += 4;
    0x0000641c add r2, pc                                    |         r2 = 0xcf32;
    0x0000641e ldr r3, [r2, r3]                              |         r3 = *(0xcf32);
    0x00006420 ldr r2, [r3]                                  |         r2 = *(0xcf32);
    0x00006422 ldr r3, [r1]                                  |         r3 = *(r1);
    0x00006424 eors r2, r3                                   |         r2 ^= r3;
    0x00006426 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0000642a bne.w 0x6ad0                                  |             goto label_76;
                                                             |         }
    0x0000642e mov r0, sl                                    |         r0 = sl;
    0x00006430 add.w sp, sp, 0x1060                          |         
    0x00006434 add sp, 0xc                                   |         
    0x00006436 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |         
                                                             | label_54:
    0x0000643a cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x0000643c beq.w 0x68e8                                  |             goto label_77;
                                                             |         }
                                                             | label_19:
    0x00006440 ldr r3, [r2, 4]                               |         r3 = *((r2 + 4));
    0x00006442 cmp r3, 8                                     |         
    0x00006444 ite le                                        |         
                                                             |         if (r3 > 8) {
    0x00006446 movle r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r3 <= 8) {
    0x00006448 movgt r3, 1                                   |             r3 = 1;
                                                             |         }
    0x0000644a b 0x61f0                                      |         goto label_5;
                                                             | label_73:
    0x0000644c cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x0000644e beq.w 0x68de                                  |             goto label_78;
                                                             |         }
                                                             | label_22:
    0x00006452 ldr r3, [r2, 4]                               |         r3 = *((r2 + 4));
    0x00006454 cmp r3, 8                                     |         
    0x00006456 ble 0x6408                                    |         
                                                             |     } while (r3 <= 8);
                                                             | label_75:
    0x00006458 ldr.w r3, [pc, 0x6b8]                         |     
    0x0000645c add r5, sp, 0x64                              |     r5 += var_64h;
    0x0000645e mov.w r1, 0x1000                              |     r1 = 0x1000;
    0x00006462 mov r0, r5                                    |     r0 = r5;
    0x00006464 str.w r8, [sp]                                |     __asm ("str.w r8, [sp]");
    0x00006466 strh r0, [r0]                                 |     *(r0) = r0;
    0x00006468 add r3, pc                                    |     r3 = 0xcf80;
    0x0000646a mov r2, r3                                    |     r2 = r3;
    0x0000646c bl 0x1caac                                    |     fcn_0001caac (r0, r1, r2, r3, r4);
    0x0000646e smlabt fp, lr, r2, sb                         |     __asm ("smlabt fp, lr, r2, sb");
    0x00006472 ldr r2, [r3, 8]                               |     r2 = *(0xcf88);
    0x00006474 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x00006476 cmp r2, 0                                     |     
    0x00006478 ldr r1, [r3, 0x60]                            |     r1 = *(0xcfe0);
                                                             |     if (r2 < 0) {
    0x0000647a blt.w 0x68ba                                  |         goto label_79;
                                                             |     }
    0x0000647e cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x00006480 beq.w 0x697a                                  |         goto label_80;
                                                             |     }
    0x00006484 ldr r3, [r1]                                  |     r3 = *(r1);
    0x00006486 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006488 beq.w 0x68c0                                  |         goto label_34;
                                                             |     }
    0x0000648c ldrsb r3, [r3, r2]                            |     r3 = *((r3 + r2));
    0x0000648e cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x00006490 blt.w 0x68c0                                  |         goto label_34;
                                                             |     }
                                                             | label_33:
    0x00006494 cmp r3, 8                                     |     
    0x00006496 ite le                                        |     
                                                             |     if (r3 > 8) {
    0x00006498 movle r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 <= 8) {
    0x0000649a movgt r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             | label_20:
    0x0000649c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0000649e beq 0x6408                                    |         goto label_6;
                                                             |     }
    0x000064a0 ldr r3, [r4, 0x30]                            |     r3 = *((r4 + 0x30));
    0x000064a2 ldr r7, [r4, 4]                               |     r7 = *((r4 + 4));
    0x000064a4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000064a6 beq.w 0x6972                                  |         goto label_81;
                                                             |     }
    0x000064aa ldr.w lr, [pc, 0x66c]                         |     
    0x000064ae add lr, pc                                    |     lr = 0xcfcc;
                                                             | label_32:
    0x000064b0 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x000064b2 cmp r3, r6                                    |     
                                                             |     if (r3 == r6) {
    0x000064b4 beq.w 0x69d0                                  |         goto label_82;
                                                             |     }
    0x000064b8 ldr.w ip, [pc, 0x660]                         |     
    0x000064bc add ip, pc                                    |     ip = 0xcfdc;
                                                             | label_42:
    0x000064be ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x000064c0 cmp r3, r6                                    |     
                                                             |     if (r3 == r6) {
    0x000064c2 beq.w 0x6aa6                                  |         goto label_83;
                                                             |     }
    0x000064c6 mov.w r8, 0                                   |     r8 = 0;
                                                             |     do {
    0x000064ca ldr r1, [r3, 0xc]                             |         r1 = *((r3 + 0xc));
    0x000064cc ldr r3, [r3]                                  |         r3 = *(r3);
    0x000064ce adds.w r8, r1, r8                             |         r8 = r1 + r8;
    0x000064d2 cmp r3, r6                                    |         
    0x000064d4 bne 0x64ca                                    |         
                                                             |     } while (r3 != r6);
    0x000064d6 mov r1, r8                                    |     r1 = r8;
                                                             | label_49:
    0x000064d8 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x000064da mov.w r8, 0                                   |     r8 = 0;
    0x000064de cmp r3, r6                                    |     
                                                             |     if (r3 == r6) {
    0x000064e0 beq 0x64ec                                    |         goto label_84;
                                                             |     }
                                                             |     do {
    0x000064e2 ldr r3, [r3]                                  |         r3 = *(r3);
    0x000064e4 add.w r8, r8, 1                               |         r8++;
    0x000064e8 cmp r3, r6                                    |         
    0x000064ea bne 0x64e2                                    |         
                                                             |     } while (r3 != r6);
                                                             | label_84:
    0x000064ec mov sb, r4                                    |     sb = r4;
    0x000064ee movs r6, 0                                    |     r6 = 0;
    0x000064f0 ldr r3, [sb, 0x18]!                           |     r3 = *((sb += 0x18));
    0x000064f4 cmp r3, sb                                    |     
                                                             |     if (r3 == sb) {
    0x000064f6 beq 0x6500                                    |         goto label_85;
                                                             |     }
                                                             |     do {
    0x000064f8 ldr r3, [r3]                                  |         r3 = *(r3);
    0x000064fa adds r6, 1                                    |         r6++;
    0x000064fc cmp r3, sb                                    |         
    0x000064fe bne 0x64f8                                    |         
                                                             |     } while (r3 != sb);
                                                             |     if (r0 == 0) {
                                                             | label_85:
    0x00006500 cbnz r0, 0x6508                               |         
    0x00006502 ldr.w r5, [pc, 0x61c]                         |         
    0x00006506 add r5, pc                                    |         r5 = 0xd02c;
                                                             |     }
    0x00006508 strd ip, r1, [sp, 0x14]                       |     __asm ("strd ip, r1, [sp, 0x14]");
    0x0000650c ldr.w r1, [pc, 0x614]                         |     
    0x00006510 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x00006512 ldr.w r0, [pc, 0x614]                         |     
    0x00006516 add r1, pc                                    |     r1 = 0xd03e;
    0x00006518 str r5, [sp, 0x28]                            |     var_28h = r5;
    0x0000651a str r1, [sp, 8]                               |     var_8h = r1;
    0x0000651c ldr.w r1, [pc, 0x60c]                         |     
    0x00006520 add r0, pc                                    |     r0 = 0xd04e;
    0x00006522 str r3, [sp, 4]                               |     var_4h = r3;
    0x00006524 movs r3, 9                                    |     r3 = 9;
    0x00006526 strd r8, r6, [sp, 0x1c]                       |     __asm ("strd r8, r6, [sp, 0x1c]");
    0x0000652a add r1, pc                                    |     r1 = 0xd05a;
    0x0000652c strd r7, lr, [sp, 0xc]                        |     __asm ("strd r7, lr, [sp, 0xc]");
    0x00006530 str r1, [sp, 0x24]                            |     var_24h = r1;
    0x00006532 movw r1, 0x237                                |     r1 = 0x237;
    0x00006536 str.w sl, [sp]                                |     __asm ("str.w sl, [sp]");
    0x0000653a blx 0x4d50                                    |     loc_imp_apr_dynamic_fn_register ();
    0x0000653e b 0x6408                                      |     goto label_6;
                                                             | label_60:
    0x00006540 ldr r2, [r5, 4]                               |     r2 = *((r5 + 4));
    0x00006542 ldr r0, [r5]                                  |     r0 = *(r5);
    0x00006544 ldr r3, [r3, 0x14]                            |     r3 = *((r3 + 0x14));
    0x00006546 str r0, [r2]                                  |     *(r2) = r0;
    0x00006548 ldr r2, [r5]                                  |     r2 = *(r5);
    0x0000654a ldr r0, [r5, 4]                               |     r0 = *((r5 + 4));
    0x0000654c str r0, [r2, 4]                               |     *((r2 + 4)) = r0;
    0x0000654e mov r0, r5                                    |     r0 = r5;
    0x00006550 blx r3                                        |     uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r2, r3);
    0x00006552 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x00006554 str r3, [r5]                                  |     *(r5) = r3;
    0x00006556 ldr r3, [r4, 0x14]                            |     r3 = *((r4 + 0x14));
    0x00006558 str r3, [r5, 4]                               |     *((r5 + 4)) = r3;
    0x0000655a ldr r3, [r4, 0x30]                            |     r3 = *((r4 + 0x30));
    0x0000655c ldr r2, [r4, 0x14]                            |     r2 = *((r4 + 0x14));
    0x0000655e str r5, [r2]                                  |     *(r2) = r5;
    0x00006560 str r5, [r4, 0x14]                            |     *((r4 + 0x14)) = r5;
    0x00006562 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006564 beq.w 0x623c                                  |         goto label_7;
                                                             |     }
    0x00006566 add r6, sp, 0x1a8                             |     r6 = sp + 0x1a8;
    0x00006568 b 0x632e                                      |     goto label_8;
                                                             | label_58:
    0x0000656a ldr r6, [sp, 0x34]                            |     r6 = var_34h;
    0x0000656c mov.w sl, 0x67                                |     sl = 0x67;
    0x0000656e lsrs r7, r4, 9                                |     r7 = r4 >> 9;
    0x00006570 b 0x63ae                                      |     goto label_9;
                                                             | label_61:
    0x00006572 ldr r3, [r3, 0x10]                            |     r3 = *((r3 + 0x10));
    0x00006574 mov r0, r5                                    |     r0 = r5;
    0x00006576 ldrd r1, r2, [sp, 0x3c]                       |     __asm ("ldrd r1, r2, [var_3ch]");
    0x0000657a mov r6, r3                                    |     r6 = r3;
    0x0000657c mov r3, r7                                    |     r3 = r7;
    0x0000657e blx r6                                        |     r0 = uint32_t (*r6)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x00006580 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00006582 bne.w 0x6398                                  |         goto label_10;
                                                             |     }
    0x00006586 ldrd r3, r2, [r5, 8]                          |     __asm ("ldrd r3, r2, [r5, 8]");
    0x0000658a b 0x626a                                      |     goto label_11;
                                                             | label_64:
    0x0000658c ldr r0, [r5, 0x18]                            |     r0 = *((r5 + 0x18));
                                                             | label_68:
    0x0000658e ldr r2, [r5, 4]                               |     r2 = *((r5 + 4));
    0x00006590 ldr r1, [r5]                                  |     r1 = *(r5);
    0x00006592 ldr r3, [r3, 0xc]                             |     r3 = *((r3 + 0xc));
    0x00006594 str r1, [r2]                                  |     *(r2) = r1;
    0x00006596 ldr r2, [r5]                                  |     r2 = *(r5);
    0x00006598 ldr r1, [r5, 4]                               |     r1 = *((r5 + 4));
    0x0000659a str r1, [r2, 4]                               |     *((r2 + 4)) = r1;
    0x0000659c blx r3                                        |     uint32_t (*r3)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x0000659e ldr r3, [r5, 0x1c]                            |     r3 = *((r5 + 0x1c));
    0x000065a0 mov r0, r5                                    |     r0 = r5;
    0x000065a2 blx r3                                        |     uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
    0x000065a4 ldr r3, [r4, 0x30]                            |     r3 = *((r4 + 0x30));
    0x000065a6 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000065a8 beq.w 0x623c                                  |         goto label_7;
                                                             |     }
    0x000065ac b 0x632e                                      |     goto label_8;
                                                             | label_67:
    0x000065ae cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000065b0 bne.w 0x632e                                  |         goto label_8;
                                                             |     }
    0x000065b4 mov fp, r3                                    |     
    0x000065b6 b 0x623c                                      |     goto label_7;
                                                             | label_65:
    0x000065b8 ldr r3, [r4, 0x30]                            |     r3 = *((r4 + 0x30));
    0x000065ba ldr r6, [sp, 0x34]                            |     r6 = var_34h;
    0x000065bc cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000065be bne.w 0x69ba                                  |         goto label_86;
                                                             |     }
                                                             | label_70:
    0x000065c2 mov r0, r4                                    |     r0 = r4;
    0x000065c4 bl 0x5a6c                                     |     fcn_00005a6c (r0);
    0x000065c8 ldr r3, [r4, 0x58]                            |     r3 = *((r4 + 0x58));
                                                             |     if (r3 != 0) {
    0x000065ca cbz r3, 0x65d2                                |         
    0x000065cc ldr r0, [r4, 0x5c]                            |         r0 = *((r4 + 0x5c));
    0x000065ce mov r1, r4                                    |         r1 = r4;
    0x000065d0 blx r3                                        |         uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
                                                             |     }
    0x000065d2 ldr r3, [sp, 0x50]                            |     r3 = var_50h;
                                                             |     if (r3 != 0) {
    0x000065d4 cbz r3, 0x65e0                                |         
    0x000065d6 ldr r3, [r4, 0x48]                            |         r3 = *((r4 + 0x48));
                                                             |         if (r3 == 0) {
    0x000065d8 cbz r3, 0x65e0                                |             goto label_87;
                                                             |         }
    0x000065da ldr r0, [r4, 0x4c]                            |         r0 = *((r4 + 0x4c));
    0x000065dc mov r1, r4                                    |         r1 = r4;
    0x000065de blx r3                                        |         uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
                                                             |     }
                                                             | label_87:
    0x000065e0 ldr r0, [r4, 0x20]                            |     r0 = *((r4 + 0x20));
                                                             |     if (r0 == 0) {
                                                             | label_14:
    0x000065e2 cbnz r0, 0x65fc                               |         
    0x000065e4 mov.w fp, -1                                  |         
                                                             | label_15:
    0x000065e8 cmp r7, 0                                     |         
                                                             |         if (r7 != 0) {
    0x000065ea bne.w 0x6962                                  |             goto label_88;
                                                             |         }
    0x000065ee ldr r3, [r4, 0x10]                            |         r3 = *((r4 + 0x10));
    0x000065f0 subs r3, r3, r6                               |         r3 -= r6;
    0x000065f2 clz r3, r3                                    |         r3 &= r3;
    0x000065f6 lsrs r3, r3, 5                                |         r3 >>= 5;
    0x000065f8 str r3, [sp, 0x50]                            |         var_50h = r3;
    0x000065fa b 0x6234                                      |         goto label_12;
                                                             |     }
                                                             | label_13:
    0x000065fc ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x000065fe cmp r3, r6                                    |     
                                                             |     if (r3 == r6) {
    0x00006600 beq.w 0x6966                                  |         goto label_89;
                                                             |     }
    0x00006604 mov.w ip, 0                                   |     
    0x00006608 mov lr, r0                                    |     lr = r0;
                                                             |     do {
    0x0000660a ldr r2, [r3, 0xc]                             |         r2 = *((r3 + 0xc));
    0x0000660c adds r1, r2, 1                                |         r1 = r2 + 1;
                                                             |         if (r1 != r2) {
    0x0000660e beq 0x662e                                    |             
    0x00006610 ldr.w r1, [pc, 0x4f0]                         |             r1 = *(0x6b04);
    0x00006614 ldr.w r1, [sb, r1]                            |             r1 = *((sb + r1));
    0x00006616 asrs r1, r0, 0x20                             |             r1 = r0 >> 0x20;
    0x00006618 mov r0, r1                                    |             r0 = r1;
    0x0000661a ldr.w r1, [pc, 0x4ec]                         |             r1 = *(0x6b0a);
    0x0000661e ldr.w r5, [sb, r1]                            |             r5 = *((sb + r1));
    0x00006622 ldr r1, [r3, 8]                               |             r1 = *((r3 + 8));
    0x00006624 cmp r1, r5                                    |             
    0x00006626 it ne                                         |             
                                                             |             if (r1 != r5) {
    0x00006628 cmpne r1, r0                                  |                 __asm ("cmpne r1, r0");
                                                             |             }
    0x0000662a it ne                                         |             
                                                             |             if (r1 != r5) {
    0x0000662c addne ip, r2                                  |                 goto label_90;
                                                             |             }
                                                             |         }
                                                             | label_90:
    0x0000662e ldr r3, [r3]                                  |         r3 = *(r3);
    0x00006630 cmp r3, r6                                    |         
    0x00006632 bne 0x660a                                    |         
                                                             |     } while (r3 != r6);
    0x00006634 cmp ip, lr                                    |     
    0x00006636 mov r0, lr                                    |     r0 = lr;
                                                             |     if (ip <= lr) {
    0x00006638 blo 0x6736                                    |         goto label_91;
                                                             |     }
    0x0000663a cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x0000663c bne.w 0x6962                                  |         goto label_88;
                                                             |     }
    0x00006640 ldr r1, [r4, 0x30]                            |     r1 = *((r4 + 0x30));
    0x00006642 movs r7, 0x67                                 |     r7 = 0x67;
    0x00006644 cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x00006646 bne 0x65fc                                    |         goto label_13;
                                                             |     }
    0x00006648 ldr r3, [sp, 0x54]                            |     r3 = var_54h;
    0x0000664a movs r7, 0xb                                  |     r7 = 0xb;
    0x0000664c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0000664e bne 0x65e2                                    |         goto label_14;
                                                             |     }
    0x00006650 ldr r0, [sp, 0x48]                            |     r0 = var_48h_2;
    0x00006652 ldrd r2, r3, [r4, 0x28]                       |     __asm ("ldrd r2, r3, [r4, 0x28]");
    0x00006656 ldr r5, [r0, 8]                               |     r5 = *((r0 + 8));
    0x00006658 ldr r0, [sp, 0x38]                            |     r0 = var_38h;
    0x0000665a cmp r2, 1                                     |     
    0x0000665c ldr r7, [r0, 0x60]                            |     r7 = *((r0 + 0x60));
    0x0000665e sbcs r0, r3, 0                                |     __asm ("sbcs r0, r3, 0");
                                                             |     if (r2 < 1) {
    0x00006662 blt.w 0x685e                                  |         goto label_92;
                                                             |     }
    0x00006666 cmp r5, 0                                     |     
                                                             |     if (r5 < 0) {
    0x00006668 blt.w 0x694e                                  |         goto label_93;
                                                             |     }
    0x0000666c cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x0000666e beq.w 0x6906                                  |         goto label_94;
                                                             |     }
    0x00006672 ldr.w ip, [r7]                                |     ip = *(r7);
    0x00006676 cmp.w ip, 0                                   |     
                                                             |     if (ip == 0) {
    0x0000667a beq.w 0x6944                                  |         goto label_30;
                                                             |     }
    0x0000667e ldrsb.w r0, [ip, r5]                          |     r0 = *((ip + r5));
    0x00006682 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00006684 blt.w 0x69fe                                  |         goto label_95;
                                                             |     }
    0x00006688 cmp r0, 8                                     |     
                                                             |     if (r0 <= 8) {
    0x0000668a ble 0x6728                                    |         goto label_25;
                                                             |     }
                                                             | label_44:
    0x0000668c ldrsb.w r0, [ip, r5]                          |     r0 = *((ip + r5));
    0x00006690 cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x00006692 bge.w 0x6926                                  |         goto label_96;
                                                             |     }
                                                             | label_29:
    0x00006696 ldr r0, [r7, 4]                               |     r0 = *((r7 + 4));
    0x00006698 cmp r0, 8                                     |     
    0x0000669a ite le                                        |     
                                                             |     if (r0 > 8) {
    0x0000669c movle r0, 0                                   |         r0 = 0;
                                                             |     }
                                                             |     if (r0 <= 8) {
    0x0000669e movgt r0, 1                                   |         r0 = 1;
                                                             |     }
                                                             | label_26:
    0x000066a0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000066a2 beq 0x6728                                    |         goto label_25;
                                                             |     }
    0x000066a4 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x000066a6 ldr r7, [r4, 4]                               |     r7 = *((r4 + 4));
    0x000066a8 cmp r3, r6                                    |     
                                                             |     if (r3 == r6) {
    0x000066aa beq.w 0x69c0                                  |         goto label_97;
                                                             |     }
    0x000066ae ldr.w ip, [pc, 0x480]                         |     
    0x000066b2 add ip, pc                                    |     ip = 0xd1e8;
                                                             | label_40:
    0x000066b4 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x000066b6 movs r0, 0                                    |     r0 = 0;
    0x000066b8 cmp r3, r6                                    |     
                                                             |     if (r3 == r6) {
    0x000066ba beq 0x66c6                                    |         goto label_98;
                                                             |     }
                                                             |     do {
    0x000066bc ldr r2, [r3, 0xc]                             |         r2 = *((r3 + 0xc));
    0x000066be ldr r3, [r3]                                  |         r3 = *(r3);
    0x000066c0 adds r0, r2, r0                               |         r0 = r2 + r0;
    0x000066c2 cmp r3, r6                                    |         
    0x000066c4 bne 0x66bc                                    |         
                                                             |     } while (r3 != r6);
                                                             | label_98:
    0x000066c6 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x000066c8 movs r2, 0                                    |     r2 = 0;
    0x000066ca cmp r3, r6                                    |     
                                                             |     if (r3 == r6) {
    0x000066cc beq 0x66d6                                    |         goto label_99;
                                                             |     }
                                                             |     do {
    0x000066ce ldr r3, [r3]                                  |         r3 = *(r3);
    0x000066d0 adds r2, 1                                    |         r2++;
    0x000066d2 cmp r3, r6                                    |         
    0x000066d4 bne 0x66ce                                    |         
                                                             |     } while (r3 != r6);
                                                             | label_99:
    0x000066d6 mov lr, r4                                    |     lr = r4;
    0x000066d8 ldr r3, [lr, 0x18]!                           |     r3 = *((lr += 0x18));
    0x000066dc cmp r3, lr                                    |     
                                                             |     if (r3 == lr) {
    0x000066de beq 0x66e8                                    |         goto label_100;
                                                             |     }
                                                             |     do {
    0x000066e0 ldr r3, [r3]                                  |         r3 = *(r3);
    0x000066e2 adds r1, 1                                    |         r1++;
    0x000066e4 cmp r3, lr                                    |         
    0x000066e6 bne 0x66e0                                    |         
                                                             |     } while (r3 != lr);
                                                             | label_100:
    0x000066e8 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x000066ea strd ip, r0, [sp, 0x14]                       |     __asm ("strd ip, r0, [sp, 0x14]");
    0x000066ee ldr.w r0, [pc, 0x444]                         |     
    0x000066f2 str r3, [sp, 4]                               |     var_4h = r3;
    0x000066f4 ldr.w r3, [pc, 0x440]                         |     
    0x000066f8 strd r2, r1, [sp, 0x1c]                       |     __asm ("strd r2, r1, [sp, 0x1c]");
    0x000066fc add r0, pc                                    |     r0 = 0xd236;
    0x000066fe mov r2, r5                                    |     r2 = r5;
    0x00006700 movs r1, 0xdb                                 |     r1 = 0xdb;
    0x00006702 add r3, pc                                    |     r3 = 0xd23e;
    0x00006704 str r7, [sp, 0xc]                             |     var_ch = r7;
    0x00006706 str r3, [sp, 0x28]                            |     var_28h = r3;
    0x00006708 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x0000670a ldr.w r3, [pc, 0x430]                         |     
    0x0000670e add r3, pc                                    |     r3 = 0xd250;
    0x00006710 str r3, [sp, 0x24]                            |     var_24h = r3;
    0x00006712 ldr.w r3, [pc, 0x42c]                         |     
    0x00006716 add r3, pc                                    |     r3 = 0xd25c;
    0x00006718 str r3, [sp, 8]                               |     var_8h = r3;
    0x0000671a movs r3, 0                                    |     r3 = 0;
    0x0000671c str r3, [sp]                                  |     *(sp) = r3;
    0x0000671e movs r3, 9                                    |     r3 = 9;
    0x00006720 blx 0x4d50                                    |     loc_imp_apr_dynamic_fn_register ();
    0x00006724 ldrd r2, r3, [r4, 0x28]                       |     __asm ("ldrd r2, r3, [r4, 0x28]");
                                                             | label_25:
    0x00006728 ldrd r1, r0, [r4, 0x40]                       |     __asm ("ldrd r1, r0, [r4, 0x40]");
    0x0000672c blx 0x5174                                    |     r0 = fcn_00005174 ();
    0x00006730 mov r7, r0                                    |     r7 = r0;
    0x00006732 ldr r0, [r4, 0x20]                            |     r0 = *((r4 + 0x20));
    0x00006734 b 0x65e2                                      |     goto label_14;
                                                             | label_91:
    0x00006736 sub.w fp, lr, ip                              |     
    0x0000673a b 0x65e8                                      |     goto label_15;
                                                             | label_56:
    0x0000673c ldr.w r3, [pc, 0x404]                         |     
    0x00006740 add r5, sp, 0x64                              |     r5 += var_64h;
    0x00006742 mov.w r1, 0x1000                              |     r1 = 0x1000;
    0x00006746 mov r0, r5                                    |     r0 = r5;
    0x00006748 str.w r8, [sp]                                |     __asm ("str.w r8, [sp]");
    0x0000674c add r3, pc                                    |     r3 = 0xd294;
    0x0000674e mov r2, r3                                    |     r2 = r3;
    0x00006750 bl 0x1caac                                    |     fcn_0001caac (r0, r1, r2, r3, r4);
    0x00006754 ldr r3, [sp, 0x48]                            |     r3 = var_48h_2;
    0x00006756 mov lr, r0                                    |     lr = r0;
    0x00006758 ldr r2, [r3, 8]                               |     r2 = *(0xd29c);
    0x0000675a ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x0000675c cmp r2, 0                                     |     
    0x0000675e ldr r1, [r3, 0x60]                            |     r1 = *(0xd2f4);
                                                             |     if (r2 < 0) {
    0x00006760 blt.w 0x68cc                                  |         goto label_101;
                                                             |     }
    0x00006762 strh r4, [r6, 4]                              |     *((r6 + 4)) = r4;
    0x00006764 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x00006766 beq.w 0x698c                                  |         goto label_102;
                                                             |     }
    0x0000676a ldr r3, [r1]                                  |     r3 = *(r1);
    0x0000676c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0000676e beq.w 0x68d2                                  |         goto label_36;
                                                             |     }
    0x00006772 ldrsb r3, [r3, r2]                            |     r3 = *((r3 + r2));
    0x00006774 cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x00006776 blt.w 0x68d2                                  |         goto label_36;
                                                             |     }
                                                             | label_35:
    0x0000677a cmp r3, 8                                     |     
    0x0000677c ite le                                        |     
                                                             |     if (r3 > 8) {
    0x0000677e movle r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 <= 8) {
    0x00006780 movgt r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             | label_21:
    0x00006782 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006784 beq.w 0x61fa                                  |         goto label_16;
                                                             |     }
    0x00006788 ldr r3, [r4, 0x30]                            |     r3 = *((r4 + 0x30));
    0x0000678a ldr r1, [r4, 4]                               |     r1 = *((r4 + 4));
    0x0000678c str r1, [sp, 0x34]                            |     var_34h = r1;
    0x0000678e cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006790 beq.w 0x696a                                  |         goto label_103;
                                                             |     }
    0x00006794 ldr.w fp, [pc, 0x3b0]                         |     
    0x00006798 add fp, pc                                    |     fp = 0xd2e4;
                                                             | label_31:
    0x0000679a ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x0000679c cmp r3, r6                                    |     
                                                             |     if (r3 == r6) {
    0x0000679e beq.w 0x69c8                                  |         goto label_104;
                                                             |     }
    0x000067a2 ldr.w sl, [pc, 0x3a8]                         |     
    0x000067a6 add sl, pc                                    |     sl = 0xd2f8;
                                                             | label_41:
    0x000067a8 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x000067aa movs r3, 0                                    |     r3 = 0;
    0x000067ac cmp r0, r6                                    |     
                                                             |     if (r0 == r6) {
    0x000067ae beq 0x67ba                                    |         goto label_105;
                                                             |     }
                                                             |     do {
    0x000067b0 ldr r1, [r0, 0xc]                             |         r1 = *((r0 + 0xc));
    0x000067b2 ldr r0, [r0]                                  |         r0 = *(r0);
    0x000067b4 adds r3, r1, r3                               |         r3 = r1 + r3;
    0x000067b6 cmp r0, r6                                    |         
    0x000067b8 bne 0x67b0                                    |         
                                                             |     } while (r0 != r6);
                                                             | label_105:
    0x000067ba ldr r1, [r4, 0x10]                            |     r1 = *((r4 + 0x10));
    0x000067bc movs r7, 0                                    |     r7 = 0;
    0x000067be cmp r1, r6                                    |     
                                                             |     if (r1 == r6) {
    0x000067c0 beq 0x67ca                                    |         goto label_106;
                                                             |     }
                                                             |     do {
    0x000067c2 ldr r1, [r1]                                  |         r1 = *(r1);
    0x000067c4 adds r7, 1                                    |         r7++;
    0x000067c6 cmp r1, r6                                    |         
    0x000067c8 bne 0x67c2                                    |         
                                                             |     } while (r1 != r6);
                                                             | label_106:
    0x000067ca mov ip, r4                                    |     
    0x000067cc movs r0, 0                                    |     r0 = 0;
    0x000067ce ldr r1, [ip, 0x18]!                           |     r1 = *((ip += 0x18));
    0x000067d2 cmp ip, r1                                    |     
                                                             |     if (ip == r1) {
    0x000067d4 beq 0x67de                                    |         goto label_107;
                                                             |     }
                                                             |     do {
    0x000067d6 ldr r1, [r1]                                  |         r1 = *(r1);
    0x000067d8 adds r0, 1                                    |         r0++;
    0x000067da cmp ip, r1                                    |         
    0x000067dc bne 0x67d6                                    |         
                                                             |     } while (ip != r1);
                                                             | label_107:
    0x000067de cmp.w lr, 0                                   |     
                                                             |     if (lr == 0) {
    0x000067e2 bne 0x67e8                                    |         
    0x000067e4 ldr r5, [pc, 0x368]                           |         
    0x000067e6 add r5, pc                                    |         r5 = 0xd33a;
                                                             |     }
    0x000067e8 strd sl, r3, [sp, 0x14]                       |     __asm ("strd sl, r3, [sp, 0x14]");
    0x000067ec mov.w r1, 0x20c                               |     r1 = 0x20c;
    0x000067f0 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x000067f2 strd r7, r0, [sp, 0x1c]                       |     __asm ("strd r7, r0, [sp, 0x1c]");
    0x000067f6 ldr r0, [pc, 0x35c]                           |     
    0x000067f8 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x000067fa ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x000067fc add r0, pc                                    |     r0 = 0xd356;
    0x000067fe str r5, [sp, 0x28]                            |     var_28h = r5;
    0x00006800 str.w fp, [sp, 0x10]                          |     __asm ("str.w fp, [var_10h]");
    0x00006804 str r3, [sp, 4]                               |     var_4h = r3;
    0x00006806 ldr r3, [pc, 0x350]                           |     
    0x00006808 add r3, pc                                    |     r3 = 0xd366;
    0x0000680a str r3, [sp, 0x24]                            |     var_24h = r3;
    0x0000680c ldr r3, [pc, 0x34c]                           |     
    0x0000680e add r3, pc                                    |     r3 = 0xd36e;
    0x00006810 str r3, [sp, 8]                               |     var_8h = r3;
    0x00006812 movs r3, 0                                    |     r3 = 0;
    0x00006814 str r3, [sp]                                  |     *(sp) = r3;
    0x00006816 movs r3, 9                                    |     r3 = 9;
    0x00006818 blx 0x4d50                                    |     loc_imp_apr_dynamic_fn_register ();
    0x0000681c b 0x61fa                                      |     goto label_16;
                                                             | label_57:
    0x0000681e ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x00006820 cmp r3, r6                                    |     
                                                             |     if (r3 == r6) {
    0x00006822 beq.w 0x6226                                  |         goto label_17;
                                                             |     }
    0x00006826 movs r5, 0                                    |     r5 = 0;
                                                             |     do {
    0x00006828 ldr r2, [r3, 0xc]                             |         r2 = *((r3 + 0xc));
    0x0000682a adds r7, r2, 1                                |         r7 = r2 + 1;
                                                             |         if (r7 != r2) {
    0x0000682c beq 0x6846                                    |             
    0x0000682e ldr r1, [pc, 0x2d8]                           |             r1 = *(0x6b0a);
    0x00006830 ldr.w r7, [sb, r1]                            |             r7 = *((sb + r1));
    0x00006834 ldr r1, [pc, 0x2cc]                           |             r1 = *(0x6b04);
    0x00006836 ldr.w r0, [sb, r1]                            |             r0 = *((sb + r1));
    0x0000683a ldr r1, [r3, 8]                               |             r1 = *((r3 + 8));
    0x0000683c cmp r1, r0                                    |             
    0x0000683e it ne                                         |             
                                                             |             if (r1 != r0) {
    0x00006840 cmpne r1, r7                                  |                 __asm ("cmpne r1, r7");
                                                             |             }
    0x00006842 it ne                                         |             
                                                             |             if (r1 != r0) {
    0x00006844 addne r5, r5, r2                              |                 r5 += r2;
                                                             |                 goto label_108;
                                                             |             }
                                                             |         }
                                                             | label_108:
    0x00006846 ldr r3, [r3]                                  |         r3 = *(r3);
    0x00006848 cmp r3, r6                                    |         
    0x0000684a bne 0x6828                                    |         
                                                             |     } while (r3 != r6);
    0x0000684c cmp r5, fp                                    |     
    0x0000684e it lo                                         |     
                                                             |     if (r5 < fp) {
    0x00006850 sublo fp, fp, r5                              |         goto label_109;
                                                             |     }
                                                             |     if (r5 <= fp) {
                                                             | label_109:
    0x00006854 blo.w 0x6226                                  |         goto label_17;
                                                             |     }
    0x00006858 mov.w fp, 0                                   |     
    0x0000685c b 0x6226                                      |     goto label_17;
                                                             | label_92:
    0x0000685e cmp r5, 0                                     |     
                                                             |     if (r5 < 0) {
    0x00006860 blt 0x68ee                                    |         goto label_110;
                                                             |     }
    0x00006862 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x00006864 beq.w 0x69d8                                  |         goto label_111;
                                                             |     }
    0x00006868 ldr.w ip, [r7]                                |     ip = *(r7);
    0x0000686c cmp.w ip, 0                                   |     
                                                             |     if (ip == 0) {
    0x00006870 beq 0x68f4                                    |         goto label_112;
                                                             |     }
    0x00006872 ldrsb.w r3, [ip, r5]                          |     r3 = *((ip + r5));
    0x00006876 cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x00006878 blt.w 0x69a2                                  |         goto label_113;
                                                             |     }
    0x0000687c cmp r3, 8                                     |     
                                                             |     if (r3 > 8) {
    0x0000687e ble 0x6896                                    |         
                                                             | label_38:
    0x00006880 ldrsb.w r3, [ip, r5]                          |         r3 = *((ip + r5));
    0x00006884 cmp r3, 0                                     |         
                                                             |         if (r3 < 0) {
    0x00006886 blt 0x68fa                                    |             goto label_37;
                                                             |         }
                                                             | label_43:
    0x00006888 cmp r3, 8                                     |         
    0x0000688a ite le                                        |         
                                                             |         if (r3 > 8) {
    0x0000688c movle r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r3 <= 8) {
    0x0000688e movgt r3, 1                                   |             r3 = 1;
                                                             |         }
                                                             | label_24:
    0x00006890 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00006892 bne.w 0x6a18                                  |             goto label_114;
                                                             |         }
                                                             |     }
                                                             | label_23:
    0x00006896 ldrd r1, r0, [r4, 0x40]                       |     __asm ("ldrd r1, r0, [r4, 0x40]");
    0x0000689a blx 0x51f8                                    |     r0 = fcn_000051f8 ();
    0x0000689e mov r7, r0                                    |     r7 = r0;
    0x000068a0 ldr r0, [r4, 0x20]                            |     r0 = *((r4 + 0x20));
    0x000068a2 b 0x65e2                                      |     goto label_14;
                                                             | label_55:
    0x000068a4 ldr r2, [sp, 0x38]                            |     r2 = var_38h;
    0x000068a6 ldr r1, [r2, 4]                               |     r1 = *((r2 + 4));
    0x000068a8 ldr r2, [r1, 0x10]                            |     r2 = *((r1 + 0x10));
                                                             |     if (r2 == 0) {
    0x000068aa cbz r2, 0x68b4                                |         goto label_115;
                                                             |     }
    0x000068ac ldrsb r3, [r2, r3]                            |     r3 = *((r2 + r3));
    0x000068ae cmp r3, 0                                     |     
                                                             |     if (r3 >= 0) {
    0x000068b0 bge.w 0x61e8                                  |         goto label_18;
                                                             |     }
                                                             |     do {
                                                             | label_115:
    0x000068b4 add.w r2, r1, 0x10                            |         r2 = r1 + 0x10;
    0x000068b8 b 0x6440                                      |         goto label_19;
                                                             | label_79:
    0x000068ba cmp r1, 0                                     |         
                                                             |         if (r1 == 0) {
    0x000068bc beq.w 0x6a14                                  |             goto label_116;
                                                             |         }
                                                             | label_34:
    0x000068c0 ldr r3, [r1, 4]                               |         r3 = *((r1 + 4));
    0x000068c2 cmp r3, 8                                     |         
    0x000068c4 ite le                                        |         
                                                             |         if (r3 > 8) {
    0x000068c6 movle r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r3 <= 8) {
    0x000068c8 movgt r3, 1                                   |             r3 = 1;
                                                             |         }
    0x000068ca b 0x649c                                      |         goto label_20;
                                                             | label_101:
    0x000068cc cmp r1, 0                                     |         
                                                             |         if (r1 == 0) {
    0x000068ce beq.w 0x6a10                                  |             goto label_117;
                                                             |         }
                                                             | label_36:
    0x000068d2 ldr r3, [r1, 4]                               |         r3 = *((r1 + 4));
    0x000068d4 cmp r3, 8                                     |         
    0x000068d6 ite le                                        |         
                                                             |         if (r3 > 8) {
    0x000068d8 movle r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r3 <= 8) {
    0x000068da movgt r3, 1                                   |             r3 = 1;
                                                             |         }
    0x000068dc b 0x6782                                      |         goto label_21;
                                                             | label_78:
    0x000068de ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x000068e0 ldr r1, [r3, 4]                               |         r1 = *((r3 + 4));
                                                             | label_27:
    0x000068e2 add.w r2, r1, 0x10                            |         r2 = r1 + 0x10;
    0x000068e6 b 0x6452                                      |         goto label_22;
                                                             | label_77:
    0x000068e8 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x000068ea ldr r1, [r3, 4]                               |         r1 = *((r3 + 4));
    0x000068ec b 0x68b4                                      |         
                                                             |     } while (1);
                                                             | label_110:
    0x000068ee cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x000068f0 beq.w 0x6a92                                  |         goto label_118;
                                                             |     }
                                                             | label_112:
    0x000068f4 ldr r3, [r7, 4]                               |     r3 = *((r7 + 4));
    0x000068f6 cmp r3, 8                                     |     
                                                             |     if (r3 <= 8) {
    0x000068f8 ble 0x6896                                    |         goto label_23;
                                                             |     }
                                                             | label_37:
    0x000068fa ldr r3, [r7, 4]                               |     r3 = *((r7 + 4));
    0x000068fc cmp r3, 8                                     |     
    0x000068fe ite le                                        |     
                                                             |     if (r3 > 8) {
    0x00006900 movle r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 <= 8) {
    0x00006902 movgt r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00006904 b 0x6890                                      |     goto label_24;
                                                             | label_94:
    0x00006906 ldr r0, [sp, 0x38]                            |     r0 = var_38h;
    0x00006908 ldr r7, [r0, 4]                               |     r7 = *((r0 + 4));
    0x0000690a ldr r0, [r7, 0x10]                            |     r0 = *((r7 + 0x10));
    0x0000690c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000690e beq 0x69b2                                    |         goto label_119;
                                                             |     }
    0x00006910 ldrsb r0, [r0, r5]                            |     r0 = *((r0 + r5));
    0x00006912 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00006914 blt 0x69b2                                    |         goto label_119;
                                                             |     }
    0x00006916 cmp r0, 8                                     |     
                                                             |     if (r0 <= 8) {
    0x00006918 ble.w 0x6728                                  |         goto label_25;
                                                             |     }
                                                             | label_39:
    0x0000691c ldr r0, [r7, 0x10]                            |     r0 = *((r7 + 0x10));
                                                             |     if (r0 == 0) {
    0x0000691e cbz r0, 0x695e                                |         goto label_120;
                                                             |     }
    0x00006920 ldrsb r0, [r0, r5]                            |     r0 = *((r0 + r5));
    0x00006922 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00006924 blt 0x695e                                    |         goto label_120;
                                                             |     }
                                                             | label_96:
    0x00006926 cmp r0, 8                                     |     
    0x00006928 ite le                                        |     
                                                             |     if (r0 > 8) {
    0x0000692a movle r0, 0                                   |         r0 = 0;
                                                             |     }
                                                             |     if (r0 <= 8) {
    0x0000692c movgt r0, 1                                   |         r0 = 1;
                                                             |     }
    0x0000692e b 0x66a0                                      |     goto label_26;
                                                             | label_74:
    0x00006930 ldr r2, [sp, 0x38]                            |     r2 = var_38h;
    0x00006932 ldr r1, [r2, 4]                               |     r1 = *((r2 + 4));
    0x00006934 ldr r2, [r1, 0x10]                            |     r2 = *((r1 + 0x10));
    0x00006936 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00006938 beq 0x68e2                                    |         goto label_27;
                                                             |     }
    0x0000693a ldrsb r3, [r2, r3]                            |     r3 = *((r2 + r3));
    0x0000693c cmp r3, 0                                     |     
                                                             |     if (r3 >= 0) {
    0x0000693e bge.w 0x6404                                  |         goto label_28;
                                                             |     }
    0x00006942 b 0x68e2                                      |     goto label_27;
                                                             | label_30:
    0x00006944 ldr r0, [r7, 4]                               |     r0 = *((r7 + 4));
    0x00006946 cmp r0, 8                                     |     
                                                             |     if (r0 > 8) {
    0x00006948 bgt.w 0x6696                                  |         goto label_29;
                                                             |     }
    0x0000694c b 0x6728                                      |     goto label_25;
                                                             | label_93:
    0x0000694e cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00006950 bne 0x6944                                    |         goto label_30;
                                                             |     }
    0x00006952 ldr r0, [sp, 0x38]                            |     r0 = var_38h;
    0x00006954 ldr r7, [r0, 4]                               |     r7 = *((r0 + 4));
    0x00006956 ldr r0, [r7, 0x14]                            |     r0 = *((r7 + 0x14));
    0x00006958 cmp r0, 8                                     |     
                                                             |     if (r0 <= 8) {
    0x0000695a ble.w 0x6728                                  |         goto label_25;
                                                             |     }
                                                             | label_120:
    0x0000695e adds r7, 0x10                                 |     r7 += 0x10;
    0x00006960 b 0x6696                                      |     goto label_29;
                                                             | label_88:
    0x00006962 mov sl, r7                                    |     sl = r7;
    0x00006964 b 0x63ae                                      |     goto label_9;
                                                             | label_89:
    0x00006966 mov fp, r0                                    |     
    0x00006968 b 0x65e8                                      |     goto label_15;
                                                             | label_103:
    0x0000696a ldr.w fp, [pc, 0x1f4]                         |     
    0x0000696e add fp, pc                                    |     fp = 0xd4d4;
    0x00006970 b 0x679a                                      |     goto label_31;
                                                             | label_81:
    0x00006972 ldr.w lr, [pc, 0x1f0]                         |     
    0x00006976 add lr, pc                                    |     lr = 0xd4e0;
    0x00006978 b 0x64b0                                      |     goto label_32;
                                                             | label_80:
    0x0000697a ldr r1, [r3, 4]                               |     r1 = *((r3 + 4));
    0x0000697c ldr r3, [r1, 0x10]                            |     r3 = *((r1 + 0x10));
                                                             |     if (r3 == 0) {
    0x0000697e cbz r3, 0x6988                                |         goto label_46;
                                                             |     }
    0x00006980 ldrsb r3, [r3, r2]                            |     r3 = *((r3 + r2));
    0x00006982 cmp r3, 0                                     |     
                                                             |     if (r3 >= 0) {
    0x00006984 bge.w 0x6494                                  |         goto label_33;
                                                             |     }
                                                             | label_46:
    0x00006988 adds r1, 0x10                                 |     r1 += 0x10;
    0x0000698a b 0x68c0                                      |     goto label_34;
                                                             | label_102:
    0x0000698c ldr r1, [r3, 4]                               |     r1 = *((r3 + 4));
    0x0000698e ldr r3, [r1, 0x10]                            |     r3 = *((r1 + 0x10));
                                                             |     if (r3 == 0) {
    0x00006990 cbz r3, 0x699a                                |         goto label_45;
                                                             |     }
    0x00006992 ldrsb r3, [r3, r2]                            |     r3 = *((r3 + r2));
    0x00006994 cmp r3, 0                                     |     
                                                             |     if (r3 >= 0) {
    0x00006996 bge.w 0x677a                                  |         goto label_35;
                                                             |     }
                                                             | label_45:
    0x0000699a adds r1, 0x10                                 |     r1 += 0x10;
    0x0000699c b 0x68d2                                      |     goto label_36;
                                                             | label_69:
    0x0000699e mov sl, r0                                    |     sl = r0;
    0x000069a0 b 0x63ae                                      |     goto label_9;
                                                             | label_113:
    0x000069a2 ldr r3, [r7, 4]                               |     r3 = *((r7 + 4));
    0x000069a4 cmp r3, 8                                     |     
                                                             |     if (r3 <= 8) {
    0x000069a6 ble.w 0x6896                                  |         goto label_23;
                                                             |     }
    0x000069aa cmp.w ip, 0                                   |     
                                                             |     if (ip == 0) {
    0x000069ae beq 0x68fa                                    |         goto label_37;
                                                             |     }
    0x000069b0 b 0x6880                                      |     goto label_38;
                                                             | label_119:
    0x000069b2 ldr r0, [r7, 0x14]                            |     r0 = *((r7 + 0x14));
    0x000069b4 cmp r0, 8                                     |     
                                                             |     if (r0 > 8) {
    0x000069b6 bgt 0x691c                                    |         goto label_39;
                                                             |     }
    0x000069b8 b 0x6728                                      |     goto label_25;
                                                             | label_86:
    0x000069ba mov.w sl, 0xb                                 |     sl = 0xb;
    0x000069be b 0x63ae                                      |     goto label_9;
                                                             | label_97:
    0x000069c0 ldr.w ip, [pc, 0x1a4]                         |     
    0x000069c4 add ip, pc                                    |     ip = 0xd530;
    0x000069c6 b 0x66b4                                      |     goto label_40;
                                                             | label_104:
    0x000069c8 ldr.w sl, [pc, 0x1a0]                         |     
    0x000069cc add sl, pc                                    |     sl = 0xd53c;
    0x000069ce b 0x67a8                                      |     goto label_41;
                                                             | label_82:
    0x000069d0 ldr.w ip, [pc, 0x19c]                         |     
    0x000069d4 add ip, pc                                    |     ip = 0xd548;
    0x000069d6 b 0x64be                                      |     goto label_42;
                                                             | label_111:
    0x000069d8 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x000069da ldr r7, [r3, 4]                               |     r7 = *((r3 + 4));
    0x000069dc ldr r3, [r7, 0x10]                            |     r3 = *((r7 + 0x10));
    0x000069de cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000069e0 beq 0x6a9e                                    |         goto label_121;
                                                             |     }
    0x000069e2 ldrsb r3, [r3, r5]                            |     r3 = *((r3 + r5));
    0x000069e4 cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x000069e6 blt 0x6a9e                                    |         goto label_121;
                                                             |     }
    0x000069e8 cmp r3, 8                                     |     
                                                             |     if (r3 <= 8) {
    0x000069ea ble.w 0x6896                                  |         goto label_23;
                                                             |     }
                                                             | label_48:
    0x000069ee ldr r3, [r7, 0x10]                            |     r3 = *((r7 + 0x10));
                                                             |     if (r3 == 0) {
    0x000069f0 cbz r3, 0x69fa                                |         goto label_47;
                                                             |     }
    0x000069f2 ldrsb r3, [r3, r5]                            |     r3 = *((r3 + r5));
    0x000069f4 cmp r3, 0                                     |     
                                                             |     if (r3 >= 0) {
    0x000069f6 bge.w 0x6888                                  |         goto label_43;
                                                             |     }
                                                             | label_47:
    0x000069fa adds r7, 0x10                                 |     r7 += 0x10;
    0x000069fc b 0x68fa                                      |     goto label_37;
                                                             | label_95:
    0x000069fe ldr r0, [r7, 4]                               |     r0 = *((r7 + 4));
    0x00006a00 cmp r0, 8                                     |     
                                                             |     if (r0 <= 8) {
    0x00006a02 ble.w 0x6728                                  |         goto label_25;
                                                             |     }
    0x00006a06 cmp.w ip, 0                                   |     
                                                             |     if (ip == 0) {
    0x00006a0a beq.w 0x6696                                  |         goto label_29;
                                                             |     }
    0x00006a0e b 0x668c                                      |     goto label_44;
                                                             | label_117:
    0x00006a10 ldr r1, [r3, 4]                               |     r1 = *((r3 + 4));
    0x00006a12 b 0x699a                                      |     goto label_45;
                                                             | label_116:
    0x00006a14 ldr r1, [r3, 4]                               |     r1 = *((r3 + 4));
    0x00006a16 b 0x6988                                      |     goto label_46;
                                                             | label_114:
    0x00006a18 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x00006a1a ldr.w ip, [r4, 4]                             |     ip = *((r4 + 4));
    0x00006a1e cmp r3, r6                                    |     
                                                             |     if (r3 == r6) {
    0x00006a20 beq 0x6aaa                                    |         goto label_122;
                                                             |     }
    0x00006a22 ldr r7, [pc, 0x150]                           |     
    0x00006a24 add r7, pc                                    |     r7 = 0xd59e;
                                                             | label_50:
    0x00006a26 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x00006a28 movs r0, 0                                    |     r0 = 0;
    0x00006a2a cmp r3, r6                                    |     
                                                             |     if (r3 == r6) {
    0x00006a2c beq 0x6a38                                    |         goto label_123;
                                                             |     }
                                                             |     do {
    0x00006a2e ldr r2, [r3, 0xc]                             |         r2 = *((r3 + 0xc));
    0x00006a30 ldr r3, [r3]                                  |         r3 = *(r3);
    0x00006a32 adds r0, r2, r0                               |         r0 = r2 + r0;
    0x00006a34 cmp r3, r6                                    |         
    0x00006a36 bne 0x6a2e                                    |         
                                                             |     } while (r3 != r6);
                                                             | label_123:
    0x00006a38 ldr r3, [r4, 0x10]                            |     r3 = *((r4 + 0x10));
    0x00006a3a movs r2, 0                                    |     r2 = 0;
    0x00006a3c cmp r3, r6                                    |     
                                                             |     if (r3 == r6) {
    0x00006a3e beq 0x6a48                                    |         goto label_124;
                                                             |     }
                                                             |     do {
    0x00006a40 ldr r3, [r3]                                  |         r3 = *(r3);
    0x00006a42 adds r2, 1                                    |         r2++;
    0x00006a44 cmp r3, r6                                    |         
    0x00006a46 bne 0x6a40                                    |         
                                                             |     } while (r3 != r6);
                                                             | label_124:
    0x00006a48 mov lr, r4                                    |     lr = r4;
    0x00006a4a ldr r3, [lr, 0x18]!                           |     r3 = *((lr += 0x18));
    0x00006a4e cmp r3, lr                                    |     
                                                             |     if (r3 == lr) {
    0x00006a50 beq 0x6a5a                                    |         goto label_125;
                                                             |     }
                                                             |     do {
    0x00006a52 ldr r3, [r3]                                  |         r3 = *(r3);
    0x00006a54 adds r1, 1                                    |         r1++;
    0x00006a56 cmp r3, lr                                    |         
    0x00006a58 bne 0x6a52                                    |         
                                                             |     } while (r3 != lr);
                                                             | label_125:
    0x00006a5a ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x00006a5c strd r7, r0, [sp, 0x14]                       |     __asm ("strd r7, r0, [sp, 0x14]");
    0x00006a60 ldr r0, [pc, 0x114]                           |     
    0x00006a62 str r3, [sp, 4]                               |     var_4h = r3;
    0x00006a64 ldr r3, [pc, 0x114]                           |     
    0x00006a66 strd r2, r1, [sp, 0x1c]                       |     __asm ("strd r2, r1, [sp, 0x1c]");
    0x00006a6a add r0, pc                                    |     r0 = 0xd5e6;
    0x00006a6c mov r2, r5                                    |     r2 = r5;
    0x00006a6e movs r1, 0xdf                                 |     r1 = 0xdf;
    0x00006a70 add r3, pc                                    |     r3 = 0xd5f0;
    0x00006a72 str.w ip, [sp, 0xc]                           |     __asm ("str.w ip, [var_ch]");
    0x00006a76 str r3, [sp, 0x28]                            |     var_28h = r3;
    0x00006a78 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x00006a7a ldr r3, [pc, 0x104]                           |     
    0x00006a7c add r3, pc                                    |     r3 = 0xd602;
    0x00006a7e str r3, [sp, 0x24]                            |     var_24h = r3;
    0x00006a80 ldr r3, [pc, 0x100]                           |     
    0x00006a82 add r3, pc                                    |     r3 = 0xd60a;
    0x00006a84 str r3, [sp, 8]                               |     var_8h = r3;
    0x00006a86 movs r3, 0                                    |     r3 = 0;
    0x00006a88 str r3, [sp]                                  |     *(sp) = r3;
    0x00006a8a movs r3, 9                                    |     r3 = 9;
    0x00006a8c blx 0x4d50                                    |     loc_imp_apr_dynamic_fn_register ();
    0x00006a90 b 0x6896                                      |     goto label_23;
                                                             | label_118:
    0x00006a92 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x00006a94 ldr r7, [r3, 4]                               |     r7 = *((r3 + 4));
    0x00006a96 ldr r3, [r7, 0x14]                            |     r3 = *((r7 + 0x14));
    0x00006a98 cmp r3, 8                                     |     
                                                             |     if (r3 > 8) {
    0x00006a9a bgt 0x69fa                                    |         goto label_47;
                                                             |     }
    0x00006a9c b 0x6896                                      |     goto label_23;
                                                             | label_121:
    0x00006a9e ldr r3, [r7, 0x14]                            |     r3 = *((r7 + 0x14));
    0x00006aa0 cmp r3, 8                                     |     
                                                             |     if (r3 > 8) {
    0x00006aa2 bgt 0x69ee                                    |         goto label_48;
                                                             |     }
    0x00006aa4 b 0x6896                                      |     goto label_23;
                                                             | label_83:
    0x00006aa6 movs r1, 0                                    |     r1 = 0;
    0x00006aa8 b 0x64d8                                      |     goto label_49;
                                                             | label_122:
    0x00006aaa ldr r7, [pc, 0xdc]                            |     
    0x00006aac add r7, pc                                    |     r7 = 0xd63a;
    0x00006aae b 0x6a26                                      |     goto label_50;
                                                             | label_59:
    0x00006ab0 ldr r1, [pc, 0xd8]                            |     
    0x00006ab2 movw r2, 0x1a1                                |     r2 = 0x1a1;
    0x00006ab6 ldr r0, [pc, 0xd8]                            |     
    0x00006ab8 add r1, pc                                    |     r1 = 0xd648;
    0x00006aba add r0, pc                                    |     r0 = 0xd650;
    0x00006abc blx 0x4e40                                    |     loc_imp_apr_socket_create ();
                                                             | label_53:
    0x00006ac0 ldr r1, [pc, 0xd0]                            |     
    0x00006ac2 movw r2, 0x20b                                |     r2 = 0x20b;
    0x00006ac6 ldr r0, [pc, 0xd0]                            |     
    0x00006ac8 add r1, pc                                    |     r1 = 0xd660;
    0x00006aca add r0, pc                                    |     r0 = 0xd668;
    0x00006acc blx 0x4e40                                    |     loc_imp_apr_socket_create ();
                                                             | label_76:
    0x00006ad0 blx 0x4d80                                    |     loc_imp_apr_file_read ();
                                                             | label_52:
    0x00006ad4 ldr r1, [pc, 0xc4]                            |     
    0x00006ad6 movw r2, 0x20a                                |     r2 = 0x20a;
    0x00006ada ldr r0, [pc, 0xc4]                            |     
    0x00006adc add r1, pc                                    |     r1 = 0xd67c;
    0x00006ade add r0, pc                                    |     r0 = 0xd684;
    0x00006ae0 blx 0x4e40                                    |     loc_imp_apr_socket_create ();
                                                             | label_51:
    0x00006ae4 ldr r1, [pc, 0xbc]                            |     
    0x00006ae6 movw r2, 0x206                                |     r2 = 0x206;
    0x00006aea ldr r0, [pc, 0xbc]                            |     
    0x00006aec add r1, pc                                    |     r1 = 0xd694;
    0x00006aee add r0, pc                                    |     r0 = 0xd69c;
    0x00006af0 blx 0x4e40                                    |     r0 = loc_imp_apr_socket_create ();
    0x00006af4 adds r4, r0, r7                               |     r4 = r0 + r7;
    0x00006af6 movs r2, r0                                   |     r2 = r0;
    0x00006af8 lsls r4, r6, 0x10                             |     r4 = r6 << 0x10;
    0x00006afa movs r0, r0                                   |     
    0x00006afc adds r0, r5, r6                               |     r0 = r5 + r6;
    0x00006afe movs r2, r0                                   |     r2 = r0;
    0x00006b00 lsls r0, r1, 0x12                             |     r0 = r1 << 0x12;
    0x00006b02 movs r0, r0                                   |     
    0x00006b04 lsls r0, r7, 0x10                             |     r0 = r7 << 0x10;
    0x00006b06 movs r0, r0                                   |     
    0x00006b08 lsls r4, r3, 0x11                             |     r4 = r3 << 0x11;
    0x00006b0a movs r0, r0                                   |     
    0x00006b0c lsls r4, r2, 0x11                             |     r4 = r2 << 0x11;
    0x00006b0e movs r0, r0                                   |     
    0x00006b10 asrs r0, r5, 0x1c                             |     r0 = r5 >> 0x1c;
    0x00006b12 movs r2, r0                                   |     r2 = r0;
    0x00006b14 stm r6!, {r2, r4, r5, r7}                     |     *(r6!) = r2;
                                                             |     *((r6! + 4)) = r4;
                                                             |     *((r6! + 8)) = r5;
                                                             |     *((r6! + 12)) = r7;
    0x00006b16 movs r1, r0                                   |     r1 = r0;
    0x00006b18 ldrh r2, [r0, 0x1a]                           |     r2 = *((r0 + 0x1a));
    0x00006b1a movs r1, r0                                   |     r1 = r0;
    0x00006b1c stm r6!, {r5, r6}                             |     *(r6!) = r5;
                                                             |     *((r6! + 4)) = r6;
    0x00006b1e movs r1, r0                                   |     r1 = r0;
    0x00006b20 stm r6!, {r1, r2, r4}                         |     *(r6!) = r1;
                                                             |     *((r6! + 4)) = r2;
                                                             |     *((r6! + 8)) = r4;
    0x00006b22 movs r1, r0                                   |     r1 = r0;
    0x00006b24 ldrh r6, [r6, 0x18]                           |     r6 = *((r6 + 0x18));
    0x00006b26 movs r1, r0                                   |     r1 = r0;
    0x00006b28 ldrh r4, [r4, 0x16]                           |     r4 = *((r4 + 0x16));
    0x00006b2a movs r1, r0                                   |     r1 = r0;
    0x00006b2c ldrh r6, [r6, 0x1e]                           |     r6 = *((r6 + 0x1e));
    0x00006b2e movs r1, r0                                   |     r1 = r0;
    0x00006b30 stm r4!, {r1, r3, r5, r6}                     |     *(r4!) = r1;
                                                             |     *((r4! + 4)) = r3;
                                                             |     *((r4! + 8)) = r5;
                                                             |     *((r4! + 12)) = r6;
    0x00006b32 movs r1, r0                                   |     r1 = r0;
    0x00006b34 ldrh r0, [r1, 8]                              |     r0 = *((r1 + 8));
    0x00006b36 movs r1, r0                                   |     r1 = r0;
    0x00006b38 stm r4!, {r1, r3, r4}                         |     *(r4!) = r1;
                                                             |     *((r4! + 4)) = r3;
                                                             |     *((r4! + 8)) = r4;
    0x00006b3a movs r1, r0                                   |     r1 = r0;
    0x00006b3c ldrh r2, [r4, 0xe]                            |     r2 = *((r4 + 0xe));
    0x00006b3e movs r1, r0                                   |     r1 = r0;
    0x00006b40 ldrh r6, [r6, 8]                              |     r6 = *((r6 + 8));
    0x00006b42 movs r1, r0                                   |     r1 = r0;
    0x00006b44 stm r3!, {r4, r6, r7}                         |     *(r3!) = r4;
                                                             |     *((r3! + 4)) = r6;
                                                             |     *((r3! + 8)) = r7;
    0x00006b46 movs r1, r0                                   |     r1 = r0;
    0x00006b48 ldrh r0, [r3, 2]                              |     r0 = *((r3 + 2));
    0x00006b4a movs r1, r0                                   |     r1 = r0;
    0x00006b4c stm r3!, {r1, r2, r4, r5, r6}                 |     *(r3!) = r1;
                                                             |     *((r3! + 4)) = r2;
                                                             |     *((r3! + 8)) = r4;
                                                             |     *((r3! + 12)) = r5;
                                                             |     *((r3! + 16)) = r6;
    0x00006b4e movs r1, r0                                   |     r1 = r0;
    0x00006b50 stm r3!, {r1, r2, r4, r5}                     |     *(r3!) = r1;
                                                             |     *((r3! + 4)) = r2;
                                                             |     *((r3! + 8)) = r4;
                                                             |     *((r3! + 12)) = r5;
    0x00006b52 movs r1, r0                                   |     r1 = r0;
    0x00006b54 ldrh r0, [r1]                                 |     r0 = *(r1);
    0x00006b56 movs r1, r0                                   |     r1 = r0;
    0x00006b58 ldrh r4, [r3, 6]                              |     r4 = *((r3 + 6));
    0x00006b5a movs r1, r0                                   |     r1 = r0;
    0x00006b5c ldrh r6, [r7]                                 |     r6 = *(r7);
    0x00006b5e movs r1, r0                                   |     r1 = r0;
    0x00006b60 stm r1!, {r1, r2, r3, r5, r7}                 |     *(r1!) = r1;
                                                             |     *((r1! + 4)) = r2;
                                                             |     *((r1! + 8)) = r3;
                                                             |     *((r1! + 12)) = r5;
                                                             |     *((r1! + 16)) = r7;
    0x00006b62 movs r1, r0                                   |     r1 = r0;
    0x00006b64 stm r1!, {r1, r2, r5, r7}                     |     *(r1!) = r1;
                                                             |     *((r1! + 4)) = r2;
                                                             |     *((r1! + 8)) = r5;
                                                             |     *((r1! + 12)) = r7;
    0x00006b66 movs r1, r0                                   |     r1 = r0;
    0x00006b68 strh r0, [r7, 0x30]                           |     *((r7 + 0x30)) = r0;
    0x00006b6a movs r1, r0                                   |     r1 = r0;
    0x00006b6c strh r0, [r6, 0x30]                           |     *((r6 + 0x30)) = r0;
    0x00006b6e movs r1, r0                                   |     r1 = r0;
    0x00006b70 strh r0, [r5, 0x30]                           |     *((r5 + 0x30)) = r0;
    0x00006b72 movs r1, r0                                   |     r1 = r0;
    0x00006b74 stm r0!, {r3, r4, r5, r6, r7}                 |     *(r0!) = r3;
                                                             |     *((r0! + 4)) = r4;
                                                             |     *((r0! + 8)) = r5;
                                                             |     *((r0! + 12)) = r6;
                                                             |     *((r0! + 16)) = r7;
    0x00006b76 movs r1, r0                                   |     r1 = r0;
    0x00006b78 strh r2, [r3, 0x2c]                           |     *((r3 + 0x2c)) = r2;
    0x00006b7a movs r1, r0                                   |     r1 = r0;
    0x00006b7c stm r0!, {r2, r3, r5, r7}                     |     *(r0!) = r2;
                                                             |     *((r0! + 4)) = r3;
                                                             |     *((r0! + 8)) = r5;
                                                             |     *((r0! + 12)) = r7;
    0x00006b7e movs r1, r0                                   |     r1 = r0;
    0x00006b80 strh r4, [r1, 0x34]                           |     *((r1 + 0x34)) = r4;
    0x00006b82 movs r1, r0                                   |     r1 = r0;
    0x00006b84 strh r2, [r1, 0x2e]                           |     *((r1 + 0x2e)) = r2;
    0x00006b86 movs r1, r0                                   |     r1 = r0;
    0x00006b88 strh r0, [r2, 0x2a]                           |     *((r2 + 0x2a)) = r0;
    0x00006b8a movs r1, r0                                   |     r1 = r0;
    0x00006b8c strh r4, [r1, 0x2a]                           |     *((r1 + 0x2a)) = r4;
    0x00006b8e movs r1, r0                                   |     r1 = r0;
    0x00006b90 strh r6, [r7, 0x2e]                           |     *((r7 + 0x2e)) = r6;
    0x00006b92 movs r1, r0                                   |     r1 = r0;
    0x00006b94 strh r4, [r7, 0x28]                           |     *((r7 + 0x28)) = r4;
    0x00006b96 movs r1, r0                                   |     r1 = r0;
    0x00006b98 strh r6, [r1, 0x30]                           |     *((r1 + 0x30)) = r6;
    0x00006b9a movs r1, r0                                   |     r1 = r0;
    0x00006b9c strh r0, [r5, 0x28]                           |     *((r5 + 0x28)) = r0;
    0x00006b9e movs r1, r0                                   |     r1 = r0;
    0x00006ba0 strh r6, [r4, 0x2e]                           |     *((r4 + 0x2e)) = r6;
    0x00006ba2 movs r1, r0                                   |     r1 = r0;
    0x00006ba4 strh r0, [r3, 0x28]                           |     *((r3 + 0x28)) = r0;
    0x00006ba6 movs r1, r0                                   |     r1 = r0;
    0x00006ba8 strh r2, [r1, 0x2e]                           |     *((r1 + 0x2e)) = r2;
    0x00006baa movs r1, r0                                   |     r1 = r0;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0x6bac */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00006bac ()                                  | void fcn_00006bac (int16_t arg_0h, int16_t arg_4h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_14h_2;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_1ch_2;
                                                             |     int16_t var_24h;
                                                             |     int16_t var_28h;
                                                             |     int16_t var_30h;
                                                             |     int16_t var_34h;
                                                             |     int16_t var_38h;
                                                             |     int16_t var_3ch;
                                                             |     int16_t var_40h;
                                                             |     int16_t var_44h;
                                                             |     int16_t var_48h;
                                                             |     int16_t var_4ch;
                                                             |     int16_t var_58h;
                                                             |     int16_t var_5ch;
                                                             |     int16_t var_60h;
                                                             |     int16_t var_1040h;
                                                             |     int32_t var_0h_2;
                                                             |     int16_t var_1060h;
                                                             |     int16_t var_1080h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00006bac svcmi 0xf0e92d                                |     __asm ("svcmi 0xf0e92d");
    0x00006bb0 sub.w sp, sp, 0x1060                          |     
    0x00006bb4 sub sp, 4                                     |     
    0x00006bb6 mov fp, r2                                    |     
    0x00006bb8 mov r4, r1                                    |     r4 = r1;
    0x00006bba mov r5, r0                                    |     r5 = r0;
    0x00006bbc ldr.w r2, [pc, 0x8d4]                         |     
    0x00006bc0 add.w r0, sp, 0x1080                          |     r0 += var_1080h;
    0x00006bc4 str r3, [sp, 0x4c]                            |     var_4ch = r3;
    0x00006bc6 adds r0, 8                                    |     r0 += 8;
    0x00006bc8 ldr.w r3, [pc, 0x8cc]                         |     r3 = *(0x7498);
    0x00006bcc add r2, pc                                    |     r2 = 0xe064;
    0x00006bce str r1, [sp, 0x44]                            |     var_44h = r1;
    0x00006bd0 add.w r1, sp, 0x1040                          |     r1 += var_1040h;
    0x00006bd4 ldr.w sl, [r0]                                |     sl = *(r0);
    0x00006bd8 ldr r3, [r2, r3]                              |     
    0x00006bda adds r1, 0x1c                                 |     r1 += 0x1c;
    0x00006bdc ldr r0, [r5, 0x40]                            |     r0 = *((r5 + 0x40));
    0x00006bde ldr.w r8, [pc, 0x8bc]                         |     
    0x00006be2 ldr r3, [r3]                                  |     r3 = *(0xe064);
    0x00006be4 str r3, [r1]                                  |     *(r1) = r3;
    0x00006be6 mov.w r3, 0                                   |     r3 = 0;
    0x00006bea add.w r3, sp, 0x1080                          |     r3 += var_1080h;
    0x00006bee adds r3, 0xc                                  |     r3 += 0xc;
    0x00006bf0 ldr r6, [r3]                                  |     r6 = *(r3);
    0x00006bf2 blx 0x4c9c                                    |     nghttp2_option_set_peer_max_concurrent_streams ();
    0x00006bf6 ldr.w r3, [pc, 0x8a8]                         |     r3 = *(0x74a2);
    0x00006bfa add r8, pc                                    |     r8 = 0xe09c;
    0x00006bfc ldr.w r3, [r8, r3]                            |     r3 = *(0xe09c);
    0x00006c00 ldr r2, [r3, 8]                               |     r2 = *(0xe0a4);
    0x00006c02 str r3, [sp, 0x48]                            |     var_48h = r3;
    0x00006c04 cmp r2, 0                                     |     
                                                             |     if (r2 < 0) {
    0x00006c06 blt.w 0x6e5e                                  |         goto label_48;
                                                             |     }
    0x00006c0a ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x00006c0c ldr r3, [r3, 0x60]                            |     r3 = *((r3 + 0x60));
    0x00006c0e mov r1, r3                                    |     r1 = r3;
    0x00006c10 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006c12 beq.w 0x71d4                                  |         goto label_49;
                                                             |     }
    0x00006c16 ldr r0, [r3]                                  |     r0 = *(r3);
    0x00006c18 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00006c1a beq.w 0x6e68                                  |         goto label_19;
                                                             |     }
    0x00006c1e ldrsb r0, [r0, r2]                            |     r0 = *((r0 + r2));
    0x00006c20 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00006c22 blt.w 0x6e68                                  |         goto label_19;
                                                             |     }
                                                             | label_18:
    0x00006c26 cmp r0, 8                                     |     
                                                             |     if (r0 > 8) {
    0x00006c28 bgt.w 0x6d76                                  |         goto label_50;
                                                             |     }
                                                             | label_2:
    0x00006c2c cmp.w sl, 1                                   |     
    0x00006c30 mov.w sb, 0                                   |     sb = 0;
    0x00006c34 sbcs r3, r6, 0                                |     __asm ("sbcs r3, r6, 0");
    0x00006c38 add r3, sp, 0x60                              |     r3 += var_60h;
    0x00006c3a it lt                                         |     
                                                             |     if (sl >= 1) {
    0x00006c3c movlt sl, -1                                  |         sl = -1;
                                                             |     }
    0x00006c40 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x00006c42 add r3, sp, 0x58                              |     r3 += var_58h;
    0x00006c44 it lt                                         |     
                                                             |     if (sl >= 1) {
    0x00006c46 movlt r6, 0                                   |         r6 = 0;
                                                             |     }
    0x00006c48 str r3, [sp, 0x40]                            |     var_40h = r3;
    0x00006c4a mov r3, sl                                    |     r3 = sl;
    0x00006c4c mov sl, sb                                    |     sl = sb;
    0x00006c4e mov sb, r3                                    |     sb = r3;
                                                             | label_15:
    0x00006c50 ldr r7, [r5, 0x30]                            |     r7 = *((r5 + 0x30));
    0x00006c52 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00006c54 bne.w 0x6f88                                  |         goto label_51;
                                                             |     }
    0x00006c58 ldr r3, [r5, 0xc]                             |     r3 = *((r5 + 0xc));
    0x00006c5a cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006c5c beq.w 0x7484                                  |         goto label_52;
                                                             |     }
    0x00006c60 cmp r6, 0                                     |     
                                                             |     if (r6 < 0) {
    0x00006c62 blt.w 0x70c8                                  |         goto label_53;
                                                             |     }
    0x00006c66 add.w r3, r5, 0x10                            |     r3 = r5 + 0x10;
    0x00006c6a str r7, [sp, 0x30]                            |     var_30h = r7;
    0x00006c6c str r3, [sp, 0x34]                            |     var_34h = r3;
    0x00006c6e add.w r3, fp, 4                               |     r3 += arg_4h;
    0x00006c70 lsls r4, r0, 0xc                              |     r4 = r0 << 0xc;
    0x00006c72 str r3, [sp, 0x38]                            |     var_38h = r3;
    0x00006c74 b 0x6cec                                      |     
                                                             |     while (ip == 0) {
    0x00006c76 ldr r1, [r4, 8]                               |         r1 = *((r4 + 8));
    0x00006c78 ldr r2, [r1, 8]                               |         r2 = *((r1 + 8));
                                                             |         if (r2 != 0) {
    0x00006c7a cbz r2, 0x6cb8                                |             
                                                             | label_0:
    0x00006c7c ldr.w r3, [pc, 0x824]                         |             r3 = *(0x74a4);
    0x00006c80 ldr.w r3, [r8, r3]                            |             r3 = *((r8 + r3));
    0x00006c84 cmp r1, r3                                    |             
                                                             |             if (r1 == r3) {
    0x00006c86 beq.w 0x6e96                                  |                 goto label_54;
                                                             |             }
    0x00006c8a ldr.w r3, [pc, 0x81c]                         |             r3 = *(0x74aa);
    0x00006c8e ldr.w r3, [r8, r3]                            |             r3 = *((r8 + r3));
    0x00006c92 cmp r1, r3                                    |             
                                                             |             if (r1 == r3) {
    0x00006c94 beq.w 0x6ed2                                  |                 goto label_55;
                                                             |             }
    0x00006c98 ldr.w r3, [pc, 0x810]                         |             r3 = *(0x74ac);
    0x00006c9c ldr.w r3, [r8, r3]                            |             r3 = *((r8 + r3));
    0x00006ca0 cmp r1, r3                                    |             
                                                             |             if (r1 == r3) {
    0x00006ca2 beq.w 0x6f3a                                  |                 goto label_56;
                                                             |             }
    0x00006ca6 ldr.w r3, [pc, 0x808]                         |             r3 = *(0x74b2);
    0x00006caa ldr.w r3, [r8, r3]                            |             r3 = *((r8 + r3));
    0x00006cae cmp r1, r3                                    |             
    0x00006cb0 it ne                                         |             
                                                             |             if (r1 == r3) {
    0x00006cb2 movne r2, ip                                  |                 r2 = ip;
                                                             |             }
                                                             |             if (r1 == r3) {
    0x00006cb4 beq.w 0x7116                                  |                 goto label_57;
                                                             |             }
                                                             |         }
                                                             | label_1:
    0x00006cb8 ldr r3, [r4, 4]                               |         r3 = *((r4 + 4));
    0x00006cba add.w sl, sl, 1                               |         sl++;
    0x00006cbe ldr r1, [r4]                                  |         r1 = *(r4);
    0x00006cc0 str r1, [r3]                                  |         *(r3) = r1;
    0x00006cc2 ldr r3, [r4]                                  |         r3 = *(r4);
    0x00006cc4 ldr r1, [r4, 4]                               |         r1 = *((r4 + 4));
    0x00006cc6 str r1, [r3, 4]                               |         *((r3 + 4)) = r1;
    0x00006cc8 add.w r3, r5, 0x18                            |         r3 = r5 + 0x18;
    0x00006ccc str r3, [r4]                                  |         *(r4) = r3;
    0x00006cce ldr r3, [r5, 0x1c]                            |         r3 = *((r5 + 0x1c));
    0x00006cd0 str r3, [r4, 4]                               |         *((r4 + 4)) = r3;
    0x00006cd2 ldr r3, [r5, 0x60]                            |         r3 = *((r5 + 0x60));
    0x00006cd4 ldr r1, [r5, 0x1c]                            |         r1 = *((r5 + 0x1c));
    0x00006cd6 adds r3, r3, r2                               |         r3 += r2;
    0x00006cd8 ldr r2, [r5, 0x64]                            |         r2 = *((r5 + 0x64));
    0x00006cda str r4, [r1]                                  |         *(r1) = r4;
    0x00006cdc str r4, [r5, 0x1c]                            |         *((r5 + 0x1c)) = r4;
    0x00006cde adc r2, r2, 0                                 |         __asm ("adc r2, r2, 0");
    0x00006ce2 cmp r6, 0                                     |         
    0x00006ce4 strd r3, r2, [r5, 0x60]                       |         __asm ("strd r3, r2, [r5, 0x60]");
                                                             |         if (r6 < 0) {
    0x00006ce8 blt.w 0x6f4a                                  |             goto label_58;
                                                             |         }
    0x00006cec ldr r3, [r5, 0x10]                            |         r3 = *((r5 + 0x10));
    0x00006cee ldr r2, [sp, 0x34]                            |         r2 = var_34h;
    0x00006cf0 cmp r3, r2                                    |         
                                                             |         if (r3 == r2) {
    0x00006cf2 beq.w 0x6f4a                                  |             goto label_58;
                                                             |         }
    0x00006cf6 ldr r4, [r5, 0x10]                            |         r4 = *((r5 + 0x10));
    0x00006cf8 ldr.w ip, [r4, 0xc]                           |         ip = *((r4 + 0xc));
    0x00006cfc cmp.w ip, 0                                   |         
    0x00006d00 beq 0x6c76                                    |         
                                                             |     }
    0x00006d02 orrs.w r3, sb, r6                             |     r3 = sb | r6;
                                                             |     if (r3 == sb) {
    0x00006d06 beq.w 0x6f4a                                  |         goto label_58;
                                                             |     }
    0x00006d0a ldr r1, [r4, 8]                               |     r1 = *((r4 + 8));
    0x00006d0c ldr r3, [r1, 8]                               |     r3 = *((r1 + 8));
    0x00006d0e cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00006d10 bne 0x6c7c                                    |         goto label_0;
                                                             |     }
    0x00006d12 ldr.w r2, [pc, 0x7a0]                         |     r2 = *(0x74b6);
    0x00006d16 ldr.w r2, [r8, r2]                            |     r2 = *((r8 + r2));
    0x00006d1a cmp r1, r2                                    |     
                                                             |     if (r1 == r2) {
    0x00006d1c beq.w 0x712a                                  |         goto label_59;
                                                             |     }
    0x00006d20 ldr.w r2, [pc, 0x794]                         |     r2 = *(0x74b8);
    0x00006d24 ldr.w r2, [r8, r2]                            |     r2 = *((r8 + r2));
    0x00006d28 cmp r1, r2                                    |     
                                                             |     if (r1 == r2) {
    0x00006d2a beq.w 0x6edc                                  |         goto label_60;
                                                             |     }
    0x00006d2e ldr r2, [r1, 0x10]                            |     r2 = *((r1 + 0x10));
    0x00006d30 mov r0, r4                                    |     r0 = r4;
    0x00006d32 mov r7, r2                                    |     r7 = r2;
    0x00006d34 ldrd r1, r2, [sp, 0x3c]                       |     __asm ("ldrd r1, r2, [var_3ch]");
    0x00006d38 subs r1, 0xc                                  |     r1 -= 0xc;
    0x00006d3a blx r7                                        |     r0 = uint32_t (*r7)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x00006d3c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00006d3e bne.w 0x715a                                  |         goto label_61;
                                                             |     }
    0x00006d42 ldr r7, [sp, 0x3c]                            |     r7 = var_3ch;
    0x00006d44 mov r2, r0                                    |     r2 = r0;
    0x00006d46 mov r1, r0                                    |     r1 = r0;
    0x00006d48 mov r0, fp                                    |     r0 = fp;
    0x00006d4a ldr r3, [r7, -0x8]                            |     r3 = *((r7 - 0x8));
    0x00006d4e str r3, [sp]                                  |     *(sp) = r3;
    0x00006d50 ldr r3, [r7, -0xc]                            |     r3 = *((r7 - 0xc));
    0x00006d54 blx 0x4f18                                    |     r0 = loc_imp_apr_array_push ();
    0x00006d58 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00006d5a bne.w 0x715a                                  |         goto label_61;
                                                             |     }
    0x00006d5e ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x00006d60 ldr r2, [r4, 0xc]                             |     r2 = *((r4 + 0xc));
    0x00006d62 adds r3, 1                                    |     r3++;
    0x00006d64 str r3, [sp, 0x30]                            |     var_30h = r3;
    0x00006d66 ldr r3, [r7, -0x8]                            |     r3 = *((r7 - 0x8));
    0x00006d6a subs.w r3, sb, r3                             |     r3 = sb - r3;
    0x00006d6e mov sb, r3                                    |     sb = r3;
    0x00006d70 sbc r6, r6, 0                                 |     __asm ("sbc r6, r6, 0");
    0x00006d74 b 0x6cb8                                      |     goto label_1;
                                                             | label_50:
    0x00006d76 mov r1, r3                                    |     r1 = r3;
    0x00006d78 mov r0, fp                                    |     r0 = fp;
    0x00006d7a cmp.w fp, 0                                   |     
                                                             |     if (fp == 0) {
    0x00006d7e beq 0x6e7a                                    |         goto label_62;
                                                             |     }
                                                             | label_3:
    0x00006d80 ldr.w r3, [pc, 0x738]                         |     
    0x00006d84 mov.w r1, 0x1000                              |     r1 = 0x1000;
    0x00006d88 add r0, sp, 0x5c                              |     r0 += var_5ch;
    0x00006d8a str.w fp, [sp]                                |     __asm ("str.w fp, [sp]");
    0x00006d8e add r3, pc                                    |     
    0x00006d90 mov r2, r3                                    |     r2 = r3;
    0x00006d92 bl 0x1ccac                                    |     void (*0x1ccac)(uint32_t) (r0);
    0x00006d96 ldr r3, [sp, 0x3fc]                           |     r3 = *((sp + 0x3fc));
    0x00006d98 ldr r2, [r3, 8]                               |     r2 = *(0xe256);
    0x00006d9a ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x00006d9c ldr r3, [r3, 0x60]                            |     r3 = *(0xe2ae);
                                                             | label_4:
    0x00006d9e cmp r2, 0                                     |     
    0x00006da0 mov r1, r3                                    |     r1 = r3;
                                                             |     if (r2 >= 0) {
    0x00006da2 bge 0x6e7a                                    |         goto label_62;
                                                             |     }
    0x00006da4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006da6 beq.w 0x7226                                  |         goto label_63;
                                                             |     }
                                                             | label_5:
    0x00006daa ldr r3, [r1, 4]                               |     r3 = *((r1 + 4));
    0x00006dac cmp r3, 8                                     |     
    0x00006dae ite le                                        |     
                                                             |     if (r3 > 8) {
    0x00006db0 movle r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 <= 8) {
    0x00006db2 movgt r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             | label_6:
    0x00006db4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006db6 beq.w 0x6c2c                                  |         goto label_2;
                                                             |     }
    0x00006dba ldr r3, [r5, 0x30]                            |     r3 = *((r5 + 0x30));
    0x00006dbc ldr.w sb, [r5, 4]                             |     sb = *((r5 + 4));
    0x00006dc0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00006dc2 bne.w 0x71f6                                  |         goto label_64;
                                                             |     }
    0x00006dc6 ldr.w r3, [pc, 0x6f8]                         |     
    0x00006dca add r3, pc                                    |     r3 = 0xe290;
    0x00006dcc str r3, [sp, 0x30]                            |     var_30h = r3;
                                                             | label_21:
    0x00006dce mov r4, r5                                    |     r4 = r5;
    0x00006dd0 ldr r3, [r4, 0x10]!                           |     r3 = *((r4 += 0x10));
    0x00006dd4 cmp r3, r4                                    |     
                                                             |     if (r3 == r4) {
    0x00006dd6 beq.w 0x734c                                  |         goto label_65;
                                                             |     }
    0x00006dda ldr.w lr, [pc, 0x6e8]                         |     
    0x00006dde add lr, pc                                    |     lr = 0xe2a8;
                                                             | label_34:
    0x00006de0 ldr r1, [r5, 0x10]                            |     r1 = *((r5 + 0x10));
    0x00006de2 cmp r4, r1                                    |     
                                                             |     if (r4 == r1) {
    0x00006de4 beq.w 0x745e                                  |         goto label_66;
                                                             |     }
    0x00006de8 movs r7, 0                                    |     r7 = 0;
                                                             |     do {
    0x00006dea ldr r3, [r1, 0xc]                             |         r3 = *((r1 + 0xc));
    0x00006dec ldr r1, [r1]                                  |         r1 = *(r1);
    0x00006dee adds r7, r3, r7                               |         r7 = r3 + r7;
    0x00006df0 cmp r4, r1                                    |         
    0x00006df2 bne 0x6dea                                    |         
                                                             |     } while (r4 != r1);
    0x00006df4 mov ip, r7                                    |     
                                                             | label_44:
    0x00006df6 ldr r3, [r5, 0x10]                            |     r3 = *((r5 + 0x10));
    0x00006df8 movs r1, 0                                    |     r1 = 0;
    0x00006dfa cmp r4, r3                                    |     
                                                             |     if (r4 == r3) {
    0x00006dfc beq 0x6e06                                    |         goto label_67;
                                                             |     }
                                                             |     do {
    0x00006dfe ldr r3, [r3]                                  |         r3 = *(r3);
    0x00006e00 adds r1, 1                                    |         r1++;
    0x00006e02 cmp r4, r3                                    |         
    0x00006e04 bne 0x6dfe                                    |         
                                                             |     } while (r4 != r3);
                                                             | label_67:
    0x00006e06 mov r7, r5                                    |     r7 = r5;
    0x00006e08 movs r4, 0                                    |     r4 = 0;
    0x00006e0a ldr r3, [r7, 0x18]!                           |     r3 = *((r7 += 0x18));
    0x00006e0e cmp r3, r7                                    |     
                                                             |     if (r3 == r7) {
    0x00006e10 beq 0x6e1a                                    |         goto label_68;
                                                             |     }
                                                             |     do {
    0x00006e12 ldr r3, [r3]                                  |         r3 = *(r3);
    0x00006e14 adds r4, 1                                    |         r4++;
    0x00006e16 cmp r3, r7                                    |         
    0x00006e18 bne 0x6e12                                    |         
                                                             |     } while (r3 != r7);
                                                             | label_68:
    0x00006e1a add r3, sp, 0x5c                              |     r3 += var_5ch;
                                                             |     if (r0 == 0) {
    0x00006e1c cbnz r0, 0x6e24                               |         
    0x00006e1e ldr.w r3, [pc, 0x6a8]                         |         
    0x00006e22 add r3, pc                                    |         r3 = 0xe2f0;
                                                             |     }
    0x00006e24 str r3, [sp, 0x28]                            |     var_28h = r3;
    0x00006e26 ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x00006e28 ldr.w r0, [pc, 0x6a0]                         |     
    0x00006e2c strd r1, r4, [sp, 0x1c]                       |     __asm ("strd r1, r4, [var_1ch]");
    0x00006e30 movw r1, 0x249                                |     r1 = 0x249;
    0x00006e34 strd sb, r3, [sp, 0xc]                        |     __asm ("strd sb, r3, [var_ch]");
    0x00006e38 ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x00006e3a add r0, pc                                    |     r0 = 0xe30a;
    0x00006e3c strd lr, ip, [sp, 0x14]                       |     __asm ("strd lr, ip, [var_14h]");
    0x00006e40 str r3, [sp, 4]                               |     var_4h = r3;
    0x00006e42 ldr.w r3, [pc, 0x68c]                         |     
    0x00006e46 add r3, pc                                    |     r3 = 0xe31c;
    0x00006e48 str r3, [sp, 0x24]                            |     var_24h = r3;
    0x00006e4a ldr.w r3, [pc, 0x688]                         |     
    0x00006e4e add r3, pc                                    |     r3 = 0xe328;
    0x00006e50 str r3, [sp, 8]                               |     var_8h = r3;
    0x00006e52 movs r3, 0                                    |     r3 = 0;
    0x00006e54 str r3, [sp]                                  |     *(sp) = r3;
    0x00006e56 movs r3, 9                                    |     r3 = 9;
    0x00006e58 blx 0x4d50                                    |     loc_imp_apr_dynamic_fn_register ();
    0x00006e5c b 0x6c2c                                      |     goto label_2;
                                                             | label_48:
    0x00006e5e ldr r3, [r4, 0x60]                            |     r3 = *((r4 + 0x60));
    0x00006e60 mov r1, r3                                    |     r1 = r3;
    0x00006e62 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006e64 beq.w 0x71f0                                  |         goto label_69;
                                                             |     }
                                                             | label_19:
    0x00006e68 ldr r1, [r1, 4]                               |     r1 = *((r1 + 4));
    0x00006e6a cmp r1, 8                                     |     
                                                             |     if (r1 <= 8) {
    0x00006e6c ble.w 0x6c2c                                  |         goto label_2;
                                                             |     }
    0x00006e6e add r6, sp, 0x378                             |     r6 = sp + 0x378;
    0x00006e70 mov r0, fp                                    |     r0 = fp;
    0x00006e72 cmp.w fp, 0                                   |     
                                                             |     if (fp != 0) {
    0x00006e76 bne 0x6d80                                    |         goto label_3;
                                                             |     }
    0x00006e78 b 0x6d9e                                      |     goto label_4;
                                                             | label_62:
    0x00006e7a cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006e7c beq.w 0x72fe                                  |         goto label_70;
                                                             |     }
    0x00006e80 ldr r3, [r3]                                  |     r3 = *(r3);
    0x00006e82 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006e84 beq 0x6daa                                    |         goto label_5;
                                                             |     }
    0x00006e86 ldrsb r3, [r3, r2]                            |     r3 = *((r3 + r2));
    0x00006e88 cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x00006e8a blt 0x6daa                                    |         goto label_5;
                                                             |     }
                                                             | label_28:
    0x00006e8c cmp r3, 8                                     |     
    0x00006e8e ite le                                        |     
                                                             |     if (r3 > 8) {
    0x00006e90 movle r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 <= 8) {
    0x00006e92 movgt r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00006e94 b 0x6db4                                      |     goto label_6;
                                                             | label_54:
    0x00006e96 movs r3, 1                                    |     r3 = 1;
    0x00006e98 ldr.w r0, [fp, 0xc]                           |     r0 = *(arg_ch);
    0x00006e9c str r3, [r5, 0x34]                            |     *((r5 + 0x34)) = r3;
    0x00006e9e blx 0x4720                                    |     r0 = loc_imp_apr_bucket_eos_create ();
                                                             |     do {
                                                             | label_7:
    0x00006ea2 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00006ea4 beq.w 0x7474                                  |             goto label_71;
                                                             |         }
    0x00006ea8 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x00006eaa ldr r2, [r4, 0xc]                             |         r2 = *((r4 + 0xc));
    0x00006eac str r3, [r0]                                  |         *(r0) = r3;
    0x00006eae ldr r3, [sp, 0x30]                            |         r3 = var_30h;
    0x00006eb0 adds r3, 1                                    |         r3++;
    0x00006eb2 str r3, [sp, 0x30]                            |         var_30h = r3;
    0x00006eb4 ldr.w r3, [fp, 8]                             |         r3 = *(arg_8h);
    0x00006eb8 str r3, [r0, 4]                               |         *((r0 + 4)) = r3;
    0x00006eba ldr r3, [r0, 0xc]                             |         r3 = *((r0 + 0xc));
    0x00006ebc subs.w r3, sb, r3                             |         r3 = sb - r3;
    0x00006ec0 mov sb, r3                                    |         sb = r3;
    0x00006ec2 ldr.w r3, [fp, 8]                             |         r3 = *(arg_8h);
    0x00006ec6 sbc r6, r6, 0                                 |         __asm ("sbc r6, r6, 0");
    0x00006eca str r0, [r3]                                  |         *(r3) = r0;
    0x00006ecc str.w r0, [fp, 8]                             |         __asm ("str.w r0, [arg_8h]");
    0x00006ed0 b 0x6cb8                                      |         goto label_1;
                                                             | label_55:
    0x00006ed2 ldr.w r0, [fp, 0xc]                           |         r0 = *(arg_ch);
    0x00006ed6 blx 0x48e0                                    |         fcn_000048e0 ();
    0x00006eda b 0x6ea2                                      |         
                                                             |     } while (1);
                                                             | label_60:
    0x00006edc ldr r3, [r4, 0x18]                            |     r3 = *((r4 + 0x18));
    0x00006ede ldr.w lr, [fp]                                |     
    0x00006ee2 ldr r7, [sp, 0x3c]                            |     r7 = var_3ch;
    0x00006ee4 ldrd r1, r3, [r3, 4]                          |     __asm ("ldrd r1, r3, [r3, 4]");
    0x00006ee8 cmp r3, lr                                    |     
    0x00006eea str r1, [r7, -0x8]                            |     *((r7 - 0x8)) = r1;
                                                             |     if (r3 != lr) {
    0x00006eee beq 0x6f0c                                    |         
    0x00006ef0 mov r2, lr                                    |         r2 = lr;
    0x00006ef2 sub.w r0, r7, 8                               |         r0 = r7 - 8;
    0x00006ef6 blx 0x4ff8                                    |         r0 = fcn_00004ff8 ();
    0x00006efa cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00006efc bne.w 0x715a                                  |             goto label_61;
                                                             |         }
    0x00006f00 ldr r1, [r7, -0x8]                            |         r1 = *((r7 - 0x8));
    0x00006f04 ldr.w ip, [r4, 0xc]                           |         ip = *((r4 + 0xc));
    0x00006f08 ldr.w lr, [fp]                                |         
                                                             |     }
    0x00006f0c ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x00006f0e movs r7, 0                                    |     r7 = 0;
    0x00006f10 mov r0, fp                                    |     r0 = fp;
    0x00006f12 adds r3, 1                                    |     r3++;
    0x00006f14 str r3, [sp, 0x30]                            |     var_30h = r3;
    0x00006f16 ldrd r2, r3, [r4, 0x10]                       |     __asm ("ldrd r2, r3, [r4, 0x10]");
    0x00006f1a str.w lr, [sp, 8]                             |     __asm ("str.w lr, [var_8h]");
    0x00006f1e str.w ip, [sp]                                |     __asm ("str.w ip, [sp]");
    0x00006f22 str r7, [sp, 4]                               |     var_4h = r7;
    0x00006f24 blx 0x46c0                                    |     loc_imp_apr_brigade_insert_file ();
    0x00006f28 mov r1, r7                                    |     r1 = r7;
    0x00006f2a blx 0x5020                                    |     nghttp2_submit_window_update ();
    0x00006f2e ldr r2, [r4, 0xc]                             |     r2 = *((r4 + 0xc));
    0x00006f30 subs.w sb, sb, r2                             |     sb -= r2;
    0x00006f34 sbc r6, r6, 0                                 |     __asm ("sbc r6, r6, 0");
    0x00006f38 b 0x6cb8                                      |     goto label_1;
                                                             | label_56:
    0x00006f3a ldr.w r2, [fp, 0xc]                           |     r2 = *(arg_ch);
    0x00006f3e mov r0, r4                                    |     r0 = r4;
    0x00006f40 ldr.w r1, [fp]                                |     r1 = *(fp);
    0x00006f44 bl 0xe7c4                                     |     fcn_0000e7c4 (r0, r1, r2);
    0x00006f48 b 0x6ea2                                      |     goto label_7;
                                                             | label_58:
    0x00006f4a ldr r3, [r5, 0x50]                            |     r3 = *((r5 + 0x50));
    0x00006f4c ldr r7, [sp, 0x30]                            |     r7 = var_30h;
    0x00006f4e cmp.w sl, 0                                   |     
    0x00006f52 it ne                                         |     
                                                             |     if (sl != 0) {
    0x00006f54 cmpne r3, 0                                   |         __asm ("cmpne r3, 0");
                                                             |     }
                                                             |     if (sl != 0) {
    0x00006f56 bne.w 0x70d6                                  |         goto label_72;
                                                             |     }
                                                             | label_9:
    0x00006f5a cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00006f5c bne.w 0x7326                                  |         goto label_73;
                                                             |     }
    0x00006f60 ldr r3, [r5, 0x30]                            |     r3 = *((r5 + 0x30));
                                                             |     if (r3 == 0) {
    0x00006f62 cbnz r3, 0x6f88                               |         
                                                             | label_8:
    0x00006f64 ldr r0, [r5, 0x34]                            |         r0 = *((r5 + 0x34));
    0x00006f66 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00006f68 bne.w 0x7164                                  |             goto label_74;
                                                             |         }
    0x00006f6c add.w r7, r5, 0x10                            |         r7 = r5 + 0x10;
                                                             | label_17:
    0x00006f70 ldr r3, [r5, 0x10]                            |         r3 = *((r5 + 0x10));
    0x00006f72 cmp r3, r7                                    |         
                                                             |         if (r3 != r7) {
    0x00006f74 bne.w 0x7154                                  |             goto label_75;
                                                             |         }
    0x00006f78 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00006f7a bne.w 0x715a                                  |             goto label_61;
                                                             |         }
    0x00006f7e ldr r3, [r5, 0x30]                            |         r3 = *((r5 + 0x30));
    0x00006f80 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00006f82 beq.w 0x715e                                  |             goto label_76;
                                                             |         }
    0x00006f86 ldr r3, [r5, 0x10]                            |         r3 = *((r5 + 0x10));
                                                             |     }
                                                             | label_51:
    0x00006f88 movs r3, 0x67                                 |     r3 = 0x67;
    0x00006f8a mov sb, r3                                    |     sb = r3;
                                                             | label_16:
    0x00006f8c ldr r2, [sp, 0x48]                            |     r2 = var_48h;
    0x00006f8e ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x00006f90 ldr r2, [r2, 8]                               |     r2 = *((r2 + 8));
    0x00006f92 ldr r3, [r3, 0x60]                            |     r3 = *((r3 + 0x60));
    0x00006f94 cmp r2, 0                                     |     
    0x00006f96 mov r1, r3                                    |     r1 = r3;
                                                             |     if (r2 < 0) {
    0x00006f98 blt.w 0x70de                                  |         goto label_77;
                                                             |     }
    0x00006f9c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006f9e beq.w 0x72e8                                  |         goto label_78;
                                                             |     }
    0x00006fa2 ldr r0, [r3]                                  |     r0 = *(r3);
    0x00006fa4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00006fa6 beq.w 0x70e4                                  |         goto label_20;
                                                             |     }
    0x00006faa ldrsb r0, [r0, r2]                            |     r0 = *((r0 + r2));
    0x00006fac cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00006fae blt.w 0x70e4                                  |         goto label_20;
                                                             |     }
                                                             | label_26:
    0x00006fb2 cmp r0, 8                                     |     
                                                             |     if (r0 <= 8) {
    0x00006fb4 ble 0x7098                                    |         goto label_10;
                                                             |     }
    0x00006fb6 mov r0, fp                                    |     r0 = fp;
    0x00006fb8 mov r1, r3                                    |     r1 = r3;
    0x00006fba cmp.w fp, 0                                   |     
                                                             |     if (fp == 0) {
    0x00006fbe beq.w 0x70f6                                  |         goto label_79;
                                                             |     }
                                                             | label_11:
    0x00006fc2 ldr.w r3, [pc, 0x514]                         |     
    0x00006fc6 mov.w r1, 0x1000                              |     r1 = 0x1000;
    0x00006fca add r0, sp, 0x5c                              |     r0 += var_5ch;
    0x00006fcc str.w fp, [sp]                                |     __asm ("str.w fp, [sp]");
    0x00006fd0 add r3, pc                                    |     
    0x00006fd2 mov r2, r3                                    |     r2 = r3;
    0x00006fd4 bl 0x1caac                                    |     fcn_0001caac (r0, r1, r2, r3, r4);
    0x00006fd8 ldr r3, [sp, 0x48]                            |     r3 = var_48h;
    0x00006fda ldr r2, [r3, 8]                               |     r2 = *(0xe4b6);
    0x00006fdc ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x00006fde ldr r3, [r3, 0x60]                            |     r3 = *(0xe50e);
                                                             | label_12:
    0x00006fe0 cmp r2, 0                                     |     
    0x00006fe2 mov r1, r3                                    |     r1 = r3;
                                                             |     if (r2 >= 0) {
    0x00006fe4 bge.w 0x70f6                                  |         goto label_79;
                                                             |     }
    0x00006fe8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006fea beq.w 0x721e                                  |         goto label_80;
                                                             |     }
                                                             | label_13:
    0x00006fee ldr r3, [r1, 4]                               |     r3 = *((r1 + 4));
    0x00006ff0 cmp r3, 8                                     |     
    0x00006ff2 ite le                                        |     
                                                             |     if (r3 > 8) {
    0x00006ff4 movle r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 <= 8) {
    0x00006ff6 movgt r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             | label_14:
    0x00006ff8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00006ffa beq 0x7098                                    |         goto label_10;
                                                             |     }
    0x00006ffc ldr r3, [r5, 0x30]                            |     r3 = *((r5 + 0x30));
    0x00006ffe ldr r6, [r5, 4]                               |     r6 = *((r5 + 4));
    0x00007000 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00007002 beq.w 0x71fe                                  |         goto label_81;
                                                             |     }
    0x00007006 ldr.w ip, [pc, 0x4d4]                         |     
    0x0000700a add ip, pc                                    |     ip = 0xe4ec;
                                                             | label_22:
    0x0000700c mov lr, r5                                    |     lr = r5;
    0x0000700e ldr r3, [lr, 0x10]!                           |     r3 = *((lr += 0x10));
    0x00007012 cmp r3, lr                                    |     
                                                             |     if (r3 == lr) {
    0x00007014 beq.w 0x7346                                  |         goto label_82;
                                                             |     }
    0x00007016 strh r7, [r2, 0xc]                            |     *((r2 + 0xc)) = r7;
    0x00007018 ldr.w r7, [pc, 0x4c4]                         |     
    0x0000701c add r7, pc                                    |     r7 = 0xe500;
                                                             | label_33:
    0x0000701e ldr r3, [r5, 0x10]                            |     r3 = *((r5 + 0x10));
    0x00007020 movs r4, 0                                    |     r4 = 0;
    0x00007022 cmp lr, r3                                    |     
                                                             |     if (lr == r3) {
    0x00007024 beq 0x7030                                    |         goto label_83;
                                                             |     }
                                                             |     do {
    0x00007026 ldr r1, [r3, 0xc]                             |         r1 = *((r3 + 0xc));
    0x00007028 ldr r3, [r3]                                  |         r3 = *(r3);
    0x0000702a adds r4, r1, r4                               |         r4 = r1 + r4;
    0x0000702c cmp lr, r3                                    |         
    0x0000702e bne 0x7026                                    |         
                                                             |     } while (lr != r3);
                                                             | label_83:
    0x00007030 ldr r3, [r5, 0x10]                            |     r3 = *((r5 + 0x10));
    0x00007032 movs r1, 0                                    |     r1 = 0;
    0x00007034 cmp lr, r3                                    |     
                                                             |     if (lr == r3) {
    0x00007036 beq 0x7040                                    |         goto label_84;
                                                             |     }
                                                             |     do {
    0x00007038 ldr r3, [r3]                                  |         r3 = *(r3);
    0x0000703a adds r1, 1                                    |         r1++;
    0x0000703c cmp lr, r3                                    |         
    0x0000703e bne 0x7038                                    |         
                                                             |     } while (lr != r3);
                                                             | label_84:
    0x00007040 mov r8, r5                                    |     r8 = r5;
    0x00007042 mov.w lr, 0                                   |     lr = 0;
    0x00007046 ldr r3, [r8, 0x18]!                           |     r3 = *((r8 += 0x18));
    0x0000704a cmp r8, r3                                    |     
                                                             |     if (r8 == r3) {
    0x0000704c beq 0x7058                                    |         goto label_85;
                                                             |     }
                                                             |     do {
    0x0000704e ldr r3, [r3]                                  |         r3 = *(r3);
    0x00007050 add.w lr, lr, 1                               |         lr++;
    0x00007054 cmp r8, r3                                    |         
    0x00007056 bne 0x704e                                    |         
                                                             |     } while (r8 != r3);
                                                             | label_85:
    0x00007058 add r3, sp, 0x5c                              |     r3 += var_5ch;
                                                             |     if (r0 == 0) {
    0x0000705a cbnz r0, 0x7062                               |         
    0x0000705c ldr.w r3, [pc, 0x484]                         |         
    0x00007060 add r3, pc                                    |         r3 = 0xe548;
                                                             |     }
    0x00007062 strd r1, lr, [sp, 0x1c]                       |     __asm ("strd r1, lr, [var_1ch]");
    0x00007066 ldr.w r1, [pc, 0x480]                         |     
    0x0000706a ldr.w r0, [pc, 0x480]                         |     
    0x0000706e str r3, [sp, 0x28]                            |     var_28h = r3;
    0x00007070 add r1, pc                                    |     r1 = 0xe55e;
    0x00007072 ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x00007074 str r1, [sp, 8]                               |     var_8h = r1;
    0x00007076 add r0, pc                                    |     r0 = 0xe568;
    0x00007078 ldr.w r1, [pc, 0x474]                         |     
    0x0000707c str r3, [sp, 4]                               |     var_4h = r3;
    0x0000707e movs r3, 9                                    |     r3 = 9;
    0x00007080 strd r7, r4, [sp, 0x14]                       |     __asm ("strd r7, r4, [var_14h]");
    0x00007084 add r1, pc                                    |     r1 = 0xe578;
    0x00007086 strd r6, ip, [sp, 0xc]                        |     __asm ("strd r6, ip, [var_ch]");
    0x0000708a str r1, [sp, 0x24]                            |     var_24h = r1;
    0x0000708c movw r1, 0x2d6                                |     r1 = 0x2d6;
    0x00007090 str.w sb, [sp]                                |     __asm ("str.w sb, [sp]");
    0x00007094 blx 0x4d50                                    |     loc_imp_apr_dynamic_fn_register ();
                                                             | label_10:
    0x00007098 ldr r0, [r5, 0x40]                            |     r0 = *((r5 + 0x40));
    0x0000709a blx 0x50a4                                    |     loc_imp_ap_hook_post_config ();
    0x0000709e ldr.w r2, [pc, 0x454]                         |     
    0x000070a2 add.w r1, sp, 0x1040                          |     r1 += var_1040h;
    0x000070a6 ldr r3, [pc, 0x3f0]                           |     r3 = *(0x749a);
    0x000070a8 adds r1, 0x1c                                 |     r1 += 0x1c;
    0x000070aa add r2, pc                                    |     r2 = 0xe5a4;
    0x000070ac ldr r3, [r2, r3]                              |     r3 = *(0xe5a4);
    0x000070ae ldr r2, [r3]                                  |     r2 = *(0xe5a4);
    0x000070b0 ldr r3, [r1]                                  |     r3 = *(r1);
    0x000070b2 eors r2, r3                                   |     r2 ^= r3;
    0x000070b4 mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r2 != r3) {
    0x000070b8 bne.w 0x7480                                  |         goto label_86;
                                                             |     }
    0x000070bc mov r0, sb                                    |     r0 = sb;
    0x000070be add.w sp, sp, 0x1060                          |     
    0x000070c2 add sp, 4                                     |     
    0x000070c4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |     
                                                             | label_53:
    0x000070c8 ldr r3, [r5, 0x50]                            |     r3 = *((r5 + 0x50));
    0x000070ca cmp r3, 0                                     |     
    0x000070cc it ne                                         |     
                                                             |     if (r3 == 0) {
    0x000070ce cmpne sl, 0                                   |         __asm ("cmpne sl, 0");
                                                             |         goto label_87;
                                                             |     }
                                                             |     if (r3 == 0) {
                                                             | label_87:
    0x000070d2 beq.w 0x6f64                                  |         goto label_8;
                                                             |     }
                                                             | label_72:
    0x000070d6 ldr r0, [r5, 0x54]                            |     r0 = *((r5 + 0x54));
    0x000070d8 mov r1, r5                                    |     r1 = r5;
    0x000070da blx r3                                        |     uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
    0x000070dc b 0x6f5a                                      |     goto label_9;
                                                             | label_77:
    0x000070de cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000070e0 beq.w 0x71e8                                  |         goto label_88;
                                                             |     }
                                                             | label_20:
    0x000070e4 ldr r1, [r1, 4]                               |     r1 = *((r1 + 4));
    0x000070e6 cmp r1, 8                                     |     
                                                             |     if (r1 <= 8) {
    0x000070e8 ble 0x7098                                    |         goto label_10;
                                                             |     }
    0x000070ea mov r0, fp                                    |     r0 = fp;
    0x000070ec cmp.w fp, 0                                   |     
                                                             |     if (fp != 0) {
    0x000070f0 bne.w 0x6fc2                                  |         goto label_11;
                                                             |     }
    0x000070f4 b 0x6fe0                                      |     goto label_12;
                                                             | label_79:
    0x000070f6 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000070f8 beq.w 0x7312                                  |         goto label_89;
                                                             |     }
    0x000070fc ldr r3, [r3]                                  |     r3 = *(r3);
    0x000070fe cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00007100 beq.w 0x6fee                                  |         goto label_13;
                                                             |     }
    0x00007104 ldrsb r3, [r3, r2]                            |     r3 = *((r3 + r2));
    0x00007106 cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x00007108 blt.w 0x6fee                                  |         goto label_13;
                                                             |     }
                                                             | label_30:
    0x0000710c cmp r3, 8                                     |     
    0x0000710e ite le                                        |     
                                                             |     if (r3 > 8) {
    0x00007110 movle r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 <= 8) {
    0x00007112 movgt r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00007114 b 0x6ff8                                      |     goto label_14;
                                                             | label_57:
    0x00007116 ldr r0, [r4, 0x18]                            |     r0 = *((r4 + 0x18));
    0x00007118 ldr.w r3, [fp, 0xc]                           |     r3 = *(arg_ch);
    0x0000711c ldr.w r2, [fp]                                |     r2 = *(fp);
    0x00007120 ldrd r0, r1, [r0, 4]                          |     __asm ("ldrd r0, r1, [r0, 4]");
    0x00007124 blx 0x47c0                                    |     fcn_000047c0 ();
    0x00007128 b 0x6ea2                                      |     goto label_7;
                                                             | label_59:
    0x0000712a ldr r3, [r4, 0x18]                            |     r3 = *((r4 + 0x18));
    0x0000712c ldr.w r2, [fp]                                |     r2 = *(fp);
    0x00007130 ldr r0, [sp, 0x40]                            |     r0 = var_40h;
    0x00007132 ldr r1, [r3, 4]                               |     r1 = *((r3 + 4));
    0x00007134 blx 0x4f58                                    |     r0 = fcn_00004f58 ();
                                                             |     if (r0 != 0) {
    0x00007138 cbnz r0, 0x715a                               |         goto label_61;
                                                             |     }
    0x0000713a ldr.w r1, [fp, 0xc]                           |     r1 = *(arg_ch);
    0x0000713e ldr r3, [sp, 0x3c]                            |     r3 = var_3ch;
    0x00007140 ldr r0, [r3, -0x8]                            |     r0 = *((r3 - 0x8));
    0x00007144 ldrd r2, r3, [r4, 0x10]                       |     __asm ("ldrd r2, r3, [r4, 0x10]");
    0x00007148 str r1, [sp, 4]                               |     var_4h = r1;
    0x0000714a ldr r1, [r4, 0xc]                             |     r1 = *((r4 + 0xc));
    0x0000714c str r1, [sp]                                  |     *(sp) = r1;
    0x0000714e blx 0x4bec                                    |     fcn_00004bec ();
    0x00007152 b 0x6ea2                                      |     goto label_7;
                                                             | label_75:
    0x00007154 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00007156 beq.w 0x6c50                                  |         goto label_15;
                                                             |     }
                                                             | label_61:
    0x0000715a mov sb, r0                                    |     sb = r0;
    0x0000715c b 0x6f8c                                      |     goto label_16;
                                                             | label_76:
    0x0000715e ldr r1, [r5, 0x34]                            |     r1 = *((r5 + 0x34));
                                                             |     if (r1 != 0) {
    0x00007160 cbz r1, 0x7170                                |         
    0x00007162 ldr r3, [r5, 0x10]                            |         r3 = *((r5 + 0x10));
                                                             | label_74:
    0x00007164 movw r3, 0x117e                               |         
    0x00007168 movt r3, 1                                    |         r3 = 0x1117e;
    0x0000716c mov sb, r3                                    |         sb = r3;
    0x0000716e b 0x6f8c                                      |         goto label_16;
                                                             |     }
    0x00007170 ldr r3, [sp, 0x4c]                            |     r3 = var_4ch;
    0x00007172 movs r0, 0xb                                  |     r0 = 0xb;
    0x00007174 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00007176 bne.w 0x6f70                                  |         goto label_17;
                                                             |     }
    0x0000717a ldrd lr, r3, [r5, 0x28]                       |     __asm ("ldrd lr, r3, [r5, 0x28]");
    0x0000717e ldr r2, [sp, 0x48]                            |     r2 = var_48h;
    0x00007180 ldr r0, [sp, 0x44]                            |     r0 = var_44h;
    0x00007182 cmp.w lr, 1                                   |     
    0x00007186 sbcs r4, r3, 0                                |     __asm ("sbcs r4, r3, 0");
    0x0000718a ldr r2, [r2, 8]                               |     r2 = *((r2 + 8));
    0x0000718c ldr r0, [r0, 0x60]                            |     r0 = *((r0 + 0x60));
                                                             |     if (lr < 1) {
    0x0000718e blt 0x722e                                    |         goto label_90;
                                                             |     }
    0x00007190 cmp r2, 0                                     |     
                                                             |     if (r2 < 0) {
    0x00007192 blt 0x7206                                    |         goto label_91;
                                                             |     }
    0x00007194 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00007196 beq.w 0x738a                                  |         goto label_92;
                                                             |     }
    0x0000719a ldr.w ip, [r0]                                |     ip = *(r0);
    0x0000719e cmp.w ip, 0                                   |     
                                                             |     if (ip == 0) {
    0x000071a2 beq 0x720c                                    |         goto label_93;
                                                             |     }
    0x000071a4 ldrsb.w r4, [ip, r2]                          |     r4 = *((ip + r2));
    0x000071a8 cmp r4, 0                                     |     
                                                             |     if (r4 < 0) {
    0x000071aa blt.w 0x7354                                  |         goto label_94;
                                                             |     }
    0x000071ae cmp r4, 8                                     |     
                                                             |     if (r4 > 8) {
    0x000071b0 ble 0x71c8                                    |         
                                                             | label_36:
    0x000071b2 ldrsb.w r4, [ip, r2]                          |         r4 = *((ip + r2));
    0x000071b6 cmp r4, 0                                     |         
                                                             |         if (r4 < 0) {
    0x000071b8 blt 0x7212                                    |             goto label_35;
                                                             |         }
                                                             | label_40:
    0x000071ba cmp r4, 8                                     |         
    0x000071bc ite le                                        |         
                                                             |         if (r4 > 8) {
    0x000071be movle r0, 0                                   |             r0 = 0;
                                                             |         }
                                                             |         if (r4 <= 8) {
    0x000071c0 movgt r0, 1                                   |             r0 = 1;
                                                             |         }
                                                             | label_24:
    0x000071c2 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000071c4 bne.w 0x73e0                                  |             goto label_95;
                                                             |         }
                                                             |     }
                                                             | label_23:
    0x000071c8 ldrd r1, r0, [r5, 0x40]                       |     __asm ("ldrd r1, r0, [r5, 0x40]");
    0x000071cc mov r2, lr                                    |     r2 = lr;
    0x000071ce blx 0x5174                                    |     fcn_00005174 ();
    0x000071d2 b 0x6f70                                      |     goto label_17;
                                                             | label_49:
    0x000071d4 ldr r1, [sp, 0x44]                            |     r1 = var_44h;
    0x000071d6 ldr r1, [r1, 4]                               |     r1 = *((r1 + 4));
    0x000071d8 ldr r0, [r1, 0x10]                            |     r0 = *((r1 + 0x10));
                                                             |     if (r0 == 0) {
    0x000071da cbz r0, 0x71e4                                |         goto label_96;
                                                             |     }
    0x000071dc ldrsb r0, [r0, r2]                            |     r0 = *((r0 + r2));
    0x000071de cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x000071e0 bge.w 0x6c26                                  |         goto label_18;
                                                             |     }
                                                             |     do {
                                                             | label_96:
    0x000071e4 adds r1, 0x10                                 |         r1 += 0x10;
    0x000071e6 b 0x6e68                                      |         goto label_19;
                                                             | label_88:
    0x000071e8 ldr r1, [sp, 0x44]                            |         r1 = var_44h;
    0x000071ea ldr r1, [r1, 4]                               |         r1 = *((r1 + 4));
                                                             | label_25:
    0x000071ec adds r1, 0x10                                 |         r1 += 0x10;
    0x000071ee b 0x70e4                                      |         goto label_20;
                                                             | label_69:
    0x000071f0 ldr r1, [sp, 0x44]                            |         r1 = var_44h;
    0x000071f2 ldr r1, [r1, 4]                               |         r1 = *((r1 + 4));
    0x000071f4 b 0x71e4                                      |         
                                                             |     } while (1);
                                                             | label_64:
    0x000071f6 ldr r3, [pc, 0x300]                           |     
    0x000071f8 add r3, pc                                    |     r3 = 0xe6f6;
    0x000071fa str r3, [sp, 0x30]                            |     var_30h = r3;
    0x000071fc b 0x6dce                                      |     goto label_21;
                                                             | label_81:
    0x000071fe ldr.w ip, [pc, 0x2fc]                         |     
    0x00007202 add ip, pc                                    |     ip = 0xe704;
    0x00007204 b 0x700c                                      |     goto label_22;
                                                             | label_91:
    0x00007206 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00007208 beq.w 0x73d4                                  |         goto label_97;
                                                             |     }
                                                             | label_93:
    0x0000720c ldr r4, [r0, 4]                               |     r4 = *((r0 + 4));
    0x0000720e cmp r4, 8                                     |     
                                                             |     if (r4 <= 8) {
    0x00007210 ble 0x71c8                                    |         goto label_23;
                                                             |     }
                                                             | label_35:
    0x00007212 ldr r0, [r0, 4]                               |     r0 = *((r0 + 4));
    0x00007214 cmp r0, 8                                     |     
    0x00007216 ite le                                        |     
                                                             |     if (r0 > 8) {
    0x00007218 movle r0, 0                                   |         r0 = 0;
                                                             |     }
                                                             |     if (r0 <= 8) {
    0x0000721a movgt r0, 1                                   |         r0 = 1;
                                                             |     }
    0x0000721c b 0x71c2                                      |     goto label_24;
                                                             | label_80:
    0x0000721e ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x00007220 ldr r1, [r3, 4]                               |     r1 = *((r3 + 4));
                                                             | label_29:
    0x00007222 adds r1, 0x10                                 |     r1 += 0x10;
    0x00007224 b 0x6fee                                      |     goto label_13;
                                                             | label_63:
    0x00007226 ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x00007228 ldr r1, [r3, 4]                               |     r1 = *((r3 + 4));
                                                             | label_27:
    0x0000722a adds r1, 0x10                                 |     r1 += 0x10;
    0x0000722c b 0x6daa                                      |     goto label_5;
                                                             | label_90:
    0x0000722e cmp r2, 0                                     |     
                                                             |     if (r2 < 0) {
    0x00007230 blt 0x7332                                    |         goto label_98;
                                                             |     }
    0x00007232 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00007234 beq.w 0x73b0                                  |         goto label_99;
                                                             |     }
    0x00007238 ldr.w ip, [r0]                                |     ip = *(r0);
    0x0000723c cmp.w ip, 0                                   |     
                                                             |     if (ip == 0) {
    0x00007240 beq 0x7334                                    |         goto label_100;
                                                             |     }
    0x00007242 ldrsb.w r3, [ip, r2]                          |     r3 = *((ip + r2));
    0x00007246 cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x00007248 blt.w 0x7374                                  |         goto label_101;
                                                             |     }
    0x0000724c cmp r3, 8                                     |     
                                                             |     if (r3 <= 8) {
    0x0000724e ble 0x72de                                    |         goto label_31;
                                                             |     }
                                                             | label_38:
    0x00007250 ldrsb.w r3, [ip, r2]                          |     r3 = *((ip + r2));
    0x00007254 cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x00007256 blt 0x733a                                    |         goto label_37;
                                                             |     }
                                                             | label_42:
    0x00007258 cmp r3, 8                                     |     
    0x0000725a ite le                                        |     
                                                             |     if (r3 > 8) {
    0x0000725c movle r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 <= 8) {
    0x0000725e movgt r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             | label_32:
    0x00007260 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00007262 beq 0x72de                                    |         goto label_31;
                                                             |     }
    0x00007264 ldr r3, [r5, 0x10]                            |     r3 = *((r5 + 0x10));
    0x00007266 ldr r0, [r5, 4]                               |     r0 = *((r5 + 4));
    0x00007268 cmp r3, r7                                    |     
    0x0000726a str r0, [sp, 0x30]                            |     var_30h = r0;
                                                             |     if (r3 == r7) {
    0x0000726c beq.w 0x7382                                  |         goto label_102;
                                                             |     }
    0x00007270 ldr.w ip, [pc, 0x28c]                         |     
    0x00007274 add ip, pc                                    |     ip = 0xe778;
                                                             | label_39:
    0x00007276 ldr r4, [r5, 0x10]                            |     r4 = *((r5 + 0x10));
    0x00007278 movs r3, 0                                    |     r3 = 0;
    0x0000727a cmp r4, r7                                    |     
                                                             |     if (r4 == r7) {
    0x0000727c beq 0x7288                                    |         goto label_103;
                                                             |     }
                                                             |     do {
    0x0000727e ldr r0, [r4, 0xc]                             |         r0 = *((r4 + 0xc));
    0x00007280 ldr r4, [r4]                                  |         r4 = *(r4);
    0x00007282 adds r3, r0, r3                               |         r3 = r0 + r3;
    0x00007284 cmp r4, r7                                    |         
    0x00007286 bne 0x727e                                    |         
                                                             |     } while (r4 != r7);
                                                             | label_103:
    0x00007288 ldr r0, [r5, 0x10]                            |     r0 = *((r5 + 0x10));
    0x0000728a movs r4, 0                                    |     r4 = 0;
    0x0000728c cmp r0, r7                                    |     
                                                             |     if (r0 == r7) {
    0x0000728e beq 0x7298                                    |         goto label_104;
                                                             |     }
                                                             |     do {
    0x00007290 ldr r0, [r0]                                  |         r0 = *(r0);
    0x00007292 adds r4, 1                                    |         r4++;
    0x00007294 cmp r0, r7                                    |         
    0x00007296 bne 0x7290                                    |         
                                                             |     } while (r0 != r7);
                                                             | label_104:
    0x00007298 mov lr, r5                                    |     lr = r5;
    0x0000729a ldr r0, [lr, 0x18]!                           |     r0 = *((lr += 0x18));
    0x0000729e cmp lr, r0                                    |     
                                                             |     if (lr == r0) {
    0x000072a0 beq 0x72aa                                    |         goto label_105;
                                                             |     }
                                                             |     do {
    0x000072a2 ldr r0, [r0]                                  |         r0 = *(r0);
    0x000072a4 adds r1, 1                                    |         r1++;
    0x000072a6 cmp lr, r0                                    |         
    0x000072a8 bne 0x72a2                                    |         
                                                             |     } while (lr != r0);
                                                             | label_105:
    0x000072aa strd ip, r3, [sp, 0x14]                       |     __asm ("strd ip, r3, [var_14h]");
    0x000072ae ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x000072b0 ldr r0, [pc, 0x250]                           |     
    0x000072b2 strd r4, r1, [sp, 0x1c]                       |     __asm ("strd r4, r1, [var_1ch]");
    0x000072b6 movs r1, 0xc4                                 |     r1 = 0xc4;
    0x000072b8 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x000072ba ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x000072bc add r0, pc                                    |     r0 = 0xe7c4;
    0x000072be str r3, [sp, 4]                               |     var_4h = r3;
    0x000072c0 ldr r3, [pc, 0x244]                           |     
    0x000072c2 add r3, pc                                    |     r3 = 0xe7ce;
    0x000072c4 str r3, [sp, 0x28]                            |     var_28h = r3;
    0x000072c6 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x000072c8 ldr r3, [pc, 0x240]                           |     
    0x000072ca add r3, pc                                    |     r3 = 0xe7da;
    0x000072cc str r3, [sp, 0x24]                            |     var_24h = r3;
    0x000072ce ldr r3, [pc, 0x240]                           |     
    0x000072d0 add r3, pc                                    |     r3 = 0xe7e6;
    0x000072d2 str r3, [sp, 8]                               |     var_8h = r3;
    0x000072d4 movs r3, 0                                    |     r3 = 0;
    0x000072d6 str r3, [sp]                                  |     *(sp) = r3;
    0x000072d8 movs r3, 9                                    |     r3 = 9;
    0x000072da blx 0x4d50                                    |     r0 = loc_imp_apr_dynamic_fn_register ();
                                                             | label_31:
    0x000072de ldrd r1, r0, [r5, 0x40]                       |     __asm ("ldrd r1, r0, [r5, 0x40]");
    0x000072e2 blx 0x51f8                                    |     fcn_000051f8 ();
    0x000072e6 b 0x6f70                                      |     goto label_17;
                                                             | label_78:
    0x000072e8 ldr r1, [sp, 0x44]                            |     r1 = var_44h;
    0x000072ea ldr r1, [r1, 4]                               |     r1 = *((r1 + 4));
    0x000072ec ldr r0, [r1, 0x10]                            |     r0 = *((r1 + 0x10));
    0x000072ee cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000072f0 beq.w 0x71ec                                  |         goto label_25;
                                                             |     }
    0x000072f4 ldrsb r0, [r0, r2]                            |     r0 = *((r0 + r2));
    0x000072f6 cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x000072f8 bge.w 0x6fb2                                  |         goto label_26;
                                                             |     }
    0x000072fc b 0x71ec                                      |     goto label_25;
                                                             | label_70:
    0x000072fe ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x00007300 ldr r1, [r3, 4]                               |     r1 = *((r3 + 4));
    0x00007302 ldr r3, [r1, 0x10]                            |     r3 = *((r1 + 0x10));
    0x00007304 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00007306 beq 0x722a                                    |         goto label_27;
                                                             |     }
    0x00007308 ldrsb r3, [r3, r2]                            |     r3 = *((r3 + r2));
    0x0000730a cmp r3, 0                                     |     
                                                             |     if (r3 >= 0) {
    0x0000730c bge.w 0x6e8c                                  |         goto label_28;
                                                             |     }
    0x00007310 b 0x722a                                      |     goto label_27;
                                                             | label_89:
    0x00007312 ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x00007314 ldr r1, [r3, 4]                               |     r1 = *((r3 + 4));
    0x00007316 ldr r3, [r1, 0x10]                            |     r3 = *((r1 + 0x10));
    0x00007318 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0000731a beq 0x7222                                    |         goto label_29;
                                                             |     }
    0x0000731c ldrsb r3, [r3, r2]                            |     r3 = *((r3 + r2));
    0x0000731e cmp r3, 0                                     |     
                                                             |     if (r3 >= 0) {
    0x00007320 bge.w 0x710c                                  |         goto label_30;
                                                             |     }
    0x00007324 b 0x7222                                      |     goto label_29;
                                                             | label_73:
    0x00007326 ldr r0, [r5, 0x44]                            |     r0 = *((r5 + 0x44));
    0x00007328 blx 0x46d8                                    |     loc_imp_apr_thread_cond_broadcast ();
    0x0000732a ldrd r2, r3, [r6]                             |     __asm ("ldrd r2, r3, [r6]");
    0x0000732e mov sb, r3                                    |     sb = r3;
    0x00007330 b 0x6f8c                                      |     goto label_16;
                                                             |     if (r0 == 0) {
                                                             | label_98:
    0x00007332 cbz r0, 0x7366                                |         goto label_106;
                                                             |     }
                                                             | label_100:
    0x00007334 ldr r3, [r0, 4]                               |     r3 = *((r0 + 4));
    0x00007336 cmp r3, 8                                     |     
                                                             |     if (r3 <= 8) {
    0x00007338 ble 0x72de                                    |         goto label_31;
                                                             |     }
                                                             | label_37:
    0x0000733a ldr r3, [r0, 4]                               |     r3 = *((r0 + 4));
    0x0000733c cmp r3, 8                                     |     
    0x0000733e ite le                                        |     
                                                             |     if (r3 > 8) {
    0x00007340 movle r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 <= 8) {
    0x00007342 movgt r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00007344 b 0x7260                                      |     goto label_32;
                                                             | label_82:
    0x00007346 ldr r7, [pc, 0x1cc]                           |     
    0x00007348 add r7, pc                                    |     r7 = 0xe862;
    0x0000734a b 0x701e                                      |     goto label_33;
                                                             | label_65:
    0x0000734c ldr.w lr, [pc, 0x1c8]                         |     
    0x00007350 add lr, pc                                    |     lr = 0xe86c;
    0x00007352 b 0x6de0                                      |     goto label_34;
                                                             | label_94:
    0x00007354 ldr r4, [r0, 4]                               |     r4 = *((r0 + 4));
    0x00007356 cmp r4, 8                                     |     
                                                             |     if (r4 <= 8) {
    0x00007358 ble.w 0x71c8                                  |         goto label_23;
                                                             |     }
    0x0000735c cmp.w ip, 0                                   |     
                                                             |     if (ip == 0) {
    0x00007360 beq.w 0x7212                                  |         goto label_35;
                                                             |     }
    0x00007364 b 0x71b2                                      |     goto label_36;
                                                             | label_106:
    0x00007366 ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x00007368 ldr r0, [r3, 4]                               |     r0 = *((r3 + 4));
    0x0000736a ldr r3, [r0, 0x14]                            |     r3 = *((r0 + 0x14));
    0x0000736c cmp r3, 8                                     |     
                                                             |     if (r3 <= 8) {
    0x0000736e ble 0x72de                                    |         goto label_31;
                                                             |     }
                                                             | label_41:
    0x00007370 adds r0, 0x10                                 |     r0 += 0x10;
    0x00007372 b 0x733a                                      |     goto label_37;
                                                             | label_101:
    0x00007374 ldr r3, [r0, 4]                               |     r3 = *((r0 + 4));
    0x00007376 cmp r3, 8                                     |     
                                                             |     if (r3 <= 8) {
    0x00007378 ble 0x72de                                    |         goto label_31;
                                                             |     }
    0x0000737a cmp.w ip, 0                                   |     
                                                             |     if (ip == 0) {
    0x0000737e beq 0x733a                                    |         goto label_37;
                                                             |     }
    0x00007380 b 0x7250                                      |     goto label_38;
                                                             | label_102:
    0x00007382 ldr.w ip, [pc, 0x198]                         |     
    0x00007386 add ip, pc                                    |     ip = 0xe8a8;
    0x00007388 b 0x7276                                      |     goto label_39;
                                                             | label_92:
    0x0000738a ldr r0, [sp, 0x44]                            |     r0 = var_44h;
    0x0000738c ldr r0, [r0, 4]                               |     r0 = *((r0 + 4));
    0x0000738e ldr r4, [r0, 0x10]                            |     r4 = *((r0 + 0x10));
    0x00007390 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00007392 beq 0x7464                                    |         goto label_107;
                                                             |     }
    0x00007394 ldrsb r4, [r4, r2]                            |     r4 = *((r4 + r2));
    0x00007396 cmp r4, 0                                     |     
                                                             |     if (r4 < 0) {
    0x00007398 blt 0x7464                                    |         goto label_107;
                                                             |     }
    0x0000739a cmp r4, 8                                     |     
                                                             |     if (r4 <= 8) {
    0x0000739c ble.w 0x71c8                                  |         goto label_23;
                                                             |     }
                                                             | label_45:
    0x000073a0 ldr r4, [r0, 0x10]                            |     r4 = *((r0 + 0x10));
                                                             |     if (r4 == 0) {
    0x000073a2 cbz r4, 0x73ac                                |         goto label_43;
                                                             |     }
    0x000073a4 ldrsb r4, [r4, r2]                            |     r4 = *((r4 + r2));
    0x000073a6 cmp r4, 0                                     |     
                                                             |     if (r4 >= 0) {
    0x000073a8 bge.w 0x71ba                                  |         goto label_40;
                                                             |     }
                                                             | label_43:
    0x000073ac adds r0, 0x10                                 |     r0 += 0x10;
    0x000073ae b 0x7212                                      |     goto label_35;
                                                             | label_99:
    0x000073b0 ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x000073b2 ldr r0, [r3, 4]                               |     r0 = *((r3 + 4));
    0x000073b4 ldr r3, [r0, 0x10]                            |     r3 = *((r0 + 0x10));
    0x000073b6 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000073b8 beq 0x746c                                    |         goto label_108;
                                                             |     }
    0x000073ba ldrsb r3, [r3, r2]                            |     r3 = *((r3 + r2));
    0x000073bc cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x000073be blt 0x746c                                    |         goto label_108;
                                                             |     }
    0x000073c0 cmp r3, 8                                     |     
                                                             |     if (r3 <= 8) {
    0x000073c2 ble 0x72de                                    |         goto label_31;
                                                             |     }
                                                             | label_46:
    0x000073c4 ldr r3, [r0, 0x10]                            |     r3 = *((r0 + 0x10));
    0x000073c6 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000073c8 beq 0x7370                                    |         goto label_41;
                                                             |     }
    0x000073ca ldrsb r3, [r3, r2]                            |     r3 = *((r3 + r2));
    0x000073cc cmp r3, 0                                     |     
                                                             |     if (r3 >= 0) {
    0x000073ce bge.w 0x7258                                  |         goto label_42;
                                                             |     }
    0x000073d2 b 0x7370                                      |     goto label_41;
                                                             | label_97:
    0x000073d4 ldr r0, [sp, 0x44]                            |     r0 = var_44h;
    0x000073d6 ldr r0, [r0, 4]                               |     r0 = *((r0 + 4));
    0x000073d8 ldr r4, [r0, 0x14]                            |     r4 = *((r0 + 0x14));
    0x000073da cmp r4, 8                                     |     
                                                             |     if (r4 > 8) {
    0x000073dc bgt 0x73ac                                    |         goto label_43;
                                                             |     }
    0x000073de b 0x71c8                                      |     goto label_23;
                                                             | label_95:
    0x000073e0 ldr r3, [r5, 0x10]                            |     r3 = *((r5 + 0x10));
    0x000073e2 ldr r0, [r5, 4]                               |     r0 = *((r5 + 4));
    0x000073e4 cmp r3, r7                                    |     
    0x000073e6 str r0, [sp, 0x30]                            |     var_30h = r0;
                                                             |     if (r3 == r7) {
    0x000073e8 beq 0x7478                                    |         goto label_109;
                                                             |     }
    0x000073ea ldr.w ip, [pc, 0x134]                         |     
    0x000073ee add ip, pc                                    |     ip = 0xe914;
                                                             | label_47:
    0x000073f0 ldr r4, [r5, 0x10]                            |     r4 = *((r5 + 0x10));
    0x000073f2 movs r3, 0                                    |     r3 = 0;
    0x000073f4 cmp r4, r7                                    |     
                                                             |     if (r4 == r7) {
    0x000073f6 beq 0x7402                                    |         goto label_110;
                                                             |     }
                                                             |     do {
    0x000073f8 ldr r0, [r4, 0xc]                             |         r0 = *((r4 + 0xc));
    0x000073fa ldr r4, [r4]                                  |         r4 = *(r4);
    0x000073fc adds r3, r0, r3                               |         r3 = r0 + r3;
    0x000073fe cmp r4, r7                                    |         
    0x00007400 bne 0x73f8                                    |         
                                                             |     } while (r4 != r7);
                                                             | label_110:
    0x00007402 ldr r0, [r5, 0x10]                            |     r0 = *((r5 + 0x10));
    0x00007404 movs r4, 0                                    |     r4 = 0;
    0x00007406 cmp r0, r7                                    |     
                                                             |     if (r0 == r7) {
    0x00007408 beq 0x7412                                    |         goto label_111;
                                                             |     }
                                                             |     do {
    0x0000740a ldr r0, [r0]                                  |         r0 = *(r0);
    0x0000740c adds r4, 1                                    |         r4++;
    0x0000740e cmp r0, r7                                    |         
    0x00007410 bne 0x740a                                    |         
                                                             |     } while (r0 != r7);
                                                             | label_111:
    0x00007412 mov lr, r5                                    |     lr = r5;
    0x00007414 ldr r0, [lr, 0x18]!                           |     r0 = *((lr += 0x18));
    0x00007416 lsrs r0, r3, 0x1c                             |     r0 = r3 >> 0x1c;
    0x00007418 cmp r0, lr                                    |     
                                                             |     if (r0 == lr) {
    0x0000741a beq 0x7424                                    |         goto label_112;
                                                             |     }
                                                             |     do {
    0x0000741c ldr r0, [r0]                                  |         r0 = *(r0);
    0x0000741e adds r1, 1                                    |         r1++;
    0x00007420 cmp r0, lr                                    |         
    0x00007422 bne 0x741c                                    |         
                                                             |     } while (r0 != lr);
                                                             | label_112:
    0x00007424 strd ip, r3, [sp, 0x14]                       |     __asm ("strd ip, r3, [var_14h]");
    0x00007428 ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x0000742a ldr r0, [pc, 0xf8]                            |     
    0x0000742c strd r4, r1, [sp, 0x1c]                       |     __asm ("strd r4, r1, [var_1ch]");
    0x00007430 movs r1, 0xc0                                 |     r1 = 0xc0;
    0x00007432 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00007434 ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x00007436 add r0, pc                                    |     r0 = 0xe960;
    0x00007438 str r3, [sp, 4]                               |     var_4h = r3;
    0x0000743a ldr r3, [pc, 0xec]                            |     
    0x0000743c add r3, pc                                    |     r3 = 0xe96a;
    0x0000743e str r3, [sp, 0x28]                            |     var_28h = r3;
    0x00007440 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x00007442 ldr r3, [pc, 0xe8]                            |     
    0x00007444 add r3, pc                                    |     r3 = 0xe976;
    0x00007446 str r3, [sp, 0x24]                            |     var_24h = r3;
    0x00007448 ldr r3, [pc, 0xe4]                            |     
    0x0000744a add r3, pc                                    |     r3 = 0xe97e;
    0x0000744c str r3, [sp, 8]                               |     var_8h = r3;
    0x0000744e movs r3, 0                                    |     r3 = 0;
    0x00007450 str r3, [sp]                                  |     *(sp) = r3;
    0x00007452 movs r3, 9                                    |     r3 = 9;
    0x00007454 blx 0x4d50                                    |     loc_imp_apr_dynamic_fn_register ();
    0x00007458 ldrd lr, r3, [r5, 0x28]                       |     __asm ("ldrd lr, r3, [r5, 0x28]");
    0x0000745c b 0x71c8                                      |     goto label_23;
                                                             | label_66:
    0x0000745e mov.w ip, 0                                   |     
    0x00007462 b 0x6df6                                      |     goto label_44;
                                                             | label_107:
    0x00007464 ldr r4, [r0, 0x14]                            |     r4 = *((r0 + 0x14));
    0x00007466 cmp r4, 8                                     |     
                                                             |     if (r4 > 8) {
    0x00007468 bgt 0x73a0                                    |         goto label_45;
                                                             |     }
    0x0000746a b 0x71c8                                      |     goto label_23;
                                                             | label_108:
    0x0000746c ldr r3, [r0, 0x14]                            |     r3 = *((r0 + 0x14));
    0x0000746e cmp r3, 8                                     |     
                                                             |     if (r3 > 8) {
    0x00007470 bgt 0x73c4                                    |         goto label_46;
                                                             |     }
    0x00007472 b 0x72de                                      |     goto label_31;
                                                             | label_71:
    0x00007474 ldr r2, [r4, 0xc]                             |     r2 = *((r4 + 0xc));
    0x00007476 b 0x6cb8                                      |     goto label_1;
                                                             | label_109:
    0x00007478 ldr.w ip, [pc, 0xb8]                          |     
    0x0000747c add ip, pc                                    |     ip = 0xe9b4;
    0x0000747e b 0x73f0                                      |     goto label_47;
                                                             | label_86:
    0x00007480 blx 0x4d80                                    |     loc_imp_apr_file_read ();
                                                             | label_52:
    0x00007484 ldr r1, [pc, 0xb0]                            |     
    0x00007486 movw r2, 0x256                                |     r2 = 0x256;
    0x0000748a ldr r0, [pc, 0xb0]                            |     
    0x0000748c add r1, pc                                    |     r1 = 0xe9c8;
    0x0000748e add r0, pc                                    |     r0 = 0xe9d0;
    0x00007490 blx 0x4e40                                    |     loc_imp_apr_socket_create ();
    0x00007494 lsrs r0, r7, 0x1d                             |     r0 = r7 >> 0x1d;
    0x00007496 movs r2, r0                                   |     r2 = r0;
    0x00007498 lsls r4, r6, 0x10                             |     r4 = r6 << 0x10;
    0x0000749a movs r0, r0                                   |     
    0x0000749c lsrs r2, r1, 0x1d                             |     r2 = r1 >> 0x1d;
    0x0000749e movs r2, r0                                   |     r2 = r0;
    0x000074a0 lsls r0, r1, 0x12                             |     r0 = r1 << 0x12;
    0x000074a2 movs r0, r0                                   |     
    0x000074a4 lsls r4, r5, 0x10                             |     r4 = r5 << 0x10;
    0x000074a6 movs r0, r0                                   |     
    0x000074a8 lsls r4, r6, 0x12                             |     r4 = r6 << 0x12;
    0x000074aa movs r0, r0                                   |     
    0x000074ac lsls r0, r6, 0x12                             |     r0 = r6 << 0x12;
    0x000074ae movs r0, r0                                   |     
    0x000074b0 lsls r4, r0, 0x12                             |     r4 = r0 << 0x12;
    0x000074b2 movs r0, r0                                   |     
    0x000074b4 lsls r4, r3, 0x11                             |     r4 = r3 << 0x11;
    0x000074b6 movs r0, r0                                   |     
    0x000074b8 lsls r0, r7, 0x10                             |     r0 = r7 << 0x10;
    0x000074ba movs r0, r0                                   |     
    0x000074bc pop {r1, r2, r3, r7, pc}                      |     
                                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0x75b0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000075b0 ()              | void fcn_000075b0 (int16_t arg1) {
                                         |     r0 = arg1;
    0x000075b0 invalid                   |     
    0x000075b4 ldr r0, [r0, 0x40]        |     r0 = *((r0 + 0x40));
    0x000075b6 movs r4, 0                |     r4 = 0;
    0x000075b8 mov r5, r4                |     r5 = r4;
    0x000075ba blx 0x4c9c                |     nghttp2_option_set_peer_max_concurrent_streams ();
    0x000075be mov r1, r6                |     r1 = r6;
    0x000075c0 ldr r3, [r1, 0x10]!       |     r3 = *((r1 += 0x10));
    0x000075c4 cmp r3, r1                |     
                                         |     if (r3 == r1) {
    0x000075c6 beq 0x75d6                |         goto label_0;
                                         |     }
                                         |     do {
    0x000075c8 ldr r2, [r3, 0xc]         |         r2 = *((r3 + 0xc));
    0x000075ca ldr r3, [r3]              |         r3 = *(r3);
    0x000075cc adds r4, r2, r4           |         r4 = r2 + r4;
    0x000075ce adc r5, r5, 0             |         __asm ("adc r5, r5, 0");
    0x000075d2 cmp r3, r1                |         
    0x000075d4 bne 0x75c8                |         
                                         |     } while (r3 != r1);
                                         | label_0:
    0x000075d6 ldr r0, [r6, 0x40]        |     r0 = *((r6 + 0x40));
    0x000075d8 blx 0x50a4                |     loc_imp_ap_hook_post_config ();
    0x000075dc mov r0, r4                |     r0 = r4;
    0x000075de mov r1, r5                |     r1 = r5;
    0x000075e0 pop {r4, r5, r6, pc}      |     
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0x8224 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00008224 ()                  | void fcn_00008224 (int16_t arg1) {
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
    0x00008224 invalid                       |     
    0x00008228 ldr r0, [r0, 0x5c]            |     r0 = *((r0 + 0x5c));
    0x0000822a sub sp, 8                     |     
    0x0000822c ldr r2, [pc, 0x4c]            |     
    0x0000822e add r2, pc                    |     r2 = 0x104ae;
                                             |     if (r0 != 0) {
    0x00008230 cbz r0, 0x8236                |         
    0x00008232 ldr r1, [r4, 0x64]            |         r1 = *((r4 + 0x64));
                                             |         if (r1 != 0) {
    0x00008234 cbnz r1, 0x823a               |             goto label_0;
                                             |         }
                                             |     }
    0x00008236 add sp, 8                     |     
    0x00008238 pop {r4, r5, r6, pc}          |     
                                             | label_0:
    0x0000823a ldr r3, [r4]                  |     r3 = *(r4);
    0x0000823c ldr r5, [pc, 0x40]            |     r5 = *(0x8280);
    0x0000823e ldr r3, [r3, 8]               |     r3 = *((r3 + 8));
    0x00008240 ldr r2, [r2, r5]              |     r2 = *((r2 + r5));
    0x00008242 movs r5, 0                    |     r5 = 0;
    0x00008244 ldr r3, [r3, 0x40]            |     r3 = *((r3 + 0x40));
    0x00008246 str r2, [sp, 4]               |     var_4h = r2;
    0x00008248 blx 0x4fe0                    |     fcn_00004fe0 ();
    0x0000824c ldr r2, [r4, 4]               |     r2 = *((r4 + 4));
    0x0000824e ldr r1, [r4, 0x64]            |     r1 = *((r4 + 0x64));
    0x00008250 vmov.i32 d16, 0               |     __asm ("vmov.i32 d16, 0");
    0x00008254 adds r3, r2, 4                |     r3 = r2 + 4;
    0x00008256 str r3, [r0]                  |     *(r0) = r3;
    0x00008258 ldr r3, [r2, 8]               |     r3 = *((r2 + 8));
    0x0000825a str r3, [r0, 4]               |     *((r0 + 4)) = r3;
    0x0000825c ldr r3, [r4, 0x48]            |     r3 = *((r4 + 0x48));
    0x0000825e ldr r6, [r2, 8]               |     r6 = *((r2 + 8));
    0x00008260 adds r3, r3, r1               |     r3 += r1;
    0x00008262 ldr r1, [r4, 0x4c]            |     r1 = *((r4 + 0x4c));
    0x00008264 str r0, [r6]                  |     *(r6) = r0;
    0x00008266 str r0, [r2, 8]               |     *((r2 + 8)) = r0;
    0x00008268 adc r1, r1, 0                 |     __asm ("adc r1, r1, 0");
    0x0000826c str r5, [r4, 0x5c]            |     *((r4 + 0x5c)) = r5;
    0x0000826e strd r3, r1, [r4, 0x48]       |     __asm ("strd r3, r1, [r4, 0x48]");
    0x00008272 vstr d16, [r4, 0x60]          |     __asm ("vstr d16, [r4, 0x60]");
    0x00008276 add sp, 8                     |     
    0x00008278 pop {r4, r5, r6, pc}          |     
                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0xb0f4 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0000b0f4 ()                                          | void fcn_0000b0f4 (int16_t arg_c8h, int16_t arg_cch, int16_t arg_d0h, int16_t arg_2040h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_0h_2;
                                                                     |     int16_t var_4h_2;
                                                                     |     int16_t var_sp_8h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_28h;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_30h;
                                                                     |     int16_t var_34h;
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_10h_2;
                                                                     |     int16_t var_4ch;
                                                                     |     int16_t var_50h;
                                                                     |     int16_t var_1ch_2;
                                                                     |     int32_t var_4h_3;
                                                                     |     int16_t var_9ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0000b0f4 svcmi 0xf0e92d                                        |     __asm ("svcmi 0xf0e92d");
    0x0000b0f8 mov r5, r2                                            |     r5 = r2;
    0x0000b0fa sub sp, 0xa4                                          |     
    0x0000b0fc ldr r2, [pc, 0x11c]                                   |     
    0x0000b0fe mov sl, r3                                            |     sl = r3;
    0x0000b100 add.w fp, sp, 0x1c                                    |     
    0x0000b104 ldr r6, [sp, 0xc8]                                    |     r6 = *(arg_c8h);
    0x0000b106 mov sb, r0                                            |     sb = r0;
    0x0000b108 ldr r3, [pc, 0x114]                                   |     r3 = *(0xb220);
    0x0000b10a add r2, pc                                            |     r2 = 0x1632a;
    0x0000b10c ldr r7, [sp, 0xcc]                                    |     r7 = *(arg_cch);
    0x0000b10e mov r4, r1                                            |     r4 = r1;
    0x0000b110 str r6, [sp]                                          |     *(sp) = r6;
    0x0000b112 movs r1, 0x80                                         |     r1 = 0x80;
    0x0000b114 ldr r3, [r2, r3]                                      |     
    0x0000b116 mov r0, fp                                            |     r0 = fp;
    0x0000b118 ldr r2, [pc, 0x108]                                   |     
    0x0000b11a ldr.w r8, [sp, 0xd0]                                  |     r8 = *(arg_d0h);
    0x0000b11e ldr r3, [r3]                                          |     r3 = *(0x1632a);
    0x0000b120 str r3, [sp, 0x9c]                                    |     var_9ch = r3;
    0x0000b122 mov.w r3, 0                                           |     r3 = 0;
    0x0000b126 str r7, [sp, 4]                                       |     var_4h = r7;
    0x0000b128 add r2, pc                                            |     r2 = 0x16350;
    0x0000b12a blx 0x5054                                            |     fcn_00005054 ();
    0x0000b12e ldr r3, [r5, 0xc]                                     |     r3 = *((r5 + 0xc));
    0x0000b130 mov r1, r0                                            |     r1 = r0;
    0x0000b132 movs r2, 0                                            |     r2 = 0;
    0x0000b134 mov r0, fp                                            |     r0 = fp;
    0x0000b136 blx 0x4fe0                                            |     r0 = fcn_00004fe0 ();
    0x0000b13a str.w sl, [r0]                                        |     __asm ("str.w sl, [r0]");
    0x0000b13e movs r1, 2                                            |     r1 = 2;
    0x0000b140 ldr.w r3, [sl, 4]                                     |     r3 = *((sl + 4));
    0x0000b144 ldr r2, [r5, 0xc]                                     |     r2 = *((r5 + 0xc));
    0x0000b146 str r3, [r0, 4]                                       |     var_4h_3 = r3;
    0x0000b148 ldr.w r3, [sl, 4]                                     |     r3 = *((sl + 4));
    0x0000b14c str r0, [r3]                                          |     *(r3) = r0;
    0x0000b14e str.w r0, [sl, 4]                                     |     __asm ("str.w r0, [sl, 4]");
    0x0000b152 ldr r0, [pc, 0xd4]                                    |     
    0x0000b154 add r0, pc                                            |     r0 = 0x16382;
    0x0000b156 blx 0x4e4c                                            |     loc_imp_ap_hook_child_stopping ();
    0x0000b15a ldr r3, [pc, 0xd0]                                    |     
    0x0000b15c add r3, pc                                            |     r3 = 0x1638e;
    0x0000b15e cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x0000b162 beq 0xb1ee                                            |         goto label_54;
                                                                     |     }
    0x0000b164 str.w r8, [r0]                                        |     __asm ("str.w r8, [r0]");
    0x0000b168 ldr.w r2, [r8, 4]                                     |     r2 = *((r8 + 4));
    0x0000b16c str r2, [r0, 4]                                       |     *((r0 + 4)) = r2;
    0x0000b16e ldr.w r2, [r8, 4]                                     |     r2 = *((r8 + 4));
    0x0000b172 str r0, [r2]                                          |     *(r2) = r0;
    0x0000b174 str.w r0, [r8, 4]                                     |     __asm ("str.w r0, [r8, 4]");
                                                                     | label_1:
    0x0000b178 ldr r2, [r4, 0x10]                                    |     r2 = *((r4 + 0x10));
    0x0000b17a adds r1, r6, r2                                       |     r1 = r6 + r2;
    0x0000b17c ldr r2, [r4, 0x14]                                    |     r2 = *((r4 + 0x14));
    0x0000b17e str r1, [r4, 0x10]                                    |     *((r4 + 0x10)) = r1;
    0x0000b180 adc.w r7, r7, r2                                      |     __asm ("adc.w r7, r7, r2");
    0x0000b184 ldr r2, [pc, 0xa8]                                    |     r2 = *(0xb230);
    0x0000b186 str r7, [r4, 0x14]                                    |     *((r4 + 0x14)) = r7;
    0x0000b188 ldr r3, [r3, r2]                                      |     r3 = *((r3 + r2));
    0x0000b18a ldr r2, [r3, 8]                                       |     r2 = *((r3 + 8));
    0x0000b18c ldr.w r3, [sb, 0x60]                                  |     r3 = *((sb + 0x60));
    0x0000b190 cmp r2, 0                                             |     
                                                                     |     if (r2 < 0) {
    0x0000b192 blt 0xb1c0                                            |         goto label_55;
                                                                     |     }
    0x0000b194 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000b196 beq 0xb1fe                                            |         goto label_56;
                                                                     |     }
    0x0000b198 ldr r0, [r3]                                          |     r0 = *(r3);
                                                                     |     if (r0 == 0) {
    0x0000b19a cbz r0, 0xb1c2                                        |         goto label_3;
                                                                     |     }
    0x0000b19c ldrsb r0, [r0, r2]                                    |     r0 = *((r0 + r2));
    0x0000b19e cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0000b1a0 blt 0xb1c2                                            |         goto label_3;
                                                                     |     }
                                                                     | label_2:
    0x0000b1a2 cmp r0, 8                                             |     
                                                                     |     if (r0 > 8) {
    0x0000b1a4 bgt 0xb1c8                                            |         goto label_57;
                                                                     |     }
                                                                     |     do {
                                                                     | label_0:
    0x0000b1a6 ldr r2, [pc, 0x8c]                                    |         
    0x0000b1a8 ldr r3, [pc, 0x74]                                    |         r3 = *(0xb220);
    0x0000b1aa add r2, pc                                            |         r2 = 0x163e4;
    0x0000b1ac ldr r3, [r2, r3]                                      |         r3 = *(0x163e4);
    0x0000b1ae ldr r2, [r3]                                          |         r2 = *(0x163e4);
    0x0000b1b0 ldr r3, [sp, 0x9c]                                    |         r3 = var_9ch;
    0x0000b1b2 eors r2, r3                                           |         r2 ^= r3;
    0x0000b1b4 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0000b1b8 bne 0xb216                                            |             goto label_58;
                                                                     |         }
    0x0000b1ba add sp, 0xa4                                          |         
    0x0000b1bc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     |         if (r3 == 0) {
                                                                     | label_55:
    0x0000b1c0 cbz r3, 0xb210                                        |             goto label_59;
                                                                     |         }
                                                                     | label_3:
    0x0000b1c2 ldr r3, [r3, 4]                                       |         r3 = *((r3 + 4));
    0x0000b1c4 cmp r3, 8                                             |         
    0x0000b1c6 ble 0xb1a6                                            |         
                                                                     |     } while (r3 <= 8);
                                                                     | label_57:
    0x0000b1c8 ldr r0, [r4]                                          |     r0 = *(r4);
    0x0000b1ca movs r4, 0                                            |     r4 = 0;
    0x0000b1cc str r1, [sp, 0x14]                                    |     var_4ch = r1;
    0x0000b1ce movs r3, 9                                            |     r3 = 9;
    0x0000b1d0 ldr r1, [pc, 0x64]                                    |     
    0x0000b1d2 str r6, [sp, 0x10]                                    |     var_10h_2 = r6;
    0x0000b1d4 str.w sb, [sp, 4]                                     |     __asm ("str.w sb, [var_4h]");
    0x0000b1d8 add r1, pc                                            |     r1 = 0x16414;
    0x0000b1da str r4, [sp]                                          |     *(sp) = r4;
    0x0000b1dc strd r1, r0, [sp, 8]                                  |     __asm ("strd r1, r0, [sp, 8]");
    0x0000b1e0 movw r1, 0x319                                        |     r1 = 0x319;
    0x0000b1e4 ldr r0, [pc, 0x54]                                    |     
    0x0000b1e6 add r0, pc                                            |     r0 = 0x16426;
    0x0000b1e8 blx 0x4d50                                            |     loc_imp_apr_dynamic_fn_register ();
    0x0000b1ec b 0xb1a6                                              |     goto label_0;
                                                                     | label_54:
    0x0000b1ee adds r2, r5, 4                                        |     r2 = r5 + 4;
    0x0000b1f0 str r2, [r0]                                          |     *(r0) = r2;
    0x0000b1f2 ldr r2, [r5, 8]                                       |     r2 = *((r5 + 8));
    0x0000b1f4 str r2, [r0, 4]                                       |     *((r0 + 4)) = r2;
    0x0000b1f6 ldr r2, [r5, 8]                                       |     r2 = *((r5 + 8));
    0x0000b1f8 str r0, [r2]                                          |     *(r2) = r0;
    0x0000b1fa str r0, [r5, 8]                                       |     *((r5 + 8)) = r0;
    0x0000b1fc b 0xb178                                              |     goto label_1;
                                                                     | label_56:
    0x0000b1fe ldr.w r3, [sb, 4]                                     |     r3 = *((sb + 4));
    0x0000b202 ldr r0, [r3, 0x10]                                    |     r0 = *((r3 + 0x10));
                                                                     |     if (r0 == 0) {
    0x0000b204 cbz r0, 0xb20c                                        |         goto label_60;
                                                                     |     }
    0x0000b206 ldrsb r0, [r0, r2]                                    |     r0 = *((r0 + r2));
    0x0000b208 cmp r0, 0                                             |     
                                                                     |     if (r0 >= 0) {
    0x0000b20a bge 0xb1a2                                            |         goto label_2;
                                                                     |     }
                                                                     |     do {
                                                                     | label_60:
    0x0000b20c adds r3, 0x10                                         |         r3 += 0x10;
    0x0000b20e b 0xb1c2                                              |         goto label_3;
                                                                     | label_59:
    0x0000b210 ldr.w r3, [sb, 4]                                     |         r3 = *((sb + 4));
    0x0000b214 b 0xb20c                                              |         
                                                                     |     } while (1);
                                                                     | label_58:
    0x0000b216 blx 0x4d80                                            |     loc_imp_apr_file_read ();
    0x0000b21a nop                                                   |     
    0x0000b21c ldm r2!, {r1, r3, r4, r5}                             |     r1 = *(r2!);
                                                                     |     r3 = *((r2! + 4));
                                                                     |     r4 = *((r2! + 8));
                                                                     |     r5 = *((r2! + 12));
    0x0000b21e movs r1, r0                                           |     r1 = r0;
    0x0000b220 lsls r4, r6, 0x10                                     |     r4 = r6 << 0x10;
    0x0000b222 movs r0, r0                                           |     
    0x0000b224 ldr r2, [pc, 0x3d0]                                   |     r2 = *(0xb5f8);
    0x0000b226 movs r1, r0                                           |     r1 = r0;
    0x0000b228 ldr r2, [pc, 0x330]                                   |     r2 = *(0xb55c);
    0x0000b22a movs r1, r0                                           |     r1 = r0;
    0x0000b22c ldm r1!, {r3, r5, r6, r7}                             |     r3 = *(r1!);
                                                                     |     r5 = *((r1! + 4));
                                                                     |     r6 = *((r1! + 8));
                                                                     |     r7 = *((r1! + 12));
    0x0000b22e movs r1, r0                                           |     r1 = r0;
    0x0000b230 lsls r0, r1, 0x12                                     |     r0 = r1 << 0x12;
    0x0000b232 movs r0, r0                                           |     
    0x0000b234 ldm r1, {r1, r3, r4, r7}                              |     r1 = *(r1);
                                                                     |     r3 = *((r1 + 4));
                                                                     |     r4 = *((r1 + 8));
                                                                     |     r7 = *((r1 + 12));
    0x0000b236 movs r1, r0                                           |     r1 = r0;
    0x0000b238 ldr r2, [pc, 0x230]                                   |     r2 = *(0xb46c);
    0x0000b23a movs r1, r0                                           |     r1 = r0;
    0x0000b23c ldr r2, [pc, 0xf8]                                    |     r2 = *(0xb338);
    0x0000b23e movs r1, r0                                           |     r1 = r0;
    0x0000b240 ldr.w r2, [pc, 0xa40]                                 |     
    0x0000b244 ldr.w r3, [pc, 0xa40]                                 |     r3 = *(0xbc88);
    0x0000b248 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0000b24c mov r6, r0                                            |     r6 = r0;
    0x0000b24e add r2, pc                                            |     r2 = 0x16ed6;
    0x0000b250 sub.w sp, sp, 0x2040                                  |     
    0x0000b254 sub sp, 0x14                                          |     
    0x0000b256 mov r8, r1                                            |     r8 = r1;
    0x0000b258 ldr r0, [r0, 0x10]                                    |     r0 = *((r0 + 0x10));
    0x0000b25a add.w r1, sp, 0x2040                                  |     r1 += arg_2040h;
    0x0000b25e ldr.w r5, [pc, 0xa2c]                                 |     
    0x0000b262 adds r1, 0xc                                          |     r1 += 0xc;
    0x0000b264 ldr r3, [r2, r3]                                      |     
    0x0000b266 add r5, pc                                            |     r5 = 0x16ef8;
    0x0000b268 ldr r3, [r3]                                          |     r3 = *(0x16ed6);
    0x0000b26a str r3, [r1]                                          |     *(r1) = r3;
    0x0000b26c mov.w r3, 0                                           |     r3 = 0;
    0x0000b270 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b272 beq.w 0xbc6e                                          |         goto label_61;
                                                                     |     }
    0x0000b276 ldr.w r3, [pc, 0xa18]                                 |     r3 = *(0xbc92);
    0x0000b27a ldr r2, [r0, 0x2c]                                    |     r2 = *((r0 + 0x2c));
    0x0000b27c ldr.w fp, [r5, r3]                                    |     fp = *((r5 + r3));
    0x0000b280 ldr.w r3, [fp, 8]                                     |     r3 = var_8h;
    0x0000b284 ldr.w r2, [r2, r3, lsl 2]                             |     offset_0 = r3 << 2;
                                                                     |     r2 = *((r2 + offset_0));
    0x0000b288 str r2, [sp, 0x28]                                    |     var_28h = r2;
    0x0000b28a cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0000b28c beq.w 0xbc6e                                          |         goto label_61;
                                                                     |     }
    0x0000b290 cmp r3, 0                                             |     
    0x0000b292 ldr r2, [r0, 0x60]                                    |     r2 = *((r0 + 0x60));
                                                                     |     if (r3 < 0) {
    0x0000b294 blt.w 0xb4dc                                          |         goto label_62;
                                                                     |     }
    0x0000b296 strh r2, [r4, 8]                                      |     *((r4 + 8)) = r2;
    0x0000b298 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0000b29a beq.w 0xbab8                                          |         goto label_63;
                                                                     |     }
    0x0000b29e ldr r1, [r2]                                          |     r1 = *(r2);
    0x0000b2a0 cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0000b2a2 beq.w 0xb4e2                                          |         goto label_37;
                                                                     |     }
    0x0000b2a6 ldrsb r3, [r1, r3]                                    |     r3 = *((r1 + r3));
    0x0000b2a8 cmp r3, 0                                             |     
                                                                     |     if (r3 < 0) {
    0x0000b2aa blt.w 0xb4e2                                          |         goto label_37;
                                                                     |     }
                                                                     | label_36:
    0x0000b2ae cmp r3, 8                                             |     
    0x0000b2b0 ite le                                                |     
                                                                     |     if (r3 > 8) {
    0x0000b2b2 movle r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r3 <= 8) {
    0x0000b2b4 movgt r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     | label_6:
    0x0000b2b6 ldr r4, [r6, 4]                                       |     r4 = *((r6 + 4));
    0x0000b2b8 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0000b2ba bne.w 0xba22                                          |         goto label_64;
                                                                     |     }
                                                                     | label_31:
    0x0000b2be ldr r3, [r0, 0x54]                                    |     r3 = *((r0 + 0x54));
    0x0000b2c0 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0000b2c2 bne.w 0xb7cc                                          |         goto label_65;
                                                                     |     }
    0x0000b2c6 ldr r3, [sp, 0x28]                                    |     r3 = var_28h;
    0x0000b2c8 ldr r7, [r3, 0x50]                                    |     r7 = *((r3 + 0x50));
    0x0000b2ca cmp r7, 0                                             |     
                                                                     |     if (r7 != 0) {
    0x0000b2cc bne.w 0xb7cc                                          |         goto label_65;
                                                                     |     }
    0x0000b2ce strh r6, [r7, 0x12]                                   |     *((r7 + 0x12)) = r6;
    0x0000b2d0 cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0000b2d2 beq.w 0xbba8                                          |         goto label_66;
                                                                     |     }
                                                                     | label_46:
    0x0000b2d6 mov r2, r8                                            |     r2 = r8;
    0x0000b2d8 ldr r3, [r2, 4]!                                      |     r3 = *((r2 += 4));
    0x0000b2dc cmp r3, r2                                            |     
    0x0000b2de str r2, [sp, 0x1c]                                    |     var_1ch = r2;
                                                                     |     if (r3 != r2) {
    0x0000b2e0 beq 0xb2f4                                            |         
    0x0000b2e2 ldr.w r3, [r8, 4]                                     |         r3 = *((r8 + 4));
    0x0000b2e6 ldr r2, [r3, 8]                                       |         r2 = *((r3 + 8));
    0x0000b2e8 ldr.w r3, [pc, 0x9a8]                                 |         r3 = *(0xbc94);
    0x0000b2ec ldr r3, [r5, r3]                                      |         r3 = *((r5 + r3));
    0x0000b2ee cmp r2, r3                                            |         
                                                                     |         if (r2 == r3) {
    0x0000b2f0 beq.w 0xbc1c                                          |             goto label_67;
                                                                     |         }
    0x0000b2f2 strh r4, [r2, 0x24]                                   |         *((r2 + 0x24)) = r4;
                                                                     |     }
                                                                     | label_52:
    0x0000b2f4 ldr.w r3, [pc, 0x9a0]                                 |     
    0x0000b2f8 add r7, sp, 0x50                                      |     r7 += var_50h;
    0x0000b2fa mov sb, r4                                            |     sb = r4;
    0x0000b2fc mov sl, r6                                            |     sl = r6;
    0x0000b2fe add r3, pc                                            |     r3 = 0x16f9a;
    0x0000b300 str r3, [sp, 0x2c]                                    |     var_2ch = r3;
    0x0000b302 sub.w r3, r7, 0x14                                    |     r3 = r7 - 0x14;
    0x0000b306 str r3, [sp, 0x20]                                    |     var_20h = r3;
                                                                     | label_5:
    0x0000b308 ldr.w r3, [sl, 0x10]                                  |     r3 = *((sl + 0x10));
    0x0000b30c ldr r2, [r3, 0x54]                                    |     r2 = *((r3 + 0x54));
    0x0000b30e cmp r2, 0                                             |     
                                                                     |     if (r2 != 0) {
    0x0000b310 bne.w 0xb7ca                                          |         goto label_68;
                                                                     |     }
    0x0000b314 ldr r2, [sp, 0x28]                                    |     r2 = var_28h;
    0x0000b316 ldr r6, [r2, 0x50]                                    |     r6 = *((r2 + 0x50));
    0x0000b318 cmp r6, 0                                             |     
                                                                     |     if (r6 != 0) {
    0x0000b31a bne.w 0xb7ca                                          |         goto label_68;
                                                                     |     }
    0x0000b31e ldr.w r2, [r8, 4]                                     |     r2 = *((r8 + 4));
    0x0000b322 ldr r1, [sp, 0x1c]                                    |     r1 = var_1ch;
    0x0000b324 cmp r1, r2                                            |     
    0x0000b326 itt eq                                                |     
                                                                     |     if (r1 != r2) {
    0x0000b328 ldreq r2, [fp, 8]                                     |         r2 = var_8h;
                                                                     |     }
                                                                     |     if (r1 == r2) {
    0x0000b32c mov r5, r6                                            |         r5 = r6;
                                                                     |     }
                                                                     |     if (r1 == r2) {
    0x0000b32e beq.w 0xb506                                          |         goto label_11;
                                                                     |     }
    0x0000b332 ldr.w r3, [sb, 4]                                     |     r3 = *((sb + 4));
    0x0000b336 cmp r3, 1                                             |     
                                                                     |     if (r3 > 1) {
    0x0000b338 bhi.w 0xb49c                                          |         goto label_69;
                                                                     |     }
                                                                     | label_4:
    0x0000b33c ldr.w r0, [sb, 0x18]                                  |     r0 = *((sb + 0x18));
    0x0000b340 mov.w r3, 0x2000                                      |     r3 = 0x2000;
    0x0000b344 movs r1, 0                                            |     r1 = 0;
    0x0000b346 str r3, [r7, -0x14]                                   |     *((r7 - 0x14)) = r3;
    0x0000b34a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b34c beq.w 0xb6a0                                          |         goto label_70;
                                                                     |     }
    0x0000b34e strh r0, [r5, 0xc]                                    |     *((r5 + 0xc)) = r0;
                                                                     | label_14:
    0x0000b350 str r1, [sp, 4]                                       |     var_4h_2 = r1;
    0x0000b352 movs r2, 0                                            |     r2 = 0;
    0x0000b354 mov r1, r8                                            |     r1 = r8;
    0x0000b356 str r3, [sp]                                          |     *(sp) = r3;
    0x0000b358 blx 0x4b18                                            |     r0 = fcn_00004b18 ();
    0x0000b35c mov r6, r0                                            |     r6 = r0;
    0x0000b35e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b360 bne.w 0xb4ee                                          |         goto label_71;
                                                                     |     }
    0x0000b364 ldr r3, [r7, -0x14]                                   |     r3 = *((r7 - 0x14));
    0x0000b368 subs r4, r7, 4                                        |     r4 = r7 - 4;
    0x0000b36a ldr.w r0, [sb, 0x18]                                  |     r0 = *((sb + 0x18));
    0x0000b36e mov r1, r4                                            |     r1 = r4;
    0x0000b370 ldr r2, [sp, 0x20]                                    |     r2 = var_20h;
    0x0000b372 subs r3, 1                                            |     r3--;
    0x0000b374 str r3, [r7, -0x14]                                   |     *((r7 - 0x14)) = r3;
    0x0000b378 blx 0x479c                                            |     r0 = fcn_0000479c ();
    0x0000b37c mov r5, r0                                            |     r5 = r0;
    0x0000b37e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b380 bne.w 0xb5a0                                          |         goto label_72;
                                                                     |     }
    0x0000b384 ldr r3, [r7, -0x14]                                   |     r3 = *((r7 - 0x14));
    0x0000b388 cmp r3, 1                                             |     
    0x0000b38a strb r6, [r4, r3]                                     |     *((r4 + r3)) = r6;
                                                                     |     if (r3 < 1) {
    0x0000b38c bls.w 0xb5f4                                          |         goto label_73;
                                                                     |     }
    0x0000b390 subs r3, 2                                            |     r3 -= 2;
    0x0000b392 ldrb r1, [r4, r3]                                     |     r1 = *((r4 + r3));
    0x0000b394 adds r2, r4, r3                                       |     r2 = r4 + r3;
    0x0000b396 cmp r1, 0xd                                           |     
                                                                     |     if (r1 != 0xd) {
    0x0000b398 bne.w 0xb5f4                                          |         goto label_73;
                                                                     |     }
    0x0000b39a strh r4, [r5, 8]                                      |     *((r5 + 8)) = r4;
    0x0000b39c ldrb r1, [r2, 1]                                      |     r1 = *((r2 + 1));
    0x0000b39e cmp r1, 0xa                                           |     
                                                                     |     if (r1 != 0xa) {
    0x0000b3a0 bne.w 0xb5f4                                          |         goto label_73;
                                                                     |     }
    0x0000b3a4 ldrb r1, [r2, 2]                                      |     r1 = *((r2 + 2));
    0x0000b3a6 rsbs r6, r1, 0                                        |     r6 = r1 - ;
    0x0000b3a8 cmp r1, 0                                             |     
                                                                     |     if (r1 != 0) {
    0x0000b3aa bne.w 0xb5f4                                          |         goto label_73;
                                                                     |     }
    0x0000b3ae strb r1, [r2]                                         |     *(r2) = r1;
    0x0000b3b0 ldr.w r0, [sb, 0x18]                                  |     r0 = *((sb + 0x18));
    0x0000b3b4 str r3, [r7, -0x14]                                   |     *((r7 - 0x14)) = r3;
    0x0000b3b8 blx 0x4748                                            |     fcn_00004748 ();
    0x0000b3bc ldr.w r2, [fp, 8]                                     |     r2 = var_8h;
    0x0000b3c0 ldr.w r0, [sb, 8]                                     |     r0 = *((sb + 8));
    0x0000b3c2 movs r0, r1                                           |     r0 = r1;
    0x0000b3c4 cmp r2, 0                                             |     
    0x0000b3c6 ldr r1, [r0, 0x60]                                    |     r1 = *((r0 + 0x60));
                                                                     |     if (r2 < 0) {
    0x0000b3c8 blt.w 0xb75e                                          |         goto label_74;
                                                                     |     }
    0x0000b3cc cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0000b3ce beq.w 0xbaa4                                          |         goto label_75;
                                                                     |     }
    0x0000b3d2 ldr r3, [r1]                                          |     r3 = *(r1);
    0x0000b3d4 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000b3d6 beq.w 0xb764                                          |         goto label_76;
                                                                     |     }
    0x0000b3da ldrsb r3, [r3, r2]                                    |     r3 = *((r3 + r2));
    0x0000b3dc cmp r3, 0                                             |     
                                                                     |     if (r3 < 0) {
    0x0000b3de blt.w 0xb764                                          |         goto label_76;
                                                                     |     }
                                                                     | label_34:
    0x0000b3e2 cmp r3, 6                                             |     
    0x0000b3e4 ite le                                                |     
                                                                     |     if (r3 > 6) {
    0x0000b3e6 movle r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r3 <= 6) {
    0x0000b3e8 movgt r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     | label_20:
    0x0000b3ea cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0000b3ec bne.w 0xb85a                                          |         goto label_77;
                                                                     |     }
    0x0000b3f0 ldr.w r0, [sb, 0x18]                                  |     r0 = *((sb + 0x18));
    0x0000b3f4 blx 0x4748                                            |     fcn_00004748 ();
                                                                     | label_25:
    0x0000b3f8 ldr.w r3, [sb, 4]                                     |     r3 = *((sb + 4));
    0x0000b3fc cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000b3fe beq.w 0xb53a                                          |         goto label_78;
                                                                     |     }
    0x0000b402 ldrb r5, [r7, -0x4]                                   |     r5 = *((r7 - 0x4));
    0x0000b406 ldr.w r1, [sb, 8]                                     |     r1 = *((sb + 8));
    0x0000b40a ldr.w r2, [fp, 8]                                     |     r2 = var_8h;
    0x0000b40e ldr r0, [r1, 0x60]                                    |     r0 = *((r1 + 0x60));
    0x0000b410 cmp r5, 0                                             |     
                                                                     |     if (r5 == 0) {
    0x0000b412 beq.w 0xb8b6                                          |         goto label_79;
                                                                     |     }
    0x0000b416 cmp r2, 0                                             |     
                                                                     |     if (r2 < 0) {
    0x0000b418 blt.w 0xb528                                          |         goto label_80;
                                                                     |     }
    0x0000b41c cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b41e beq.w 0xb6ec                                          |         goto label_81;
                                                                     |     }
    0x0000b422 ldr r3, [r0]                                          |     r3 = *(r0);
    0x0000b424 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000b426 beq.w 0xb52e                                          |         goto label_82;
                                                                     |     }
    0x0000b42a ldrsb r3, [r3, r2]                                    |     r3 = *((r3 + r2));
    0x0000b42c cmp r3, 0                                             |     
                                                                     |     if (r3 < 0) {
    0x0000b42e blt 0xb52e                                            |         goto label_82;
                                                                     |     }
                                                                     | label_15:
    0x0000b430 cmp r3, 7                                             |     
    0x0000b432 ite le                                                |     
                                                                     |     if (r3 > 7) {
    0x0000b434 movle r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r3 <= 7) {
    0x0000b436 movgt r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     | label_10:
    0x0000b438 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0000b43a bne.w 0xb5c8                                          |         goto label_83;
                                                                     |     }
                                                                     | label_13:
    0x0000b43e cmp r5, 9                                             |     
    0x0000b440 it ne                                                 |     
                                                                     |     if (r5 != 9) {
    0x0000b442 cmpne r5, 0x20                                        |         __asm ("cmpne r5, 0x20");
                                                                     |     }
    0x0000b444 ite eq                                                |     
                                                                     |     if (r5 != 9) {
    0x0000b446 moveq r5, 1                                           |         r5 = 1;
                                                                     |     }
                                                                     |     if (r5 == 9) {
    0x0000b448 movne r5, 0                                           |         r5 = 0;
                                                                     |     }
                                                                     |     if (r5 != 9) {
    0x0000b44a bne.w 0xb5ba                                          |         goto label_84;
                                                                     |     }
                                                                     |     do {
    0x0000b44e ldrb r3, [r4, 1]!                                     |         r3 = *((r4 += 1));
    0x0000b452 cmp r3, 9                                             |         
    0x0000b454 it ne                                                 |         
                                                                     |         if (r3 != 9) {
    0x0000b456 cmpne r3, 0x20                                        |             __asm ("cmpne r3, 0x20");
                                                                     |         }
    0x0000b458 beq 0xb44e                                            |         
                                                                     |     } while (r3 == 9);
    0x0000b45a ldr.w r0, [sb, 0x14]                                  |     r0 = *((sb + 0x14));
    0x0000b45e blx 0x47b4                                            |     r0 = fcn_000047b4 ();
    0x0000b462 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b464 beq.w 0xb72a                                          |         goto label_85;
                                                                     |     }
    0x0000b468 ldr.w r1, [pc, 0x830]                                 |     
    0x0000b46c mov r3, r4                                            |     r3 = r4;
    0x0000b46e ldr r2, [r0]                                          |     r2 = *(r0);
    0x0000b470 ldr.w r0, [sb, 0xc]                                   |     r0 = *((sb + 0xc));
    0x0000b474 add r1, pc                                            |     r1 = 0x17114;
    0x0000b476 blx 0x49f8                                            |     r0 = fcn_000049f8 ();
    0x0000b47a mov r4, r0                                            |     r4 = r0;
                                                                     | label_12:
    0x0000b47c ldr.w r0, [sb, 0x14]                                  |     r0 = *((sb + 0x14));
    0x0000b480 blx 0x4f4c                                            |     r0 = fcn_00004f4c ();
    0x0000b484 str r4, [r0]                                          |     *(r0) = r4;
                                                                     | label_17:
    0x0000b486 ldr.w r3, [r8, 4]                                     |     r3 = *((r8 + 4));
    0x0000b48a ldr r2, [sp, 0x1c]                                    |     r2 = var_1ch;
    0x0000b48c cmp r2, r3                                            |     
                                                                     |     if (r2 == r3) {
    0x0000b48e beq.w 0xb694                                          |         goto label_86;
                                                                     |     }
    0x0000b492 ldr.w r3, [sb, 4]                                     |     r3 = *((sb + 4));
    0x0000b496 cmp r3, 1                                             |     
                                                                     |     if (r3 < 1) {
    0x0000b498 bls.w 0xb33c                                          |         goto label_4;
                                                                     |     }
                                                                     | label_69:
    0x0000b49c ldr.w r2, [fp, 8]                                     |     r2 = var_8h;
    0x0000b4a0 movs r6, 0                                            |     r6 = 0;
    0x0000b4a2 ldr.w r3, [sl, 0x10]                                  |     r3 = *((sl + 0x10));
    0x0000b4a6 mov r5, r6                                            |     r5 = r6;
    0x0000b4a8 cmp r2, 0                                             |     
    0x0000b4aa ldr r0, [r3, 0x60]                                    |     r0 = *((r3 + 0x60));
                                                                     |     if (r2 >= 0) {
    0x0000b4ac bge 0xb50c                                            |         goto label_87;
                                                                     |     }
                                                                     |     if (r0 == 0) {
                                                                     | label_7:
    0x0000b4ae cbnz r0, 0xb4b4                                       |         
    0x0000b4b0 ldr r0, [r3, 4]                                       |         r0 = *((r3 + 4));
                                                                     | label_23:
    0x0000b4b2 adds r0, 0x10                                         |         r0 += 0x10;
                                                                     |     }
                                                                     | label_8:
    0x0000b4b4 ldr r1, [r0, 4]                                       |     r1 = *((r0 + 4));
    0x0000b4b6 cmp r1, 8                                             |     
    0x0000b4b8 ite le                                                |     
                                                                     |     if (r1 > 8) {
    0x0000b4ba movle r1, 0                                           |         r1 = 0;
                                                                     |     }
                                                                     |     if (r1 <= 8) {
    0x0000b4bc movgt r1, 1                                           |         r1 = 1;
                                                                     |     }
                                                                     | label_9:
    0x0000b4be cmp r1, 0                                             |     
                                                                     |     if (r1 != 0) {
    0x0000b4c0 bne.w 0xb770                                          |         goto label_88;
                                                                     |     }
                                                                     | label_21:
    0x0000b4c4 ldr.w r3, [r8, 4]                                     |     r3 = *((r8 + 4));
    0x0000b4c8 ldr r2, [sp, 0x1c]                                    |     r2 = var_1ch;
    0x0000b4ca cmp r2, r3                                            |     
    0x0000b4cc it eq                                                 |     
                                                                     |     if (r2 != r3) {
    0x0000b4ce orreq r5, r5, 1                                       |         r5 |= 1;
                                                                     |     }
    0x0000b4d0 lsls r1, r0, 0x14                                     |     r1 = r0 << 0x14;
    0x0000b4d2 cmp r5, 0                                             |     
                                                                     |     if (r5 == 0) {
    0x0000b4d4 beq.w 0xb308                                          |         goto label_5;
                                                                     |     }
    0x0000b4d8 mov r5, r6                                            |     r5 = r6;
    0x0000b4da b 0xb7d6                                              |     goto label_89;
                                                                     | label_62:
    0x0000b4dc cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0000b4de beq.w 0xbadc                                          |         goto label_90;
                                                                     |     }
                                                                     | label_37:
    0x0000b4e2 ldr r3, [r2, 4]                                       |     r3 = *((r2 + 4));
    0x0000b4e4 cmp r3, 8                                             |     
    0x0000b4e6 ite le                                                |     
                                                                     |     if (r3 > 8) {
    0x0000b4e8 movle r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r3 <= 8) {
    0x0000b4ea movgt r3, 1                                           |         r3 = 1;
                                                                     |     }
    0x0000b4ec b 0xb2b6                                              |     goto label_6;
                                                                     | label_71:
    0x0000b4ee ldr.w r0, [sb, 0x18]                                  |     r0 = *((sb + 0x18));
    0x0000b4f2 blx 0x4748                                            |     fcn_00004748 ();
    0x0000b4f6 cmp r6, 0xb                                           |     
                                                                     |     if (r6 == 0xb) {
    0x0000b4f8 beq.w 0xba9c                                          |         goto label_91;
                                                                     |     }
    0x0000b4fc ldr.w r2, [fp, 8]                                     |     r2 = var_8h;
    0x0000b500 movs r5, 1                                            |     r5 = 1;
    0x0000b502 ldr.w r3, [sl, 0x10]                                  |     r3 = *((sl + 0x10));
                                                                     | label_11:
    0x0000b506 cmp r2, 0                                             |     
    0x0000b508 ldr r0, [r3, 0x60]                                    |     r0 = *((r3 + 0x60));
                                                                     |     if (r2 < 0) {
    0x0000b50a blt 0xb4ae                                            |         goto label_7;
                                                                     |     }
                                                                     | label_87:
    0x0000b50c cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b50e beq.w 0xb846                                          |         goto label_92;
                                                                     |     }
    0x0000b512 ldr r1, [r0]                                          |     r1 = *(r0);
    0x0000b514 cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0000b516 beq 0xb4b4                                            |         goto label_8;
                                                                     |     }
    0x0000b518 ldrsb r1, [r1, r2]                                    |     r1 = *((r1 + r2));
    0x0000b51a cmp r1, 0                                             |     
                                                                     |     if (r1 < 0) {
    0x0000b51c blt 0xb4b4                                            |         goto label_8;
                                                                     |     }
                                                                     | label_24:
    0x0000b51e cmp r1, 8                                             |     
    0x0000b520 ite le                                                |     
                                                                     |     if (r1 > 8) {
    0x0000b522 movle r1, 0                                           |         r1 = 0;
                                                                     |     }
                                                                     |     if (r1 <= 8) {
    0x0000b524 movgt r1, 1                                           |         r1 = 1;
                                                                     |     }
    0x0000b526 b 0xb4be                                              |     goto label_9;
                                                                     |     if (r0 != 0) {
                                                                     | label_80:
    0x0000b528 cbnz r0, 0xb52e                                       |         goto label_82;
                                                                     |     }
    0x0000b52a ldr r0, [r1, 4]                                       |     r0 = *((r1 + 4));
                                                                     |     do {
                                                                     | label_16:
    0x0000b52c adds r0, 0x10                                         |         r0 += 0x10;
                                                                     | label_82:
    0x0000b52e ldr r3, [r0, 4]                                       |         r3 = *((r0 + 4));
    0x0000b530 cmp r3, 7                                             |         
    0x0000b532 ite le                                                |         
                                                                     |         if (r3 > 7) {
    0x0000b534 movle r3, 0                                           |             r3 = 0;
                                                                     |         }
                                                                     |         if (r3 <= 7) {
    0x0000b536 movgt r3, 1                                           |             r3 = 1;
                                                                     |         }
    0x0000b538 b 0xb438                                              |         goto label_10;
                                                                     | label_78:
    0x0000b53a ldr.w r1, [pc, 0x764]                                 |         
    0x0000b53e mov r0, r4                                            |         r0 = r4;
    0x0000b540 add r1, pc                                            |         r1 = 0x171e6;
    0x0000b542 blx 0x4cf0                                            |         r0 = loc_imp_ap_log_rerror_ ();
    0x0000b546 cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0000b548 bne.w 0xb700                                          |             goto label_93;
                                                                     |         }
    0x0000b54c ldr.w r1, [pc, 0x754]                                 |         
    0x0000b550 mov r0, r4                                            |         r0 = r4;
    0x0000b552 add r1, pc                                            |         r1 = 0x171fa;
    0x0000b554 blx 0x4cf0                                            |         r0 = loc_imp_ap_log_rerror_ ();
    0x0000b558 cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0000b55a bne.w 0xb724                                          |             goto label_94;
                                                                     |         }
    0x0000b55e ldr.w r2, [fp, 8]                                     |         r2 = var_8h;
    0x0000b562 ldr.w r1, [sb, 8]                                     |         r1 = *((sb + 8));
    0x0000b566 cmp r2, 0                                             |         
    0x0000b568 ldr r3, [r1, 0x60]                                    |         r3 = *((r1 + 0x60));
                                                                     |         if (r2 < 0) {
    0x0000b56a blt.w 0xb73a                                          |             goto label_95;
                                                                     |         }
    0x0000b56e cmp r3, 0                                             |         
                                                                     |         if (r3 == 0) {
    0x0000b570 beq.w 0xb88e                                          |             goto label_96;
                                                                     |         }
    0x0000b574 ldr r0, [r3]                                          |         r0 = *(r3);
    0x0000b576 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0000b578 beq.w 0xb740                                          |             goto label_97;
                                                                     |         }
    0x0000b57c ldrsb r5, [r0, r2]                                    |         r5 = *((r0 + r2));
    0x0000b57e cmp r5, 0                                             |         
                                                                     |         if (r5 < 0) {
    0x0000b580 blt.w 0xb740                                          |             goto label_97;
                                                                     |         }
                                                                     | label_27:
    0x0000b584 cmp r5, 6                                             |         
    0x0000b586 ite le                                                |         
                                                                     |         if (r5 > 6) {
    0x0000b588 movle r5, 0                                           |             r5 = 0;
                                                                     |         }
                                                                     |         if (r5 <= 6) {
    0x0000b58a movgt r5, 1                                           |             r5 = 1;
                                                                     |         }
                                                                     | label_18:
    0x0000b58c cmp r5, 0                                             |         
                                                                     |         if (r5 != 0) {
    0x0000b58e bne.w 0xb794                                          |             goto label_98;
                                                                     |         }
    0x0000b592 ldr.w r3, [r8, 4]                                     |         r3 = *((r8 + 4));
    0x0000b596 movs r5, 1                                            |         r5 = 1;
    0x0000b598 ldr.w r3, [sl, 0x10]                                  |         r3 = *((sl + 0x10));
    0x0000b59c movs r6, 0x16                                         |         r6 = 0x16;
    0x0000b59e b 0xb506                                              |         goto label_11;
                                                                     | label_72:
    0x0000b5a0 ldr.w r0, [sb, 0x18]                                  |         r0 = *((sb + 0x18));
    0x0000b5a4 blx 0x4748                                            |         fcn_00004748 ();
    0x0000b5a8 cmp r5, 0xb                                           |         
    0x0000b5aa ldr.w r2, [fp, 8]                                     |         r2 = var_8h;
                                                                     |         if (r5 != 0xb) {
    0x0000b5ae beq 0xb698                                            |             
    0x0000b5b0 mov r6, r5                                            |             r6 = r5;
    0x0000b5b2 ldr.w r3, [sl, 0x10]                                  |             r3 = *((sl + 0x10));
    0x0000b5b4 adds r0, 0x10                                         |             r0 += 0x10;
    0x0000b5b6 movs r5, 1                                            |             r5 = 1;
    0x0000b5b8 b 0xb506                                              |             goto label_11;
                                                                     | label_84:
    0x0000b5ba mov r1, r4                                            |             r1 = r4;
    0x0000b5bc ldr.w r0, [sb, 0xc]                                   |             r0 = *((sb + 0xc));
    0x0000b5c0 blx 0x4d08                                            |             r0 = loc_imp_apr_thread_join ();
    0x0000b5c4 mov r4, r0                                            |             r4 = r0;
    0x0000b5c6 b 0xb47c                                              |             goto label_12;
                                                                     | label_83:
    0x0000b5c8 str r4, [sp, 0x10]                                    |             var_10h = r4;
    0x0000b5ca ldr.w r3, [sb]                                        |             r3 = *(sb);
    0x0000b5ce ldr.w r0, [pc, 0x6d8]                                 |             
    0x0000b5d2 str r1, [sp, 4]                                       |             var_4h_2 = r1;
    0x0000b5d4 mov.w r1, 0x254                                       |             r1 = 0x254;
    0x0000b5d8 str r3, [sp, 0xc]                                     |             var_ch = r3;
    0x0000b5da ldr.w r3, [pc, 0x6d0]                                 |             
    0x0000b5de add r0, pc                                            |             r0 = 0x1728c;
    0x0000b5e0 add r3, pc                                            |             r3 = 0x17292;
    0x0000b5e2 str r3, [sp, 8]                                       |             var_sp_8h = r3;
    0x0000b5e4 movs r3, 0                                            |             r3 = 0;
    0x0000b5e6 str r3, [sp]                                          |             *(sp) = r3;
    0x0000b5e8 movs r3, 8                                            |             r3 = 8;
    0x0000b5ea blx 0x4d50                                            |             loc_imp_apr_dynamic_fn_register ();
    0x0000b5ee ldrb r5, [r7, -0x4]                                   |             r5 = *((r7 - 0x4));
    0x0000b5f2 b 0xb43e                                              |             goto label_13;
                                                                     | label_73:
    0x0000b5f4 sub.w r5, r7, 0x10                                    |             r5 = r7 - 0x10;
    0x0000b5f8 ldr.w r0, [sb, 0x18]                                  |             r0 = *((sb + 0x18));
    0x0000b5fc mov r2, r5                                            |             r2 = r5;
    0x0000b5fe movs r1, 0                                            |             r1 = 0;
    0x0000b600 blx 0x4b60                                            |             r0 = fcn_00004b60 ();
    0x0000b604 mov r6, r0                                            |             r6 = r0;
    0x0000b606 cmp r0, 0                                             |             
                                                                     |             if (r0 != 0) {
    0x0000b608 bne 0xb6b6                                            |                 goto label_99;
                                                                     |             }
    0x0000b60a sub.w r1, r7, 0x14                                    |             r1 = r7 - 0x14;
    0x0000b60e ldm r1, {r1, r2, r3}                                  |             r1 = *(r1);
                                                                     |             r2 = *((r1 + 4));
                                                                     |             r3 = *((r1 + 8));
    0x0000b610 cmp r1, r2                                            |             
    0x0000b612 sbcs.w r3, r0, r3                                     |             __asm ("sbcs.w r3, r0, r3");
                                                                     |             if (r1 < r2) {
    0x0000b616 blt 0xb6b6                                            |                 goto label_99;
                                                                     |             }
    0x0000b618 ldr.w r2, [fp, 8]                                     |             r2 = var_8h;
    0x0000b61c ldr.w r0, [sb, 8]                                     |             r0 = *((sb + 8));
    0x0000b620 cmp r2, 0                                             |             
    0x0000b622 ldr r1, [r0, 0x60]                                    |             r1 = *((r0 + 0x60));
                                                                     |             if (r2 < 0) {
    0x0000b624 blt.w 0xb74c                                          |                 goto label_100;
                                                                     |             }
    0x0000b628 cmp r1, 0                                             |             
                                                                     |             if (r1 == 0) {
    0x0000b62a beq.w 0xb8a2                                          |                 goto label_101;
                                                                     |             }
    0x0000b62c strh r2, [r7, 8]                                      |             *((r7 + 8)) = r2;
    0x0000b62e ldr r3, [r1]                                          |             r3 = *(r1);
    0x0000b630 cmp r3, 0                                             |             
                                                                     |             if (r3 == 0) {
    0x0000b632 beq.w 0xb752                                          |                 goto label_102;
                                                                     |             }
    0x0000b636 ldrsb r3, [r3, r2]                                    |             r3 = *((r3 + r2));
    0x0000b638 cmp r3, 0                                             |             
                                                                     |             if (r3 < 0) {
    0x0000b63a blt.w 0xb752                                          |                 goto label_102;
                                                                     |             }
                                                                     | label_29:
    0x0000b63e cmp r3, 6                                             |             
    0x0000b640 ite le                                                |             
                                                                     |             if (r3 > 6) {
    0x0000b642 movle r3, 0                                           |                 r3 = 0;
                                                                     |             }
                                                                     |             if (r3 <= 6) {
    0x0000b644 movgt r3, 1                                           |                 r3 = 1;
                                                                     |             }
                                                                     | label_19:
    0x0000b646 cmp r3, 0                                             |             
                                                                     |             if (r3 != 0) {
    0x0000b648 bne.w 0xb802                                          |                 goto label_103;
                                                                     |             }
    0x0000b64c ldr.w r3, [sb, 0x1c]                                  |             r3 = *((sb + 0x1c));
    0x0000b650 cmp r3, 0                                             |             
                                                                     |             if (r3 == 0) {
    0x0000b652 beq.w 0xb832                                          |                 goto label_104;
                                                                     |             }
                                                                     | label_22:
    0x0000b656 mov r2, sb                                            |             r2 = sb;
    0x0000b658 add.w r1, sb, 0x1c                                    |             r1 = sb + 0x1c;
    0x0000b65c ldr r3, [r2, 0x18]!                                   |             r3 = *((r2 += 0x18));
    0x0000b660 movs r0, 0                                            |             r0 = 0;
    0x0000b662 ldr r3, [r3]                                          |             r3 = *(r3);
    0x0000b664 blx 0x5094                                            |             fcn_00005094 ();
    0x0000b668 ldr.w r3, [sb, 0x1c]                                  |             r3 = *((sb + 0x1c));
    0x0000b66c mov r2, r3                                            |             r2 = r3;
    0x0000b66e ldr r1, [r2, 4]!                                      |             r1 = *((r2 += 4));
    0x0000b672 cmp r1, r2                                            |             
                                                                     |             if (r1 != r2) {
    0x0000b674 beq 0xb694                                            |                 
    0x0000b676 ldr.w r1, [sb, 0x18]                                  |                 r1 = *((sb + 0x18));
    0x0000b67a ldr r0, [r3, 8]                                       |                 r0 = *((r3 + 8));
    0x0000b67c adds r4, r1, 4                                        |                 r4 = r1 + 4;
    0x0000b67e str r4, [r0]                                          |                 *(r0) = r4;
    0x0000b680 ldr r0, [r3, 4]                                       |                 r0 = *((r3 + 4));
    0x0000b682 ldr r4, [r1, 8]                                       |                 r4 = *((r1 + 8));
    0x0000b684 str r4, [r0, 4]                                       |                 *((r0 + 4)) = r4;
    0x0000b686 ldr r0, [r1, 8]                                       |                 r0 = *((r1 + 8));
    0x0000b688 ldr r4, [r3, 4]                                       |                 r4 = *((r3 + 4));
    0x0000b68a str r4, [r0]                                          |                 *(r0) = r4;
    0x0000b68c ldr r0, [r3, 8]                                       |                 r0 = *((r3 + 8));
    0x0000b68e str r0, [r1, 8]                                       |                 *((r1 + 8)) = r0;
    0x0000b690 str r2, [r3, 4]                                       |                 *((r3 + 4)) = r2;
    0x0000b692 str r2, [r3, 8]                                       |                 *((r3 + 8)) = r2;
                                                                     |             }
                                                                     | label_86:
    0x0000b694 ldr.w r2, [fp, 8]                                     |             r2 = var_8h;
                                                                     |         }
                                                                     | label_32:
    0x0000b698 ldr.w r3, [sl, 0x10]                                  |         r3 = *((sl + 0x10));
    0x0000b69c movs r5, 0                                            |         r5 = 0;
    0x0000b69e b 0xb506                                              |         goto label_11;
                                                                     | label_70:
    0x0000b6a0 ldrd r3, r0, [sb, 8]                                  |         __asm ("ldrd r3, r0, [sb, 8]");
    0x0000b6a4 ldr r1, [r3, 0x40]                                    |         r1 = *((r3 + 0x40));
    0x0000b6a6 blx 0x4714                                            |         loc_imp_apr_brigade_create ();
    0x0000b6a8 invalid                                               |         
    0x0000b6ac subs r4, 0x14                                         |         r4 -= 0x14;
    0x0000b6ae movs r1, 0                                            |         r1 = 0;
    0x0000b6b0 str.w r0, [sb, 0x18]                                  |         __asm ("str.w r0, [sb, 0x18]");
    0x0000b6b4 b 0xb350                                              |         goto label_14;
                                                                     | label_99:
    0x0000b6b6 ldr.w r3, [sb]                                        |         r3 = *(sb);
    0x0000b6ba movw r1, 0x1bb                                        |         r1 = 0x1bb;
    0x0000b6be ldr.w r2, [fp, 8]                                     |         r2 = var_8h;
    0x0000b6c2 movs r5, 1                                            |         r5 = 1;
    0x0000b6c4 ldr r0, [sp, 0x2c]                                    |         r0 = var_2ch;
    0x0000b6c6 movs r6, 0x1c                                         |         r6 = 0x1c;
    0x0000b6c8 str r3, [sp, 0xc]                                     |         var_ch = r3;
    0x0000b6ca ldr.w r3, [pc, 0x5e4]                                 |         
    0x0000b6ce add r3, pc                                            |         r3 = 0x17384;
    0x0000b6d0 str r3, [sp, 8]                                       |         var_sp_8h = r3;
    0x0000b6d2 ldr.w r3, [sb, 8]                                     |         r3 = *((sb + 8));
    0x0000b6d4 adds r0, 8                                            |         r0 += 8;
    0x0000b6d6 str r3, [sp, 4]                                       |         var_4h_2 = r3;
    0x0000b6d8 movs r3, 0                                            |         r3 = 0;
    0x0000b6da str r3, [sp]                                          |         *(sp) = r3;
    0x0000b6dc movs r3, 3                                            |         r3 = 3;
    0x0000b6de blx 0x4d50                                            |         loc_imp_apr_dynamic_fn_register ();
    0x0000b6e2 ldr.w r2, [fp, 8]                                     |         r2 = var_8h;
    0x0000b6e6 ldr.w r3, [sl, 0x10]                                  |         r3 = *((sl + 0x10));
    0x0000b6ea b 0xb506                                              |         goto label_11;
                                                                     | label_81:
    0x0000b6ec ldr r0, [r1, 4]                                       |         r0 = *((r1 + 4));
    0x0000b6ee ldr r3, [r0, 0x10]                                    |         r3 = *((r0 + 0x10));
    0x0000b6f0 cmp r3, 0                                             |         
    0x0000b6f2 beq.w 0xb52c                                          |         
                                                                     |     } while (r3 == 0);
    0x0000b6f6 ldrsb r3, [r3, r2]                                    |     r3 = *((r3 + r2));
    0x0000b6f8 cmp r3, 0                                             |     
                                                                     |     if (r3 >= 0) {
    0x0000b6fa bge.w 0xb430                                          |         goto label_15;
                                                                     |     }
    0x0000b6fe b 0xb52c                                              |     goto label_16;
                                                                     | label_93:
    0x0000b700 movs r0, 9                                            |     r0 = 9;
    0x0000b702 movs r5, 0xc                                          |     r5 = 0xc;
                                                                     |     do {
    0x0000b704 ldrb r3, [r4, r5]                                     |         r3 = *((r4 + r5));
    0x0000b706 movs r1, 0                                            |         r1 = 0;
    0x0000b708 add r0, r4                                            |         r0 += r4;
    0x0000b70a movs r2, 0xa                                          |         r2 = 0xa;
    0x0000b70c strb r1, [r4, r5]                                     |         *((r4 + r5)) = r1;
    0x0000b70e str r3, [sp, 0x24]                                    |         var_24h = r3;
    0x0000b710 blx 0x47cc                                            |         fcn_000047cc ();
    0x0000b714 ldr r3, [sp, 0x24]                                    |         r3 = var_24h;
    0x0000b716 str.w r0, [sb, 0x10]                                  |         __asm ("str.w r0, [sb, 0x10]");
    0x0000b71a strb r3, [r4, r5]                                     |         *((r4 + r5)) = r3;
    0x0000b71c movs r3, 1                                            |         r3 = 1;
    0x0000b71e str.w r3, [sb, 4]                                     |         __asm ("str.w r3, [sb, 4]");
    0x0000b722 b 0xb486                                              |         goto label_17;
                                                                     | label_94:
    0x0000b724 movs r0, 7                                            |         r0 = 7;
    0x0000b726 movs r5, 0xa                                          |         r5 = 0xa;
    0x0000b728 b 0xb704                                              |         
                                                                     |     } while (1);
                                                                     | label_85:
    0x0000b72a ldr.w r3, [r8, 4]                                     |     r3 = *((r8 + 4));
    0x0000b72e movs r6, 0x16                                         |     r6 = 0x16;
    0x0000b730 ldr.w r2, [fp, 8]                                     |     r2 = var_8h;
    0x0000b734 ldr.w r3, [sl, 0x10]                                  |     r3 = *((sl + 0x10));
    0x0000b738 b 0xb506                                              |     goto label_11;
                                                                     |     if (r3 == 0) {
                                                                     | label_95:
    0x0000b73a cbnz r3, 0xb740                                       |         
    0x0000b73c ldr r3, [r1, 4]                                       |         r3 = *((r1 + 4));
                                                                     | label_26:
    0x0000b73e adds r3, 0x10                                         |         r3 += 0x10;
                                                                     |     }
                                                                     | label_97:
    0x0000b740 ldr r5, [r3, 4]                                       |     r5 = *((r3 + 4));
    0x0000b742 cmp r5, 6                                             |     
    0x0000b744 ite le                                                |     
                                                                     |     if (r5 > 6) {
    0x0000b746 movle r5, 0                                           |         r5 = 0;
                                                                     |     }
                                                                     |     if (r5 <= 6) {
    0x0000b748 movgt r5, 1                                           |         r5 = 1;
                                                                     |     }
    0x0000b74a b 0xb58c                                              |     goto label_18;
                                                                     |     if (r1 == 0) {
                                                                     | label_100:
    0x0000b74c cbnz r1, 0xb752                                       |         
    0x0000b74e ldr r1, [r0, 4]                                       |         r1 = *((r0 + 4));
                                                                     | label_28:
    0x0000b750 adds r1, 0x10                                         |         r1 += 0x10;
                                                                     |     }
                                                                     | label_102:
    0x0000b752 ldr r3, [r1, 4]                                       |     r3 = *((r1 + 4));
    0x0000b754 cmp r3, 6                                             |     
    0x0000b756 ite le                                                |     
                                                                     |     if (r3 > 6) {
    0x0000b758 movle r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r3 <= 6) {
    0x0000b75a movgt r3, 1                                           |         r3 = 1;
                                                                     |     }
    0x0000b75c b 0xb646                                              |     goto label_19;
                                                                     |     if (r1 == 0) {
                                                                     | label_74:
    0x0000b75e cbnz r1, 0xb764                                       |         
                                                                     | label_35:
    0x0000b760 ldr r1, [r0, 4]                                       |         r1 = *((r0 + 4));
                                                                     | label_33:
    0x0000b762 adds r1, 0x10                                         |         r1 += 0x10;
                                                                     |     }
                                                                     | label_76:
    0x0000b764 ldr r3, [r1, 4]                                       |     r3 = *((r1 + 4));
    0x0000b766 cmp r3, 6                                             |     
    0x0000b768 ite le                                                |     
                                                                     |     if (r3 > 6) {
    0x0000b76a movle r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r3 <= 6) {
    0x0000b76c movgt r3, 1                                           |         r3 = 1;
                                                                     |     }
    0x0000b76e b 0xb3ea                                              |     goto label_20;
                                                                     | label_88:
    0x0000b770 ldr.w r1, [sb]                                        |     r1 = *(sb);
    0x0000b774 str r3, [sp, 4]                                       |     var_4h_2 = r3;
    0x0000b776 ldr.w r3, [pc, 0x53c]                                 |     
    0x0000b77a ldr.w r0, [pc, 0x53c]                                 |     
    0x0000b77e str r1, [sp, 0xc]                                     |     var_ch = r1;
    0x0000b780 mov.w r1, 0x288                                       |     r1 = 0x288;
    0x0000b784 add r3, pc                                            |     r3 = 0x1743e;
    0x0000b786 str r6, [sp]                                          |     *(sp) = r6;
    0x0000b788 str r3, [sp, 8]                                       |     var_sp_8h = r3;
    0x0000b78a add r0, pc                                            |     r0 = 0x17448;
    0x0000b78c movs r3, 9                                            |     r3 = 9;
    0x0000b78e blx 0x4d50                                            |     loc_imp_apr_dynamic_fn_register ();
    0x0000b792 b 0xb4c4                                              |     goto label_21;
                                                                     | label_98:
    0x0000b794 str r4, [sp, 0x10]                                    |     var_10h = r4;
    0x0000b796 movs r6, 0x16                                         |     r6 = 0x16;
    0x0000b798 ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0000b79c ldr.w r0, [pc, 0x51c]                                 |     
    0x0000b7a0 str r1, [sp, 4]                                       |     var_4h_2 = r1;
    0x0000b7a2 mov.w r1, 0x230                                       |     r1 = 0x230;
    0x0000b7a4 strb r4, [r1, 4]                                      |     *((r1 + 4)) = r4;
    0x0000b7a6 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0000b7a8 ldr.w r3, [pc, 0x514]                                 |     
    0x0000b7ac add r0, pc                                            |     r0 = 0x1746c;
    0x0000b7ae add r3, pc                                            |     r3 = 0x17472;
    0x0000b7b0 str r3, [sp, 8]                                       |     var_sp_8h = r3;
    0x0000b7b2 movs r3, 0                                            |     r3 = 0;
    0x0000b7b4 str r3, [sp]                                          |     *(sp) = r3;
    0x0000b7b6 movs r3, 7                                            |     r3 = 7;
    0x0000b7b8 blx 0x4d50                                            |     loc_imp_apr_dynamic_fn_register ();
    0x0000b7bc ldr.w r3, [r8, 4]                                     |     r3 = *((r8 + 4));
    0x0000b7c0 ldr.w r2, [fp, 8]                                     |     r2 = var_8h;
    0x0000b7c4 ldr.w r3, [sl, 0x10]                                  |     r3 = *((sl + 0x10));
    0x0000b7c8 b 0xb506                                              |     goto label_11;
                                                                     | label_68:
    0x0000b7ca mov r6, sl                                            |     r6 = sl;
                                                                     | label_65:
    0x0000b7cc ldr r0, [r6, 8]                                       |     r0 = *((r6 + 8));
    0x0000b7ce mov r1, r8                                            |     r1 = r8;
    0x0000b7d0 blx 0x4d90                                            |     r0 = fcn_00004d90 ();
    0x0000b7d4 mov r5, r0                                            |     r5 = r0;
                                                                     | label_89:
    0x0000b7d6 ldr.w r2, [pc, 0x4ec]                                 |     
    0x0000b7da add.w r1, sp, 0x2040                                  |     r1 += arg_2040h;
    0x0000b7de ldr.w r3, [pc, 0x4a8]                                 |     r3 = *(0xbc8a);
    0x0000b7e2 adds r1, 0xc                                          |     r1 += 0xc;
    0x0000b7e4 add r2, pc                                            |     r2 = 0x174ae;
    0x0000b7e6 ldr r3, [r2, r3]                                      |     r3 = *(0x174ae);
    0x0000b7e8 ldr r2, [r3]                                          |     r2 = *(0x174ae);
    0x0000b7ea ldr r3, [r1]                                          |     r3 = *(r1);
    0x0000b7ec eors r2, r3                                           |     r2 ^= r3;
    0x0000b7ee mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x0000b7f2 bne.w 0xbc7e                                          |         goto label_105;
                                                                     |     }
    0x0000b7f6 mov r0, r5                                            |     r0 = r5;
    0x0000b7f8 add.w sp, sp, 0x2040                                  |     
    0x0000b7fc add sp, 0x14                                          |     
    0x0000b7fe pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_103:
    0x0000b802 str r4, [sp, 0x10]                                    |     var_10h = r4;
    0x0000b804 movw r1, 0x1c1                                        |     r1 = 0x1c1;
    0x0000b808 ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0000b80c str r0, [sp, 4]                                       |     var_4h_2 = r0;
    0x0000b80e ldr.w r0, [pc, 0x4b8]                                 |     
    0x0000b812 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0000b814 ldr.w r3, [pc, 0x4b4]                                 |     
    0x0000b818 add r0, pc                                            |     r0 = 0x174e6;
    0x0000b81a add r3, pc                                            |     r3 = 0x174ea;
    0x0000b81c str r3, [sp, 8]                                       |     var_sp_8h = r3;
    0x0000b81e movs r3, 0                                            |     r3 = 0;
    0x0000b820 str r3, [sp]                                          |     *(sp) = r3;
    0x0000b822 movs r3, 7                                            |     r3 = 7;
    0x0000b824 blx 0x4d50                                            |     loc_imp_apr_dynamic_fn_register ();
    0x0000b828 ldr.w r3, [sb, 0x1c]                                  |     r3 = *((sb + 0x1c));
    0x0000b82c cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0000b82e bne.w 0xb656                                          |         goto label_22;
                                                                     |     }
                                                                     | label_104:
    0x0000b832 ldr.w r3, [sb, 8]                                     |     r3 = *((sb + 8));
    0x0000b836 ldr.w r0, [sb, 0xc]                                   |     r0 = *((sb + 0xc));
    0x0000b83a ldr r1, [r3, 0x40]                                    |     r1 = *((r3 + 0x40));
    0x0000b83c blx 0x4714                                            |     loc_imp_apr_brigade_create ();
    0x0000b83e invalid                                               |     
    0x0000b842 movs r4, r3                                           |     r4 = r3;
    0x0000b844 b 0xb656                                              |     goto label_22;
                                                                     | label_92:
    0x0000b846 ldr r0, [r3, 4]                                       |     r0 = *((r3 + 4));
    0x0000b848 ldr r1, [r0, 0x10]                                    |     r1 = *((r0 + 0x10));
    0x0000b84a cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0000b84c beq.w 0xb4b2                                          |         goto label_23;
                                                                     |     }
    0x0000b850 ldrsb r1, [r1, r2]                                    |     r1 = *((r1 + r2));
    0x0000b852 cmp r1, 0                                             |     
                                                                     |     if (r1 >= 0) {
    0x0000b854 bge.w 0xb51e                                          |         goto label_24;
                                                                     |     }
    0x0000b858 b 0xb4b2                                              |     goto label_23;
                                                                     | label_77:
    0x0000b85a str r4, [sp, 0x10]                                    |     var_10h = r4;
    0x0000b85c mov.w r1, 0x1a6                                       |     r1 = 0x1a6;
    0x0000b860 ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0000b864 ldr.w r0, [pc, 0x468]                                 |     
    0x0000b868 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0000b86a ldr.w r3, [pc, 0x468]                                 |     
    0x0000b86e add r0, pc                                            |     r0 = 0x17542;
    0x0000b870 add r3, pc                                            |     r3 = 0x1754a;
    0x0000b872 str r3, [sp, 8]                                       |     var_sp_8h = r3;
    0x0000b874 ldr.w r3, [sb, 8]                                     |     r3 = *((sb + 8));
    0x0000b878 str r3, [sp, 4]                                       |     var_4h_2 = r3;
    0x0000b87a movs r3, 0                                            |     r3 = 0;
    0x0000b87c str r3, [sp]                                          |     *(sp) = r3;
    0x0000b87e movs r3, 7                                            |     r3 = 7;
    0x0000b880 blx 0x4d50                                            |     loc_imp_apr_dynamic_fn_register ();
    0x0000b884 ldr.w r0, [sb, 0x18]                                  |     r0 = *((sb + 0x18));
    0x0000b888 blx 0x4748                                            |     fcn_00004748 ();
    0x0000b88c b 0xb3f8                                              |     goto label_25;
                                                                     | label_96:
    0x0000b88e ldr r3, [r1, 4]                                       |     r3 = *((r1 + 4));
    0x0000b890 ldr r0, [r3, 0x10]                                    |     r0 = *((r3 + 0x10));
    0x0000b892 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b894 beq.w 0xb73e                                          |         goto label_26;
                                                                     |     }
    0x0000b898 ldrsb r5, [r0, r2]                                    |     r5 = *((r0 + r2));
    0x0000b89a cmp r5, 0                                             |     
                                                                     |     if (r5 >= 0) {
    0x0000b89c bge.w 0xb584                                          |         goto label_27;
                                                                     |     }
    0x0000b8a0 b 0xb73e                                              |     goto label_26;
                                                                     | label_101:
    0x0000b8a2 ldr r1, [r0, 4]                                       |     r1 = *((r0 + 4));
    0x0000b8a4 ldr r3, [r1, 0x10]                                    |     r3 = *((r1 + 0x10));
    0x0000b8a6 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000b8a8 beq.w 0xb750                                          |         goto label_28;
                                                                     |     }
    0x0000b8aa add r7, sp, 0x148                                     |     r7 = sp + 0x148;
    0x0000b8ac ldrsb r3, [r3, r2]                                    |     r3 = *((r3 + r2));
    0x0000b8ae cmp r3, 0                                             |     
                                                                     |     if (r3 >= 0) {
    0x0000b8b0 bge.w 0xb63e                                          |         goto label_29;
                                                                     |     }
    0x0000b8b4 b 0xb750                                              |     goto label_28;
                                                                     | label_79:
    0x0000b8b6 cmp r2, 0                                             |     
                                                                     |     if (r2 < 0) {
    0x0000b8b8 blt.w 0xbaca                                          |         goto label_106;
                                                                     |     }
    0x0000b8bc cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b8be beq.w 0xbb96                                          |         goto label_107;
                                                                     |     }
    0x0000b8c2 ldr r3, [r0]                                          |     r3 = *(r0);
    0x0000b8c4 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000b8c6 beq.w 0xbad0                                          |         goto label_45;
                                                                     |     }
    0x0000b8ca ldrsb r3, [r3, r2]                                    |     r3 = *((r3 + r2));
    0x0000b8cc cmp r3, 0                                             |     
                                                                     |     if (r3 < 0) {
    0x0000b8ce blt.w 0xbad0                                          |         goto label_45;
                                                                     |     }
                                                                     | label_44:
    0x0000b8d2 cmp r3, 7                                             |     
    0x0000b8d4 ite le                                                |     
                                                                     |     if (r3 > 7) {
    0x0000b8d6 movle r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r3 <= 7) {
    0x0000b8d8 movgt r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     | label_38:
    0x0000b8da cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0000b8dc bne.w 0xbb74                                          |         goto label_108;
                                                                     |     }
                                                                     | label_43:
    0x0000b8e0 ldrd r3, r5, [sb, 0x10]                               |     __asm ("ldrd r3, r5, [sb, 0x10]");
    0x0000b8e4 ldr.w r0, [sb, 0xc]                                   |     r0 = *((sb + 0xc));
    0x0000b8e8 str r3, [sp, 0x24]                                    |     var_24h = r3;
    0x0000b8ea cmp r5, 0                                             |     
                                                                     |     if (r5 == 0) {
    0x0000b8ec beq.w 0xbbe8                                          |         goto label_109;
                                                                     |     }
    0x0000b8ee strh r4, [r7, 0xa]                                    |     *((r7 + 0xa)) = r4;
    0x0000b8f0 ldr r1, [r5, 8]                                       |     r1 = *((r5 + 8));
    0x0000b8f2 blx 0x4a70                                            |     fcn_00004a70 ();
    0x0000b8f6 ldr r2, [r5, 8]                                       |     r2 = *((r5 + 8));
    0x0000b8f8 mov ip, r0                                            |     
    0x0000b8fa cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x0000b8fc ble 0xb954                                            |         goto label_110;
                                                                     |     }
    0x0000b8fe str.w sb, [sp, 0x30]                                  |     __asm ("str.w sb, [var_30h]");
    0x0000b902 mov sb, r0                                            |     sb = r0;
    0x0000b904 str r7, [sp, 0x34]                                    |     var_34h = r7;
                                                                     | label_30:
    0x0000b906 ldr r3, [r5, 0x10]                                    |     r3 = *((r5 + 0x10));
    0x0000b908 movs r1, 0x3a                                         |     r1 = 0x3a;
    0x0000b90a ldr.w r4, [r3, r6, lsl 2]                             |     offset_1 = r6 << 2;
                                                                     |     r4 = *((r3 + offset_1));
    0x0000b90e mov r0, r4                                            |     r0 = r4;
    0x0000b910 blx 0x5298                                            |     r0 = fcn_00005298 ();
    0x0000b914 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b916 beq.w 0xbb10                                          |         goto label_111;
                                                                     |     }
    0x0000b91a mov.w r3, 0                                           |     r3 = 0;
    0x0000b91e mov r7, r0                                            |     r7 = r0;
    0x0000b920 strb r3, [r7], 1                                      |     *(r7) = r3;
                                                                     |     r7++;
    0x0000b924 ldrb r3, [r0, 1]                                      |     r3 = *((r0 + 1));
    0x0000b926 cmp r3, 0x20                                          |     
    0x0000b928 it ne                                                 |     
                                                                     |     if (r3 != 0x20) {
    0x0000b92a cmpne r3, 9                                           |         __asm ("cmpne r3, 9");
                                                                     |     }
                                                                     |     if (r3 != 0x20) {
    0x0000b92c bne 0xb93a                                            |         goto label_112;
                                                                     |     }
                                                                     |     do {
    0x0000b92e ldrb r3, [r7, 1]!                                     |         r3 = *((r7 += 1));
    0x0000b932 cmp r3, 9                                             |         
    0x0000b934 it ne                                                 |         
                                                                     |         if (r3 != 9) {
    0x0000b936 cmpne r3, 0x20                                        |             __asm ("cmpne r3, 0x20");
                                                                     |         }
    0x0000b938 beq 0xb92e                                            |         
                                                                     |     } while (r3 == 9);
                                                                     | label_112:
    0x0000b93a mov r0, r4                                            |     r0 = r4;
    0x0000b93c bl 0x1cee0                                            |     r0 = fcn_0001cee0 (r0);
    0x0000b940 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b942 beq.w 0xbaf2                                          |         goto label_113;
                                                                     |     }
                                                                     | label_40:
    0x0000b946 ldr r3, [r5, 8]                                       |     r3 = *((r5 + 8));
    0x0000b948 adds r6, 1                                            |     r6++;
    0x0000b94a cmp r6, r3                                            |     
                                                                     |     if (r6 < r3) {
    0x0000b94c blt 0xb906                                            |         goto label_30;
                                                                     |     }
    0x0000b94e mov ip, sb                                            |     
    0x0000b950 ldrd sb, r7, [sp, 0x30]                               |     __asm ("ldrd sb, r7, [var_30h]");
                                                                     | label_110:
    0x0000b954 mov r4, ip                                            |     r4 = ip;
                                                                     | label_42:
    0x0000b956 vmov.i32 d16, 0                                       |     __asm ("vmov.i32 d16, 0");
    0x0000b95a mov r1, r4                                            |     r1 = r4;
    0x0000b95c ldr.w r3, [sb, 0xc]                                   |     r3 = *((sb + 0xc));
    0x0000b960 movs r2, 0                                            |     r2 = 0;
    0x0000b962 ldr r0, [sp, 0x24]                                    |     r0 = var_24h;
    0x0000b964 vstr d16, [sp]                                        |     __asm ("vstr d16, [sp]");
    0x0000b968 str r3, [sp, 8]                                       |     var_sp_8h = r3;
    0x0000b96a bl 0xe56c                                             |     r0 = fcn_0000e56c (r0, r1, r2, r3);
    0x0000b96e mov r4, r0                                            |     r4 = r0;
    0x0000b970 ldr.w r0, [sb, 0x18]                                  |     r0 = *((sb + 0x18));
    0x0000b972 movs r0, r3                                           |     r0 = r3;
    0x0000b974 blx 0x4748                                            |     fcn_00004748 ();
    0x0000b978 ldr.w r3, [sb, 8]                                     |     r3 = *((sb + 8));
    0x0000b97c mov r1, r4                                            |     r1 = r4;
    0x0000b97e ldr r0, [r3, 0x40]                                    |     r0 = *((r3 + 0x40));
    0x0000b980 bl 0xe518                                             |     fcn_0000e518 (r0, r1);
    0x0000b984 ldr.w r2, [sb, 0x18]                                  |     r2 = *((sb + 0x18));
    0x0000b988 mov r3, r0                                            |     r3 = r0;
    0x0000b98a ldr.w r1, [sb, 8]                                     |     r1 = *((sb + 8));
    0x0000b98e ldr r0, [r1, 0x40]                                    |     r0 = *((r1 + 0x40));
    0x0000b990 adds r1, r2, 4                                        |     r1 = r2 + 4;
    0x0000b992 str r1, [r3]                                          |     *(r3) = r1;
    0x0000b994 ldr r1, [r2, 8]                                       |     r1 = *((r2 + 8));
    0x0000b996 str r1, [r3, 4]                                       |     *((r3 + 4)) = r1;
    0x0000b998 ldr r1, [r2, 8]                                       |     r1 = *((r2 + 8));
    0x0000b99a str r3, [r1]                                          |     *(r1) = r3;
    0x0000b99c str r3, [r2, 8]                                       |     *((r2 + 8)) = r3;
    0x0000b99e blx 0x48e0                                            |     fcn_000048e0 ();
    0x0000b9a2 ldr.w r1, [sb, 0x18]                                  |     r1 = *((sb + 0x18));
    0x0000b9a6 mov r3, r0                                            |     r3 = r0;
    0x0000b9a8 ldr.w r0, [sl, 8]                                     |     r0 = *((sl + 8));
    0x0000b9ac adds r2, r1, 4                                        |     r2 = r1 + 4;
    0x0000b9ae str r2, [r3]                                          |     *(r3) = r2;
    0x0000b9b0 ldr r2, [r1, 8]                                       |     r2 = *((r1 + 8));
    0x0000b9b2 str r2, [r3, 4]                                       |     *((r3 + 4)) = r2;
    0x0000b9b4 ldr r2, [r1, 8]                                       |     r2 = *((r1 + 8));
    0x0000b9b6 str r3, [r2]                                          |     *(r2) = r3;
    0x0000b9b8 str r3, [r1, 8]                                       |     *((r1 + 8)) = r3;
    0x0000b9ba blx 0x4d90                                            |     r0 = fcn_00004d90 ();
    0x0000b9be mov r6, r0                                            |     r6 = r0;
    0x0000b9c0 ldr.w r0, [sb, 0x18]                                  |     r0 = *((sb + 0x18));
    0x0000b9c4 blx 0x4748                                            |     fcn_00004748 ();
    0x0000b9c8 movs r3, 0                                            |     r3 = 0;
    0x0000b9ca ldr.w r0, [sb, 0x14]                                  |     r0 = *((sb + 0x14));
    0x0000b9ce str.w r3, [sb, 4]                                     |     __asm ("str.w r3, [sb, 4]");
    0x0000b9d2 blx 0x4bac                                            |     memmove (r0, r1, r2);
    0x0000b9d6 ldr r0, [r4]                                          |     r0 = *(r4);
    0x0000b9d8 ldr.w r1, [sb, 8]                                     |     r1 = *((sb + 8));
    0x0000b9dc cmp r0, 0xc7                                          |     
    0x0000b9de itt gt                                                |     
                                                                     |     if (r0 <= 0xc7) {
    0x0000b9e0 ldrgt r2, [sp, 0x28]                                  |         r2 = var_28h;
                                                                     |     }
                                                                     |     if (r0 <= 0xc7) {
    0x0000b9e2 movgt r3, 1                                           |         r3 = 1;
                                                                     |     }
    0x0000b9e4 ldr r4, [r1, 0x60]                                    |     r4 = *((r1 + 0x60));
    0x0000b9e6 it gt                                                 |     
                                                                     |     if (r0 <= 0xc7) {
    0x0000b9e8 strgt r3, [r2, 0x50]                                  |         *((r2 + 0x50)) = r3;
                                                                     |     }
    0x0000b9ea ldr.w r2, [fp, 8]                                     |     r2 = var_8h;
    0x0000b9ee cmp r2, 0                                             |     
                                                                     |     if (r2 < 0) {
    0x0000b9f0 blt.w 0xbafe                                          |         goto label_114;
                                                                     |     }
    0x0000b9f4 cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0000b9f6 beq.w 0xbbf2                                          |         goto label_115;
                                                                     |     }
    0x0000b9fa ldr r3, [r4]                                          |     r3 = *(r4);
    0x0000b9fc cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000b9fe beq.w 0xbb04                                          |         goto label_48;
                                                                     |     }
    0x0000ba02 ldrsb r3, [r3, r2]                                    |     r3 = *((r3 + r2));
    0x0000ba04 cmp r3, 0                                             |     
                                                                     |     if (r3 < 0) {
    0x0000ba06 blt 0xbb04                                            |         goto label_48;
                                                                     |     }
                                                                     | label_47:
    0x0000ba08 cmp r3, 6                                             |     
    0x0000ba0a ite le                                                |     
                                                                     |     if (r3 > 6) {
    0x0000ba0c movle r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r3 <= 6) {
    0x0000ba0e movgt r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     | label_41:
    0x0000ba10 subs r5, r6, 0                                        |     r5 = r6 - 0;
    0x0000ba12 it ne                                                 |     
                                                                     |     if (r5 == r6) {
    0x0000ba14 movne r5, 1                                           |         r5 = 1;
                                                                     |     }
    0x0000ba16 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0000ba18 bne.w 0xbb48                                          |         goto label_116;
                                                                     |     }
    0x0000ba1c ldr.w r3, [sl, 0x10]                                  |     r3 = *((sl + 0x10));
    0x0000ba20 b 0xb506                                              |     goto label_11;
                                                                     | label_64:
    0x0000ba22 ldr r3, [pc, 0x2b4]                                   |     
    0x0000ba24 add r7, sp, 0x4c                                      |     r7 += var_4ch;
    0x0000ba26 mov.w r1, 0x1000                                      |     r1 = 0x1000;
    0x0000ba2a mov r0, r7                                            |     r0 = r7;
    0x0000ba2c str.w r8, [sp]                                        |     __asm ("str.w r8, [sp]");
    0x0000ba30 add r3, pc                                            |     r3 = 0x1770e;
    0x0000ba32 mov r2, r3                                            |     r2 = r3;
    0x0000ba34 bl 0x1caac                                            |     fcn_0001caac (r0, r1, r2, r3, r4);
    0x0000ba38 ldr.w r2, [fp, 8]                                     |     r2 = var_8h;
    0x0000ba3c mov ip, r0                                            |     
    0x0000ba3e ldr r0, [r6, 0x10]                                    |     r0 = *((r6 + 0x10));
    0x0000ba40 cmp r2, 0                                             |     
    0x0000ba42 ldr r1, [r0, 0x60]                                    |     r1 = *((r0 + 0x60));
                                                                     |     if (r2 < 0) {
    0x0000ba44 blt 0xbae0                                            |         goto label_117;
                                                                     |     }
    0x0000ba46 cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0000ba48 beq.w 0xbc04                                          |         goto label_118;
                                                                     |     }
    0x0000ba4c ldr r3, [r1]                                          |     r3 = *(r1);
    0x0000ba4e cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000ba50 beq 0xbae6                                            |         goto label_50;
                                                                     |     }
    0x0000ba52 ldrsb r3, [r3, r2]                                    |     r3 = *((r3 + r2));
    0x0000ba54 cmp r3, 0                                             |     
                                                                     |     if (r3 < 0) {
    0x0000ba56 blt 0xbae6                                            |         goto label_50;
                                                                     |     }
                                                                     | label_49:
    0x0000ba58 cmp r3, 8                                             |     
    0x0000ba5a ite le                                                |     
                                                                     |     if (r3 > 8) {
    0x0000ba5c movle r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r3 <= 8) {
    0x0000ba5e movgt r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     | label_39:
    0x0000ba60 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000ba62 beq.w 0xb2be                                          |         goto label_31;
                                                                     |     }
    0x0000ba66 cmp.w ip, 0                                           |     
                                                                     |     if (ip == 0) {
    0x0000ba6a bne 0xba70                                            |         
    0x0000ba6c ldr r7, [pc, 0x26c]                                   |         
    0x0000ba6e add r7, pc                                            |         r7 = 0x1774e;
                                                                     |     }
    0x0000ba70 ldr r3, [pc, 0x26c]                                   |     
    0x0000ba72 mov.w r1, 0x268                                       |     r1 = 0x268;
    0x0000ba76 str r0, [sp, 4]                                       |     var_4h_2 = r0;
    0x0000ba78 ldr r0, [pc, 0x268]                                   |     
    0x0000ba7a add r3, pc                                            |     r3 = 0x1775e;
    0x0000ba7c str r7, [sp, 0x14]                                    |     var_14h = r7;
    0x0000ba7e str r3, [sp, 0x10]                                    |     var_10h = r3;
    0x0000ba80 ldr r3, [pc, 0x264]                                   |     
    0x0000ba82 add r0, pc                                            |     r0 = 0x1776a;
    0x0000ba84 add r3, pc                                            |     r3 = 0x17770;
    0x0000ba86 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0000ba88 ldr r3, [pc, 0x260]                                   |     
    0x0000ba8a add r3, pc                                            |     r3 = 0x1777a;
    0x0000ba8c str r3, [sp, 8]                                       |     var_sp_8h = r3;
    0x0000ba8e movs r3, 0                                            |     r3 = 0;
    0x0000ba90 str r3, [sp]                                          |     *(sp) = r3;
    0x0000ba92 movs r3, 9                                            |     r3 = 9;
    0x0000ba94 blx 0x4d50                                            |     loc_imp_apr_dynamic_fn_register ();
    0x0000ba98 ldr r0, [r6, 0x10]                                    |     r0 = *((r6 + 0x10));
    0x0000ba9a b 0xb2be                                              |     goto label_31;
                                                                     | label_91:
    0x0000ba9c ldr.w r2, [fp, 8]                                     |     r2 = var_8h;
    0x0000baa0 movs r6, 0                                            |     r6 = 0;
    0x0000baa2 b 0xb698                                              |     goto label_32;
                                                                     | label_75:
    0x0000baa4 ldr r1, [r0, 4]                                       |     r1 = *((r0 + 4));
    0x0000baa6 ldr r3, [r1, 0x10]                                    |     r3 = *((r1 + 0x10));
    0x0000baa8 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000baaa beq.w 0xb762                                          |         goto label_33;
                                                                     |     }
    0x0000baae ldrsb r3, [r3, r2]                                    |     r3 = *((r3 + r2));
    0x0000bab0 cmp r3, 0                                             |     
                                                                     |     if (r3 >= 0) {
    0x0000bab2 bge.w 0xb3e2                                          |         goto label_34;
                                                                     |     }
    0x0000bab6 b 0xb760                                              |     goto label_35;
                                                                     | label_63:
    0x0000bab8 ldr r2, [r0, 4]                                       |     r2 = *((r0 + 4));
    0x0000baba ldr r1, [r2, 0x10]                                    |     r1 = *((r2 + 0x10));
                                                                     |     if (r1 == 0) {
    0x0000babc cbz r1, 0xbac6                                        |         goto label_119;
                                                                     |     }
    0x0000babe ldrsb r3, [r1, r3]                                    |     r3 = *((r1 + r3));
    0x0000bac0 cmp r3, 0                                             |     
                                                                     |     if (r3 >= 0) {
    0x0000bac2 bge.w 0xb2ae                                          |         goto label_36;
                                                                     |     }
                                                                     |     do {
                                                                     | label_119:
    0x0000bac6 adds r2, 0x10                                         |         r2 += 0x10;
    0x0000bac8 b 0xb4e2                                              |         goto label_37;
                                                                     | label_106:
    0x0000baca cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0000bacc beq.w 0xbc6a                                          |             goto label_120;
                                                                     |         }
                                                                     | label_45:
    0x0000bad0 ldr r3, [r0, 4]                                       |         r3 = *((r0 + 4));
    0x0000bad2 cmp r3, 7                                             |         
    0x0000bad4 ite le                                                |         
                                                                     |         if (r3 > 7) {
    0x0000bad6 movle r3, 0                                           |             r3 = 0;
                                                                     |         }
                                                                     |         if (r3 <= 7) {
    0x0000bad8 movgt r3, 1                                           |             r3 = 1;
                                                                     |         }
    0x0000bada b 0xb8da                                              |         goto label_38;
                                                                     | label_90:
    0x0000badc ldr r2, [r0, 4]                                       |         r2 = *((r0 + 4));
    0x0000bade b 0xbac6                                              |         
                                                                     |     } while (1);
                                                                     | label_117:
    0x0000bae0 cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0000bae2 beq.w 0xbc12                                          |         goto label_121;
                                                                     |     }
                                                                     | label_50:
    0x0000bae6 ldr r3, [r1, 4]                                       |     r3 = *((r1 + 4));
    0x0000bae8 cmp r3, 8                                             |     
    0x0000baea ite le                                                |     
                                                                     |     if (r3 > 8) {
    0x0000baec movle r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r3 <= 8) {
    0x0000baee movgt r3, 1                                           |         r3 = 1;
                                                                     |     }
    0x0000baf0 b 0xba60                                              |     goto label_39;
                                                                     | label_113:
    0x0000baf2 mov r2, r7                                            |     r2 = r7;
    0x0000baf4 mov r1, r4                                            |     r1 = r4;
    0x0000baf6 mov r0, sb                                            |     r0 = sb;
    0x0000baf8 blx 0x4d5c                                            |     stack_chk_fail ();
    0x0000bafc b 0xb946                                              |     goto label_40;
                                                                     | label_114:
    0x0000bafe cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0000bb00 beq.w 0xbc18                                          |         goto label_122;
                                                                     |     }
                                                                     | label_48:
    0x0000bb04 ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
    0x0000bb06 cmp r3, 6                                             |     
    0x0000bb08 ite le                                                |     
                                                                     |     if (r3 > 6) {
    0x0000bb0a movle r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r3 <= 6) {
    0x0000bb0c movgt r3, 1                                           |         r3 = 1;
                                                                     |     }
    0x0000bb0e b 0xba10                                              |     goto label_41;
                                                                     | label_111:
    0x0000bb10 ldr.w sb, [sp, 0x30]                                  |     sb = var_30h;
    0x0000bb14 mov r1, r4                                            |     r1 = r4;
    0x0000bb16 ldr r3, [pc, 0x1d8]                                   |     
    0x0000bb18 mov r4, r0                                            |     r4 = r0;
    0x0000bb1a strd r6, r1, [sp, 0x10]                               |     __asm ("strd r6, r1, [sp, 0x10]");
    0x0000bb1e movw r1, 0x1e7                                        |     r1 = 0x1e7;
    0x0000bb22 ldr.w r2, [sb]                                        |     r2 = *(sb);
    0x0000bb26 add r3, pc                                            |     r3 = 0x1781c;
    0x0000bb28 ldr r0, [pc, 0x1c8]                                   |     
    0x0000bb2a ldr r7, [sp, 0x34]                                    |     r7 = var_34h;
    0x0000bb2c strd r3, r2, [sp, 8]                                  |     __asm ("strd r3, r2, [sp, 8]");
    0x0000bb30 ldr.w r3, [sb, 8]                                     |     r3 = *((sb + 8));
    0x0000bb34 add r0, pc                                            |     r0 = 0x1782c;
    0x0000bb36 ldr.w r2, [fp, 8]                                     |     r2 = var_8h;
    0x0000bb3a str r3, [sp, 4]                                       |     var_4h_2 = r3;
    0x0000bb3c movs r3, 0x16                                         |     r3 = 0x16;
    0x0000bb3e str r3, [sp]                                          |     *(sp) = r3;
    0x0000bb40 movs r3, 4                                            |     r3 = 4;
    0x0000bb42 blx 0x4d50                                            |     loc_imp_apr_dynamic_fn_register ();
    0x0000bb46 b 0xb956                                              |     goto label_42;
                                                                     | label_116:
    0x0000bb48 str r0, [sp, 0x10]                                    |     var_10h = r0;
    0x0000bb4a ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0000bb4e ldr r0, [pc, 0x1a8]                                   |     
    0x0000bb50 str r1, [sp, 4]                                       |     var_4h_2 = r1;
    0x0000bb52 movw r1, 0x215                                        |     r1 = 0x215;
    0x0000bb56 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0000bb58 ldr r3, [pc, 0x1a0]                                   |     
    0x0000bb5a add r0, pc                                            |     r0 = 0x17858;
    0x0000bb5c add r3, pc                                            |     r3 = 0x1785c;
    0x0000bb5e str r3, [sp, 8]                                       |     var_sp_8h = r3;
    0x0000bb60 movs r3, 0                                            |     r3 = 0;
    0x0000bb62 str r3, [sp]                                          |     *(sp) = r3;
    0x0000bb64 movs r3, 7                                            |     r3 = 7;
    0x0000bb66 blx 0x4d50                                            |     loc_imp_apr_dynamic_fn_register ();
    0x0000bb6a ldr.w r2, [fp, 8]                                     |     r2 = var_8h;
    0x0000bb6c movs r0, 8                                            |     r0 = 8;
    0x0000bb6e ldr.w r3, [sl, 0x10]                                  |     r3 = *((sl + 0x10));
    0x0000bb72 b 0xb506                                              |     goto label_11;
                                                                     | label_108:
    0x0000bb74 ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0000bb78 ldr r0, [pc, 0x184]                                   |     
    0x0000bb7a str r1, [sp, 4]                                       |     var_4h_2 = r1;
    0x0000bb7c movw r1, 0x24f                                        |     r1 = 0x24f;
    0x0000bb80 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0000bb82 ldr r3, [pc, 0x180]                                   |     
    0x0000bb84 add r0, pc                                            |     r0 = 0x17888;
    0x0000bb86 add r3, pc                                            |     r3 = 0x17890;
    0x0000bb88 str r3, [sp, 8]                                       |     var_sp_8h = r3;
    0x0000bb8a movs r3, 0                                            |     r3 = 0;
    0x0000bb8c str r3, [sp]                                          |     *(sp) = r3;
    0x0000bb8e movs r3, 8                                            |     r3 = 8;
    0x0000bb90 blx 0x4d50                                            |     loc_imp_apr_dynamic_fn_register ();
    0x0000bb94 b 0xb8e0                                              |     goto label_43;
                                                                     | label_107:
    0x0000bb96 ldr r0, [r1, 4]                                       |     r0 = *((r1 + 4));
    0x0000bb98 ldr r3, [r0, 0x10]                                    |     r3 = *((r0 + 0x10));
                                                                     |     if (r3 == 0) {
    0x0000bb9a cbz r3, 0xbba4                                        |         goto label_53;
                                                                     |     }
    0x0000bb9c ldrsb r3, [r3, r2]                                    |     r3 = *((r3 + r2));
    0x0000bb9e cmp r3, 0                                             |     
                                                                     |     if (r3 >= 0) {
    0x0000bba0 bge.w 0xb8d2                                          |         goto label_44;
                                                                     |     }
                                                                     | label_53:
    0x0000bba4 adds r0, 0x10                                         |     r0 += 0x10;
    0x0000bba6 b 0xbad0                                              |     goto label_45;
                                                                     | label_66:
    0x0000bba8 movs r1, 0x20                                         |     r1 = 0x20;
    0x0000bbaa ldr r0, [r0]                                          |     r0 = *(r0);
    0x0000bbac blx 0x4c6c                                            |     loc_imp_apr_thread_mutex_create ();
    0x0000bbb0 mov r1, r4                                            |     r1 = r4;
    0x0000bbb2 movs r2, 0x20                                         |     r2 = 0x20;
    0x0000bbb4 blx 0x4aa0                                            |     fcn_00004aa0 ();
    0x0000bbb8 ldr r3, [r6, 0x10]                                    |     r3 = *((r6 + 0x10));
    0x0000bbba mov r4, r0                                            |     r4 = r0;
    0x0000bbbc ldr r2, [sp, 0x28]                                    |     r2 = var_28h;
    0x0000bbbe ldr r1, [pc, 0x148]                                   |     
    0x0000bbc0 ldr r0, [r3]                                          |     r0 = *(r3);
    0x0000bbc2 ldr r3, [r2, 0x1c]                                    |     r3 = *((r2 + 0x1c));
    0x0000bbc4 add r1, pc                                            |     r1 = 0x178d2;
    0x0000bbc6 ldr r2, [r2]                                          |     r2 = *(r2);
    0x0000bbc8 blx 0x49f8                                            |     fcn_000049f8 ();
    0x0000bbcc ldr r3, [r6, 0x10]                                    |     r3 = *((r6 + 0x10));
    0x0000bbce movs r2, 4                                            |     r2 = 4;
    0x0000bbd0 str r0, [r4]                                          |     *(r4) = r0;
    0x0000bbd2 movs r1, 0xa                                          |     r1 = 0xa;
    0x0000bbd4 ldr r0, [r3]                                          |     r0 = *(r3);
    0x0000bbd6 strd r7, r3, [r4, 4]                                  |     __asm ("strd r7, r3, [r4, 4]");
    0x0000bbda str r0, [r4, 0xc]                                     |     *((r4 + 0xc)) = r0;
    0x0000bbdc blx 0x4ba0                                            |     nghttp2_session_callbacks_set_on_frame_send_callback ();
    0x0000bbe0 str r0, [r4, 0x14]                                    |     *((r4 + 0x14)) = r0;
    0x0000bbe2 str r4, [r6, 4]                                       |     *((r6 + 4)) = r4;
    0x0000bbe4 b.w 0xb2d6                                            |     goto label_46;
                                                                     | label_109:
    0x0000bbe8 mov r1, r5                                            |     r1 = r5;
    0x0000bbea blx 0x4a70                                            |     r0 = fcn_00004a70 ();
    0x0000bbee mov r4, r0                                            |     r4 = r0;
    0x0000bbf0 b 0xb956                                              |     goto label_42;
                                                                     | label_115:
    0x0000bbf2 ldr r4, [r1, 4]                                       |     r4 = *((r1 + 4));
    0x0000bbf4 ldr r3, [r4, 0x10]                                    |     r3 = *((r4 + 0x10));
                                                                     |     if (r3 == 0) {
    0x0000bbf6 cbz r3, 0xbc00                                        |         goto label_51;
                                                                     |     }
    0x0000bbf8 ldrsb r3, [r3, r2]                                    |     r3 = *((r3 + r2));
    0x0000bbfa cmp r3, 0                                             |     
                                                                     |     if (r3 >= 0) {
    0x0000bbfc bge.w 0xba08                                          |         goto label_47;
                                                                     |     }
                                                                     | label_51:
    0x0000bc00 adds r4, 0x10                                         |     r4 += 0x10;
    0x0000bc02 b 0xbb04                                              |     goto label_48;
                                                                     | label_118:
    0x0000bc04 ldr r1, [r0, 4]                                       |     r1 = *((r0 + 4));
    0x0000bc06 ldr r3, [r1, 0x10]                                    |     r3 = *((r1 + 0x10));
                                                                     |     if (r3 == 0) {
    0x0000bc08 cbz r3, 0xbc14                                        |         goto label_123;
                                                                     |     }
    0x0000bc0a ldrsb r3, [r3, r2]                                    |     r3 = *((r3 + r2));
    0x0000bc0c cmp r3, 0                                             |     
                                                                     |     if (r3 >= 0) {
    0x0000bc0e bge.w 0xba58                                          |         goto label_49;
                                                                     |     }
                                                                     | label_121:
    0x0000bc12 ldr r1, [r0, 4]                                       |     r1 = *((r0 + 4));
                                                                     | label_123:
    0x0000bc14 adds r1, 0x10                                         |     r1 += 0x10;
    0x0000bc16 b 0xbae6                                              |     goto label_50;
                                                                     | label_122:
    0x0000bc18 ldr r4, [r1, 4]                                       |     r4 = *((r1 + 4));
    0x0000bc1a b 0xbc00                                              |     goto label_51;
                                                                     | label_67:
    0x0000bc1c ldr r5, [sp, 0x28]                                    |     r5 = var_28h;
    0x0000bc1e mov.w r1, 0x1f4                                       |     r1 = 0x1f4;
    0x0000bc22 ldr r0, [r5, 0x54]                                    |     r0 = *((r5 + 0x54));
    0x0000bc24 blx 0x4c38                                            |     fcn_00004c38 ();
    0x0000bc28 movs r2, 1                                            |     r2 = 1;
    0x0000bc2a mov r7, r0                                            |     r7 = r0;
    0x0000bc2c ldr r1, [r6, 0x10]                                    |     r1 = *((r6 + 0x10));
    0x0000bc2e ldr r0, [r5, 0x24]                                    |     r0 = *((r5 + 0x24));
    0x0000bc30 bl 0x124d0                                            |     fcn_000124d0 (r0, r1, r2);
    0x0000bc34 cmp.w r7, 0x190                                       |     
    0x0000bc38 mov r5, r0                                            |     r5 = r0;
    0x0000bc3a mov r1, r5                                            |     r1 = r5;
    0x0000bc3c ite ge                                                |     
                                                                     |     if (r7 < 0x190) {
    0x0000bc3e movge r0, r7                                          |         r0 = r7;
                                                                     |     }
                                                                     |     if (r7 >= 0x190) {
    0x0000bc40 movlt r0, 0x1f4                                       |         r0 = 0x1f4;
                                                                     |     }
    0x0000bc44 blx 0x4910                                            |     fcn_00004910 ();
    0x0000bc48 ldr r3, [r6, 0x10]                                    |     r3 = *((r6 + 0x10));
    0x0000bc4a mov r1, r5                                            |     r1 = r5;
    0x0000bc4c ldr r0, [r3, 0x40]                                    |     r0 = *((r3 + 0x40));
    0x0000bc4e blx 0x5138                                            |     fcn_00005138 ();
    0x0000bc52 ldr r3, [sp, 0x1c]                                    |     r3 = var_1ch;
    0x0000bc54 str r3, [r0]                                          |     *(r0) = r3;
    0x0000bc56 ldr.w r2, [r8, 8]                                     |     r2 = *((r8 + 8));
    0x0000bc5a str r2, [r0, 4]                                       |     *((r0 + 4)) = r2;
    0x0000bc5c ldr.w r2, [r8, 8]                                     |     r2 = *((r8 + 8));
    0x0000bc60 str r0, [r2]                                          |     *(r2) = r0;
    0x0000bc62 str.w r0, [r8, 8]                                     |     __asm ("str.w r0, [r8, 8]");
    0x0000bc66 b.w 0xb2f4                                            |     goto label_52;
                                                                     | label_120:
    0x0000bc6a ldr r0, [r1, 4]                                       |     r0 = *((r1 + 4));
    0x0000bc6c b 0xbba4                                              |     goto label_53;
                                                                     | label_61:
    0x0000bc6e ldr r1, [pc, 0x9c]                                    |     
    0x0000bc70 movw r2, 0x267                                        |     r2 = 0x267;
    0x0000bc74 ldr r0, [pc, 0x98]                                    |     
    0x0000bc76 add r1, pc                                            |     r1 = 0x17988;
    0x0000bc78 add r0, pc                                            |     r0 = 0x1798c;
    0x0000bc7a blx 0x4e40                                            |     loc_imp_apr_socket_create ();
                                                                     | label_105:
    0x0000bc7e blx 0x4d80                                            |     loc_imp_apr_file_read ();
    0x0000bc82 nop                                                   |     
    0x0000bc84 ldm r0!, {r1, r2, r4, r5, r6, r7}                     |     r1 = *(r0!);
                                                                     |     r2 = *((r0! + 4));
                                                                     |     r4 = *((r0! + 8));
                                                                     |     r5 = *((r0! + 12));
                                                                     |     r6 = *((r0! + 16));
                                                                     |     r7 = *((r0! + 20));
    0x0000bc86 movs r1, r0                                           |     r1 = r0;
    0x0000bc88 lsls r4, r6, 0x10                                     |     r4 = r6 << 0x10;
    0x0000bc8a movs r0, r0                                           |     
    0x0000bc8c ldm r0!, {r1, r2, r3, r4, r6, r7}                     |     r1 = *(r0!);
                                                                     |     r2 = *((r0! + 4));
                                                                     |     r3 = *((r0! + 8));
                                                                     |     r4 = *((r0! + 12));
                                                                     |     r6 = *((r0! + 16));
                                                                     |     r7 = *((r0! + 20));
    0x0000bc8e movs r1, r0                                           |     r1 = r0;
    0x0000bc90 lsls r0, r1, 0x12                                     |     r0 = r1 << 0x12;
    0x0000bc92 movs r0, r0                                           |     
    0x0000bc94 lsls r4, r6, 0x11                                     |     r4 = r6 << 0x11;
    0x0000bc96 movs r0, r0                                           |     
    0x0000bc98 ldr r1, [pc, 0x98]                                    |     r1 = *(0xbd34);
    0x0000bc9a movs r1, r0                                           |     r1 = r0;
    0x0000bc9c subs r4, 0xc                                          |     r4 -= 0xc;
    0x0000bc9e movs r1, r0                                           |     r1 = r0;
    0x0000bca0 ldr r0, [pc, 0]                                       |     r0 = *(0xbca4);
    0x0000bca2 movs r1, r0                                           |     r1 = r0;
    0x0000bca4 invalid                                               |     
                                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0xd120 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0000d120 ()                      | uint32_t fcn_0000d120 (uint32_t arg1, uint32_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0000d120 vmul.i8 d2, d0, d2                |     __asm ("vmul.i8 d2, d0, d2");
    0x0000d124 strh r7, [r4, 4]                  |     *((r4 + 4)) = r7;
                                                 |     /* switch table (19 cases) at 0xd12a */
    0x0000d126 tbb [pc, r1]                      |     __asm ("tbb [0x0000d12c]");
    0x0000d13e ldrd r0, r1, [r0, 0x60]           |     __asm ("ldrd r0, r1, [r0, 0x60]");
    0x0000d142 cmp.w r1, -1                      |     
    0x0000d146 it eq                             |     
                                                 |     if (r1 == -1) {
    0x0000d148 cmpeq r0, -1                      |         __asm ("cmpeq r0, -1");
                                                 |     }
                                                 |     if (r1 == -1) {
    0x0000d14c beq.w 0xd26a                      |         goto label_2;
                                                 |     }
    0x0000d14e strh r5, [r1, 4]                  |     *((r1 + 4)) = r5;
                                                 | label_1:
    0x0000d150 bx lr                             |     return;
    0x0000d152 ldr r0, [r0, 0x5c]                |     r0 = *((r0 + 0x5c));
    0x0000d154 adds r3, r0, 1                    |     r3 = r0 + 1;
                                                 |     if (r3 != r0) {
    0x0000d156 bne 0xd15e                        |         goto label_0;
                                                 |     }
    0x0000d158 ldr r3, [pc, 0x120]               |     
    0x0000d15a add r3, pc                        |     r3 = 0x1a3da;
    0x0000d15c ldr r0, [r3, 0x5c]                |     r0 = *(0x1a436);
                                                 |     do {
                                                 | label_0:
    0x0000d15e asrs r1, r0, 0x1f                 |         r1 = r0 >> 0x1f;
    0x0000d160 bx lr                             |         return;
    0x0000d162 ldr r0, [r0, 0x58]                |         r0 = *((r0 + 0x58));
    0x0000d164 adds r2, r0, 1                    |         r2 = r0 + 1;
    0x0000d166 bne 0xd15e                        |         
                                                 |     } while (r2 != r0);
    0x0000d168 ldr r3, [pc, 0x114]               |     
    0x0000d16a add r3, pc                        |     r3 = 0x1a3ee;
    0x0000d16c ldr r0, [r3, 0x58]                |     r0 = *(0x1a446);
    0x0000d16e b 0xd15e                          |     goto label_0;
    0x0000d170 ldr r0, [r0, 0x54]                |     r0 = *((r0 + 0x54));
    0x0000d172 adds r1, r0, 1                    |     r1 = r0 + 1;
                                                 |     if (r1 != r0) {
    0x0000d174 bne 0xd15e                        |         goto label_0;
                                                 |     }
    0x0000d176 ldr r3, [pc, 0x10c]               |     
    0x0000d178 add r3, pc                        |     r3 = 0x1a402;
    0x0000d17a ldr r0, [r3, 0x54]                |     r0 = *(0x1a456);
    0x0000d17c b 0xd15e                          |     goto label_0;
    0x0000d17e ldr r0, [r0, 0x50]                |     r0 = *((r0 + 0x50));
    0x0000d180 adds r3, r0, 1                    |     r3 = r0 + 1;
                                                 |     if (r3 != r0) {
    0x0000d182 bne 0xd15e                        |         goto label_0;
                                                 |     }
    0x0000d184 ldr r3, [pc, 0x100]               |     
    0x0000d186 add r3, pc                        |     r3 = 0x1a412;
    0x0000d188 ldr r0, [r3, 0x50]                |     r0 = *(0x1a462);
    0x0000d18a b 0xd15e                          |     goto label_0;
    0x0000d18c ldr r0, [r0, 0x48]                |     r0 = *((r0 + 0x48));
    0x0000d18e adds r2, r0, 1                    |     r2 = r0 + 1;
                                                 |     if (r2 != r0) {
    0x0000d190 bne 0xd15e                        |         goto label_0;
                                                 |     }
    0x0000d192 ldr r3, [pc, 0xf8]                |     
    0x0000d194 add r3, pc                        |     r3 = 0x1a426;
    0x0000d196 ldr r0, [r3, 0x48]                |     r0 = *(0x1a46e);
    0x0000d198 b 0xd15e                          |     goto label_0;
    0x0000d19a ldr r0, [r0, 0x44]                |     r0 = *((r0 + 0x44));
    0x0000d19c adds r1, r0, 1                    |     r1 = r0 + 1;
                                                 |     if (r1 != r0) {
    0x0000d19e bne 0xd15e                        |         goto label_0;
                                                 |     }
    0x0000d1a0 ldr r3, [pc, 0xec]                |     
    0x0000d1a2 add r3, pc                        |     r3 = 0x1a436;
    0x0000d1a4 ldr r0, [r3, 0x44]                |     r0 = *(0x1a47a);
    0x0000d1a6 b 0xd15e                          |     goto label_0;
    0x0000d1a8 ldr r0, [r0, 0x3c]                |     r0 = *((r0 + 0x3c));
    0x0000d1aa adds r3, r0, 1                    |     r3 = r0 + 1;
                                                 |     if (r3 != r0) {
    0x0000d1ac bne 0xd15e                        |         goto label_0;
                                                 |     }
    0x0000d1ae ldr r3, [pc, 0xe4]                |     
    0x0000d1b0 add r3, pc                        |     r3 = 0x1a44a;
    0x0000d1b2 ldr r0, [r3, 0x3c]                |     r0 = *(0x1a486);
    0x0000d1b4 b 0xd15e                          |     goto label_0;
    0x0000d1b6 ldr r0, [r0, 0x38]                |     r0 = *((r0 + 0x38));
    0x0000d1b8 adds r2, r0, 1                    |     r2 = r0 + 1;
                                                 |     if (r2 != r0) {
    0x0000d1ba bne 0xd15e                        |         goto label_0;
                                                 |     }
    0x0000d1bc ldr r3, [pc, 0xd8]                |     
    0x0000d1be add r3, pc                        |     r3 = 0x1a45a;
    0x0000d1c0 ldr r0, [r3, 0x38]                |     r0 = *(0x1a492);
    0x0000d1c2 b 0xd15e                          |     goto label_0;
    0x0000d1c4 ldrd r0, r1, [r0, 0x30]           |     __asm ("ldrd r0, r1, [r0, 0x30]");
    0x0000d1c8 cmp.w r1, -1                      |     
    0x0000d1cc it eq                             |     
                                                 |     if (r1 != -1) {
    0x0000d1ce cmpeq r0, -1                      |         __asm ("cmpeq r0, -1");
                                                 |         goto label_3;
                                                 |     }
                                                 |     if (r1 != -1) {
                                                 | label_3:
    0x0000d1d2 bne 0xd150                        |         goto label_1;
                                                 |     }
    0x0000d1d4 ldr r3, [pc, 0xc4]                |     
    0x0000d1d6 add r3, pc                        |     r3 = 0x1a476;
    0x0000d1d8 ldrd r0, r1, [r3, 0x30]           |     __asm ("ldrd r0, r1, [r3, 0x30]");
    0x0000d1dc bx lr                             |     return r0;
    0x0000d1de ldr r0, [r0, 0x2c]                |     r0 = *((r0 + 0x2c));
    0x0000d1e0 adds r3, r0, 1                    |     r3 = r0 + 1;
                                                 |     if (r3 != r0) {
    0x0000d1e2 bne 0xd15e                        |         goto label_0;
                                                 |     }
    0x0000d1e4 ldr r3, [pc, 0xb8]                |     
    0x0000d1e6 add r3, pc                        |     r3 = 0x1a48a;
    0x0000d1e8 ldr r0, [r3, 0x2c]                |     r0 = *(0x1a4b6);
    0x0000d1ea b 0xd15e                          |     goto label_0;
    0x0000d1ec ldr r0, [r0, 0x28]                |     r0 = *((r0 + 0x28));
    0x0000d1ee adds r2, r0, 1                    |     r2 = r0 + 1;
                                                 |     if (r2 != r0) {
    0x0000d1f0 bne 0xd15e                        |         goto label_0;
                                                 |     }
    0x0000d1f2 ldr r3, [pc, 0xb0]                |     
    0x0000d1f4 add r3, pc                        |     r3 = 0x1a49e;
    0x0000d1f6 ldr r0, [r3, 0x28]                |     r0 = *(0x1a4c6);
    0x0000d1f8 b 0xd15e                          |     goto label_0;
    0x0000d1fa ldr r0, [r0, 0x24]                |     r0 = *((r0 + 0x24));
    0x0000d1fc adds r1, r0, 1                    |     r1 = r0 + 1;
                                                 |     if (r1 != r0) {
    0x0000d1fe bne 0xd15e                        |         goto label_0;
                                                 |     }
    0x0000d200 ldr r3, [pc, 0xa4]                |     
    0x0000d202 add r3, pc                        |     r3 = 0x1a4ae;
    0x0000d204 ldr r0, [r3, 0x24]                |     r0 = *(0x1a4d2);
    0x0000d206 b 0xd15e                          |     goto label_0;
    0x0000d208 ldr r0, [r0, 0x20]                |     r0 = *((r0 + 0x20));
    0x0000d20a adds r1, r0, 1                    |     r1 = r0 + 1;
                                                 |     if (r1 != r0) {
    0x0000d20c bne 0xd15e                        |         goto label_0;
                                                 |     }
    0x0000d20e ldr r3, [pc, 0x9c]                |     
    0x0000d210 add r3, pc                        |     r3 = 0x1a4c2;
    0x0000d212 ldr r0, [r3, 0x20]                |     r0 = *(0x1a4e2);
    0x0000d214 b 0xd15e                          |     goto label_0;
    0x0000d216 ldrd r0, r1, [r0, 0x18]           |     __asm ("ldrd r0, r1, [r0, 0x18]");
    0x0000d21a cmp.w r1, -1                      |     
    0x0000d21e it eq                             |     
                                                 |     if (r1 != -1) {
    0x0000d220 cmpeq r0, -1                      |         __asm ("cmpeq r0, -1");
                                                 |         goto label_4;
                                                 |     }
                                                 |     if (r1 != -1) {
                                                 | label_4:
    0x0000d224 bne 0xd150                        |         goto label_1;
                                                 |     }
    0x0000d226 ldr r3, [pc, 0x88]                |     
    0x0000d228 add r3, pc                        |     r3 = 0x1a4de;
    0x0000d22a ldrd r0, r1, [r3, 0x18]           |     __asm ("ldrd r0, r1, [r3, 0x18]");
    0x0000d22e bx lr                             |     return r0;
    0x0000d230 ldr r0, [r0, 0x10]                |     r0 = *((r0 + 0x10));
    0x0000d232 adds r3, r0, 1                    |     r3 = r0 + 1;
                                                 |     if (r3 != r0) {
    0x0000d234 bne 0xd15e                        |         goto label_0;
                                                 |     }
    0x0000d236 ldr r3, [pc, 0x7c]                |     
    0x0000d238 add r3, pc                        |     r3 = 0x1a4f2;
    0x0000d23a ldr r0, [r3, 0x10]                |     r0 = *(0x1a502);
    0x0000d23c b 0xd15e                          |     goto label_0;
    0x0000d23e ldr r0, [r0, 0xc]                 |     r0 = *((r0 + 0xc));
    0x0000d240 adds r2, r0, 1                    |     r2 = r0 + 1;
                                                 |     if (r2 != r0) {
    0x0000d242 bne 0xd15e                        |         goto label_0;
                                                 |     }
    0x0000d244 ldr r3, [pc, 0x70]                |     
    0x0000d246 add r3, pc                        |     r3 = 0x1a502;
    0x0000d248 ldr r0, [r3, 0xc]                 |     r0 = *(0x1a50e);
    0x0000d24a b 0xd15e                          |     goto label_0;
    0x0000d24c ldr r0, [r0, 8]                   |     r0 = *((r0 + 8));
    0x0000d24e adds r1, r0, 1                    |     r1 = r0 + 1;
                                                 |     if (r1 != r0) {
    0x0000d250 bne 0xd15e                        |         goto label_0;
                                                 |     }
    0x0000d252 ldr r3, [pc, 0x68]                |     
    0x0000d254 add r3, pc                        |     r3 = 0x1a516;
    0x0000d256 ldr r0, [r3, 8]                   |     r0 = *(0x1a51e);
    0x0000d258 b 0xd15e                          |     goto label_0;
    0x0000d25a ldr r0, [r0, 4]                   |     r0 = *((r0 + 4));
    0x0000d25c adds r3, r0, 1                    |     r3 = r0 + 1;
                                                 |     if (r3 != r0) {
    0x0000d25e bne.w 0xd15e                      |         goto label_0;
                                                 |     }
    0x0000d262 ldr r3, [pc, 0x5c]                |     
    0x0000d264 add r3, pc                        |     r3 = 0x1a52a;
    0x0000d266 ldr r0, [r3, 4]                   |     r0 = *(0x1a52e);
    0x0000d268 b 0xd15e                          |     goto label_0;
                                                 | label_2:
    0x0000d26a ldr r3, [pc, 0x58]                |     
    0x0000d26c add r3, pc                        |     r3 = 0x1a536;
    0x0000d26e ldrd r0, r1, [r3, 0x60]           |     __asm ("ldrd r0, r1, [r3, 0x60]");
    0x0000d272 bx lr                             |     return r0;
    0x0000d274 mov.w r0, -1                      |     r0 = -1;
    0x0000d278 mov r1, r0                        |     r1 = r0;
    0x0000d27a b 0xd150                          |     goto label_1;
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0x10264 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00010264 ()                                      | void fcn_00010264 (int16_t arg_60h, int16_t arg_64h, int16_t arg_68h, int16_t arg1, int16_t arg3, int16_t arg4) {
                                                                 |     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_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     r0 = arg1;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00010264 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00010268 sub sp, 0x3c                                      |     
    0x0001026a ldr r1, [sp, 0x60]                                |     r1 = *(arg_60h);
    0x0001026c mov r7, r2                                        |     r7 = r2;
    0x0001026e mov r6, r3                                        |     r6 = r3;
    0x00010270 mov r4, r0                                        |     r4 = r0;
    0x00010272 ldr.w r2, [pc, 0x450]                             |     
    0x00010276 str r1, [sp, 0x18]                                |     var_18h = r1;
    0x00010278 ldr.w r3, [pc, 0x44c]                             |     r3 = *(0x106c8);
    0x0001027c ldr r1, [sp, 0x64]                                |     r1 = *(arg_64h);
    0x0001027e add r2, pc                                        |     r2 = 0x20948;
    0x00010280 ldr.w fp, [pc, 0x448]                             |     
    0x00010284 ldr r0, [r0, 0x64]                                |     r0 = *(arg_60hx64);
    0x00010286 str r1, [sp, 0x1c]                                |     var_1ch = r1;
    0x00010288 ldr r3, [r2, r3]                                  |     
    0x0001028a add fp, pc                                        |     fp = 0x2095a;
    0x0001028c ldr r3, [r3]                                      |     r3 = *(0x20948);
    0x0001028e str r3, [sp, 0x34]                                |     var_34h = r3;
    0x00010290 mov.w r3, 0                                       |     r3 = 0;
    0x00010294 ldr r3, [sp, 0x68]                                |     r3 = *(arg_68h);
    0x00010296 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x00010298 blx 0x4c9c                                        |     r0 = nghttp2_option_set_peer_max_concurrent_streams ();
    0x0001029c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001029e bne.w 0x103d8                                     |         goto label_18;
                                                                 |     }
    0x000102a2 ldr.w sl, [r4, 0x1c]                              |     sl = *((r4 + 0x1c));
    0x000102a6 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x000102aa bne.w 0x103b0                                     |         
    0x000102ae ldr r0, [r4, 0x30]                                |         r0 = *((r4 + 0x30));
    0x000102b0 ldr r2, [r0, 8]                                   |         r2 = *((r0 + 8));
    0x000102b2 cmp r2, 0                                         |         
                                                                 |         if (r2 != 0) {
    0x000102b4 bne.w 0x104d2                                     |             goto label_19;
                                                                 |         }
                                                                 | label_13:
    0x000102b8 ldr.w r8, [r4, 0x20]                              |         r8 = *((r4 + 0x20));
    0x000102bc cmp.w r8, 0                                       |         
                                                                 |         if (r8 != 0) {
    0x000102c0 bne.w 0x106b2                                     |             goto label_20;
                                                                 |         }
    0x000102c4 ldr.w r2, [pc, 0x408]                             |         r2 = *(0x106d0);
    0x000102c8 movs r1, 1                                        |         r1 = 1;
    0x000102ca str r1, [r4, 0x20]                                |         *((r4 + 0x20)) = r1;
    0x000102cc ldr.w sb, [r4, 8]                                 |         sb = *((r4 + 8));
    0x000102ce str r0, [sp, 0x20]                                |         *((sp + 0x20)) = r0;
    0x000102d0 ldr.w r3, [fp, r2]                                |         r3 = *((fp + r2));
    0x000102d4 ldr.w r2, [sb, 0x60]                              |         r2 = *((sb + 0x60));
    0x000102d8 ldr r5, [r3, 8]                                   |         r5 = *((r3 + 8));
    0x000102da mov fp, r3                                        |         
    0x000102dc cmp r5, 0                                         |         
                                                                 |         if (r5 < 0) {
    0x000102de blt.w 0x104c8                                     |             goto label_21;
                                                                 |         }
    0x000102e2 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x000102e4 beq.w 0x10480                                     |             goto label_22;
                                                                 |         }
    0x000102e8 ldr r3, [r2]                                      |         r3 = *(r2);
    0x000102ea cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x000102ec beq.w 0x10492                                     |             goto label_8;
                                                                 |         }
    0x000102f0 ldrsb r3, [r3, r5]                                |         r3 = *((r3 + r5));
    0x000102f2 cmp r3, 0                                         |         
                                                                 |         if (r3 < 0) {
    0x000102f4 blt.w 0x10492                                     |             goto label_8;
                                                                 |         }
                                                                 | label_2:
    0x000102f8 cmp r3, 8                                         |         
    0x000102fa ite le                                            |         
                                                                 |         if (r3 > 8) {
    0x000102fc movle r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r3 <= 8) {
    0x000102fe movgt r3, 1                                       |             r3 = 1;
                                                                 |         }
                                                                 | label_3:
    0x00010300 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00010302 bne.w 0x1057a                                     |             goto label_23;
                                                                 |         }
                                                                 | label_12:
    0x00010306 ldr r0, [r4, 0x70]                                |         r0 = *((r4 + 0x70));
    0x00010308 add.w sl, sp, 0x2c                                |         sl += var_2ch;
    0x0001030c blx 0x4bac                                        |         memmove (r0, r1, r2);
    0x00010310 ldr r0, [r4, 0x74]                                |         r0 = *((r4 + 0x74));
    0x00010312 add.w sb, sp, 0x30                                |         sb += var_30h;
    0x00010316 blx 0x4bac                                        |         memmove (r0, r1, r2);
    0x0001031a mov r3, r7                                        |         r3 = r7;
    0x0001031c mov r7, sl                                        |         r7 = sl;
    0x0001031e mov sl, r3                                        |         sl = r3;
                                                                 | label_4:
    0x00010320 ldr r0, [r4, 0x78]                                |         r0 = *((r4 + 0x78));
    0x00010322 blx 0x4c9c                                        |         nghttp2_option_set_peer_max_concurrent_streams ();
    0x00010326 ldr r0, [r4, 0x7c]                                |         r0 = *((r4 + 0x7c));
    0x00010328 bl 0x1c038                                        |         r0 = fcn_0001c038 (r0);
    0x0001032c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001032e beq 0x103e8                                       |             goto label_6;
                                                                 |         }
    0x00010330 ldr.w r0, [r4, 0x80]                              |         r0 = *((r4 + 0x80));
    0x00010334 bl 0x1c038                                        |         r0 = fcn_0001c038 (r0);
    0x00010338 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001033a beq 0x103e8                                       |             goto label_6;
                                                                 |         }
    0x0001033c ldr r0, [r4, 0x78]                                |         r0 = *((r4 + 0x78));
    0x0001033e blx 0x50a4                                        |         loc_imp_ap_hook_post_config ();
    0x00010342 ldr r0, [r4, 0x64]                                |         r0 = *((r4 + 0x64));
    0x00010344 blx 0x50a4                                        |         loc_imp_ap_hook_post_config ();
    0x00010348 cmp r6, 0                                         |         
    0x0001034a strd sb, r7, [sp]                                 |         __asm ("strd sb, r7, [sp]");
    0x0001034e itete ge                                          |         
                                                                 |         if (r6 < 0) {
    0x00010350 movge r2, sl                                      |             r2 = sl;
                                                                 |         }
                                                                 |         if (r6 >= 0) {
    0x00010352 movlt r2, -1                                      |             r2 = -1;
                                                                 |         }
                                                                 |         if (r6 >= 0) {
    0x00010356 movlt r3, r6                                      |             r3 = r6;
                                                                 |         }
                                                                 |         if (r6 < 0) {
    0x00010358 mov.w r3, -1                                      |             r3 = -1;
                                                                 |         }
    0x0001035c ldr r0, [r4, 0x6c]                                |         r0 = *((r4 + 0x6c));
    0x0001035e blx 0x4854                                        |         r0 = fcn_00004854 ();
    0x00010362 mov r5, r0                                        |         r5 = r0;
    0x00010364 ldr r0, [r4, 0x64]                                |         r0 = *((r4 + 0x64));
    0x00010366 blx 0x4c9c                                        |         nghttp2_option_set_peer_max_concurrent_streams ();
    0x0001036a cmp r5, 4                                         |         
                                                                 |         if (r5 == 4) {
    0x0001036c beq.w 0x1049e                                     |             goto label_24;
                                                                 |         }
    0x00010370 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x00010372 beq 0x10418                                       |             goto label_25;
                                                                 |         }
    0x00010374 movw r3, 0x1177                                   |         
    0x00010378 ldr.w r2, [fp, 8]                                 |         r2 = *(arg_68h);
    0x0001037c movt r3, 1                                        |         r3 = 0x11177;
    0x00010380 ldr r1, [r4, 8]                                   |         r1 = *((r4 + 8));
    0x00010382 cmp r5, r3                                        |         
                                                                 |         if (r5 != r3) {
    0x00010384 bne.w 0x105c2                                     |             goto label_26;
                                                                 |         }
    0x00010388 cmp r2, 0                                         |         
    0x0001038a ldr r3, [r1, 0x60]                                |         r3 = *((r1 + 0x60));
                                                                 |         if (r2 < 0) {
    0x0001038c blt.w 0x10648                                     |             goto label_27;
                                                                 |         }
    0x00010390 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00010392 beq.w 0x10678                                     |             goto label_28;
                                                                 |         }
    0x00010396 ldr r0, [r3]                                      |         r0 = *(r3);
    0x00010398 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001039a beq.w 0x1064a                                     |             goto label_17;
                                                                 |         }
    0x0001039e ldrsb r0, [r0, r2]                                |         r0 = *((r0 + r2));
    0x000103a0 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x000103a2 blt.w 0x1064a                                     |             goto label_17;
                                                                 |         }
                                                                 | label_16:
    0x000103a6 cmp r0, 8                                         |         
                                                                 |         if (r0 > 8) {
    0x000103a8 bgt.w 0x10652                                     |             goto label_29;
                                                                 |         }
    0x000103aa strh r3, [r2, 0xa]                                |         *((r2 + 0xa)) = r3;
                                                                 | label_15:
    0x000103ac mov r8, r5                                        |         r8 = r5;
    0x000103ae b 0x1047a                                         |         goto label_5;
                                                                 |     }
    0x000103b0 mov.w r8, 0x67                                    |     r8 = 0x67;
                                                                 | label_1:
    0x000103b4 ldr r0, [r4, 0x64]                                |     r0 = *((r4 + 0x64));
    0x000103b6 blx 0x50a4                                        |     loc_imp_ap_hook_post_config ();
                                                                 |     do {
    0x000103ba ldr r2, [pc, 0x318]                               |         
    0x000103bc ldr r3, [pc, 0x308]                               |         r3 = *(0x106c8);
    0x000103be add r2, pc                                        |         r2 = 0x20a98;
    0x000103c0 ldr r3, [r2, r3]                                  |         r3 = *(0x20a98);
    0x000103c2 ldr r2, [r3]                                      |         r2 = *(0x20a98);
    0x000103c4 ldr r3, [sp, 0x34]                                |         r3 = var_34h;
    0x000103c6 eors r2, r3                                       |         r2 ^= r3;
    0x000103c8 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000103cc bne.w 0x106ae                                     |             goto label_30;
                                                                 |         }
    0x000103d0 mov r0, r8                                        |         r0 = r8;
    0x000103d2 add sp, 0x3c                                      |         
    0x000103d4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_18:
    0x000103d8 mov r8, r0                                        |         r8 = r0;
    0x000103da b 0x103ba                                         |         
                                                                 |     } while (1);
                                                                 |     do {
    0x000103dc ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x000103de bl 0x1be88                                        |         r0 = fcn_0001be88 (r0, r1);
    0x000103e2 mov r5, r0                                        |         r5 = r0;
    0x000103e4 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000103e6 bne 0x104b4                                       |             goto label_31;
                                                                 |         }
                                                                 | label_6:
    0x000103e8 ldr r0, [r4, 0x7c]                                |         r0 = *((r4 + 0x7c));
    0x000103ea bl 0x1c194                                        |         r0 = fcn_0001c194 (r0);
    0x000103ee mov r1, r0                                        |         r1 = r0;
    0x000103f0 cmp r0, 0                                         |         
    0x000103f2 bne 0x103dc                                       |         
                                                                 |     } while (r0 != 0);
    0x000103f4 b 0x10402                                         |     
                                                                 |     while (r0 != 0) {
    0x000103f6 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x000103f8 bl 0x1be88                                        |         r0 = fcn_0001be88 (r0, r1);
    0x000103fc mov r5, r0                                        |         r5 = r0;
    0x000103fe cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00010400 bne 0x104be                                       |             goto label_32;
                                                                 |         }
                                                                 | label_7:
    0x00010402 ldr.w r0, [r4, 0x80]                              |         r0 = *((r4 + 0x80));
    0x00010406 bl 0x1c194                                        |         r0 = fcn_0001c194 (r0);
    0x0001040a mov r1, r0                                        |         r1 = r0;
    0x0001040c cmp r0, 0                                         |         
    0x0001040e bne 0x103f6                                       |         
                                                                 |     }
    0x00010410 str r0, [sp, 0x30]                                |     var_30h = r0;
    0x00010412 ldr r0, [r4, 0x78]                                |     r0 = *((r4 + 0x78));
    0x00010414 blx 0x50a4                                        |     loc_imp_ap_hook_post_config ();
    0x00010416 invalid                                           |     
                                                                 | label_25:
    0x00010418 ldr r1, [sp, 0x30]                                |     r1 = var_30h;
    0x0001041a cmp r1, 0                                         |     
                                                                 |     if (r1 <= 0) {
    0x0001041c ble 0x1045e                                       |         goto label_33;
                                                                 |     }
    0x0001041e ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00010420 movs r5, 0                                        |     r5 = 0;
    0x00010422 mov r6, r5                                        |     r6 = r5;
    0x00010424 subs r7, r3, r5                                   |     r7 = r3 - r5;
    0x00010426 it ne                                             |     
                                                                 |     if (r7 == r3) {
    0x00010428 movne r7, 1                                       |         r7 = 1;
                                                                 |     }
    0x0001042a b 0x10434                                         |     
                                                                 |     while (r3 == 0) {
    0x0001042c adds r5, 1                                        |         r5++;
    0x0001042e adds r6, 0x14                                     |         r6 += 0x14;
    0x00010430 cmp r5, r1                                        |         
                                                                 |         if (r5 >= r1) {
    0x00010432 bge 0x1045e                                       |             goto label_33;
                                                                 |         }
                                                                 | label_0:
    0x00010434 ldr r3, [sp, 0x2c]                                |         r3 = var_2ch;
    0x00010436 add r3, r6                                        |         r3 += r6;
    0x00010438 ldr r3, [r3, 0x10]                                |         r3 = *((r3 + 0x10));
    0x0001043a ldr r2, [r3, 0x1c]                                |         r2 = *((r3 + 0x1c));
    0x0001043c cmp r2, 0                                         |         
    0x0001043e ite ne                                            |         
                                                                 |         if (r2 == 0) {
    0x00010440 movne r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r2 != 0) {
    0x00010442 andeq r3, r7, 1                                   |             r3 = r7 & 1;
                                                                 |         }
    0x00010444 lsls r1, r0, 0xc                                  |         r1 = r0 << 0xc;
    0x00010446 cmp r3, 0                                         |         
    0x00010448 beq 0x1042c                                       |         
                                                                 |     }
    0x0001044a ldr r0, [r4, 0x70]                                |     r0 = *((r4 + 0x70));
    0x0001044c adds r5, 1                                        |     r5++;
    0x0001044e blx 0x4f4c                                        |     fcn_00004f4c ();
    0x00010452 ldr r1, [sp, 0x30]                                |     r1 = var_30h;
    0x00010454 adds r6, 0x14                                     |     r6 += 0x14;
    0x00010456 ldr r3, [r4, 0x10]                                |     r3 = *((r4 + 0x10));
    0x00010458 cmp r5, r1                                        |     
    0x0001045a str r3, [r0]                                      |     *(r0) = r3;
                                                                 |     if (r5 < r1) {
    0x0001045c blt 0x10434                                       |         goto label_0;
                                                                 |     }
                                                                 | label_33:
    0x0001045e ldr r3, [sp, 0x18]                                |     r3 = var_18h;
                                                                 |     if (r3 != 0) {
    0x00010460 cbz r3, 0x1046c                                   |         
    0x00010462 ldr r3, [r4, 0x70]                                |         r3 = *((r4 + 0x70));
    0x00010464 ldr r3, [r3, 8]                                   |         r3 = *((r3 + 8));
    0x00010466 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00010468 bne.w 0x105e6                                     |             goto label_34;
                                                                 |         }
                                                                 |     }
                                                                 | label_14:
    0x0001046c ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
                                                                 |     if (r3 != 0) {
    0x0001046e cbz r3, 0x1047a                                   |         
    0x00010470 ldr r3, [r4, 0x74]                                |         r3 = *((r4 + 0x74));
    0x00010472 ldr r3, [r3, 8]                                   |         r3 = *((r3 + 8));
    0x00010474 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00010476 bne.w 0x10616                                     |             goto label_35;
                                                                 |         }
    0x00010478 strh r6, [r1, 6]                                  |         *((r1 + 6)) = r6;
                                                                 |     }
                                                                 | label_5:
    0x0001047a movs r3, 0                                        |     r3 = 0;
    0x0001047c str r3, [r4, 0x20]                                |     *((r4 + 0x20)) = r3;
    0x0001047e b 0x103b4                                         |     goto label_1;
                                                                 | label_22:
    0x00010480 ldr.w r2, [sb, 4]                                 |     r2 = *((sb + 4));
    0x00010484 ldr r3, [r2, 0x10]                                |     r3 = *((r2 + 0x10));
                                                                 |     if (r3 == 0) {
    0x00010486 cbz r3, 0x10490                                   |         goto label_9;
                                                                 |     }
    0x00010488 ldrsb r3, [r3, r5]                                |     r3 = *((r3 + r5));
    0x0001048a cmp r3, 0                                         |     
                                                                 |     if (r3 >= 0) {
    0x0001048c bge.w 0x102f8                                     |         goto label_2;
                                                                 |     }
    0x0001048e add r7, sp, 0xd0                                  |     r7 = sp + 0xd0;
                                                                 | label_9:
    0x00010490 adds r2, 0x10                                     |     r2 += 0x10;
                                                                 | label_8:
    0x00010492 ldr r3, [r2, 4]                                   |     r3 = *((r2 + 4));
    0x00010494 cmp r3, 8                                         |     
    0x00010496 ite le                                            |     
                                                                 |     if (r3 > 8) {
    0x00010498 movle r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r3 <= 8) {
    0x0001049a movgt r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0001049c b 0x10300                                         |     goto label_3;
                                                                 | label_24:
    0x0001049e ldr r3, [r4, 0x18]                                |     r3 = *((r4 + 0x18));
    0x000104a0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000104a2 beq.w 0x10320                                     |         goto label_4;
                                                                 |     }
    0x000104a6 ldr r3, [r4, 0x1c]                                |     r3 = *((r4 + 0x1c));
    0x000104a8 subs r3, 0                                        |     
    0x000104aa it ne                                             |     
                                                                 |     if (r3 == 0) {
    0x000104ac movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x000104ae lsl.w r8, r3, 2                                   |     r8 = r3 << 2;
    0x000104b2 b 0x1047a                                         |     goto label_5;
                                                                 | label_31:
    0x000104b4 ldr r0, [r4, 0x70]                                |     r0 = *((r4 + 0x70));
    0x000104b6 blx 0x4f4c                                        |     fcn_00004f4c ();
    0x000104b8 stcl p0, c6, [sl, -0x14]                          |     __asm ("stcl p0, c6, [sl, -0x14]");
    0x000104bc b 0x103e8                                         |     goto label_6;
                                                                 | label_32:
    0x000104be ldr r0, [r4, 0x74]                                |     r0 = *((r4 + 0x74));
    0x000104c0 blx 0x4f4c                                        |     r0 = fcn_00004f4c ();
    0x000104c4 str r5, [r0]                                      |     *(r0) = r5;
    0x000104c6 b 0x10402                                         |     goto label_7;
                                                                 | label_21:
    0x000104c8 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x000104ca bne 0x10492                                       |         goto label_8;
                                                                 |     }
    0x000104cc ldr.w r2, [sb, 4]                                 |     r2 = *((sb + 4));
    0x000104d0 b 0x10490                                         |     goto label_9;
                                                                 |     if (r2 <= 0) {
                                                                 | label_19:
    0x000104d2 ble 0x105bc                                       |         goto label_36;
                                                                 |     }
    0x000104d4 mov r8, sl                                        |     r8 = sl;
    0x000104d6 mvn sb, 0x80000000                                |     sb = ~0x80000000;
    0x000104da str r6, [sp, 0x24]                                |     var_24h = r6;
    0x000104dc b 0x1054c                                         |     
                                                                 |     while (r3 != 0) {
    0x000104de ldr.w r1, [r4, 0x88]                              |         r1 = *((r4 + 0x88));
    0x000104e2 str r3, [r1, 4]                                   |         *((r1 + 4)) = r3;
    0x000104e4 ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
    0x000104e6 ldr r0, [r3, 0x3c]                                |         r0 = *((r3 + 0x3c));
    0x000104e8 ldrd r2, r3, [r5, 0x70]                           |         __asm ("ldrd r2, r3, [r5, 0x70]");
    0x000104ec strd r2, r3, [r1, 0x68]                           |         __asm ("strd r2, r3, [r1, 0x68]");
    0x000104f0 blx 0x4898                                        |         fcn_00004898 ();
    0x000104f4 ldr r0, [r5, 0x34]                                |         r0 = *((r5 + 0x34));
    0x000104f6 ldr.w r3, [r4, 0x88]                              |         r3 = *((r4 + 0x88));
    0x000104fa str.w r8, [r3, 4]                                 |         __asm ("str.w r8, [r3, 4]");
    0x000104fc strh r4, [r0]                                     |         *(r0) = r4;
    0x000104fe cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00010500 bne 0x10566                                       |             goto label_37;
                                                                 |         }
                                                                 | label_11:
    0x00010502 ldr r0, [r5, 0x60]                                |         r0 = *((r5 + 0x60));
                                                                 |         if (r0 != 0) {
    0x00010504 cbz r0, 0x1053a                                   |             
    0x00010506 ldr r3, [pc, 0x1c8]                               |             
    0x00010508 ldr.w r3, [fp, r3]                                |             r3 = *((fp + r3));
    0x0001050c ldr r2, [r3, 8]                                   |             r2 = *(0x106da);
    0x0001050e ldr r3, [r0, 0x2c]                                |             r3 = *((r0 + 0x2c));
    0x00010510 ldr.w r3, [r3, r2, lsl 2]                         |             r3 = *(0x106d2);
    0x00010514 str.w r8, [r5, 0x60]                              |             __asm ("str.w r8, [r5, 0x60]");
    0x00010516 strh r0, [r4, 2]                                  |             *((r4 + 2)) = r0;
    0x00010518 cmp r3, 0                                         |             
                                                                 |             if (r3 == 0) {
    0x0001051a beq.w 0x1068e                                     |                 goto label_38;
                                                                 |             }
    0x0001051e ldr r6, [r3, 0x14]                                |             r6 = *((r3 + 0x14));
    0x00010520 bl 0xa884                                         |             fcn_0000a884 (r0);
                                                                 |             if (r6 == 0) {
    0x00010524 cbz r6, 0x1053a                                   |                 goto label_10;
                                                                 |             }
    0x00010526 ldrd r1, r0, [r4, 0x8c]                           |             __asm ("ldrd r1, r0, [r4, 0x8c]");
    0x0001052a ldr r2, [r0, 8]                                   |             r2 = *((r0 + 8));
    0x0001052c cmp r2, sb                                        |             
                                                                 |             if (r2 != sb) {
    0x0001052e beq 0x10534                                       |                 
    0x00010530 cmp r1, r2                                        |                 
                                                                 |                 if (r1 > r2) {
    0x00010532 bhi 0x10572                                       |                     goto label_39;
                                                                 |                 }
                                                                 |             }
    0x00010534 ldr r0, [r6]                                      |             r0 = *(r6);
    0x00010536 blx 0x4f68                                        |             fcn_00004f68 ();
                                                                 |         }
                                                                 | label_10:
    0x0001053a mov r0, r5                                        |         r0 = r5;
    0x0001053c add.w sl, sl, 1                                   |         sl++;
    0x00010540 bl 0x17254                                        |         fcn_00017254 (r0);
    0x00010542 vmaxnm.f64 d6, d8, d16                            |         __asm ("vmaxnm.f64 d6, d8, d16");
    0x00010546 ldr r3, [r0, 8]                                   |         r3 = *((r0 + 8));
    0x00010548 cmp sl, r3                                        |         
                                                                 |         if (sl >= r3) {
    0x0001054a bge 0x105ba                                       |             goto label_40;
                                                                 |         }
    0x0001054c ldr r3, [r0, 0x10]                                |         r3 = *((r0 + 0x10));
    0x0001054e ldr.w r5, [r3, sl, lsl 2]                         |         offset_0 = sl << 2;
                                                                 |         r5 = *((r3 + offset_0));
    0x00010552 ldr r3, [r5, 0x10]                                |         r3 = *((r5 + 0x10));
    0x00010554 cmp r3, 7                                         |         
                                                                 |         if (r3 != 7) {
    0x00010556 bne.w 0x1069e                                     |             goto label_41;
                                                                 |         }
    0x0001055a ldr r3, [r5, 0x60]                                |         r3 = *((r5 + 0x60));
    0x0001055c cmp r3, 0                                         |         
    0x0001055e bne 0x104de                                       |         
                                                                 |     }
    0x00010560 ldr r0, [r5, 0x34]                                |     r0 = *((r5 + 0x34));
    0x00010562 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00010564 beq 0x1053a                                       |         goto label_10;
                                                                 |     }
                                                                 | label_37:
    0x00010566 ldr r1, [r4, 8]                                   |     r1 = *((r4 + 8));
    0x00010568 bl 0x5b44                                         |     fcn_00005b44 (r0, r1);
    0x0001056c str.w r8, [r5, 0x34]                              |     __asm ("str.w r8, [r5, 0x34]");
    0x00010570 b 0x10502                                         |     goto label_11;
                                                                 | label_39:
    0x00010572 blx 0x4f4c                                        |     r0 = fcn_00004f4c ();
    0x00010576 str r6, [r0]                                      |     *(r0) = r6;
    0x00010578 b 0x1053a                                         |     goto label_10;
                                                                 | label_23:
    0x0001057a movw r2, 0x4240                                   |     
    0x0001057e mov r0, r7                                        |     r0 = r7;
    0x00010580 mov r1, r6                                        |     r1 = r6;
    0x00010582 movt r2, 0xf                                      |     r2 = 0xf4240;
    0x00010586 movs r3, 0                                        |     r3 = 0;
    0x00010588 ldr.w sl, [pc, 0x14c]                             |     
    0x0001058c bl 0x1ea90                                        |     fcn_0001ea90 (r0, r1, r2, r3);
    0x00010590 str.w sb, [sp, 4]                                 |     __asm ("str.w sb, [var_4h]");
    0x00010594 mov r2, r5                                        |     r2 = r5;
    0x00010596 str r0, [sp, 0x14]                                |     var_14h = r0;
    0x00010598 add sl, pc                                        |     sl = 0x20c74;
    0x0001059a ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x0001059c mov r0, sl                                        |     r0 = sl;
    0x0001059e movw r1, 0x44f                                    |     r1 = 0x44f;
    0x000105a0 adcs r7, r1                                       |     __asm ("adcs r7, r1");
    0x000105a2 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x000105a4 ldr r3, [r4]                                      |     r3 = *(r4);
    0x000105a6 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x000105a8 ldr r3, [pc, 0x130]                               |     
    0x000105aa add r3, pc                                        |     r3 = 0x20c8a;
    0x000105ac str r3, [sp, 8]                                   |     var_8h = r3;
    0x000105ae movs r3, 0                                        |     r3 = 0;
    0x000105b0 str r3, [sp]                                      |     *(sp) = r3;
    0x000105b2 movs r3, 9                                        |     r3 = 9;
    0x000105b4 blx 0x4d50                                        |     loc_imp_apr_dynamic_fn_register ();
    0x000105b8 b 0x10306                                         |     goto label_12;
                                                                 | label_40:
    0x000105ba ldr r6, [sp, 0x24]                                |     r6 = var_24h;
                                                                 | label_36:
    0x000105bc blx 0x4bac                                        |     memmove (r0, r1, r2);
    0x000105c0 b 0x102b8                                         |     goto label_13;
                                                                 | label_26:
    0x000105c2 ldr r0, [r4, 4]                                   |     r0 = *((r4 + 4));
    0x000105c4 movs r3, 3                                        |     r3 = 3;
    0x000105c6 str r1, [sp, 4]                                   |     var_4h = r1;
    0x000105c8 mov r8, r5                                        |     r8 = r5;
    0x000105ca str r5, [sp]                                      |     *(sp) = r5;
    0x000105cc str r0, [sp, 0x10]                                |     var_10h = r0;
    0x000105ce ldr r1, [r4]                                      |     r1 = *(r4);
    0x000105d0 ldr r0, [pc, 0x10c]                               |     
    0x000105d2 str r1, [sp, 0xc]                                 |     var_ch = r1;
    0x000105d4 ldr r1, [pc, 0x10c]                               |     
    0x000105d6 add r0, pc                                        |     r0 = 0x20cba;
    0x000105d8 add r1, pc                                        |     r1 = 0x20cc0;
    0x000105da str r1, [sp, 8]                                   |     var_8h = r1;
    0x000105dc movw r1, 0x47f                                    |     r1 = 0x47f;
    0x000105e0 blx 0x4d50                                        |     loc_imp_apr_dynamic_fn_register ();
    0x000105e2 subs.w r7, r6, sb, lsl 25                         |     r7 = r6 - (sb << 25);
                                                                 | label_34:
    0x000105e6 ldr r0, [r4, 0x64]                                |     r0 = *((r4 + 0x64));
    0x000105e8 blx 0x50a4                                        |     loc_imp_ap_hook_post_config ();
    0x000105ec ldr r3, [r4, 0x70]                                |     r3 = *((r4 + 0x70));
    0x000105ee ldr r2, [r3, 8]                                   |     r2 = *((r3 + 8));
    0x000105f0 cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x000105f2 ble 0x1060e                                       |         goto label_42;
                                                                 |     }
    0x000105f4 ldr r6, [sp, 0x18]                                |     r6 = var_18h;
    0x000105f6 movs r5, 0                                        |     r5 = 0;
    0x000105f8 ldr r7, [sp, 0x20]                                |     r7 = var_20h;
                                                                 |     do {
    0x000105fa ldr r3, [r3, 0x10]                                |         r3 = *((r3 + 0x10));
    0x000105fc mov r0, r7                                        |         r0 = r7;
    0x000105fe ldr.w r1, [r3, r5, lsl 2]                         |         offset_1 = r5 << 2;
                                                                 |         r1 = *((r3 + offset_1));
    0x00010602 adds r5, 1                                        |         r5++;
    0x00010604 blx r6                                            |         uint32_t (*r6)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x00010606 ldr r3, [r4, 0x70]                                |         r3 = *((r4 + 0x70));
    0x00010608 ldr r2, [r3, 8]                                   |         r2 = *((r3 + 8));
    0x0001060a cmp r5, r2                                        |         
    0x0001060c blt 0x105fa                                       |         
                                                                 |     } while (r5 < r2);
                                                                 | label_42:
    0x0001060e ldr r0, [r4, 0x64]                                |     r0 = *((r4 + 0x64));
    0x00010610 blx 0x4c9c                                        |     nghttp2_option_set_peer_max_concurrent_streams ();
    0x00010614 b 0x1046c                                         |     goto label_14;
                                                                 | label_35:
    0x00010616 ldr r0, [r4, 0x64]                                |     r0 = *((r4 + 0x64));
    0x00010618 blx 0x50a4                                        |     loc_imp_ap_hook_post_config ();
    0x0001061c ldr r3, [r4, 0x74]                                |     r3 = *((r4 + 0x74));
    0x0001061e ldr r2, [r3, 8]                                   |     r2 = *((r3 + 8));
    0x00010620 cmp r2, 0                                         |     
    0x00010622 itt gt                                            |     
                                                                 |     if (r2 > 0) {
    0x00010624 ldrdgt r6, r7, [sp, 0x1c]                         |         __asm ("ldrdgt r6, r7, [var_1ch]");
                                                                 |     }
                                                                 |     if (r2 <= 0) {
    0x00010626 strgt r7, [r0, 0x70]                              |         *((r0 + 0x70)) = r7;
                                                                 |     }
    0x00010628 movs r5, 0                                        |     r5 = 0;
                                                                 |     if (r5 <= 0) {
    0x0001062a ble 0x10640                                       |         goto label_43;
                                                                 |     }
                                                                 |     do {
    0x0001062c ldr r3, [r3, 0x10]                                |         r3 = *((r3 + 0x10));
    0x0001062e mov r0, r7                                        |         r0 = r7;
    0x00010630 ldr.w r1, [r3, r5, lsl 2]                         |         offset_2 = r5 << 2;
                                                                 |         r1 = *((r3 + offset_2));
    0x00010632 asrs r5, r4, 0x20                                 |         r5 = r4 >> 0x20;
    0x00010634 adds r5, 1                                        |         r5++;
    0x00010636 blx r6                                            |         uint32_t (*r6)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x00010638 ldr r3, [r4, 0x74]                                |         r3 = *((r4 + 0x74));
    0x0001063a ldr r2, [r3, 8]                                   |         r2 = *((r3 + 8));
    0x0001063c cmp r5, r2                                        |         
    0x0001063e blt 0x1062c                                       |         
                                                                 |     } while (r5 < r2);
                                                                 | label_43:
    0x00010640 ldr r0, [r4, 0x64]                                |     r0 = *((r4 + 0x64));
    0x00010642 blx 0x4c9c                                        |     nghttp2_option_set_peer_max_concurrent_streams ();
    0x00010644 invalid                                           |     
                                                                 |     if (r3 == 0) {
                                                                 | label_27:
    0x00010648 cbz r3, 0x1068a                                   |         goto label_44;
                                                                 |     }
                                                                 | label_17:
    0x0001064a ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x0001064c cmp r3, 8                                         |     
                                                                 |     if (r3 <= 8) {
    0x0001064e ble.w 0x103ac                                     |         goto label_15;
                                                                 |     }
                                                                 | label_29:
    0x00010652 ldr r0, [r4, 4]                                   |     r0 = *((r4 + 4));
    0x00010654 movs r3, 0                                        |     r3 = 0;
    0x00010656 str r3, [sp]                                      |     *(sp) = r3;
    0x00010658 movs r3, 9                                        |     r3 = 9;
    0x0001065a str r1, [sp, 4]                                   |     var_4h = r1;
    0x0001065c mov r8, r5                                        |     r8 = r5;
    0x0001065e str r0, [sp, 0x10]                                |     var_10h = r0;
    0x00010660 ldr r1, [r4]                                      |     r1 = *(r4);
    0x00010662 ldr r0, [pc, 0x84]                                |     
    0x00010664 str r1, [sp, 0xc]                                 |     var_ch = r1;
    0x00010666 ldr r1, [pc, 0x84]                                |     
    0x00010668 add r0, pc                                        |     r0 = 0x20d56;
    0x0001066a add r1, pc                                        |     r1 = 0x20d5c;
    0x0001066c str r1, [sp, 8]                                   |     var_8h = r1;
    0x0001066e movw r1, 0x47b                                    |     r1 = 0x47b;
    0x00010672 blx 0x4d50                                        |     loc_imp_apr_dynamic_fn_register ();
    0x00010676 b 0x1047a                                         |     goto label_5;
                                                                 | label_28:
    0x00010678 ldr r3, [r1, 4]                                   |     r3 = *((r1 + 4));
    0x0001067a ldr r0, [r3, 0x10]                                |     r0 = *((r3 + 0x10));
                                                                 |     if (r0 == 0) {
    0x0001067c cbz r0, 0x10686                                   |         goto label_45;
                                                                 |     }
    0x0001067e ldrsb r0, [r0, r2]                                |     r0 = *((r0 + r2));
    0x00010680 cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x00010682 bge.w 0x103a6                                     |         goto label_16;
                                                                 |     }
    0x00010684 add r6, sp, 0x240                                 |     r6 = sp + 0x240;
                                                                 |     do {
                                                                 | label_45:
    0x00010686 adds r3, 0x10                                     |         r3 += 0x10;
    0x00010688 b 0x1064a                                         |         goto label_17;
                                                                 | label_44:
    0x0001068a ldr r3, [r1, 4]                                   |         r3 = *((r1 + 4));
    0x0001068c b 0x10686                                         |         
                                                                 |     } while (1);
                                                                 | label_38:
    0x0001068e ldr r1, [pc, 0x60]                                |     
    0x00010690 mov.w r2, 0x240                                   |     r2 = 0x240;
    0x00010694 ldr r0, [pc, 0x5c]                                |     
    0x00010696 add r1, pc                                        |     r1 = 0x20d8c;
    0x00010698 add r0, pc                                        |     r0 = "h2_stream(%d-%lu-%d,%s): cleanup, c2 is done, move to spurge";
    0x0001069a blx 0x4e40                                        |     loc_imp_apr_socket_create ();
                                                                 | label_41:
    0x0001069e ldr r1, [pc, 0x58]                                |     
    0x000106a0 movw r2, 0x232                                    |     r2 = 0x232;
    0x000106a4 ldr r0, [pc, 0x54]                                |     
    0x000106a6 add r1, pc                                        |     r1 = 0x20da4;
    0x000106a8 add r0, pc                                        |     r0 = 0x20da8;
    0x000106aa blx 0x4e40                                        |     loc_imp_apr_socket_create ();
                                                                 | label_30:
    0x000106ae blx 0x4d80                                        |     loc_imp_apr_file_read ();
                                                                 | label_20:
    0x000106b2 ldr r1, [pc, 0x4c]                                |     
    0x000106b4 movw r2, 0x44c                                    |     r2 = 0x44c;
    0x000106b8 ldr r0, [pc, 0x48]                                |     
    0x000106ba add r1, pc                                        |     r1 = 0x20dc0;
    0x000106bc add r0, pc                                        |     r0 = 0x20dc4;
    0x000106be blx 0x4e40                                        |     loc_imp_apr_socket_create ();
    0x000106c2 nop                                               |     
    0x000106c4 ldrb r6, [r0, 3]                                  |     r6 = *((r0 + 3));
    0x000106c6 movs r1, r0                                       |     r1 = r0;
    0x000106c8 lsls r4, r6, 0x10                                 |     r4 = r6 << 0x10;
    0x000106ca movs r0, r0                                       |     
    0x000106cc ldrb r2, [r7, 2]                                  |     r2 = *((r7 + 2));
    0x000106ce movs r1, r0                                       |     r1 = r0;
    0x000106d0 lsls r0, r1, 0x12                                 |     r0 = r1 << 0x12;
    0x000106d2 movs r0, r0                                       |     
    0x000106d4 strb r6, [r0, 0x1e]                               |     *((r0 + 0x1e)) = r6;
    0x000106d6 movs r1, r0                                       |     r1 = r0;
    0x000106d8 lsls r0, r7, 0x12                                 |     r0 = r7 << 0x12;
    0x000106da movs r1, r0                                       |     r1 = r0;
    0x000106dc lsrs r2, r4, 0x10                                 |     r2 = r4 >> 0x10;
    0x000106de movs r1, r0                                       |     r1 = r0;
    0x000106e0 lsls r2, r7, 0x11                                 |     r2 = r7 << 0x11;
    0x000106e2 movs r1, r0                                       |     r1 = r0;
    0x000106e4 lsrs r4, r0, 0x11                                 |     r4 = r0 >> 0x11;
    0x000106e6 movs r1, r0                                       |     r1 = r0;
    0x000106e8 lsls r0, r5, 0xf                                  |     r0 = r5 << 0xf;
    0x000106ea movs r1, r0                                       |     r1 = r0;
    0x000106ec lsrs r6, r1, 0xe                                  |     r6 = r1 >> 0xe;
    0x000106ee movs r1, r0                                       |     r1 = r0;
    0x000106f0 lsls r2, r7, 0xe                                  |     r2 = r7 << 0xe;
    0x000106f2 movs r1, r0                                       |     r1 = r0;
    0x000106f4 lsrs r0, r4, 0xc                                  |     r0 = r4 >> 0xc;
    0x000106f6 movs r1, r0                                       |     r1 = r0;
    0x000106f8 lsls r2, r5, 0xe                                  |     r2 = r5 << 0xe;
    0x000106fa movs r1, r0                                       |     r1 = r0;
    0x000106fc lsls r4, r0, 0x1b                                 |     r4 = r0 << 0x1b;
    0x000106fe movs r1, r0                                       |     r1 = r0;
    0x00010700 lsls r6, r2, 0xe                                  |     r6 = r2 << 0xe;
    0x00010702 movs r1, r0                                       |     r1 = r0;
    0x00010704 lsrs r4, r0, 0xc                                  |     r4 = r0 >> 0xc;
    0x00010706 movs r1, r0                                       |     r1 = r0;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0x1b370 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0001b370 ()                                  | void fcn_0001b370 (int16_t arg_20h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
                                                             |     if (? >= ?) {
    0x0001b370 ldrbmi lr, [r0, sp, lsr 18]!                  |         
                                                             |     }
    0x0001b374 mov sl, r1                                    |     sl = r1;
    0x0001b376 ldr r1, [r0, 0xc]                             |     r1 = *(arg_20hxc);
    0x0001b378 mov r6, r0                                    |     r6 = r0;
    0x0001b37a mov r7, r2                                    |     r7 = r2;
    0x0001b37c mov r8, r3                                    |     r8 = r3;
    0x0001b37e ldr.w sb, [sp, 0x20]                          |     sb = *(arg_20h);
    0x0001b382 add.w r0, sl, r1                              |     r0 = sl + r1;
    0x0001b386 subs r0, 1                                    |     r0--;
    0x0001b388 bl 0x1e6fc                                    |     fcn_0001e6fc (r0, r1);
    0x0001b38c cmp sl, r7                                    |     
                                                             |     if (sl == r7) {
    0x0001b38e beq 0x1b3ca                                   |         goto label_0;
                                                             |     }
    0x0001b390 ldr r5, [r6]                                  |     r5 = *(r6);
    0x0001b392 mov r4, r1                                    |     r4 = r1;
    0x0001b394 b 0x1b3ba                                     |     
                                                             |     while (r0 < 0) {
    0x0001b396 ldr r5, [r6]                                  |         r5 = *(r6);
    0x0001b398 ldr.w r3, [r5, r4, lsl 2]                     |         offset_0 = r4 << 2;
                                                             |         r3 = *((r5 + offset_0));
    0x0001b39c ldr.w r2, [r5, sl, lsl 2]                     |         offset_1 = sl << 2;
                                                             |         r2 = *((r5 + offset_1));
    0x0001b3a0 str.w r2, [r5, r4, lsl 2]                     |         __asm ("str.w r2, [r5, r4, lsl 2]");
    0x0001b3a4 str.w r3, [r5, sl, lsl 2]                     |         __asm ("str.w r3, [r5, sl, lsl 2]");
    0x0001b3a8 mov sl, r4                                    |         sl = r4;
    0x0001b3aa ldr r1, [r6, 0xc]                             |         r1 = *((r6 + 0xc));
    0x0001b3ac adds r0, r1, r4                               |         r0 = r1 + r4;
    0x0001b3ae subs r0, 1                                    |         r0--;
    0x0001b3b0 bl 0x1e6fc                                    |         fcn_0001e6fc (r0, r1);
    0x0001b3b4 cmp r7, sl                                    |         
    0x0001b3b6 mov r4, r1                                    |         r4 = r1;
                                                             |         if (r7 == sl) {
    0x0001b3b8 beq 0x1b3ca                                   |             goto label_0;
                                                             |         }
    0x0001b3ba ldr.w r1, [r5, r4, lsl 2]                     |         offset_2 = r4 << 2;
                                                             |         r1 = *((r5 + offset_2));
    0x0001b3be mov r2, sb                                    |         r2 = sb;
    0x0001b3c0 ldr.w r0, [r5, sl, lsl 2]                     |         offset_3 = sl << 2;
                                                             |         r0 = *((r5 + offset_3));
    0x0001b3c4 blx r8                                        |         r0 = uint32_t (*r8)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x0001b3c6 cmp r0, 0                                     |         
    0x0001b3c8 blt 0x1b396                                   |         
                                                             |     }
                                                             | label_0:
    0x0001b3ca mov r0, sl                                    |     r0 = sl;
    0x0001b3cc pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0x1b814 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0001b814 ()                                      | void fcn_0001b814 (int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0001b814 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x0001b818 mov r8, r1                                        |     r8 = r1;
    0x0001b81a sub sp, 0x18                                      |     
    0x0001b81c ldr r1, [pc, 0xd0]                                |     
    0x0001b81e mov sl, r0                                        |     sl = r0;
    0x0001b820 mov r6, r3                                        |     r6 = r3;
    0x0001b822 str r2, [sp, 8]                                   |     var_8h = r2;
    0x0001b824 movs r3, 0                                        |     r3 = 0;
    0x0001b826 ldr r2, [pc, 0xcc]                                |     r2 = *(0x1b8f6);
    0x0001b828 add r1, pc                                        |     r1 = 0x3711c;
    0x0001b82a ldr r7, [sp, 0x40]                                |     r7 = *(arg_40h);
    0x0001b82c mov sb, r3                                        |     sb = r3;
    0x0001b82e ldr r0, [pc, 0xc8]                                |     
    0x0001b830 ldr r2, [r1, r2]                                  |     
    0x0001b832 mov r1, sp                                        |     r1 = sp;
    0x0001b834 ldr r4, [sp, 0x38]                                |     r4 = *(arg_38h);
    0x0001b836 add r0, pc                                        |     r0 = 0x37134;
    0x0001b838 ldr r5, [sp, 0x3c]                                |     r5 = *(arg_3ch);
    0x0001b83a ldr r2, [r2]                                      |     r2 = *(0x3711c);
    0x0001b83c str r2, [sp, 0x14]                                |     var_14h = r2;
    0x0001b83e mov.w r2, 0                                       |     r2 = 0;
    0x0001b842 mov r2, r7                                        |     r2 = r7;
    0x0001b844 strd r6, r8, [sp]                                 |     __asm ("strd r6, r8, [sp]");
    0x0001b848 blx 0x4ef4                                        |     loc_imp_apr_hash_set ();
    0x0001b84c movs r1, 8                                        |     r1 = 8;
    0x0001b84e mov r0, r8                                        |     r0 = r8;
    0x0001b850 blx 0x4c6c                                        |     r0 = loc_imp_apr_thread_mutex_create ();
    0x0001b854 mov r3, r0                                        |     r3 = r0;
    0x0001b856 mov r0, r8                                        |     r0 = r8;
    0x0001b858 str.w sb, [r3]                                    |     __asm ("str.w sb, [r3]");
    0x0001b85a str r0, [sp]                                      |     *(sp) = r0;
    0x0001b85c ldr r1, [sp]                                      |     r1 = *(sp);
    0x0001b85e str.w sb, [r3, 4]                                 |     __asm ("str.w sb, [r3, 4]");
    0x0001b862 str.w r3, [sl]                                    |     __asm ("str.w r3, [sl]");
    0x0001b866 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0001b868 add.w r1, r1, r1, lsl 2                           |     r1 += (r1 << 2);
    0x0001b86c lsls r1, r1, 2                                    |     r1 <<= 2;
    0x0001b86e blx 0x4c6c                                        |     loc_imp_apr_thread_mutex_create ();
    0x0001b872 ldr r2, [sp]                                      |     r2 = *(sp);
    0x0001b874 mov r1, sb                                        |     r1 = sb;
    0x0001b876 ldr.w r8, [sp, 0xc]                               |     r8 = var_ch;
    0x0001b87a add.w r2, r2, r2, lsl 2                           |     r2 += (r2 << 2);
    0x0001b87e lsls r2, r2, 2                                    |     r2 <<= 2;
    0x0001b880 blx 0x4aa0                                        |     fcn_00004aa0 ();
    0x0001b884 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0001b886 str.w r0, [r8]                                    |     __asm ("str.w r0, [r8]");
    0x0001b88a ldr r3, [r3]                                      |     r3 = *(r3);
                                                                 |     if (r3 == 0) {
    0x0001b88c cbz r3, 0x1b8e6                                   |         goto label_1;
                                                                 |     }
    0x0001b88e add.w r8, sp, 4                                   |     r8 += var_4h;
    0x0001b892 str.w sb, [sp, 0x10]                              |     __asm ("str.w sb, [var_10h]");
                                                                 |     if (r6 == 0) {
    0x0001b896 cbz r6, 0x1b8d6                                   |         goto label_2;
                                                                 |     }
    0x0001b898 add.w r6, r4, r6, lsl 2                           |     r6 = r4 + (r6 << 2);
    0x0001b89c subs r5, 4                                        |     r5 -= 4;
    0x0001b89e add.w r8, sp, 4                                   |     r8 += var_4h;
    0x0001b8a2 b 0x1b8a8                                         |     
                                                                 |     while (r0 != 0) {
    0x0001b8a4 cmp r4, r6                                        |         
                                                                 |         if (r4 == r6) {
    0x0001b8a6 beq 0x1b8d6                                       |             goto label_2;
                                                                 |         }
    0x0001b8a8 ldr r2, [r5, 4]!                                  |         r2 = *((r5 += 4));
    0x0001b8ac mov r0, r8                                        |         r0 = r8;
    0x0001b8ae ldr r1, [r4], 4                                   |         r1 = *(r4);
                                                                 |         r4 += 4;
    0x0001b8b2 bl 0x1b728                                        |         r0 = fcn_0001b728 (r0, r1, r2);
    0x0001b8b6 cmp r0, 0                                         |         
    0x0001b8b8 bne 0x1b8a4                                       |         
                                                                 |     }
                                                                 |     do {
    0x0001b8ba ldr r0, [sp, 0x10]                                |         r0 = var_10h;
                                                                 | label_0:
    0x0001b8bc ldr r2, [pc, 0x3c]                                |         
    0x0001b8be ldr r3, [pc, 0x34]                                |         r3 = *(0x1b8f6);
    0x0001b8c0 add r2, pc                                        |         r2 = 0x371c0;
    0x0001b8c2 ldr r3, [r2, r3]                                  |         r3 = *(0x371c0);
    0x0001b8c4 ldr r2, [r3]                                      |         r2 = *(0x371c0);
    0x0001b8c6 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x0001b8c8 eors r2, r3                                       |         r2 ^= r3;
    0x0001b8ca mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0001b8ce bne 0x1b8ea                                       |             goto label_3;
                                                                 |         }
    0x0001b8d0 add sp, 0x18                                      |         
    0x0001b8d2 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_2:
    0x0001b8d6 ldr r0, [pc, 0x28]                                |         
    0x0001b8d8 movs r3, 0                                        |         r3 = 0;
    0x0001b8da mov r2, r7                                        |         r2 = r7;
    0x0001b8dc mov r1, r8                                        |         r1 = r8;
    0x0001b8de add r0, pc                                        |         r0 = 0x371e4;
    0x0001b8e0 blx 0x4ef4                                        |         loc_imp_apr_hash_set ();
    0x0001b8e4 b 0x1b8ba                                         |         
                                                                 |     } while (1);
                                                                 | label_1:
    0x0001b8e6 movs r0, 0xc                                      |     r0 = 0xc;
    0x0001b8e8 b 0x1b8bc                                         |     goto label_0;
                                                                 | label_3:
    0x0001b8ea blx 0x4d80                                        |     loc_imp_apr_file_read ();
    0x0001b8ee nop                                               |     
    0x0001b8f0 stm r3!, {r2, r3, r4}                             |     *(r3!) = r2;
                                                                 |     *((r3! + 4)) = r3;
                                                                 |     *((r3! + 8)) = r4;
    0x0001b8f2 movs r0, r0                                       |     
    0x0001b8f4 lsls r4, r6, 0x10                                 |     r4 = r6 << 0x10;
    0x0001b8f6 movs r0, r0                                       |     
    0x0001b8f8 asrs r3, r0, 0x1c                                 |     r3 = r0 >> 0x1c;
    0x0001b8fa movs r0, r0                                       |     
    0x0001b8fc stm r2!, {r2, r7}                                 |     *(r2!) = r2;
                                                                 |     *((r2! + 4)) = r7;
    0x0001b8fe movs r0, r0                                       |     
    0x0001b900 asrs r7, r6, 0x18                                 |     r7 = r6 >> 0x18;
    0x0001b902 movs r0, r0                                       |     
                                                                 | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0x1bb60 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0001bb60 ()              | void fcn_0001bb60 (int16_t arg1) {
                                         |     r0 = arg1;
    0x0001bb60 invalid                   |     goto label_1;
    0x0001bb62 add r1, r0                |     r1 += r0;
    0x0001bb64 subs r0, 1                |     r0--;
    0x0001bb66 subs r2, r1, 1            |     r2 = r1 - 1;
    0x0001bb68 movs r1, 1                |     r1 = 1;
    0x0001bb6a b 0x1bb92                 |     
                                         |     while (r1 != 0) {
    0x0001bb6c sub.w r1, r3, 0x61        |         r1 = r3 - 0x61;
    0x0001bb70 subs r3, 0x20             |         r3 -= 0x20;
    0x0001bb72 cmp r1, 0x19              |         
    0x0001bb74 it ls                     |         
                                         |         if (r1 > 0x19) {
    0x0001bb76 strbls r3, [ip]           |             *(ip) = r3;
                                         |         }
    0x0001bb7a cmp ip, r2                |         
                                         |         if (ip == r2) {
    0x0001bb7c beq 0x1bbae               |             goto label_1;
                                         |         }
    0x0001bb7e ldrb r3, [r0, 2]!         |         r3 = *((r0 += 2));
    0x0001bb82 sub.w r1, r3, 0x2d        |         r1 = r3 - 0x2d;
    0x0001bb86 cmp r2, r0                |         
    0x0001bb88 clz r1, r1                |         r1 &= r1;
    0x0001bb8c lsr.w r1, r1, 5           |         r1 >>= 5;
                                         |         if (r2 == r0) {
    0x0001bb90 beq 0x1bbae               |             goto label_1;
                                         |         }
                                         | label_0:
    0x0001bb92 ldrb r3, [r0, 1]          |         r3 = *((r0 + 1));
    0x0001bb94 add.w ip, r0, 1           |         
    0x0001bb98 cmp r1, 0                 |         
    0x0001bb9a bne 0x1bb6c               |         
                                         |     }
    0x0001bb9c mov r0, ip                |     r0 = ip;
    0x0001bb9e sub.w r1, r3, 0x2d        |     r1 = r3 - 0x2d;
    0x0001bba2 cmp r2, r0                |     
    0x0001bba4 clz r1, r1                |     r1 &= r1;
    0x0001bba8 lsr.w r1, r1, 5           |     r1 >>= 5;
                                         |     if (r2 != r0) {
    0x0001bbac bne 0x1bb92               |         goto label_0;
                                         |     }
                                         | label_1:
    0x0001bbae bx lr                     |     return;
                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0x1bbb0 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.0001bbb0 ()                                      | void fcn_0001bbb0 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x0001bbb0 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x0001bbb4 mov r7, r0                                        |     r7 = r0;
    0x0001bbb6 ldrb r4, [r1]                                     |     r4 = *(r1);
    0x0001bbb8 mov r0, r2                                        |     r0 = r2;
    0x0001bbba cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0001bbbc beq.w 0x1bcf2                                     |         goto label_0;
                                                                 |     }
    0x0001bbc0 mov r5, r1                                        |     r5 = r1;
    0x0001bbc2 mov lr, r1                                        |     lr = r1;
    0x0001bbc4 ldr r1, [pc, 0x13c]                               |     
    0x0001bbc6 add r1, pc                                        |     r1 = 0x378ce;
    0x0001bbc8 b 0x1bbd0                                         |     
                                                                 |     while (r3 != 1) {
    0x0001bbca ldrb r4, [lr, 1]!                                 |         r4 = *((lr += 1));
                                                                 |         if (r4 == 0) {
    0x0001bbce cbz r4, 0x1bbd8                                   |             goto label_1;
                                                                 |         }
    0x0001bbd0 ldr.w r3, [r1, r4, lsl 2]                         |         offset_0 = r4 << 2;
                                                                 |         r3 = *((r1 + offset_0));
    0x0001bbd4 adds r3, 1                                        |         r3++;
    0x0001bbd6 bne 0x1bbca                                       |         
                                                                 |     }
                                                                 | label_1:
    0x0001bbd8 sub.w r8, lr, r5                                  |     r8 = lr - r5;
    0x0001bbdc add.w sb, r8, 1                                   |     sb = r8 + 1;
    0x0001bbe0 add.w r4, r8, 3                                   |     r4 = r8 + 3;
    0x0001bbe4 mov r1, sb                                        |     r1 = sb;
    0x0001bbe6 ands.w r4, r4, r8, asr 32                         |     r4 &= (r8 >> 32);
    0x0001bbea it lo                                             |     
                                                                 |     if (r4 >= r4) {
    0x0001bbec movlo r4, r8                                      |         r4 = r8;
                                                                 |     }
    0x0001bbee blx 0x4c6c                                        |     loc_imp_apr_thread_mutex_create ();
    0x0001bbf2 mov r2, sb                                        |     r2 = sb;
    0x0001bbf4 movs r1, 0                                        |     r1 = 0;
    0x0001bbf6 blx 0x4aa0                                        |     fcn_00004aa0 ();
    0x0001bbfa rsbs.w r3, r8, 0                                  |     r3 = r8 - ;
    0x0001bbfe asr.w r6, r4, 2                                   |     r6 = r4 >> 2;
    0x0001bc02 and r3, r3, 3                                     |     r3 &= 3;
    0x0001bc06 str r0, [r7]                                      |     *(r7) = r0;
    0x0001bc08 bic r4, r4, 3                                     |     r4 = BIT_MASK (r4, 3);
    0x0001bc0c and lr, r8, 3                                     |     lr = r8 & 3;
    0x0001bc10 it pl                                             |     
                                                                 |     if (r1 >= 0) {
    0x0001bc12 rsbpl lr, r3, 0                                   |         __asm ("rsbpl lr, r3, 0");
                                                                 |     }
    0x0001bc16 cmp r4, 0                                         |     
    0x0001bc18 add.w sb, r6, r6, lsl 1                           |     sb = r6 + (r6 << 1);
                                                                 |     if (r4 <= 0) {
    0x0001bc1c ble 0x1bc84                                       |         goto label_2;
                                                                 |     }
    0x0001bc1e ldr r1, [pc, 0xe8]                                |     
    0x0001bc20 add.w ip, r0, 3                                   |     
    0x0001bc24 mov r2, r5                                        |     r2 = r5;
    0x0001bc26 add.w r8, r4, -1                                  |     r8 = r4 + -1;
    0x0001bc2a adds r7, r5, r4                                   |     r7 = r5 + r4;
    0x0001bc2c add r1, pc                                        |     r1 = 0x3793a;
                                                                 |     do {
    0x0001bc2e ldrb r3, [r2, 1]                                  |         r3 = *((r2 + 1));
    0x0001bc30 adds r2, 4                                        |         r2 += 4;
    0x0001bc32 ldrb sl, [r2, -0x4]                               |         sl = *((r2 - 0x4));
    0x0001bc36 add.w ip, ip, 3                                   |         
    0x0001bc3a ldr.w r3, [r1, r3, lsl 2]                         |         offset_1 = r3 << 2;
                                                                 |         r3 = *((r1 + offset_1));
    0x0001bc3e ldr.w sl, [r1, sl, lsl 2]                         |         offset_2 = sl << 2;
                                                                 |         sl = *((r1 + offset_2));
    0x0001bc42 lsls r3, r3, 0xc                                  |         r3 <<= 0xc;
    0x0001bc44 add.w r3, r3, sl, lsl 18                          |         r3 += (sl << 18);
    0x0001bc46 bics r2, r1                                       |         __asm ("bics r2, r1");
    0x0001bc48 ldrb sl, [r2, -0x1]                               |         sl = *((r2 - 0x1));
    0x0001bc4c ldr.w sl, [r1, sl, lsl 2]                         |         offset_3 = sl << 2;
                                                                 |         sl = *((r1 + offset_3));
    0x0001bc50 add r3, sl                                        |         r3 += sl;
    0x0001bc52 ldrb sl, [r2, -0x2]                               |         sl = *((r2 - 0x2));
    0x0001bc56 cmp r2, r7                                        |         
    0x0001bc58 ldr.w sl, [r1, sl, lsl 2]                         |         offset_4 = sl << 2;
                                                                 |         sl = *((r1 + offset_4));
    0x0001bc5c add.w r3, r3, sl, lsl 6                           |         r3 += (sl << 6);
    0x0001bc60 lsr.w sl, r3, 0x10                                |         sl = r3 >> 0x10;
    0x0001bc64 strb r3, [ip, -0x4]                               |         *((ip - 0x4)) = r3;
    0x0001bc68 lsr.w r3, r3, 8                                   |         r3 >>= 8;
    0x0001bc6c strb sl, [ip, -0x6]                               |         *((ip - 0x6)) = sl;
    0x0001bc70 strb r3, [ip, -0x5]                               |         *((ip - 0x5)) = r3;
    0x0001bc74 bne 0x1bc2e                                       |         
                                                                 |     } while (r2 != r7);
    0x0001bc76 lsr.w r8, r8, 2                                   |     r8 >>= 2;
    0x0001bc7a add.w r8, r8, 1                                   |     r8++;
    0x0001bc7e add.w r8, r8, r8, lsl 1                           |     r8 += (r8 << 1);
    0x0001bc82 add r0, r8                                        |     r0 += r8;
                                                                 | label_2:
    0x0001bc84 cmp.w lr, 2                                       |     
                                                                 |     if (lr == 2) {
    0x0001bc88 beq 0x1bcc8                                       |         goto label_3;
                                                                 |     }
    0x0001bc8a cmp.w lr, 3                                       |     
                                                                 |     if (lr != 3) {
    0x0001bc8e bne 0x1bcc0                                       |         goto label_4;
                                                                 |     }
    0x0001bc90 ldr r2, [pc, 0x78]                                |     
    0x0001bc92 add r4, r5                                        |     r4 += r5;
    0x0001bc94 ldrb.w r3, [r5, r6, lsl 2]                        |     offset_5 = r6 << 2;
                                                                 |     r3 = *((r5 + offset_5));
    0x0001bc98 mov.w lr, 2                                       |     lr = 2;
    0x0001bc9c add r2, pc                                        |     
    0x0001bc9e ldr.w r1, [r2, r3, lsl 2]                         |     r1 = *(0x379ac);
    0x0001bca2 ldrb r3, [r4, 2]                                  |     r3 = *((r4 + 2));
    0x0001bca4 ldrb r4, [r4, 1]                                  |     r4 = *((r4 + 1));
    0x0001bca6 ldr.w r3, [r2, r3, lsl 2]                         |     
    0x0001bcaa ldr.w r2, [r2, r4, lsl 2]                         |     r2 = *(0x379ac);
    0x0001bcae lsls r3, r3, 6                                    |     r3 <<= 6;
    0x0001bcb0 add.w r3, r3, r2, lsl 12                          |     
    0x0001bcb4 add.w r3, r3, r1, lsl 18                          |     r3 = 0x379ac;
    0x0001bcb8 lsrs r2, r3, 0x10                                 |     r2 = r3 >> 0x10;
    0x0001bcba lsrs r3, r3, 8                                    |     r3 >>= 8;
    0x0001bcbc strb r2, [r0]                                     |     *(r0) = r2;
    0x0001bcbe strb r3, [r0, 1]                                  |     *((r0 + 1)) = r3;
                                                                 |     do {
                                                                 | label_4:
    0x0001bcc0 add.w r0, lr, sb                                  |         r0 = lr + sb;
    0x0001bcc4 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_3:
    0x0001bcc8 ldr r2, [pc, 0x44]                                |         
    0x0001bcca mov.w lr, 1                                       |         lr = 1;
    0x0001bcce ldrb.w r3, [r5, r6, lsl 2]                        |         offset_6 = r6 << 2;
                                                                 |         r3 = *((r5 + offset_6));
    0x0001bcd2 add r5, r4                                        |         r5 += r4;
    0x0001bcd4 ldrb r1, [r5, 1]                                  |         r1 = *((r5 + 1));
    0x0001bcd6 add r2, pc                                        |         
    0x0001bcd8 ldr.w r3, [r2, r3, lsl 2]                         |         
    0x0001bcdc ldr.w r2, [r2, r1, lsl 2]                         |         r2 = *(0x379ea);
    0x0001bce0 lsls r3, r3, 0x12                                 |         r3 <<= 0x12;
    0x0001bce2 add.w r3, r3, r2, lsl 12                          |         r3 = 0x379ea;
    0x0001bce6 lsrs r3, r3, 0x10                                 |         r3 >>= 0x10;
    0x0001bce8 strb r3, [r0]                                     |         *(r0) = r3;
    0x0001bcea add.w r0, lr, sb                                  |         r0 = lr + sb;
    0x0001bcee pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_0:
    0x0001bcf2 movs r1, 1                                        |         r1 = 1;
    0x0001bcf4 mov sb, r4                                        |         sb = r4;
    0x0001bcf6 blx 0x4c6c                                        |         loc_imp_apr_thread_mutex_create ();
    0x0001bcfa mov lr, r4                                        |         lr = r4;
    0x0001bcfc strb r4, [r0]                                     |         *(r0) = r4;
    0x0001bcfe str r0, [r7]                                      |         *(r7) = r0;
    0x0001bd00 b 0x1bcc0                                         |         
                                                                 |     } while (1);
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0x1c0e8 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0001c0e8 ()                                          | void fcn_0001c0e8 (uint32_t arg1, int16_t arg2, int16_t arg3) {
                                                                     |     int16_t var_0h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
    0x0001c0e8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0001c0ec mov r6, r0                                            |     r6 = r0;
    0x0001c0ee ldr r0, [r0, 8]                                       |     r0 = *((r0 + 8));
    0x0001c0f0 sub sp, 0xc                                           |     
    0x0001c0f2 cmp r0, 0                                             |     
                                                                     |     if (r0 <= 0) {
    0x0001c0f4 ble 0x1c18e                                           |         goto label_3;
                                                                     |     }
    0x0001c0f6 ldr r5, [r6, 4]                                       |     r5 = *((r6 + 4));
    0x0001c0f8 mov r8, r1                                            |     r8 = r1;
    0x0001c0fa ldr r4, [r6, 0xc]                                     |     r4 = *((r6 + 0xc));
    0x0001c0fc mov sb, r2                                            |     sb = r2;
    0x0001c0fe add r0, r5                                            |     r0 += r5;
    0x0001c100 subs r0, 1                                            |     r0--;
    0x0001c102 mov r1, r4                                            |     r1 = r4;
    0x0001c104 bl 0x1e6fc                                            |     fcn_0001e6fc (r0, r1);
    0x0001c108 cmp r5, r1                                            |     
    0x0001c10a mov sl, r1                                            |     sl = r1;
                                                                     |     if (r5 == r1) {
    0x0001c10c beq 0x1c18e                                           |         goto label_3;
                                                                     |     }
    0x0001c10e mov r5, r1                                            |     r5 = r1;
    0x0001c110 b 0x1c11c                                             |     
                                                                     |     while (r7 != r0) {
                                                                     | label_0:
    0x0001c112 ldr r3, [r6, 4]                                       |         r3 = *((r6 + 4));
    0x0001c114 cmp r3, r7                                            |         
                                                                     |         if (r3 == r7) {
    0x0001c116 beq 0x1c18e                                           |             goto label_3;
                                                                     |         }
                                                                     | label_2:
    0x0001c118 ldr r4, [r6, 0xc]                                     |         r4 = *((r6 + 0xc));
    0x0001c11a mov r5, r7                                            |         r5 = r7;
    0x0001c11c adds r0, r5, r4                                       |         r0 = r5 + r4;
    0x0001c11e mov r1, r4                                            |         r1 = r4;
    0x0001c120 subs r0, 1                                            |         r0--;
    0x0001c122 bl 0x1e6fc                                            |         fcn_0001e6fc (r0, r1);
    0x0001c126 mov r3, r8                                            |         r3 = r8;
    0x0001c128 mov r7, r1                                            |         r7 = r1;
    0x0001c12a mov r2, r1                                            |         r2 = r1;
    0x0001c12c mov r0, r6                                            |         r0 = r6;
    0x0001c12e mov r1, r5                                            |         r1 = r5;
    0x0001c130 str.w sb, [sp]                                        |         __asm ("str.w sb, [sp]");
    0x0001c134 bl 0x1b370                                            |         r0 = fcn_0001b370 (r0, r1, r2, r3, r4);
    0x0001c138 cmp r7, r0                                            |         
    0x0001c13a bne 0x1c112                                           |         
                                                                     |     }
    0x0001c13c ldr r1, [r6, 0xc]                                     |     r1 = *((r6 + 0xc));
    0x0001c13e adds r0, r1, r5                                       |     r0 = r1 + r5;
    0x0001c140 adds r0, 1                                            |     r0++;
    0x0001c142 bl 0x1e6fc                                            |     fcn_0001e6fc (r0, r1);
    0x0001c146 cmp sl, r5                                            |     
    0x0001c148 mov r4, r1                                            |     r4 = r1;
                                                                     |     if (sl == r5) {
    0x0001c14a beq 0x1c112                                           |         goto label_0;
                                                                     |     }
    0x0001c14c ldr.w fp, [r6]                                        |     fp = *(r6);
    0x0001c150 b 0x1c178                                             |     goto label_4;
                                                                     | label_1:
    0x0001c152 ldr.w fp, [r6]                                        |     fp = *(r6);
    0x0001c156 ldr.w r3, [fp, r4, lsl 2]                             |     offset_0 = r4 << 2;
                                                                     |     r3 = *((fp + offset_0));
    0x0001c15a ldr.w r2, [fp, r5, lsl 2]                             |     offset_1 = r5 << 2;
                                                                     |     r2 = *((fp + offset_1));
    0x0001c15e str.w r2, [fp, r4, lsl 2]                             |     __asm ("str.w r2, [fp, r4, lsl 2]");
    0x0001c162 str.w r3, [fp, r5, lsl 2]                             |     __asm ("str.w r3, [fp, r5, lsl 2]");
    0x0001c166 mov r5, r4                                            |     r5 = r4;
    0x0001c168 ldr r1, [r6, 0xc]                                     |     r1 = *((r6 + 0xc));
    0x0001c16a adds r0, r1, r4                                       |     r0 = r1 + r4;
    0x0001c16c adds r0, 1                                            |     r0++;
    0x0001c16e bl 0x1e6fc                                            |     fcn_0001e6fc (r0, r1);
    0x0001c172 cmp sl, r5                                            |     
    0x0001c174 mov r4, r1                                            |     r4 = r1;
                                                                     |     if (sl == r5) {
    0x0001c176 beq 0x1c112                                           |         goto label_0;
                                                                     |     }
                                                                     | label_4:
    0x0001c178 ldr.w r1, [fp, r4, lsl 2]                             |     offset_2 = r4 << 2;
                                                                     |     r1 = *((fp + offset_2));
    0x0001c17c mov r2, sb                                            |     r2 = sb;
    0x0001c17e ldr.w r0, [fp, r5, lsl 2]                             |     offset_3 = r5 << 2;
                                                                     |     r0 = *((fp + offset_3));
    0x0001c182 blx r8                                                |     r0 = uint32_t (*r8)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x0001c184 cmp r0, 0                                             |     
                                                                     |     if (r0 > 0) {
    0x0001c186 bgt 0x1c152                                           |         goto label_1;
                                                                     |     }
    0x0001c188 ldr r3, [r6, 4]                                       |     r3 = *((r6 + 4));
    0x0001c18a cmp r3, r7                                            |     
                                                                     |     if (r3 != r7) {
    0x0001c18c bne 0x1c118                                           |         goto label_2;
                                                                     |     }
                                                                     | label_3:
    0x0001c18e add sp, 0xc                                           |     
    0x0001c190 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0x1cca4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0001cca4 ()                      | void fcn_0001cca4 (int16_t arg1) {
                                                 |     r0 = arg1;
    0x0001cca4 mov ip, r0                        |     
    0x0001cca6 push {r4, r5, r6, r7, lr}         |     
    0x0001cca8 ldr r3, [ip, 4]!                  |     r3 = *((ip += 4));
    0x0001ccac movs r0, 0                        |     r0 = 0;
    0x0001ccae mov r1, r0                        |     r1 = r0;
    0x0001ccb0 ldr r6, [pc, 0x34]                |     
    0x0001ccb2 cmp r3, ip                        |     
    0x0001ccb4 add r6, pc                        |     r6 = 0x399a0;
                                                 |     if (r3 == ip) {
    0x0001ccb6 beq 0x1cce4                       |         goto label_0;
                                                 |     }
                                                 |     do {
    0x0001ccb8 ldr r2, [r3, 0xc]                 |         r2 = *((r3 + 0xc));
    0x0001ccba adds r0, 0x28                     |         r0 += 0x28;
    0x0001ccbc ldr r5, [pc, 0x2c]                |         r5 = *(0x1ccec);
    0x0001ccbe adc r1, r1, 0                     |         __asm ("adc r1, r1, 0");
    0x0001ccc2 ldr.w lr, [pc, 0x2c]              |         lr = *(0x1ccf2);
                                                 |         if (r2 != 0) {
    0x0001ccc6 cbz r2, 0x1ccde                   |             
    0x0001ccc8 ldr r4, [r3, 8]                   |             r4 = *((r3 + 8));
    0x0001ccca ldr r5, [r6, r5]                  |             r5 = *((r6 + r5));
    0x0001cccc ldr.w r7, [r6, lr]                |             r7 = *((r6 + lr));
    0x0001ccd0 cmp r4, r7                        |             
    0x0001ccd2 it ne                             |             
                                                 |             if (r4 != r7) {
    0x0001ccd4 cmpne r4, r5                      |                 __asm ("cmpne r4, r5");
                                                 |             }
                                                 |             if (r4 != r7) {
    0x0001ccd6 bne 0x1ccde                       |                 goto label_1;
                                                 |             }
    0x0001ccd8 adds r0, r2, r0                   |             r0 = r2 + r0;
    0x0001ccda adc r1, r1, 0                     |             __asm ("adc r1, r1, 0");
                                                 |         }
                                                 | label_1:
    0x0001ccde ldr r3, [r3]                      |         r3 = *(r3);
    0x0001cce0 cmp ip, r3                        |         
    0x0001cce2 bne 0x1ccb8                       |         
                                                 |     } while (ip != r3);
                                                 | label_0:
    0x0001cce4 pop {r4, r5, r6, r7, pc}          |     
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0x1dce4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0001dce4 ()                                      | void fcn_0001dce4 (int16_t arg_8h, int16_t arg_50h, int16_t arg_54h, int16_t arg_128h, int16_t arg_148h, int16_t arg_358h, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_10h_2;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0001dce4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x0001dce8 mov sb, r2                                        |     sb = r2;
    0x0001dcea ldr r2, [pc, 0x310]                               |     
    0x0001dcec mov r8, r3                                        |     r8 = r3;
    0x0001dcee sub sp, 0x2c                                      |     
    0x0001dcf0 ldr r3, [pc, 0x30c]                               |     r3 = *(0x1e000);
    0x0001dcf2 add r2, pc                                        |     r2 = 0x3bcf4;
    0x0001dcf4 ldr.w sl, [pc, 0x30c]                             |     
    0x0001dcf8 ldr r3, [r2, r3]                                  |     
    0x0001dcfa add sl, pc                                        |     sl = 0x3bd02;
    0x0001dcfc ldr r3, [r3]                                      |     r3 = *(0x3bcf4);
    0x0001dcfe str r3, [sp, 0x24]                                |     var_24h = r3;
    0x0001dd00 mov.w r3, 0                                       |     r3 = 0;
    0x0001dd02 lsls r0, r0, 0xc                                  |     r0 <<= 0xc;
    0x0001dd04 cmp r0, 0                                         |     
                                                                 |     if (arg_50h == ) {
    0x0001dd06 beq.w 0x1dfe6                                     |         goto label_6;
                                                                 |     }
    0x0001dd0a mov r7, r1                                        |     r7 = r1;
    0x0001dd0c cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0001dd0e beq.w 0x1dfd6                                     |         goto label_7;
                                                                 |     }
    0x0001dd12 ldr r3, [sp, 0x50]                                |     r3 = *(arg_50h);
    0x0001dd14 cmp r3, 1                                         |     
    0x0001dd16 ldr r3, [sp, 0x54]                                |     r3 = *(arg_54h);
    0x0001dd18 sbcs r3, r3, 0                                    |     __asm ("sbcs r3, r3, 0");
                                                                 |     if (r3 < 1) {
    0x0001dd1c blt.w 0x1dfc6                                     |         goto label_8;
                                                                 |     }
    0x0001dd20 mov r6, r0                                        |     r6 = r0;
    0x0001dd22 add r0, sp, 0x20                                  |     r0 += var_20h;
    0x0001dd24 blx 0x506c                                        |     r0 = fcn_0000506c ();
    0x0001dd28 mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 0) {
    0x0001dd2a cbz r0, 0x1dd88                                   |         goto label_9;
                                                                 |     }
                                                                 | label_3:
    0x0001dd2c ldr r3, [pc, 0x2d8]                               |     r3 = *(0x1e008);
    0x0001dd2e ldr.w fp, [sl, r3]                                |     fp = *((sl + r3));
                                                                 | label_0:
    0x0001dd32 ldr.w r2, [fp, 8]                                 |     r2 = *(arg_8h);
    0x0001dd36 cmp r2, 0                                         |     
                                                                 |     if (r2 < 0) {
    0x0001dd38 blt 0x1dd62                                       |         goto label_10;
                                                                 |     }
    0x0001dd3a ldr r3, [r6, 0x10]                                |     r3 = *((r6 + 0x10));
                                                                 |     if (r3 == 0) {
    0x0001dd3c cbz r3, 0x1dd62                                   |         goto label_10;
                                                                 |     }
    0x0001dd3e ldrsb r3, [r3, r2]                                |     r3 = *((r3 + r2));
    0x0001dd40 cmp r3, 0                                         |     
                                                                 |     if (r3 < 0) {
    0x0001dd42 blt 0x1dd62                                       |         goto label_10;
                                                                 |     }
    0x0001dd44 cmp r3, 6                                         |     
                                                                 |     if (r3 <= 6) {
    0x0001dd46 ble 0x1dd68                                       |         goto label_11;
                                                                 |     }
                                                                 |     do {
    0x0001dd48 ldr r4, [pc, 0x2c0]                               |         
    0x0001dd4a movs r3, 7                                        |         r3 = 7;
    0x0001dd4c ldr r0, [pc, 0x2c0]                               |         
    0x0001dd4e movw r1, 0x215                                    |         r1 = 0x215;
    0x0001dd52 strd r5, r6, [sp]                                 |         __asm ("strd r5, r6, [sp]");
    0x0001dd56 add r4, pc                                        |         r4 = 0x3bd66;
    0x0001dd58 add r0, pc                                        |         r0 = 0x3bd6c;
    0x0001dd5a str r4, [sp, 8]                                   |         var_8h = r4;
    0x0001dd5c blx 0x4cfc                                        |         loc_imp_ap_remove_input_filter_byhandle ();
    0x0001dd60 b 0x1dd68                                         |         goto label_11;
                                                                 | label_10:
    0x0001dd62 ldr r3, [r6, 0x14]                                |         r3 = *((r6 + 0x14));
    0x0001dd64 cmp r3, 6                                         |         
    0x0001dd66 bgt 0x1dd48                                       |         
                                                                 |     } while (r3 > 6);
                                                                 | label_11:
    0x0001dd68 movs r4, 0                                        |     r4 = 0;
                                                                 | label_5:
    0x0001dd6a ldr r2, [pc, 0x2a8]                               |     
    0x0001dd6c ldr r3, [pc, 0x290]                               |     r3 = *(0x1e000);
    0x0001dd6e add r2, pc                                        |     r2 = 0x3bd88;
    0x0001dd70 ldr r3, [r2, r3]                                  |     r3 = *(0x3bd88);
    0x0001dd72 ldr r2, [r3]                                      |     r2 = *(0x3bd88);
    0x0001dd74 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0001dd76 eors r2, r3                                       |     r2 ^= r3;
    0x0001dd78 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x0001dd7c bne.w 0x1dff6                                     |         goto label_12;
                                                                 |     }
    0x0001dd80 mov r0, r4                                        |     r0 = r4;
    0x0001dd82 add sp, 0x2c                                      |     
    0x0001dd84 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
    0x0001dd86 ldrh r0, [r6, 0x3e]                               |     r0 = *((r6 + 0x3e));
                                                                 | label_9:
    0x0001dd88 mov r2, r0                                        |     r2 = r0;
    0x0001dd8a ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x0001dd8c mov r1, r7                                        |     r1 = r7;
    0x0001dd8e add r0, sp, 0x1c                                  |     r0 += var_1ch;
    0x0001dd90 blx 0x4d9c                                        |     r0 = fcn_00004d9c ();
    0x0001dd94 mov r5, r0                                        |     r5 = r0;
    0x0001dd96 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001dd98 bne.w 0x1df88                                     |         goto label_13;
                                                                 |     }
    0x0001dd9c ldrd r1, r0, [sp, 0x1c]                           |     __asm ("ldrd r1, r0, [var_20h]");
    0x0001dda0 blx 0x4928                                        |     fcn_00004928 ();
    0x0001dda4 ldr r1, [pc, 0x270]                               |     
    0x0001dda6 ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x0001dda8 add r1, pc                                        |     r1 = 0x3bdc4;
    0x0001ddaa blx 0x521c                                        |     fcn_0000521c ();
    0x0001ddae movs r1, 0x70                                     |     r1 = 0x70;
    0x0001ddb0 ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x0001ddb2 blx 0x4c6c                                        |     loc_imp_apr_thread_mutex_create ();
    0x0001ddb6 mov r1, r5                                        |     r1 = r5;
    0x0001ddb8 movs r2, 0x70                                     |     r2 = 0x70;
    0x0001ddba blx 0x4aa0                                        |     fcn_00004aa0 ();
    0x0001ddbe ldrd r2, r3, [sp, 0x50]                           |     __asm ("ldrd r2, r3, [arg_50h]");
    0x0001ddc2 cmp r8, sb                                        |     
    0x0001ddc4 ldr r1, [sp, 0x1c]                                |     r1 = var_1ch;
    0x0001ddc6 mov r4, r0                                        |     r4 = r0;
    0x0001ddc8 str r6, [r0]                                      |     *(r0) = r6;
    0x0001ddca strd r2, r3, [r0, 0x10]                           |     __asm ("strd r2, r3, [r0, 0x10]");
    0x0001ddce it hs                                             |     
                                                                 |     if (r8 < sb) {
    0x0001ddd0 movhs r2, 0                                       |         r2 = 0;
                                                                 |     }
    0x0001ddd2 ldr r3, [pc, 0x234]                               |     r3 = *(0x1e00a);
    0x0001ddd4 it lo                                             |     
                                                                 |     if (r8 >= sb) {
    0x0001ddd6 movlo r2, 1                                       |         r2 = 1;
                                                                 |     }
    0x0001ddd8 strd sb, r8, [r0, 8]                              |     __asm ("strd sb, r8, [r0, 8]");
    0x0001dddc str r1, [r0, 4]                                   |     *((r0 + 4)) = r1;
    0x0001ddde str r2, [r0, 0x20]                                |     *((r0 + 0x20)) = r2;
    0x0001dde0 ldr.w fp, [sl, r3]                                |     fp = *((sl + r3));
    0x0001dde4 ldr.w r5, [fp, 8]                                 |     r5 = *(arg_8h);
    0x0001dde8 cmp r5, 0                                         |     
                                                                 |     if (r5 < 0) {
    0x0001ddea blt.w 0x1df04                                     |         goto label_14;
                                                                 |     }
    0x0001ddee ldr r3, [r6, 0x10]                                |     r3 = *((r6 + 0x10));
    0x0001ddf0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001ddf2 beq.w 0x1df04                                     |         goto label_14;
                                                                 |     }
    0x0001ddf6 ldrsb r3, [r3, r5]                                |     r3 = *((r3 + r5));
    0x0001ddf8 cmp r3, 0                                         |     
                                                                 |     if (r3 < 0) {
    0x0001ddfa blt.w 0x1df04                                     |         goto label_14;
                                                                 |     }
    0x0001ddfe cmp r3, 5                                         |     
                                                                 |     if (r3 > 5) {
    0x0001de00 bgt.w 0x1df0c                                     |         goto label_15;
                                                                 |     }
                                                                 | label_1:
    0x0001de04 add.w r3, r4, 0x3c                                |     r3 = r4 + 0x3c;
    0x0001de08 add.w r8, r4, 0x34                                |     r8 = r4 + 0x34;
    0x0001de0c str r3, [r4, 0x3c]                                |     *((r4 + 0x3c)) = r3;
    0x0001de0e add.w r0, r4, 0x2c                                |     r0 = r4 + 0x2c;
    0x0001de12 str r3, [r4, 0x40]                                |     *((r4 + 0x40)) = r3;
    0x0001de14 add.w r3, r4, 0x44                                |     r3 = r4 + 0x44;
    0x0001de18 str r3, [r4, 0x44]                                |     *((r4 + 0x44)) = r3;
    0x0001de1a str r3, [r4, 0x48]                                |     *((r4 + 0x48)) = r3;
    0x0001de1c add.w r3, r4, 0x4c                                |     r3 = r4 + 0x4c;
    0x0001de20 str.w r8, [r4, 0x34]                              |     __asm ("str.w r8, [r4, 0x34]");
    0x0001de24 str.w r8, [r4, 0x38]                              |     __asm ("str.w r8, [r4, 0x38]");
    0x0001de28 str r3, [r4, 0x4c]                                |     *((r4 + 0x4c)) = r3;
    0x0001de2a str r3, [r4, 0x50]                                |     *((r4 + 0x50)) = r3;
    0x0001de2c add.w r3, r4, 0x54                                |     r3 = r4 + 0x54;
    0x0001de30 str r3, [r4, 0x54]                                |     *((r4 + 0x54)) = r3;
    0x0001de32 str r3, [r4, 0x58]                                |     *((r4 + 0x58)) = r3;
    0x0001de34 add.w r3, r4, 0x5c                                |     r3 = r4 + 0x5c;
    0x0001de38 str r3, [r4, 0x5c]                                |     *((r4 + 0x5c)) = r3;
    0x0001de3a str r3, [r4, 0x60]                                |     *((r4 + 0x60)) = r3;
    0x0001de3c blx 0x49e8                                        |     r0 = fcn_000049e8 ();
    0x0001de40 mov r5, r0                                        |     r5 = r0;
    0x0001de42 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001de44 bne.w 0x1dd32                                     |         goto label_0;
                                                                 |     }
    0x0001de48 ldr r3, [pc, 0x1d0]                               |     r3 = *(0x1e01c);
    0x0001de4a ldr.w r5, [sl, r3]                                |     r5 = *((sl + r3));
    0x0001de4e ldr r1, [r5]                                      |     r1 = *(r5);
    0x0001de50 cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x0001de52 bne 0x1df42                                       |         goto label_16;
                                                                 |     }
                                                                 | label_2:
    0x0001de54 ldr r2, [r4, 4]                                   |     r2 = *((r4 + 4));
    0x0001de56 movs r1, 0                                        |     r1 = 0;
    0x0001de58 add.w r0, r4, 0x64                                |     r0 = r4 + 0x64;
    0x0001de5c blx 0x4c90                                        |     r0 = loc_imp_ap_run_process_connection ();
    0x0001de60 mov r5, r0                                        |     r5 = r0;
    0x0001de62 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001de64 bne.w 0x1dd32                                     |         goto label_0;
                                                                 |     }
    0x0001de68 ldr r1, [r4, 4]                                   |     r1 = *((r4 + 4));
    0x0001de6a add.w r0, r4, 0x6c                                |     r0 = r4 + 0x6c;
    0x0001de6e blx 0x4ac4                                        |     r0 = fcn_00004ac4 ();
    0x0001de72 mov r5, r0                                        |     r5 = r0;
    0x0001de74 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001de76 bne.w 0x1dd32                                     |         goto label_0;
                                                                 |     }
    0x0001de7a ldr r1, [r4, 4]                                   |     r1 = *((r4 + 4));
    0x0001de7c add.w r0, r4, 0x68                                |     r0 = r4 + 0x68;
    0x0001de80 blx 0x4ac4                                        |     r0 = fcn_00004ac4 ();
    0x0001de84 mov r5, r0                                        |     r5 = r0;
    0x0001de86 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001de88 bne.w 0x1dd32                                     |         goto label_0;
                                                                 |     }
    0x0001de8c ldr r0, [r4, 0x64]                                |     r0 = *((r4 + 0x64));
    0x0001de8e blx 0x4c9c                                        |     nghttp2_option_set_peer_max_concurrent_streams ();
    0x0001de92 ldr r1, [r4, 8]                                   |     r1 = *((r4 + 8));
    0x0001de94 ldr r0, [r4, 4]                                   |     r0 = *((r4 + 4));
    0x0001de96 add.w r1, r1, r1, lsl 1                           |     r1 += (r1 << 1);
    0x0001de9a lsls r1, r1, 4                                    |     r1 <<= 4;
    0x0001de9c blx 0x4c6c                                        |     loc_imp_apr_thread_mutex_create ();
    0x0001dea0 ldr r2, [r4, 8]                                   |     r2 = *((r4 + 8));
    0x0001dea2 mov r1, r5                                        |     r1 = r5;
    0x0001dea4 add.w r2, r2, r2, lsl 1                           |     r2 += (r2 << 1);
    0x0001dea8 lsls r2, r2, 4                                    |     r2 <<= 4;
    0x0001deaa blx 0x4aa0                                        |     fcn_00004aa0 ();
    0x0001deae ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x0001deb0 mov r2, r0                                        |     r2 = r0;
    0x0001deb2 str r0, [r4, 0x30]                                |     *((r4 + 0x30)) = r0;
    0x0001deb4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001deb6 beq 0x1df92                                       |         goto label_17;
                                                                 |     }
    0x0001deb8 mov sl, r5                                        |     sl = r5;
    0x0001deba mov r5, r8                                        |     r5 = r8;
    0x0001debc mov r8, r7                                        |     r8 = r7;
    0x0001debe mov r7, sl                                        |     r7 = sl;
    0x0001dec0 b 0x1ded0                                         |     
                                                                 |     while (r0 == 0) {
    0x0001dec2 ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
    0x0001dec4 adds r7, 1                                        |         r7++;
    0x0001dec6 add.w sl, sl, 0x30                                |         sl += 0x30;
    0x0001deca cmp r3, r7                                        |         
                                                                 |         if (r3 < r7) {
    0x0001decc bls 0x1df90                                       |             goto label_18;
                                                                 |         }
    0x0001dece ldr r2, [r4, 0x30]                                |         r2 = *((r4 + 0x30));
    0x0001ded0 add.w r0, r2, sl                                  |         r0 = r2 + sl;
    0x0001ded4 movs r3, 0                                        |         r3 = 0;
    0x0001ded6 str r0, [r0]                                      |         *(r0) = r0;
    0x0001ded8 str r3, [r0, 0x10]                                |         *((r0 + 0x10)) = r3;
    0x0001deda str r0, [r0, 4]                                   |         *((r0 + 4)) = r0;
    0x0001dedc str r7, [r0, 8]                                   |         *((r0 + 8)) = r7;
    0x0001dede str r4, [r0, 0x1c]                                |         *((r0 + 0x1c)) = r4;
    0x0001dee0 str.w r5, [r2, sl]                                |         __asm ("str.w r5, [r2, sl]");
    0x0001dee4 ldr r3, [r4, 0x38]                                |         r3 = *((r4 + 0x38));
    0x0001dee6 ldr r1, [r4, 4]                                   |         r1 = *((r4 + 4));
    0x0001dee8 str r3, [r0, 4]                                   |         *((r0 + 4)) = r3;
    0x0001deea ldr r3, [r4, 0x38]                                |         r3 = *((r4 + 0x38));
    0x0001deec str r0, [r3]                                      |         *(r3) = r0;
    0x0001deee str r0, [r4, 0x38]                                |         *((r4 + 0x38)) = r0;
    0x0001def0 adds r0, 0x28                                     |         r0 += 0x28;
    0x0001def2 blx 0x4ac4                                        |         r0 = fcn_00004ac4 ();
    0x0001def6 cmp r0, 0                                         |         
    0x0001def8 beq 0x1dec2                                       |         
                                                                 |     }
                                                                 | label_4:
    0x0001defa mov r5, r0                                        |     r5 = r0;
    0x0001defc ldr r0, [r4, 0x64]                                |     r0 = *((r4 + 0x64));
    0x0001defe blx 0x50a4                                        |     loc_imp_ap_hook_post_config ();
    0x0001df02 b 0x1dd32                                         |     goto label_0;
                                                                 | label_14:
    0x0001df04 ldr r3, [r6, 0x14]                                |     r3 = *((r6 + 0x14));
    0x0001df06 cmp r3, 5                                         |     
                                                                 |     if (r3 <= 5) {
    0x0001df08 ble.w 0x1de04                                     |         goto label_1;
                                                                 |     }
                                                                 | label_15:
    0x0001df0c ldrd r0, r1, [sp, 0x50]                           |     __asm ("ldrd r0, r1, [arg_50h]");
    0x0001df10 mov.w r2, 0x3e8                                   |     r2 = 0x3e8;
    0x0001df14 movs r3, 0                                        |     r3 = 0;
    0x0001df16 bl 0x1ea90                                        |     fcn_0001ea90 (r0, r1, r2, r3);
    0x0001df1a ldr r3, [pc, 0x104]                               |     
    0x0001df1c movw r1, 0x1d1                                    |     r1 = 0x1d1;
    0x0001df20 strd sb, r0, [sp, 0x10]                           |     __asm ("strd sb, r0, [var_10h]");
    0x0001df24 mov r2, r5                                        |     r2 = r5;
    0x0001df26 ldr r0, [pc, 0xfc]                                |     
    0x0001df28 add r3, pc                                        |     r3 = 0x3bf4e;
    0x0001df2a str.w r8, [sp, 0xc]                               |     __asm ("str.w r8, [var_ch]");
    0x0001df2e str r3, [sp, 8]                                   |     var_8h = r3;
    0x0001df30 movs r3, 0                                        |     r3 = 0;
    0x0001df32 str r3, [sp]                                      |     *(sp) = r3;
    0x0001df34 add r0, pc                                        |     r0 = 0x3bf5e;
    0x0001df36 movs r3, 6                                        |     r3 = 6;
    0x0001df38 str r6, [sp, 4]                                   |     var_4h = r6;
    0x0001df3a blx 0x4cfc                                        |     loc_imp_ap_remove_input_filter_byhandle ();
    0x0001df3e ldr r1, [r4, 4]                                   |     r1 = *((r4 + 4));
    0x0001df40 b 0x1de04                                         |     goto label_1;
                                                                 | label_16:
    0x0001df42 ldr r0, [r4, 0x2c]                                |     r0 = *((r4 + 0x2c));
    0x0001df44 blx 0x46f0                                        |     loc_imp_apr_threadattr_stacksize_set ();
    0x0001df48 ldr.w r2, [fp, 8]                                 |     r2 = *(arg_8h);
    0x0001df4c cmp r2, 0                                         |     
                                                                 |     if (r2 < 0) {
    0x0001df4e blt 0x1df80                                       |         goto label_19;
                                                                 |     }
    0x0001df50 ldr r3, [r6, 0x10]                                |     r3 = *((r6 + 0x10));
                                                                 |     if (r3 == 0) {
    0x0001df52 cbz r3, 0x1df80                                   |         goto label_19;
                                                                 |     }
    0x0001df54 ldrsb r3, [r3, r2]                                |     r3 = *((r3 + r2));
    0x0001df56 cmp r3, 0                                         |     
                                                                 |     if (r3 < 0) {
    0x0001df58 blt 0x1df80                                       |         goto label_19;
                                                                 |     }
    0x0001df5a cmp r3, 9                                         |     
                                                                 |     if (r3 <= 9) {
    0x0001df5c ble.w 0x1de54                                     |         goto label_2;
                                                                 |     }
                                                                 |     do {
    0x0001df60 ldr r3, [r5]                                      |         r3 = *(r5);
    0x0001df62 mov.w r1, 0x1e4                                   |         r1 = 0x1e4;
    0x0001df66 ldr r0, [pc, 0xc0]                                |         
    0x0001df68 str r6, [sp, 4]                                   |         var_4h = r6;
    0x0001df6a str r3, [sp, 0xc]                                 |         var_ch = r3;
    0x0001df6c ldr r3, [pc, 0xbc]                                |         
    0x0001df6e add r0, pc                                        |         r0 = 0x3bf9c;
    0x0001df70 add r3, pc                                        |         r3 = 0x3bfa0;
    0x0001df72 str r3, [sp, 8]                                   |         var_8h = r3;
    0x0001df74 movs r3, 0                                        |         r3 = 0;
    0x0001df76 str r3, [sp]                                      |         *(sp) = r3;
    0x0001df78 movs r3, 0xa                                      |         r3 = 0xa;
    0x0001df7a blx 0x4cfc                                        |         loc_imp_ap_remove_input_filter_byhandle ();
    0x0001df7e b 0x1de54                                         |         goto label_2;
                                                                 | label_19:
    0x0001df80 ldr r3, [r6, 0x14]                                |         r3 = *((r6 + 0x14));
    0x0001df82 cmp r3, 9                                         |         
    0x0001df84 bgt 0x1df60                                       |         
                                                                 |     } while (r3 > 9);
    0x0001df86 b 0x1de54                                         |     goto label_2;
                                                                 | label_13:
    0x0001df88 ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x0001df8a blx 0x4ca8                                        |     loc_imp_apr_dynamic_fn_retrieve ();
    0x0001df8e b 0x1dd2c                                         |     goto label_3;
                                                                 | label_18:
    0x0001df90 mov r7, r8                                        |     r7 = r8;
                                                                 | label_17:
    0x0001df92 ldr r3, [r4, 0xc]                                 |     r3 = *((r4 + 0xc));
                                                                 |     if (r3 == 0) {
    0x0001df94 cbz r3, 0x1dfb2                                   |         goto label_20;
                                                                 |     }
    0x0001df96 mov.w r8, 0                                       |     r8 = 0;
    0x0001df9a b 0x1dfa6                                         |     
                                                                 |     while (r0 == 0) {
    0x0001df9c ldr r3, [r4, 0xc]                                 |         r3 = *((r4 + 0xc));
    0x0001df9e add.w r8, r8, 1                                   |         r8++;
    0x0001dfa2 cmp r3, r8                                        |         
                                                                 |         if (r3 < r8) {
    0x0001dfa4 bls 0x1dfb2                                       |             goto label_20;
                                                                 |         }
    0x0001dfa6 mov r0, r4                                        |         r0 = r4;
    0x0001dfa8 bl 0x1d598                                        |         r0 = fcn_0001d598 (r0);
    0x0001dfac cmp r0, 0                                         |         
    0x0001dfae beq 0x1df9c                                       |         
                                                                 |     }
    0x0001dfb0 b 0x1defa                                         |     goto label_4;
                                                                 | label_20:
    0x0001dfb2 ldr r0, [r4, 0x64]                                |     r0 = *((r4 + 0x64));
    0x0001dfb4 blx 0x50a4                                        |     loc_imp_ap_hook_post_config ();
    0x0001dfb8 ldr r2, [pc, 0x74]                                |     
    0x0001dfba mov r1, r4                                        |     r1 = r4;
    0x0001dfbc mov r0, r7                                        |     r0 = r7;
    0x0001dfbe add r2, pc                                        |     r2 = 0x3bff2;
    0x0001dfc0 blx 0x5210                                        |     fcn_00005210 ();
    0x0001dfc4 b 0x1dd6a                                         |     goto label_5;
                                                                 | label_8:
    0x0001dfc6 ldr r1, [pc, 0x6c]                                |     
    0x0001dfc8 movw r2, 0x1b3                                    |     r2 = 0x1b3;
    0x0001dfcc ldr r0, [pc, 0x68]                                |     
    0x0001dfce add r1, pc                                        |     r1 = 0x3c008;
    0x0001dfd0 add r0, pc                                        |     r0 = 0x3c00c;
    0x0001dfd2 blx 0x4e40                                        |     loc_imp_apr_socket_create ();
                                                                 | label_7:
    0x0001dfd6 ldr r1, [pc, 0x64]                                |     
    0x0001dfd8 mov.w r2, 0x1b2                                   |     r2 = 0x1b2;
    0x0001dfdc ldr r0, [pc, 0x60]                                |     
    0x0001dfde add r1, pc                                        |     r1 = 0x3c020;
    0x0001dfe0 add r0, pc                                        |     r0 = 0x3c024;
    0x0001dfe2 blx 0x4e40                                        |     loc_imp_apr_socket_create ();
                                                                 | label_6:
    0x0001dfe6 ldr r1, [pc, 0x5c]                                |     
    0x0001dfe8 movw r2, 0x1b1                                    |     r2 = 0x1b1;
    0x0001dfec ldr r0, [pc, 0x58]                                |     
    0x0001dfee add r1, pc                                        |     r1 = 0x3c038;
    0x0001dff0 add r0, pc                                        |     r0 = 0x3c03c;
    0x0001dff2 blx 0x4e40                                        |     loc_imp_apr_socket_create ();
                                                                 | label_12:
    0x0001dff6 blx 0x4d80                                        |     loc_imp_apr_file_read ();
    0x0001dffa nop                                               |     
    0x0001dffc ldr r6, [sp, 0x148]                               |     r6 = *(arg_148h);
    0x0001dffe movs r0, r0                                       |     
    0x0001e000 lsls r4, r6, 0x10                                 |     r4 = r6 << 0x10;
    0x0001e002 movs r0, r0                                       |     
    0x0001e004 ldr r6, [sp, 0x128]                               |     r6 = *(arg_128h);
    0x0001e006 movs r0, r0                                       |     
    0x0001e008 lsls r0, r1, 0x12                                 |     r0 = r1 << 0x12;
    0x0001e00a movs r0, r0                                       |     
    0x0001e00c strh r6, [r7, 0xa]                                |     *((r7 + 0xa)) = r6;
    0x0001e00e movs r0, r0                                       |     
    0x0001e010 ldrb r4, [r2, 0x1a]                               |     r4 = *((r2 + 0x1a));
    0x0001e012 movs r0, r0                                       |     
    0x0001e014 ldr r5, [sp, 0x358]                               |     r5 = *(arg_358h);
    0x0001e016 movs r0, r0                                       |     
    0x0001e018 strh r4, [r1, 6]                                  |     *((r1 + 6)) = r4;
    0x0001e01a movs r0, r0                                       |     
    0x0001e01c lsls r0, r4, 0x11                                 |     r0 = r4 << 0x11;
    0x0001e01e movs r0, r0                                       |     
    0x0001e020 ldrb r0, [r3, 0x1d]                               |     r0 = *((r3 + 0x1d));
    0x0001e022 movs r0, r0                                       |     
    0x0001e024 ldrb r0, [r7, 0x12]                               |     r0 = *((r7 + 0x12));
    0x0001e026 movs r0, r0                                       |     
    0x0001e028 ldrb r6, [r7, 0x11]                               |     r6 = *((r7 + 0x11));
    0x0001e02a movs r0, r0                                       |     
    0x0001e02c ldrb r4, [r0, 0x1d]                               |     r4 = *((r0 + 0x1d));
    0x0001e02e movs r0, r0                                       |     
    0x0001e030 invalid                                           |     
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0x1e46e */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0001e46e ()                  | uint32_t fcn_0001e46e (int16_t arg1, uint32_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0001e470 svclt 0x480c01                |     __asm ("svclt 0x480c01");
    0x0001e474 rsbs r1, r1, 0                |     r1 -= ;
    0x0001e476 subs r2, r1, 1                |     r2 = r1 - 1;
                                             |     if (r2 != r1) {
    0x0001e478 beq.w 0x1e6ba                 |         
    0x0001e47c movs r3, r0                   |         r3 = r0;
    0x0001e47e it mi                         |         
                                             |         if (r3 < r0) {
    0x0001e480 rsbmi r3, r0, 0               |             __asm ("rsbmi r3, r0, 0");
                                             |         }
    0x0001e482 cmp r3, r1                    |         
                                             |         if (r3 < r1) {
    0x0001e484 bls.w 0x1e6c4                 |             goto label_0;
                                             |         }
    0x0001e488 tst r1, r2                    |         
                                             |         if ((r1 & r2) == 0) {
    0x0001e48a beq.w 0x1e6d4                 |             goto label_1;
                                             |         }
    0x0001e48e clz r2, r3                    |         r2 &= r3;
    0x0001e492 clz r0, r1                    |         r0 &= r1;
    0x0001e496 sub.w r2, r0, r2              |         r2 = r0 - r2;
    0x0001e49a rsb.w r2, r2, 0x1f            |         r2 = 0x1f - r2;
    0x0001e49e adr r0, 0x10                  |         r0 = 0x10;
    0x0001e4a0 add.w r2, r0, r2, lsl 4       |         r2 = r0 + (r2 << 4);
    0x0001e4a4 mov.w r0, 0                   |         r0 = 0;
    0x0001e4a8 mov pc, r2                    |         pc = r2;
    0x0001e4aa nop                           |         
    0x0001e4ac nop.w                         |         
    0x0001e4b0 cmp.w r3, r1, lsl 31          |         
    0x0001e4b4 nop                           |         
    0x0001e4b6 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e4ba it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e4bc subhs r3, r3, r1, lsl 31      |             r3 -= (r1 << 31);
                                             |         }
    0x0001e4c0 cmp.w r3, r1, lsl 30          |         
    0x0001e4c4 nop                           |         
    0x0001e4c6 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e4ca it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e4cc subhs r3, r3, r1, lsl 30      |             r3 -= (r1 << 30);
                                             |         }
    0x0001e4d0 cmp.w r3, r1, lsl 29          |         
    0x0001e4d4 nop                           |         
    0x0001e4d6 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e4da it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e4dc subhs r3, r3, r1, lsl 29      |             r3 -= (r1 << 29);
                                             |         }
    0x0001e4e0 cmp.w r3, r1, lsl 28          |         
    0x0001e4e4 nop                           |         
    0x0001e4e6 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e4ea it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e4ec subhs r3, r3, r1, lsl 28      |             r3 -= (r1 << 28);
                                             |         }
    0x0001e4f0 cmp.w r3, r1, lsl 27          |         
    0x0001e4f4 nop                           |         
    0x0001e4f6 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e4fa it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e4fc subhs r3, r3, r1, lsl 27      |             r3 -= (r1 << 27);
                                             |         }
    0x0001e500 cmp.w r3, r1, lsl 26          |         
    0x0001e504 nop                           |         
    0x0001e506 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e50a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e50c subhs r3, r3, r1, lsl 26      |             r3 -= (r1 << 26);
                                             |         }
    0x0001e510 cmp.w r3, r1, lsl 25          |         
    0x0001e514 nop                           |         
    0x0001e516 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e51a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e51c subhs r3, r3, r1, lsl 25      |             r3 -= (r1 << 25);
                                             |         }
    0x0001e520 cmp.w r3, r1, lsl 24          |         
    0x0001e524 nop                           |         
    0x0001e526 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e52a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e52c subhs r3, r3, r1, lsl 24      |             r3 -= (r1 << 24);
                                             |         }
    0x0001e530 cmp.w r3, r1, lsl 23          |         
    0x0001e534 nop                           |         
    0x0001e536 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e53a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e53c subhs r3, r3, r1, lsl 23      |             r3 -= (r1 << 23);
                                             |         }
    0x0001e540 cmp.w r3, r1, lsl 22          |         
    0x0001e544 nop                           |         
    0x0001e546 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e54a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e54c subhs r3, r3, r1, lsl 22      |             r3 -= (r1 << 22);
                                             |         }
    0x0001e550 cmp.w r3, r1, lsl 21          |         
    0x0001e554 nop                           |         
    0x0001e556 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e55a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e55c subhs r3, r3, r1, lsl 21      |             r3 -= (r1 << 21);
                                             |         }
    0x0001e560 cmp.w r3, r1, lsl 20          |         
    0x0001e564 nop                           |         
    0x0001e566 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e56a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e56c subhs r3, r3, r1, lsl 20      |             r3 -= (r1 << 20);
                                             |         }
    0x0001e570 cmp.w r3, r1, lsl 19          |         
    0x0001e574 nop                           |         
    0x0001e576 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e57a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e57c subhs r3, r3, r1, lsl 19      |             r3 -= (r1 << 19);
                                             |         }
    0x0001e580 cmp.w r3, r1, lsl 18          |         
    0x0001e584 nop                           |         
    0x0001e586 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e58a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e58c subhs r3, r3, r1, lsl 18      |             r3 -= (r1 << 18);
                                             |         }
    0x0001e590 cmp.w r3, r1, lsl 17          |         
    0x0001e594 nop                           |         
    0x0001e596 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e59a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e59c subhs r3, r3, r1, lsl 17      |             r3 -= (r1 << 17);
                                             |         }
    0x0001e5a0 cmp.w r3, r1, lsl 16          |         
    0x0001e5a4 nop                           |         
    0x0001e5a6 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e5aa it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e5ac subhs r3, r3, r1, lsl 16      |             r3 -= (r1 << 16);
                                             |         }
    0x0001e5b0 cmp.w r3, r1, lsl 15          |         
    0x0001e5b4 nop                           |         
    0x0001e5b6 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e5ba it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e5bc subhs r3, r3, r1, lsl 15      |             r3 -= (r1 << 15);
                                             |         }
    0x0001e5c0 cmp.w r3, r1, lsl 14          |         
    0x0001e5c4 nop                           |         
    0x0001e5c6 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e5ca it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e5cc subhs r3, r3, r1, lsl 14      |             r3 -= (r1 << 14);
                                             |         }
    0x0001e5d0 cmp.w r3, r1, lsl 13          |         
    0x0001e5d4 nop                           |         
    0x0001e5d6 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e5da it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e5dc subhs r3, r3, r1, lsl 13      |             r3 -= (r1 << 13);
                                             |         }
    0x0001e5e0 cmp.w r3, r1, lsl 12          |         
    0x0001e5e4 nop                           |         
    0x0001e5e6 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e5ea it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e5ec subhs r3, r3, r1, lsl 12      |             r3 -= (r1 << 12);
                                             |         }
    0x0001e5f0 cmp.w r3, r1, lsl 11          |         
    0x0001e5f4 nop                           |         
    0x0001e5f6 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e5fa it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e5fc subhs r3, r3, r1, lsl 11      |             r3 -= (r1 << 11);
                                             |         }
    0x0001e600 cmp.w r3, r1, lsl 10          |         
    0x0001e604 nop                           |         
    0x0001e606 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e60a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e60c subhs r3, r3, r1, lsl 10      |             r3 -= (r1 << 10);
                                             |         }
    0x0001e610 cmp.w r3, r1, lsl 9           |         
    0x0001e614 nop                           |         
    0x0001e616 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e61a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e61c subhs r3, r3, r1, lsl 9       |             r3 -= (r1 << 9);
                                             |         }
    0x0001e620 cmp.w r3, r1, lsl 8           |         
    0x0001e624 nop                           |         
    0x0001e626 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e62a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e62c subhs r3, r3, r1, lsl 8       |             r3 -= (r1 << 8);
                                             |         }
    0x0001e630 cmp.w r3, r1, lsl 7           |         
    0x0001e634 nop                           |         
    0x0001e636 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e63a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e63c subhs r3, r3, r1, lsl 7       |             r3 -= (r1 << 7);
                                             |         }
    0x0001e640 cmp.w r3, r1, lsl 6           |         
    0x0001e644 nop                           |         
    0x0001e646 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e64a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e64c subhs r3, r3, r1, lsl 6       |             r3 -= (r1 << 6);
                                             |         }
    0x0001e650 cmp.w r3, r1, lsl 5           |         
    0x0001e654 nop                           |         
    0x0001e656 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e65a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e65c subhs r3, r3, r1, lsl 5       |             r3 -= (r1 << 5);
                                             |         }
    0x0001e660 cmp.w r3, r1, lsl 4           |         
    0x0001e664 nop                           |         
    0x0001e666 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e66a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e66c subhs r3, r3, r1, lsl 4       |             r3 -= (r1 << 4);
                                             |         }
    0x0001e670 cmp.w r3, r1, lsl 3           |         
    0x0001e674 nop                           |         
    0x0001e676 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e67a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e67c subhs r3, r3, r1, lsl 3       |             r3 -= (r1 << 3);
                                             |         }
    0x0001e680 cmp.w r3, r1, lsl 2           |         
    0x0001e684 nop                           |         
    0x0001e686 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e68a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e68c subhs r3, r3, r1, lsl 2       |             r3 -= (r1 << 2);
                                             |         }
    0x0001e690 cmp.w r3, r1, lsl 1           |         
    0x0001e694 nop                           |         
    0x0001e696 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e69a it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e69c subhs r3, r3, r1, lsl 1       |             r3 -= (r1 << 1);
                                             |         }
    0x0001e6a0 cmp.w r3, r1                  |         
    0x0001e6a4 nop                           |         
    0x0001e6a6 adc.w r0, r0, r0              |         __asm ("adc.w r0, r0, r0");
    0x0001e6aa it hs                         |         
                                             |         if (r3 < r1) {
    0x0001e6ac subhs r3, r3, r1              |             r3 -= r1;
                                             |         }
    0x0001e6b0 cmp.w ip, 0                   |         
    0x0001e6b4 it mi                         |         
                                             |         if (ip < 0) {
    0x0001e6b6 rsbmi r0, r0, 0               |             __asm ("rsbmi r0, r0, 0");
                                             |         }
    0x0001e6b8 bx lr                         |         return r0;
                                             |     }
    0x0001e6ba teq.w ip, r0                  |     __asm ("teq.w ip, r0");
    0x0001e6be it mi                         |     
                                             |     if (ip < 0) {
    0x0001e6c0 rsbmi r0, r0, 0               |         __asm ("rsbmi r0, r0, 0");
                                             |     }
    0x0001e6c2 bx lr                         |     return r0;
                                             | label_0:
    0x0001e6c4 it lo                         |     
                                             |     if (ip >= 0) {
    0x0001e6c6 movlo r0, 0                   |         r0 = 0;
                                             |     }
    0x0001e6c8 itt eq                        |     
                                             |     if (ip == 0) {
    0x0001e6ca asreq r0, ip, 0x1f            |         __asm ("asreq r0, ip, 0x1f");
                                             |     }
                                             |     if (ip == 0) {
    0x0001e6ce orr r0, r0, 1                 |         r0 |= 1;
                                             |     }
    0x0001e6d2 bx lr                         |     return r0;
                                             | label_1:
    0x0001e6d4 clz r2, r1                    |     r2 &= r1;
    0x0001e6d8 rsb.w r2, r2, 0x1f            |     r2 = 0x1f - r2;
    0x0001e6dc cmp.w ip, 0                   |     
    0x0001e6e0 lsr.w r0, r3, r2              |     r0 = r3 >> r2;
    0x0001e6e4 it mi                         |     
                                             |     if (ip < 0) {
    0x0001e6e6 rsbmi r0, r0, 0               |         __asm ("rsbmi r0, r0, 0");
                                             |     }
    0x0001e6e8 bx lr                         |     return r0;
                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_http2.so @ 0x1eb3c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0001eb3c ()                                  | void fcn_0001eb3c (int16_t arg_1ch, uint32_t arg1, int16_t arg2, int16_t arg3, uint32_t arg4) {
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x0001eb3c push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x0001eb40 cmp r0, r2                                    |     
    0x0001eb42 mov r5, r1                                    |     r5 = r1;
    0x0001eb44 mov r4, r0                                    |     r4 = r0;
    0x0001eb46 sbcs.w r1, r5, r3                             |     __asm ("sbcs.w r1, r5, r3");
    0x0001eb4a it lo                                         |     
                                                             |     if (r0 >= r2) {
    0x0001eb4c movlo r0, 0                                   |         r0 = 0;
                                                             |     }
    0x0001eb4e ldr r7, [sp, 0x1c]                            |     r7 = *(arg_1ch);
    0x0001eb50 it lo                                         |     
                                                             |     if (r0 >= r2) {
    0x0001eb52 movlo r1, r0                                  |         r1 = r0;
                                                             |     }
                                                             |     if (r0 <= r2) {
    0x0001eb54 blo 0x1ec1c                                   |         goto label_3;
                                                             |     }
    0x0001eb56 clz r6, r3                                    |     r6 &= r3;
    0x0001eb5a cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001eb5c beq 0x1ec2e                                   |         goto label_4;
                                                             |     }
    0x0001eb5e clz r1, r5                                    |     r1 &= r5;
    0x0001eb62 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x0001eb64 beq 0x1ec26                                   |         goto label_2;
                                                             |     }
                                                             | label_1:
    0x0001eb66 subs r6, r6, r1                               |     r6 -= r1;
    0x0001eb68 sub.w ip, r6, 0x20                            |     
    0x0001eb6c lsls r3, r6                                   |     r3 <<= r6;
    0x0001eb6e lsl.w r1, r2, ip                              |     r1 = r2 << ip;
    0x0001eb72 rsb.w lr, r6, 0x20                            |     lr = 0x20 - r6;
    0x0001eb76 orrs r3, r1                                   |     r3 |= r1;
    0x0001eb78 lsr.w r1, r2, lr                              |     r1 = r2 >> lr;
    0x0001eb7c lsls r2, r6                                   |     r2 <<= r6;
    0x0001eb7e orrs r3, r1                                   |     r3 |= r1;
    0x0001eb80 cmp r4, r2                                    |     
    0x0001eb82 sbcs.w r1, r5, r3                             |     __asm ("sbcs.w r1, r5, r3");
    0x0001eb86 itt lo                                        |     
                                                             |     if (r4 >= r2) {
    0x0001eb88 movlo r0, 0                                   |         r0 = 0;
                                                             |     }
                                                             |     if (r4 >= r2) {
    0x0001eb8a movlo r1, r0                                  |         r1 = r0;
                                                             |     }
                                                             |     if (r4 > r2) {
    0x0001eb8c blo 0x1eba6                                   |         
    0x0001eb8e movs r0, 1                                    |         r0 = 1;
    0x0001eb90 subs r4, r4, r2                               |         r4 -= r2;
    0x0001eb92 lsl.w r1, r0, ip                              |         r1 = r0 << ip;
    0x0001eb96 lsr.w r8, r0, lr                              |         r8 = r0 >> lr;
    0x0001eb9a lsl.w r0, r0, r6                              |         r0 <<= r6;
    0x0001eb9e sbc.w r5, r5, r3                              |         __asm ("sbc.w r5, r5, r3");
    0x0001eba0 lsls r3, r0, 0x14                             |         r3 = r0 << 0x14;
    0x0001eba2 orr.w r1, r1, r8                              |         r1 |= r8;
                                                             |     }
                                                             |     if (r6 == 0) {
    0x0001eba6 cbz r6, 0x1ec1c                               |         goto label_3;
                                                             |     }
    0x0001eba8 lsrs r2, r2, 1                                |     r2 >>= 1;
    0x0001ebaa mov r8, r6                                    |     r8 = r6;
    0x0001ebac orr.w r2, r2, r3, lsl 31                      |     r2 |= (r3 << 31);
    0x0001ebb0 lsrs r3, r3, 1                                |     r3 >>= 1;
    0x0001ebb2 b 0x1ebca                                     |     
                                                             |     while (r4 >= r2) {
    0x0001ebb4 subs r4, r4, r2                               |         r4 -= r2;
    0x0001ebb6 sbc.w r5, r5, r3                              |         __asm ("sbc.w r5, r5, r3");
    0x0001ebba adds r4, r4, r4                               |         r4 += r4;
    0x0001ebbc adcs r5, r5                                   |         __asm ("adcs r5, r5");
    0x0001ebbe adds r4, 1                                    |         r4++;
    0x0001ebc0 adc r5, r5, 0                                 |         __asm ("adc r5, r5, 0");
    0x0001ebc4 subs.w r8, r8, 1                              |         r8--;
                                                             |         if (r8 == r8) {
    0x0001ebc8 beq 0x1ebdc                                   |             goto label_5;
                                                             |         }
                                                             | label_0:
    0x0001ebca cmp r4, r2                                    |         
    0x0001ebcc sbcs.w sb, r5, r3                             |         __asm ("sbcs.w sb, r5, r3");
    0x0001ebd0 bhs 0x1ebb4                                   |         
                                                             |     }
    0x0001ebd2 adds r4, r4, r4                               |     r4 += r4;
    0x0001ebd4 adcs r5, r5                                   |     __asm ("adcs r5, r5");
    0x0001ebd6 subs.w r8, r8, 1                              |     r8--;
                                                             |     if (r8 != r8) {
    0x0001ebda bne 0x1ebca                                   |         goto label_0;
                                                             |     }
                                                             | label_5:
    0x0001ebdc adds r0, r0, r4                               |     r0 += r4;
    0x0001ebde lsl.w lr, r5, lr                              |     lr = r5 << lr;
    0x0001ebe2 lsr.w r4, r4, r6                              |     r4 >>= r6;
    0x0001ebe6 lsr.w ip, r5, ip                              |     
    0x0001ebea adc.w r1, r1, r5                              |     __asm ("adc.w r1, r1, r5");
    0x0001ebee orr.w r4, r4, lr                              |     r4 |= lr;
    0x0001ebf2 lsrs r5, r6                                   |     r5 >>= r6;
    0x0001ebf4 orr.w r4, r4, ip                              |     r4 |= ip;
    0x0001ebf8 sub.w ip, r6, 0x20                            |     
    0x0001ebfc lsl.w ip, r4, ip                              |     
    0x0001ec00 lsl.w r2, r5, r6                              |     r2 = r5 << r6;
    0x0001ec02 bl 0x624f92                                   |     void (*0x624f92)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x0001ec06 lsls r0, r4, 0xc                              |     r0 = r4 << 0xc;
    0x0001ec08 orr.w r2, r2, ip                              |     r2 |= ip;
    0x0001ec0c lsr.w r3, r4, r3                              |     r3 = r4 >> r3;
    0x0001ec10 orrs r2, r3                                   |     r2 |= r3;
    0x0001ec12 lsl.w r3, r4, r6                              |     r3 = r4 << r6;
    0x0001ec16 subs r0, r0, r3                               |     r0 -= r3;
    0x0001ec18 sbc.w r1, r1, r2                              |     __asm ("sbc.w r1, r1, r2");
                                                             |     if (r7 != 0) {
                                                             | label_3:
    0x0001ec1c cbz r7, 0x1ec22                               |         
    0x0001ec1e strd r4, r5, [r7]                             |         __asm ("strd r4, r5, [r7]");
                                                             |     }
    0x0001ec22 pop.w {r4, r5, r6, r7, r8, sb, pc}            |     
                                                             | label_2:
    0x0001ec26 clz r1, r4                                    |     r1 &= r4;
    0x0001ec2a adds r1, 0x20                                 |     r1 += 0x20;
    0x0001ec2c b 0x1eb66                                     |     goto label_1;
                                                             | label_4:
    0x0001ec2e clz r6, r2                                    |     r6 &= r2;
    0x0001ec32 clz r1, r5                                    |     r1 &= r5;
    0x0001ec36 adds r6, 0x20                                 |     r6 += 0x20;
    0x0001ec38 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x0001ec3a bne 0x1eb66                                   |         goto label_1;
                                                             |     }
    0x0001ec3c b 0x1ec26                                     |     goto label_2;
                                                             | }

[*] Function mmap used 1 times mod_http2.so