[*] Binary protection state of libcertutil.so.1.0

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


[*] Function printf tear down of libcertutil.so.1.0

    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libcertutil.so.1.0 @ 0x1c3c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00001c3c ()                      | void fcn_00001c3c (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                 |     int16_t var_f0h;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_ch;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 |     r2 = arg3;
                                                 |     r3 = arg4;
    0x00001c3c push {r4, r5, r6, r7, lr}         |     
    0x00001c3e mov r7, r2                        |     r7 = r2;
    0x00001c40 ldr r2, [pc, 0x6c]                |     
    0x00001c42 mov r6, r3                        |     r6 = r3;
    0x00001c44 sub sp, 0x14                      |     
    0x00001c46 movs r5, 0                        |     r5 = 0;
    0x00001c48 ldr r3, [pc, 0x68]                |     r3 = *(0x1cb4);
    0x00001c4a mov r4, r0                        |     r4 = r0;
    0x00001c4c add r2, pc                        |     r2 = 0x3900;
    0x00001c4e ldr r3, [r2, r3]                  |     
    0x00001c50 ldr r3, [r3]                      |     r3 = *(0x3900);
    0x00001c52 str r3, [sp, 0xc]                 |     var_ch = r3;
    0x00001c54 mov.w r3, 0                       |     r3 = 0;
    0x00001c58 str r5, [sp, 8]                   |     var_8h = r5;
                                                 |     if (r0 != 0) {
    0x00001c5a cbz r0, 0x1c74                    |         
    0x00001c5c mov r2, r6                        |         r2 = r6;
    0x00001c5e mov r0, r1                        |         r0 = r1;
    0x00001c60 add r3, sp, 8                     |         r3 += var_8h;
    0x00001c62 mov r1, r7                        |         r1 = r7;
    0x00001c64 blx 0x14bc                        |         r0 = g_key_file_get_string ();
    0x00001c68 mov r1, r0                        |         r1 = r0;
    0x00001c6a mov r0, r4                        |         r0 = r4;
    0x00001c6c blx 0x1570                        |         g_ptr_array_add ();
    0x00001c70 ldr r2, [sp, 8]                   |         r2 = var_8h;
                                                 |         if (r2 != 0) {
    0x00001c72 cbnz r2, 0x1c8e                   |             goto label_0;
                                                 |         }
                                                 |     }
    0x00001c74 movs r0, 0                        |     r0 = 0;
                                                 |     do {
    0x00001c76 ldr r2, [pc, 0x40]                |         
    0x00001c78 ldr r3, [pc, 0x38]                |         r3 = *(0x1cb4);
    0x00001c7a add r2, pc                        |         r2 = 0x3938;
    0x00001c7c ldr r3, [r2, r3]                  |         r3 = *(0x3938);
    0x00001c7e ldr r2, [r3]                      |         r2 = *(0x3938);
    0x00001c80 ldr r3, [sp, 0xc]                 |         r3 = var_ch;
    0x00001c82 eors r2, r3                       |         r2 ^= r3;
    0x00001c84 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00001c88 bne 0x1cac                        |             goto label_1;
                                                 |         }
    0x00001c8a add sp, 0x14                      |         
    0x00001c8c pop {r4, r5, r6, r7, pc}          |         
                                                 | label_0:
    0x00001c8e ldrd r3, r0, [r2, 4]              |         __asm ("ldrd r3, r0, [r2, 4]");
    0x00001c92 mov r1, r6                        |         r1 = r6;
    0x00001c94 mov r2, r7                        |         r2 = r7;
    0x00001c96 str r0, [sp]                      |         *(sp) = r0;
    0x00001c98 ldr r0, [pc, 0x20]                |         
    0x00001c9a add r0, pc                        |         r0 = 0x395a;
    0x00001c9c blx 0x1594                        |         r0 = g_strdup_printf ()
    0x00001ca0 mov r1, r0                        |         r1 = r0;
    0x00001ca2 movs r0, 1                        |         r0 = 1;
    0x00001ca4 blx 0x14d4                        |         fcn_000014d4 ();
    0x00001ca8 movs r0, 1                        |         r0 = 1;
    0x00001caa b 0x1c76                          |         
                                                 |     } while (1);
                                                 | label_1:
    0x00001cac blx 0x1670                        |     fcn_00001670 ();
    0x00001cb0 adds r2, 0x94                     |     r2 += 0x94;
    0x00001cb2 movs r1, r0                       |     r1 = r0;
    0x00001cb4 lsls r4, r2, 4                    |     r4 = r2 << 4;
    0x00001cb6 movs r0, r0                       |     
    0x00001cb8 adds r2, 0x66                     |     r2 += 0x66;
    0x00001cba movs r1, r0                       |     r1 = r0;
    0x00001cbc subs r2, r0, r1                   |     r2 = r0 - r1;
    0x00001cbe movs r0, r0                       |     
                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libcertutil.so.1.0 @ 0x2924 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00002924 ()                              | void fcn_00002924 (int16_t arg1) {
                                                         |     int16_t var_0h_2;
                                                         |     int16_t var_8h_2;
                                                         |     int16_t var_ch_3;
                                                         |     int16_t var_4ch_2;
                                                         |     r0 = arg1;
    0x00002924 blmi 0xc951f0                             |     __asm ("blmi 0xc951f0");
    0x00002928 push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x0000292c mov r4, r0                                |     r4 = r0;
    0x0000292e add r2, pc                                |     r2 += pc;
    0x00002930 sub sp, 0x54                              |     
    0x00002932 add r5, sp, 0xc                           |     r5 += var_ch_3;
    0x00002934 movs r7, 0                                |     r7 = 0;
    0x00002936 ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x00002938 ldr r3, [r3]                              |     r3 = *(r3);
    0x0000293a str r3, [sp, 0x4c]                        |     var_4ch_2 = r3;
    0x0000293c mov.w r3, 0                               |     r3 = 0;
    0x00002940 blx 0x1700                                |     r0 = fcn_00001700 ();
    0x00002944 mov r6, r0                                |     r6 = r0;
    0x00002946 mov r0, r4                                |     r0 = r4;
    0x00002948 blx 0x15d0                                |     strlen (r0);
    0x0000294c add r3, sp, 8                             |     r3 += var_8h_2;
    0x0000294e mov r1, r0                                |     r1 = r0;
    0x00002950 mov r2, r5                                |     r2 = r5;
    0x00002952 mov r0, r4                                |     r0 = r4;
    0x00002954 strd r6, r7, [sp]                         |     __asm ("strd r6, r7, [sp]");
    0x00002958 blx 0x1610                                |     r0 = fcn_00001610 ();
    0x0000295c cmp r0, 1                                 |     
                                                         |     if (r0 != 1) {
    0x0000295e bne 0x29b6                                |         goto label_1;
                                                         |     }
    0x00002960 ldr r6, [sp, 8]                           |     r6 = var_8h_2;
    0x00002962 mov r4, r0                                |     r4 = r0;
    0x00002964 lsls r7, r6, 1                            |     r7 = r6 << 1;
    0x00002966 adds r0, r7, 1                            |     r0 = r7 + 1;
    0x00002968 blx 0x154c                                |     r0 = g_malloc ();
    0x0000296c mov r8, r0                                |     r8 = r0;
                                                         |     if (r0 == 0) {
    0x0000296e cbz r0, 0x29d8                            |         goto label_2;
                                                         |     }
    0x00002970 mov r4, r0                                |     r4 = r0;
                                                         |     if (r6 == 0) {
    0x00002972 cbz r6, 0x2996                            |         goto label_3;
                                                         |     }
    0x00002974 ldr.w sb, [pc, 0x7c]                      |     
    0x00002978 add r7, r0                                |     r7 += r0;
    0x0000297a add sb, pc                                |     sb = 0x5372;
                                                         |     do {
    0x0000297c ldrb r6, [r5], 1                          |         r6 = *(r5);
                                                         |         r5++;
    0x00002980 mov r0, r4                                |         r0 = r4;
    0x00002982 mov r3, sb                                |         r3 = sb;
    0x00002984 mov.w r2, -1                              |         r2 = -1;
    0x00002988 movs r1, 1                                |         r1 = 1;
    0x0000298a adds r4, 2                                |         r4 += 2;
    0x0000298c str r6, [sp]                              |         *(sp) = r6;
    0x0000298e blx 0x170c                                |         fcn_0000170c ();
    0x00002992 cmp r4, r7                                |         
    0x00002994 bne 0x297c                                |         
                                                         |     } while (r4 != r7);
                                                         | label_3:
    0x00002996 movs r3, 0                                |     r3 = 0;
    0x00002998 strb r3, [r4]                             |     *(r4) = r3;
                                                         |     do {
                                                         | label_0:
    0x0000299a ldr r2, [pc, 0x5c]                        |         
    0x0000299c ldr r3, [pc, 0x50]                        |         r3 = *(0x29f0);
    0x0000299e add r2, pc                                |         r2 = 0x539c;
    0x000029a0 ldr r3, [r2, r3]                          |         r3 = *(0x539c);
    0x000029a2 ldr r2, [r3]                              |         r2 = *(0x539c);
    0x000029a4 ldr r3, [sp, 0x4c]                        |         r3 = var_4ch_2;
    0x000029a6 eors r2, r3                               |         r2 ^= r3;
    0x000029a8 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x000029ac bne 0x29d4                                |             goto label_4;
                                                         |         }
    0x000029ae mov r0, r8                                |         r0 = r8;
    0x000029b0 add sp, 0x54                              |         
    0x000029b2 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_1:
    0x000029b6 blx 0x1498                                |         ERR_get_error ();
    0x000029ba blx 0x1480                                |         r0 = ERR_reason_error_string ();
    0x000029be mov r1, r0                                |         r1 = r0;
    0x000029c0 ldr r0, [pc, 0x38]                        |         
    0x000029c2 mov r8, r7                                |         r8 = r7;
    0x000029c4 add r0, pc                                |         r0 = 0x53c4;
    0x000029c6 blx 0x1594                                |         r0 = g_strdup_printf ()
    0x000029ca mov r1, r0                                |         r1 = r0;
    0x000029cc movs r0, 1                                |         r0 = 1;
    0x000029ce blx 0x14d4                                |         fcn_000014d4 ();
    0x000029d2 b 0x299a                                  |         
                                                         |     } while (1);
                                                         | label_4:
    0x000029d4 blx 0x1670                                |     fcn_00001670 ();
                                                         | label_2:
    0x000029d8 ldr r0, [pc, 0x24]                        |     
    0x000029da add r0, pc                                |     r0 = 0x53de;
    0x000029dc blx 0x1594                                |     r0 = g_strdup_printf ()
    0x000029e0 mov r1, r0                                |     r1 = r0;
    0x000029e2 mov r0, r4                                |     r0 = r4;
    0x000029e4 blx 0x14d4                                |     fcn_000014d4 ();
    0x000029e8 b 0x299a                                  |     goto label_0;
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libcertutil.so.1.0 @ 0x2a1c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.cert_util_add_cert_to_cnf ()                     | void cert_util_add_cert_to_cnf (int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00002a1c ldr r2, [pc, 0x114]                               |     
    0x00002a1e ldr r3, [pc, 0x118]                               |     r3 = *(0x2b3a);
    0x00002a20 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x00002a24 mov r4, r0                                        |     r4 = r0;
    0x00002a26 add r2, pc                                        |     r2 = 0x555e;
    0x00002a28 sub sp, 0x10                                      |     
    0x00002a2a movs r6, 0                                        |     r6 = 0;
    0x00002a2c mov r5, r1                                        |     r5 = r1;
    0x00002a2e ldr r3, [r2, r3]                                  |     
    0x00002a30 ldr r3, [r3]                                      |     r3 = *(0x555e);
    0x00002a32 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00002a34 mov.w r3, 0                                       |     r3 = 0;
    0x00002a38 str r6, [sp, 4]                                   |     var_4h = r6;
    0x00002a3a blx 0x157c                                        |     fcn_0000157c ();
    0x00002a3e cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00002a40 beq 0x2b06                                        |         goto label_2;
                                                                 |     }
    0x00002a42 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00002a44 beq 0x2b1a                                        |         goto label_3;
                                                                 |     }
    0x00002a46 mov r8, r0                                        |     r8 = r0;
    0x00002a48 add.w sl, sp, 4                                   |     sl += var_4h;
    0x00002a4c blx 0x14f8                                        |     g_key_file_new ();
    0x00002a50 mov r3, sl                                        |     r3 = sl;
    0x00002a52 mov r2, r6                                        |     r2 = r6;
    0x00002a54 mov r1, r8                                        |     r1 = r8;
    0x00002a56 mov sb, r0                                        |     sb = r0;
    0x00002a58 blx 0x1664                                        |     fcn_00001664 ();
    0x00002a5c ldr r7, [sp, 4]                                   |     r7 = var_4h;
                                                                 |     if (r7 == 0) {
    0x00002a5e cbz r7, 0x2aba                                    |         goto label_4;
                                                                 |     }
    0x00002a60 ldr r0, [pc, 0xd8]                                |     
    0x00002a62 mov r1, r8                                        |     r1 = r8;
    0x00002a64 ldrd r2, r3, [r7, 4]                              |     __asm ("ldrd r2, r3, [r7, 4]");
    0x00002a68 mov r4, r6                                        |     r4 = r6;
    0x00002a6a add r0, pc                                        |     r0 = 0x55aa;
    0x00002a6c blx 0x1594                                        |     r0 = g_strdup_printf ()
    0x00002a70 mov r1, r0                                        |     r1 = r0;
    0x00002a72 movs r0, 1                                        |     r0 = 1;
    0x00002a74 mov r7, r0                                        |     r7 = r0;
    0x00002a76 blx 0x14d4                                        |     fcn_000014d4 ();
                                                                 |     do {
                                                                 | label_0:
    0x00002a7a cmp.w sb, 0                                       |         
                                                                 |         if (sb != 0) {
    0x00002a7e beq 0x2a86                                        |             
    0x00002a80 mov r0, sb                                        |             r0 = sb;
    0x00002a82 blx 0x16b8                                        |             fcn_000016b8 ();
                                                                 |         }
    0x00002a86 ldr r0, [sp, 4]                                   |         r0 = var_4h;
                                                                 |         if (r0 != 0) {
    0x00002a88 cbz r0, 0x2a92                                    |             
    0x00002a8a blx 0x16dc                                        |             fcn_000016dc ();
    0x00002a8e movs r3, 0                                        |             r3 = 0;
    0x00002a90 str r3, [sp, 4]                                   |             var_4h = r3;
                                                                 |         }
    0x00002a92 mov r0, r4                                        |         r0 = r4;
    0x00002a94 blx 0x1468                                        |         g_free ();
    0x00002a98 mov r0, r6                                        |         r0 = r6;
    0x00002a9a blx 0x1468                                        |         g_free ();
                                                                 | label_1:
    0x00002a9e ldr r2, [pc, 0xa0]                                |         
    0x00002aa0 ldr r3, [pc, 0x94]                                |         r3 = *(0x2b38);
    0x00002aa2 add r2, pc                                        |         r2 = 0x55e8;
    0x00002aa4 ldr r3, [r2, r3]                                  |         r3 = *(0x55e8);
    0x00002aa6 ldr r2, [r3]                                      |         r2 = *(0x55e8);
    0x00002aa8 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x00002aaa eors r2, r3                                       |         r2 ^= r3;
    0x00002aac mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00002ab0 bne 0x2b2e                                        |             goto label_5;
                                                                 |         }
    0x00002ab2 mov r0, r7                                        |         r0 = r7;
    0x00002ab4 add sp, 0x10                                      |         
    0x00002ab6 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_4:
    0x00002aba mov r0, r4                                        |         r0 = r4;
    0x00002abc blx 0x1534                                        |         keyfile_encode ();
    0x00002ac0 ldr r1, [pc, 0x80]                                |         
    0x00002ac2 mov r6, r0                                        |         r6 = r0;
    0x00002ac4 mov r3, r5                                        |         r3 = r5;
    0x00002ac6 mov r0, sb                                        |         r0 = sb;
    0x00002ac8 mov r2, r6                                        |         r2 = r6;
    0x00002aca add r1, pc                                        |         r1 = 0x5612;
    0x00002acc blx 0x1510                                        |         g_key_file_set_string ();
    0x00002ad0 mov r2, r7                                        |         r2 = r7;
    0x00002ad2 add r1, sp, 8                                     |         r1 += var_8h;
    0x00002ad4 mov r0, sb                                        |         r0 = sb;
    0x00002ad6 blx 0x15dc                                        |         g_key_file_to_data ();
    0x00002ada ldr r2, [sp, 8]                                   |         r2 = var_8h;
    0x00002adc mov r4, r0                                        |         r4 = r0;
    0x00002ade mov r1, r0                                        |         r1 = r0;
    0x00002ae0 mov r3, sl                                        |         r3 = sl;
    0x00002ae2 mov r0, r8                                        |         r0 = r8;
    0x00002ae4 blx 0x161c                                        |         r0 = fcn_0000161c ();
    0x00002ae8 cmp r0, 0                                         |         
    0x00002aea bne 0x2a7a                                        |         
                                                                 |     } while (r0 != 0);
    0x00002aec ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x00002aee mov r1, r8                                        |     r1 = r8;
    0x00002af0 ldr r0, [pc, 0x54]                                |     
    0x00002af2 movs r7, 1                                        |     r7 = 1;
    0x00002af4 ldr r2, [r3, 8]                                   |     r2 = *((r3 + 8));
    0x00002af6 add r0, pc                                        |     r0 = 0x5642;
    0x00002af8 blx 0x1594                                        |     r0 = g_strdup_printf ()
    0x00002afc mov r1, r0                                        |     r1 = r0;
    0x00002afe movs r0, 1                                        |     r0 = 1;
    0x00002b00 blx 0x14d4                                        |     fcn_000014d4 ();
    0x00002b04 b 0x2a7a                                          |     goto label_0;
                                                                 | label_2:
    0x00002b06 ldr r1, [pc, 0x44]                                |     
    0x00002b08 mov r0, r4                                        |     r0 = r4;
    0x00002b0a ldr r2, [pc, 0x44]                                |     
    0x00002b0c movs r7, 1                                        |     r7 = 1;
    0x00002b0e add r1, pc                                        |     r1 = 0x5660;
    0x00002b10 add r2, pc                                        |     r2 = 0x5666;
    0x00002b12 adds r1, 0xa8                                     |     r1 += 0xa8;
    0x00002b14 blx 0x15f8                                        |     fcn_000015f8 ();
    0x00002b16 ldcl p7, c14, [r0, -0x304]!                       |     __asm ("ldcl p7, c14, [r0, -0x304]!");
                                                                 | label_3:
    0x00002b1a ldr r1, [pc, 0x38]                                |     
    0x00002b1c mov r0, r5                                        |     r0 = r5;
    0x00002b1e ldr r2, [pc, 0x38]                                |     
    0x00002b20 movs r7, 1                                        |     r7 = 1;
    0x00002b22 add r1, pc                                        |     r1 = 0x567c;
    0x00002b24 add r2, pc                                        |     r2 = 0x5682;
    0x00002b26 adds r1, 0xa8                                     |     r1 += 0xa8;
    0x00002b28 blx 0x15f8                                        |     fcn_000015f8 ();
    0x00002b2c b 0x2a9e                                          |     goto label_1;
                                                                 | label_5:
    0x00002b2e blx 0x1670                                        |     fcn_00001670 ();
    0x00002b32 nop                                               |     
    0x00002b34 movs r4, 0xba                                     |     r4 = 0xba;
    0x00002b36 movs r1, r0                                       |     r1 = r0;
    0x00002b38 lsls r4, r2, 4                                    |     r4 = r2 << 4;
    0x00002b3a movs r0, r0                                       |     
    0x00002b3c lsrs r6, r0, 0x13                                 |     r6 = r0 >> 0x13;
    0x00002b3e movs r0, r0                                       |     
    0x00002b40 movs r4, 0x3e                                     |     r4 = 0x3e;
    0x00002b42 movs r1, r0                                       |     r1 = r0;
    0x00002b44 lsrs r6, r0, 0xe                                  |     r6 = r0 >> 0xe;
    0x00002b46 movs r0, r0                                       |     
    0x00002b48 lsrs r2, r7, 0x14                                 |     r2 = r7 >> 0x14;
    0x00002b4a movs r0, r0                                       |     
    0x00002b4c asrs r6, r6, 3                                    |     r6 >>= 3;
    0x00002b4e movs r0, r0                                       |     
    0x00002b50 lsrs r4, r0, 0xc                                  |     r4 = r0 >> 0xc;
    0x00002b52 movs r0, r0                                       |     
    0x00002b54 asrs r2, r4, 3                                    |     r2 = r4 >> 3;
    0x00002b56 movs r0, r0                                       |     
    0x00002b58 lsrs r4, r2, 0x17                                 |     r4 = r2 >> 0x17;
    0x00002b5a movs r0, r0                                       |     
                                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libcertutil.so.1.0 @ 0x2d70 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.cert_util_get_file_from_id ()    | void cert_util_get_file_from_id (uint32_t arg1) {
                                                 |     int16_t var_4h;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_ch;
                                                 |     r0 = arg1;
    0x00002d70 blmi 0xb55628                     |     __asm ("blmi 0xb55628");
    0x00002d74 push {r4, r5, r6, lr}             |     
    0x00002d76 movs r6, 0                        |     r6 = 0;
    0x00002d78 add r2, pc                        |     r2 += pc;
    0x00002d7a sub sp, 0x10                      |     
    0x00002d7c mov r5, r0                        |     r5 = r0;
    0x00002d7e ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x00002d80 ldr r3, [r3]                      |     r3 = *(r3);
    0x00002d82 str r3, [sp, 0xc]                 |     var_ch = r3;
    0x00002d84 mov.w r3, 0                       |     r3 = 0;
    0x00002d88 strd r6, r6, [sp, 4]              |     __asm ("strd r6, r6, [var_8h]");
    0x00002d8c cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00002d8e beq 0x2e0e                        |         goto label_1;
                                                 |     }
    0x00002d90 add r1, sp, 8                     |     r1 += var_8h;
    0x00002d92 add r0, sp, 4                     |     r0 += var_4h;
    0x00002d94 blx 0x1604                        |     r0 = fcn_00001604 ();
    0x00002d98 mov r4, r0                        |     r4 = r0;
                                                 |     if (r0 != 0) {
    0x00002d9a cbnz r0, 0x2dce                   |         goto label_2;
                                                 |     }
    0x00002d9c ldr r3, [sp, 4]                   |     r3 = var_4h;
    0x00002d9e ldr r2, [r3, 4]                   |     r2 = *((r3 + 4));
                                                 |     if (r2 != 0) {
    0x00002da0 cbnz r2, 0x2dae                   |         goto label_3;
                                                 |     }
    0x00002da2 b 0x2df8                          |     goto label_4;
                                                 |     do {
    0x00002da4 ldr r3, [sp, 4]                   |         r3 = var_4h;
    0x00002da6 adds r4, 1                        |         r4++;
    0x00002da8 ldr r2, [r3, 4]                   |         r2 = *((r3 + 4));
    0x00002daa cmp r2, r4                        |         
                                                 |         if (r2 < r4) {
    0x00002dac bls 0x2df8                        |             goto label_4;
                                                 |         }
                                                 | label_3:
    0x00002dae ldr r3, [r3]                      |         r3 = *(r3);
    0x00002db0 mov r0, r5                        |         r0 = r5;
    0x00002db2 lsls r6, r4, 2                    |         r6 = r4 << 2;
    0x00002db4 ldr.w r1, [r3, r4, lsl 2]         |         offset_0 = r4 << 2;
                                                 |         r1 = *((r3 + offset_0));
    0x00002db8 blx 0x14ec                        |         r0 = g_strcmp0 ();
    0x00002dbc cmp r0, 0                         |         
    0x00002dbe bne 0x2da4                        |         
                                                 |     } while (r0 != 0);
    0x00002dc0 ldr r3, [sp, 8]                   |     r3 = var_8h;
    0x00002dc2 ldr r3, [r3]                      |     r3 = *(r3);
    0x00002dc4 ldr r0, [r3, r6]                  |     r0 = *((r3 + r6));
    0x00002dc6 blx 0x1504                        |     r0 = g_strdup ();
    0x00002dca mov r6, r0                        |     r6 = r0;
    0x00002dcc cbz r0, 0x2df8                    |     
                                                 |     while (1) {
                                                 | label_2:
    0x00002dce ldr r0, [sp, 4]                   |         r0 = var_4h;
    0x00002dd0 blx 0x14b0                        |         r0 = fcn_000014b0 ();
    0x00002dd4 mov r3, r0                        |         r3 = r0;
    0x00002dd6 ldr r0, [sp, 8]                   |         r0 = var_8h;
    0x00002dd8 str r3, [sp, 4]                   |         var_4h = r3;
    0x00002dda blx 0x14b0                        |         fcn_000014b0 ();
                                                 | label_0:
    0x00002dde ldr r2, [pc, 0x4c]                |         
    0x00002de0 ldr r3, [pc, 0x44]                |         r3 = *(0x2e28);
    0x00002de2 add r2, pc                        |         r2 = 0x5c14;
    0x00002de4 ldr r3, [r2, r3]                  |         r3 = *(0x5c14);
    0x00002de6 ldr r2, [r3]                      |         r2 = *(0x5c14);
    0x00002de8 ldr r3, [sp, 0xc]                 |         r3 = var_ch;
    0x00002dea eors r2, r3                       |         r2 ^= r3;
    0x00002dec mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00002df0 bne 0x2e20                        |             goto label_5;
                                                 |         }
    0x00002df2 mov r0, r6                        |         r0 = r6;
    0x00002df4 add sp, 0x10                      |         
    0x00002df6 pop {r4, r5, r6, pc}              |         
                                                 | label_4:
    0x00002df8 ldr r0, [pc, 0x34]                |         
    0x00002dfa mov r1, r5                        |         r1 = r5;
    0x00002dfc movs r6, 0                        |         r6 = 0;
    0x00002dfe add r0, pc                        |         r0 = 0x5c32;
    0x00002e00 blx 0x1594                        |         r0 = g_strdup_printf ()
    0x00002e04 mov r1, r0                        |         r1 = r0;
    0x00002e06 movs r0, 0xe                      |         r0 = 0xe;
    0x00002e08 blx 0x14d4                        |         fcn_000014d4 ();
    0x00002e0c b 0x2dce                          |         
                                                 |     }
                                                 | label_1:
    0x00002e0e ldr r1, [pc, 0x24]                |     
    0x00002e10 mov r6, r0                        |     r6 = r0;
    0x00002e12 ldr r2, [pc, 0x24]                |     
    0x00002e14 add r1, pc                        |     r1 = 0x5c4e;
    0x00002e16 add r2, pc                        |     r2 = 0x5c54;
    0x00002e18 adds r1, 0xe4                     |     r1 += 0xe4;
    0x00002e1a blx 0x15f8                        |     fcn_000015f8 ();
    0x00002e1e b 0x2dde                          |     goto label_0;
                                                 | label_5:
    0x00002e20 blx 0x1670                        |     fcn_00001670 ();
    0x00002e24 movs r1, 0x68                     |     r1 = 0x68;
    0x00002e26 movs r1, r0                       |     r1 = r0;
    0x00002e28 lsls r4, r2, 4                    |     r4 = r2 << 4;
    0x00002e2a movs r0, r0                       |     
    0x00002e2c movs r0, 0xfe                     |     r0 = 0xfe;
    0x00002e2e movs r1, r0                       |     r1 = r0;
    0x00002e30 lsrs r2, r3, 0xe                  |     r2 = r3 >> 0xe;
    0x00002e32 movs r0, r0                       |     
    0x00002e34 lsrs r0, r6, 0x17                 |     r0 = r6 >> 0x17;
    0x00002e36 movs r0, r0                       |     
    0x00002e38 lsls r6, r7, 0x1f                 |     r6 = r7 << 0x1f;
    0x00002e3a movs r0, r0                       |     
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libcertutil.so.1.0 @ 0x1ac4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.cert_util_get_ids_and_file_names ()              | void cert_util_get_ids_and_file_names (int16_t arg_140h, int16_t arg_144h, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_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_50h;
                                                                 |     int16_t var_54h;
                                                                 |     int16_t var_58h;
                                                                 |     int16_t var_5ch;
                                                                 |     int16_t var_60h;
                                                                 |     int16_t var_64h;
                                                                 |     int16_t var_68h;
                                                                 |     int16_t var_6ch;
                                                                 |     int16_t var_74h;
                                                                 |     int16_t var_80h;
                                                                 |     int16_t var_c4h;
                                                                 |     int16_t var_f0h;
                                                                 |     int16_t var_f4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_100h;
                                                                 |     int16_t var_104h;
                                                                 |     int16_t var_108h;
                                                                 |     int16_t var_10ch;
                                                                 |     int16_t var_110h;
                                                                 |     int16_t var_114h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_120h;
                                                                 |     int16_t var_124h;
                                                                 |     int16_t var_128h;
                                                                 |     int16_t var_12ch;
                                                                 |     int16_t var_130h;
                                                                 |     int16_t var_134h;
                                                                 |     int16_t var_138h;
                                                                 |     int16_t var_13ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00001ac4 blmi 0x145440c                                    |     __asm ("blmi 0x145440c");
    0x00001ac8 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x00001acc mov r4, r0                                        |     r4 = r0;
    0x00001ace add r2, pc                                        |     r2 += pc;
    0x00001ad0 sub sp, 8                                         |     
    0x00001ad2 mov.w r8, 0                                       |     r8 = 0;
    0x00001ad4 lsrs r0, r0, 0x20                                 |     r0 >>= 0x20;
    0x00001ad6 mov r5, r1                                        |     r5 = r1;
    0x00001ad8 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00001ada ldr r3, [r3]                                      |     r3 = *(r3);
    0x00001adc str r3, [sp, 4]                                   |     var_4h = r3;
    0x00001ade mov.w r3, 0                                       |     r3 = 0;
    0x00001ae2 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x00001ae6 blx 0x157c                                        |     fcn_0000157c ();
    0x00001aea cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00001aec beq 0x1bc4                                        |         goto label_4;
                                                                 |     }
    0x00001aee cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00001af0 beq 0x1bd8                                        |         goto label_5;
                                                                 |     }
    0x00001af2 mov r6, r0                                        |     r6 = r0;
    0x00001af4 mov sb, sp                                        |     sb = sp;
    0x00001af6 blx 0x16f4                                        |     fcn_000016f4 ();
    0x00001afa str r0, [r4]                                      |     *(r4) = r0;
    0x00001afc blx 0x16f4                                        |     fcn_000016f4 ();
    0x00001b00 str r0, [r5]                                      |     *(r5) = r0;
    0x00001b02 blx 0x14f8                                        |     g_key_file_new ();
    0x00001b06 movs r2, 1                                        |     r2 = 1;
    0x00001b08 mov r3, sb                                        |     r3 = sb;
    0x00001b0a mov r1, r6                                        |     r1 = r6;
    0x00001b0c mov r7, r0                                        |     r7 = r0;
    0x00001b0e blx 0x1664                                        |     fcn_00001664 ();
    0x00001b12 ldr r2, [sp]                                      |     r2 = *(sp);
                                                                 |     if (r2 != 0) {
    0x00001b14 cbz r2, 0x1b5e                                    |         
    0x00001b16 ldr r0, [pc, 0xf8]                                |         
    0x00001b18 ldr r2, [r2, 8]                                   |         r2 = *((r2 + 8));
    0x00001b1a add r0, pc                                        |         r0 = 0x3730;
                                                                 | label_1:
    0x00001b1c mov r1, r6                                        |         r1 = r6;
                                                                 | label_3:
    0x00001b1e blx 0x1594                                        |         r0 = g_strdup_printf ()
    0x00001b22 mov r1, r0                                        |         r1 = r0;
    0x00001b24 movs r0, 1                                        |         r0 = 1;
    0x00001b26 mov r4, r0                                        |         r4 = r0;
    0x00001b28 blx 0x14d4                                        |         fcn_000014d4 ();
                                                                 | label_2:
    0x00001b2c mov r0, r8                                        |         r0 = r8;
    0x00001b2e blx 0x16e8                                        |         fcn_000016e8 ();
                                                                 |         if (r7 != 0) {
    0x00001b32 cbz r7, 0x1b3a                                    |             
    0x00001b34 mov r0, r7                                        |             r0 = r7;
    0x00001b36 blx 0x16b8                                        |             fcn_000016b8 ();
                                                                 |         }
    0x00001b3a ldr r0, [sp]                                      |         r0 = *(sp);
                                                                 |         if (r0 != 0) {
    0x00001b3c cbz r0, 0x1b42                                    |             
    0x00001b3e blx 0x16dc                                        |             fcn_000016dc ();
                                                                 |         }
                                                                 | label_0:
    0x00001b42 ldr r2, [pc, 0xd0]                                |         
    0x00001b44 ldr r3, [pc, 0xc4]                                |         r3 = *(0x1c0c);
    0x00001b46 add r2, pc                                        |         r2 = 0x3760;
    0x00001b48 ldr r3, [r2, r3]                                  |         r3 = *(0x3760);
    0x00001b4a ldr r2, [r3]                                      |         r2 = *(0x3760);
    0x00001b4c ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x00001b4e eors r2, r3                                       |         r2 ^= r3;
    0x00001b50 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00001b54 bne 0x1c02                                        |             goto label_6;
                                                                 |         }
    0x00001b56 mov r0, r4                                        |         r0 = r4;
    0x00001b58 add sp, 8                                         |         
    0x00001b5a pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 |     }
    0x00001b5e ldr r1, [pc, 0xb8]                                |     
    0x00001b60 mov r3, sb                                        |     r3 = sb;
    0x00001b62 mov r0, r7                                        |     r0 = r7;
    0x00001b64 add r1, pc                                        |     r1 = 0x3782;
    0x00001b66 blx 0x148c                                        |     g_key_file_get_keys ();
    0x00001b6a ldr r3, [sp]                                      |     r3 = *(sp);
    0x00001b6c mov r8, r0                                        |     r8 = r0;
    0x00001b6e cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00001b70 bne 0x1bec                                        |         goto label_7;
                                                                 |     }
    0x00001b72 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00001b74 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001b76 beq 0x1bf4                                        |         goto label_8;
                                                                 |     }
    0x00001b78 ldr.w sl, [pc, 0xa0]                              |     
    0x00001b7c mov r6, r8                                        |     r6 = r8;
    0x00001b7e add sl, pc                                        |     sl = 0x379e;
    0x00001b80 b 0x1ba6                                          |     
                                                                 |     while (r0 != 0) {
    0x00001b82 ldr r0, [r4]                                      |         r0 = *(r4);
    0x00001b84 blx 0x1570                                        |         g_ptr_array_add ();
    0x00001b86 ldcl p6, c4, [r4], 0x12c                          |         __asm ("ldcl p6, c4, [r4], 0x12c");
    0x00001b8a mov r1, sl                                        |         r1 = sl;
    0x00001b8c ldr r2, [r6]                                      |         r2 = *(r6);
    0x00001b8e mov r0, r7                                        |         r0 = r7;
    0x00001b90 blx 0x14bc                                        |         g_key_file_get_string ();
    0x00001b94 ldr r3, [sp]                                      |         r3 = *(sp);
    0x00001b96 mov r1, r0                                        |         r1 = r0;
                                                                 |         if (r3 != 0) {
    0x00001b98 cbnz r3, 0x1bf8                                   |             goto label_9;
                                                                 |         }
    0x00001b9a ldr r0, [r5]                                      |         r0 = *(r5);
    0x00001b9c blx 0x1570                                        |         g_ptr_array_add ();
    0x00001ba0 ldr r0, [r6, 4]!                                  |         r0 = *((r6 += 4));
    0x00001ba2 lsrs r4, r0, 0x1c                                 |         r4 = r0 >> 0x1c;
                                                                 |         if (r0 == 0) {
    0x00001ba4 cbz r0, 0x1bf4                                    |             goto label_8;
                                                                 |         }
    0x00001ba6 blx 0x15e8                                        |         r0 = keyfile_decode ();
    0x00001baa mov r1, r0                                        |         r1 = r0;
    0x00001bac cmp r0, 0                                         |         
    0x00001bae bne 0x1b82                                        |         
                                                                 |     }
    0x00001bb0 ldr r0, [pc, 0x6c]                                |     
    0x00001bb2 movs r4, 1                                        |     r4 = 1;
    0x00001bb4 add r0, pc                                        |     r0 = 0x37d8;
    0x00001bb6 blx 0x1594                                        |     r0 = g_strdup_printf ()
    0x00001bba mov r1, r0                                        |     r1 = r0;
    0x00001bbc mov r0, r4                                        |     r0 = r4;
    0x00001bbe blx 0x14d4                                        |     fcn_000014d4 ();
    0x00001bc0 stc p7, c14, [sl], {0xb3}                         |     __asm ("stc p7, c14, [sl], {0xb3}");
                                                                 | label_4:
    0x00001bc4 ldr r1, [pc, 0x5c]                                |     
    0x00001bc6 mov r0, r4                                        |     r0 = r4;
    0x00001bc8 ldr r2, [pc, 0x5c]                                |     
    0x00001bca movs r4, 1                                        |     r4 = 1;
    0x00001bcc add r1, pc                                        |     r1 = 0x37f4;
    0x00001bce add r2, pc                                        |     r2 = 0x37fa;
    0x00001bd0 adds r1, 0x40                                     |     r1 += 0x40;
    0x00001bd2 blx 0x15f8                                        |     fcn_000015f8 ();
    0x00001bd6 b 0x1b42                                          |     goto label_0;
                                                                 | label_5:
    0x00001bd8 ldr r1, [pc, 0x50]                                |     
    0x00001bda mov r0, r5                                        |     r0 = r5;
    0x00001bdc ldr r2, [pc, 0x50]                                |     
    0x00001bde movs r4, 1                                        |     r4 = 1;
    0x00001be0 add r1, pc                                        |     r1 = 0x3810;
    0x00001be2 add r2, pc                                        |     r2 = 0x3816;
    0x00001be4 adds r1, 0x40                                     |     r1 += 0x40;
    0x00001be6 blx 0x15f8                                        |     fcn_000015f8 ();
    0x00001bea b 0x1b42                                          |     goto label_0;
                                                                 | label_7:
    0x00001bec ldr r0, [pc, 0x44]                                |     
    0x00001bee ldr r2, [r3, 8]                                   |     r2 = *((r3 + 8));
    0x00001bf0 add r0, pc                                        |     r0 = 0x3828;
    0x00001bf2 b 0x1b1c                                          |     goto label_1;
                                                                 | label_8:
    0x00001bf4 mov r4, r0                                        |     r4 = r0;
    0x00001bf6 b 0x1b2c                                          |     goto label_2;
                                                                 | label_9:
    0x00001bf8 ldr r0, [pc, 0x3c]                                |     
    0x00001bfa ldr r2, [r3, 8]                                   |     r2 = *((r3 + 8));
    0x00001bfc ldr r1, [r6]                                      |     r1 = *(r6);
    0x00001bfe add r0, pc                                        |     r0 = 0x383a;
    0x00001c00 b 0x1b1e                                          |     goto label_3;
                                                                 | label_6:
    0x00001c02 blx 0x1670                                        |     fcn_00001670 ();
    0x00001c06 nop                                               |     
    0x00001c08 adds r4, 0x12                                     |     r4 += 0x12;
    0x00001c0a movs r1, r0                                       |     r1 = r0;
    0x00001c0c lsls r4, r2, 4                                    |     r4 = r2 << 4;
    0x00001c0e movs r0, r0                                       |     
    0x00001c10 subs r6, r2, r4                                   |     r6 = r2 - r4;
    0x00001c12 movs r0, r0                                       |     
    0x00001c14 adds r3, 0x9a                                     |     r3 += 0x9a;
    0x00001c16 movs r1, r0                                       |     r1 = r0;
    0x00001c18 subs r4, r5, r3                                   |     r4 = r5 - r3;
    0x00001c1a movs r0, r0                                       |     
    0x00001c1c subs r2, r2, r3                                   |     r2 -= r3;
    0x00001c1e movs r0, r0                                       |     
    0x00001c20 subs r4, r2, r3                                   |     r4 = r2 - r3;
    0x00001c22 movs r0, r0                                       |     
    0x00001c24 movs r0, 0x38                                     |     r0 = 0x38;
    0x00001c26 movs r0, r0                                       |     
    0x00001c28 subs r6, r0, r1                                   |     r6 = r0 - r1;
    0x00001c2a movs r0, r0                                       |     
    0x00001c2c movs r0, 0x24                                     |     r0 = 0x24;
    0x00001c2e movs r0, r0                                       |     
    0x00001c30 subs r6, r7, r0                                   |     r6 = r7 - r0;
    0x00001c32 movs r0, r0                                       |     
    0x00001c34 subs r0, r6, r1                                   |     r0 = r6 - r1;
    0x00001c36 movs r0, r0                                       |     
    0x00001c38 subs r2, r5, r2                                   |     r2 = r5 - r2;
    0x00001c3a movs r0, r0                                       |     
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libcertutil.so.1.0 @ 0x24c4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.cert_util_get_properties ()                  | void cert_util_get_properties (int16_t arg_d8h, int16_t arg_dch, int16_t arg_e0h, int16_t arg_e4h, int16_t arg_e8h, int16_t arg_ech, int16_t arg_f0h, int16_t arg_f4h, int16_t arg_f8h, int16_t arg_fch, int16_t arg_100h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h_2;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch_2;
                                                             |     int16_t var_10h;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_1ch;
                                                             |     int16_t var_20h;
                                                             |     int16_t var_24h;
                                                             |     int16_t var_28h;
                                                             |     int16_t var_2ch;
                                                             |     int16_t var_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_50h;
                                                             |     int16_t var_54h;
                                                             |     int16_t var_58h;
                                                             |     int16_t var_5ch;
                                                             |     int16_t var_60h;
                                                             |     int16_t var_64h;
                                                             |     int16_t var_68h;
                                                             |     int16_t var_6ch;
                                                             |     int16_t var_74h;
                                                             |     int16_t var_78h;
                                                             |     int16_t var_7ch;
                                                             |     int16_t var_a8h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_b0h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_b8h;
                                                             |     int16_t var_bch;
                                                             |     int16_t var_c0h;
                                                             |     int16_t var_c4h;
                                                             |     int16_t var_c8h;
                                                             |     int16_t var_cch;
                                                             |     int16_t var_d0h;
                                                             |     int16_t var_d4h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x000024c4 svcmi 0xf0e92d                                |     __asm ("svcmi 0xf0e92d");
    0x000024c8 mov sl, r2                                    |     sl = r2;
    0x000024ca sub sp, 0x84                                  |     
    0x000024cc ldr r2, [pc, 0x3d4]                           |     
    0x000024ce mov fp, r3                                    |     
    0x000024d0 movs r7, 0                                    |     r7 = 0;
    0x000024d2 ldr r4, [sp, 0xa8]                            |     r4 = var_a8h;
    0x000024d4 mov sb, r1                                    |     sb = r1;
    0x000024d6 ldr r3, [pc, 0x3d0]                           |     r3 = *(0x28aa);
    0x000024d8 add r2, pc                                    |     r2 = 0x4d80;
    0x000024da mov r6, r0                                    |     r6 = r0;
    0x000024dc str r4, [sp]                                  |     *(sp) = r4;
    0x000024de ldr r3, [r2, r3]                              |     
    0x000024e0 ldr r3, [r3]                                  |     r3 = *(0x4d80);
    0x000024e2 str r3, [sp, 0x7c]                            |     var_7ch = r3;
    0x000024e4 mov.w r3, 0                                   |     r3 = 0;
    0x000024e8 ldr r3, [sp, 0xac]                            |     r3 = var_4h;
    0x000024ea str r7, [sp, 0x74]                            |     var_74h = r7;
    0x000024ec str r3, [sp, 4]                               |     var_4h_2 = r3;
    0x000024ee ldr r3, [sp, 0xb0]                            |     r3 = var_b0h;
    0x000024f0 str r3, [sp, 8]                               |     var_8h = r3;
    0x000024f2 ldr r3, [sp, 0xb4]                            |     r3 = var_ch;
    0x000024f4 str r3, [sp, 0xc]                             |     var_ch_2 = r3;
    0x000024f6 ldr r3, [sp, 0xb8]                            |     r3 = var_b8h;
    0x000024f8 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x000024fa ldr r3, [sp, 0xbc]                            |     r3 = var_bch;
    0x000024fc str r3, [sp, 0x14]                            |     var_14h = r3;
    0x000024fe ldr r3, [sp, 0xc0]                            |     r3 = var_c0h;
    0x00002500 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00002502 ldr r3, [sp, 0xc4]                            |     r3 = var_c4h;
    0x00002504 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x00002506 ldr r3, [sp, 0xc8]                            |     r3 = var_c8h;
    0x00002508 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x0000250a ldr r3, [sp, 0xcc]                            |     r3 = var_cch;
    0x0000250c str r3, [sp, 0x24]                            |     var_24h = r3;
    0x0000250e ldr r3, [sp, 0xd0]                            |     r3 = var_d0h;
    0x00002510 str r3, [sp, 0x28]                            |     var_28h = r3;
    0x00002512 ldr r3, [sp, 0xd4]                            |     r3 = var_d4h;
    0x00002514 str r3, [sp, 0x2c]                            |     var_2ch = r3;
    0x00002516 ldr r3, [sp, 0xd8]                            |     r3 = *(arg_d8h);
    0x00002518 str r3, [sp, 0x30]                            |     var_30h = r3;
    0x0000251a ldr r3, [sp, 0xdc]                            |     r3 = *(arg_dch);
    0x0000251c str r3, [sp, 0x34]                            |     var_34h = r3;
    0x0000251e ldr r3, [sp, 0xe0]                            |     r3 = *(arg_e0h);
    0x00002520 str r3, [sp, 0x38]                            |     var_38h = r3;
    0x00002522 ldr r3, [sp, 0xe4]                            |     r3 = *(arg_e4h);
    0x00002524 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x00002526 ldr r3, [sp, 0xe8]                            |     r3 = *(arg_e8h);
    0x00002528 str r3, [sp, 0x40]                            |     var_40h = r3;
    0x0000252a ldr r3, [sp, 0xec]                            |     r3 = *(arg_ech);
    0x0000252c str r3, [sp, 0x44]                            |     var_44h = r3;
    0x0000252e ldr r3, [sp, 0xf0]                            |     r3 = *(arg_f0h);
    0x00002530 str r3, [sp, 0x48]                            |     var_48h = r3;
    0x00002532 ldr r3, [sp, 0xf4]                            |     r3 = *(arg_f4h);
    0x00002534 str r3, [sp, 0x4c]                            |     var_4ch = r3;
    0x00002536 ldr r3, [sp, 0xf8]                            |     r3 = *(arg_f8h);
    0x00002538 str r3, [sp, 0x50]                            |     var_50h = r3;
    0x0000253a ldr r3, [sp, 0xfc]                            |     r3 = *(arg_fch);
    0x0000253c str r3, [sp, 0x54]                            |     var_54h = r3;
    0x0000253e ldr r3, [sp, 0x100]                           |     r3 = *(arg_100h);
    0x00002540 str r3, [sp, 0x58]                            |     var_58h = r3;
    0x00002542 blx 0x14a4                                    |     r0 = fcn_000014a4 ();
    0x00002546 mov r8, r0                                    |     r8 = r0;
    0x00002548 add r0, sp, 0x78                              |     r0 += var_78h;
    0x0000254a mov r1, r8                                    |     r1 = r8;
    0x0000254c blx 0x14e0                                    |     r0 = fcn_000014e0 ();
                                                             |     if (r0 == 0) {
    0x00002550 cbz r0, 0x2590                                |         goto label_6;
                                                             |     }
                                                             |     if (r6 == 0) {
    0x00002552 cbz r6, 0x2588                                |         goto label_7;
                                                             |     }
    0x00002554 mov r0, r7                                    |     r0 = r7;
    0x00002556 blx 0x1468                                    |     g_free ();
    0x0000255a mov r0, r7                                    |     r0 = r7;
    0x0000255c blx 0x16e8                                    |     fcn_000016e8 ();
                                                             |     do {
    0x00002560 ldr r0, [sp, 0x74]                            |         r0 = var_74h;
    0x00002562 movs r5, 1                                    |         r5 = 1;
                                                             |         if (r0 != 0) {
    0x00002564 cbz r0, 0x256a                                |             
    0x00002566 blx 0x16dc                                    |             fcn_000016dc ();
                                                             |         }
                                                             | label_0:
    0x0000256a ldr r2, [pc, 0x340]                           |         
    0x0000256c ldr r3, [pc, 0x338]                           |         r3 = *(0x28a8);
    0x0000256e add r2, pc                                    |         r2 = 0x4e20;
    0x00002570 ldr r3, [r2, r3]                              |         r3 = *(0x4e20);
    0x00002572 ldr r2, [r3]                                  |         r2 = *(0x4e20);
    0x00002574 ldr r3, [sp, 0x7c]                            |         r3 = var_7ch;
    0x00002576 eors r2, r3                                   |         r2 ^= r3;
    0x00002578 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0000257c bne.w 0x28a0                                  |             goto label_8;
                                                             |         }
    0x00002580 mov r0, r5                                    |         r0 = r5;
    0x00002582 add sp, 0x84                                  |         
    0x00002584 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |         
                                                             | label_7:
    0x00002588 mov r0, r6                                    |         r0 = r6;
    0x0000258a blx 0x16e8                                    |         fcn_000016e8 ();
    0x0000258e b 0x2560                                      |         
                                                             |     } while (1);
                                                             | label_6:
    0x00002590 mov r5, r0                                    |     r5 = r0;
    0x00002592 blx 0x14f8                                    |     g_key_file_new ();
    0x00002596 add r3, sp, 0x74                              |     r3 += var_74h;
    0x00002598 movs r2, 1                                    |     r2 = 1;
    0x0000259a mov r1, r8                                    |     r1 = r8;
    0x0000259c mov r4, r0                                    |     r4 = r0;
    0x0000259e blx 0x1664                                    |     fcn_00001664 ();
    0x000025a2 ldr r3, [sp, 0x74]                            |     r3 = var_74h;
                                                             |     if (r3 != 0) {
    0x000025a4 cbz r3, 0x25fe                                |         
    0x000025a6 ldr.w sb, [r3, 8]                             |         sb = *((r3 + 8));
    0x000025aa ldr r1, [pc, 0x304]                           |         
    0x000025ac mov r0, sb                                    |         r0 = sb;
    0x000025ae add r1, pc                                    |         r1 = 0x4e64;
    0x000025b0 blx 0x1730                                    |         r0 = fcn_00001730 ();
    0x000025b4 orrs.w r5, r6, r0                             |         r5 = r6 | r0;
                                                             |         if (r5 == r6) {
    0x000025b8 beq.w 0x2890                                  |             goto label_9;
                                                             |         }
    0x000025bc ldr r0, [pc, 0x2f4]                           |         
    0x000025be mov r1, r8                                    |         r1 = r8;
    0x000025c0 mov r2, sb                                    |         r2 = sb;
    0x000025c2 movs r5, 1                                    |         r5 = 1;
    0x000025c4 mov r8, r7                                    |         r8 = r7;
    0x000025c6 add r0, pc                                    |         r0 = 0x4e7e;
    0x000025c8 blx 0x1594                                    |         r0 = g_strdup_printf ()
    0x000025cc mov r1, r0                                    |         r1 = r0;
    0x000025ce movs r0, 1                                    |         r0 = 1;
    0x000025d0 blx 0x14d4                                    |         fcn_000014d4 ();
                                                             |         if (r6 != 0) {
                                                             | label_1:
    0x000025d4 cbz r6, 0x25dc                                |             
    0x000025d6 mov r0, r8                                    |             r0 = r8;
    0x000025d8 blx 0x1468                                    |             g_free ();
                                                             |         }
                                                             | label_2:
    0x000025dc mov r0, r7                                    |         r0 = r7;
    0x000025de blx 0x16e8                                    |         fcn_000016e8 ();
                                                             |         if (r4 != 0) {
    0x000025e2 cbz r4, 0x25ea                                |             
    0x000025e4 mov r0, r4                                    |             r0 = r4;
    0x000025e6 blx 0x16b8                                    |             fcn_000016b8 ();
                                                             |         }
    0x000025ea ldr r0, [sp, 0x74]                            |         r0 = var_74h;
                                                             |         if (r0 != 0) {
    0x000025ec cbz r0, 0x25f6                                |             
    0x000025ee blx 0x16dc                                    |             fcn_000016dc ();
    0x000025f2 movs r3, 0                                    |             r3 = 0;
    0x000025f4 str r3, [sp, 0x74]                            |             var_74h = r3;
                                                             |         }
    0x000025f6 ldr r0, [sp, 0x78]                            |         r0 = var_78h;
    0x000025f8 blx 0x164c                                    |         fcn_0000164c ();
    0x000025fc b 0x256a                                      |         goto label_0;
                                                             |     }
    0x000025fe cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00002600 beq.w 0x286a                                  |         goto label_10;
                                                             |     }
    0x00002604 mov r0, r6                                    |     r0 = r6;
    0x00002606 blx 0x1534                                    |     r0 = keyfile_encode ();
    0x0000260a mov r8, r0                                    |     r8 = r0;
    0x0000260c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000260e beq.w 0x2894                                  |         goto label_11;
                                                             |     }
                                                             | label_5:
    0x00002612 movs r1, 0                                    |     r1 = 0;
    0x00002614 mov r0, r4                                    |     r0 = r4;
    0x00002616 blx 0x1658                                    |     r0 = fcn_00001658 ();
    0x0000261a ldr r1, [r0]                                  |     r1 = *(r0);
    0x0000261c mov r7, r0                                    |     r7 = r0;
    0x0000261e cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x00002620 beq.w 0x2854                                  |         goto label_12;
                                                             |     }
    0x00002624 movs r3, 0                                    |     r3 = 0;
    0x00002626 str r3, [sp, 0x64]                            |     var_64h = r3;
                                                             | label_3:
    0x00002628 ldr r2, [pc, 0x28c]                           |     
    0x0000262a ldr r3, [pc, 0x290]                           |     
    0x0000262c strd r7, r5, [sp, 0x68]                       |     __asm ("strd r7, r5, [sp, 0x68]");
    0x00002630 mov r5, r7                                    |     r5 = r7;
    0x00002632 add r2, pc                                    |     r2 = 0x4eee;
    0x00002634 mov r7, r6                                    |     r7 = r6;
    0x00002636 str r2, [sp, 0x5c]                            |     var_5ch = r2;
    0x00002638 add r3, pc                                    |     r3 = 0x4efa;
    0x0000263a ldr r2, [pc, 0x284]                           |     
    0x0000263c mov r6, sb                                    |     r6 = sb;
    0x0000263e mov sb, r3                                    |     sb = r3;
    0x00002640 add r2, pc                                    |     r2 = 0x4f06;
    0x00002642 str r2, [sp, 0x60]                            |     var_60h = r2;
                                                             |     do {
    0x00002644 cmp r7, 0                                     |         
                                                             |         if (r7 == 0) {
    0x00002646 beq.w 0x288c                                  |             goto label_13;
                                                             |         }
    0x0000264a mov r0, r8                                    |         r0 = r8;
    0x0000264c blx 0x1730                                    |         r0 = fcn_00001730 ();
    0x00002650 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00002652 bne.w 0x283c                                  |             
    0x00002656 movs r3, 1                                    |             r3 = 1;
    0x00002658 str r3, [sp, 0x64]                            |             var_64h = r3;
                                                             |             if (r6 != 0) {
                                                             | label_4:
    0x0000265a cbz r6, 0x266a                                |                 
    0x0000265c mov r0, r8                                    |                 r0 = r8;
    0x0000265e blx 0x15e8                                    |                 r0 = keyfile_decode ();
    0x00002662 mov r1, r0                                    |                 r1 = r0;
    0x00002664 mov r0, r6                                    |                 r0 = r6;
    0x00002666 blx 0x1570                                    |                 g_ptr_array_add ();
                                                             |             }
    0x0000266a mov r3, sb                                    |             r3 = sb;
    0x0000266c mov r2, r8                                    |             r2 = r8;
    0x0000266e mov r1, r4                                    |             r1 = r4;
    0x00002670 mov r0, sl                                    |             r0 = sl;
    0x00002672 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x00002676 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00002678 bne.w 0x2884                                  |                 goto label_14;
                                                             |             }
    0x0000267c ldr r3, [sp, 0x5c]                            |             r3 = var_5ch;
    0x0000267e mov r2, r8                                    |             r2 = r8;
    0x00002680 mov r1, r4                                    |             r1 = r4;
    0x00002682 mov r0, fp                                    |             r0 = fp;
    0x00002684 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x00002688 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x0000268a bne.w 0x2884                                  |                 goto label_14;
                                                             |             }
    0x0000268e ldr r3, [sp, 0x60]                            |             r3 = var_60h;
    0x00002690 mov r2, r8                                    |             r2 = r8;
    0x00002692 ldr r0, [sp]                                  |             r0 = *(sp);
    0x00002694 mov r1, r4                                    |             r1 = r4;
    0x00002696 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x0000269a cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x0000269c bne.w 0x2884                                  |                 goto label_14;
                                                             |             }
    0x000026a0 ldr r3, [pc, 0x220]                           |             
    0x000026a2 mov r2, r8                                    |             r2 = r8;
    0x000026a4 ldr r0, [sp, 4]                               |             r0 = var_4h_2;
    0x000026a6 mov r1, r4                                    |             r1 = r4;
    0x000026a8 add r3, pc                                    |             r3 = 0x4f70;
    0x000026aa bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x000026ae cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000026b0 bne.w 0x2884                                  |                 goto label_14;
                                                             |             }
    0x000026b4 ldr r3, [pc, 0x210]                           |             
    0x000026b6 mov r2, r8                                    |             r2 = r8;
    0x000026b8 ldr r0, [sp, 8]                               |             r0 = var_8h;
    0x000026ba mov r1, r4                                    |             r1 = r4;
    0x000026bc add r3, pc                                    |             r3 = 0x4f88;
    0x000026be bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x000026c2 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000026c4 bne.w 0x2884                                  |                 goto label_14;
                                                             |             }
    0x000026c8 ldr r3, [pc, 0x200]                           |             
    0x000026ca mov r2, r8                                    |             r2 = r8;
    0x000026cc ldr r0, [sp, 0xc]                             |             r0 = var_ch_2;
    0x000026ce mov r1, r4                                    |             r1 = r4;
    0x000026d0 add r3, pc                                    |             r3 = 0x4fa0;
    0x000026d2 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x000026d6 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000026d8 bne.w 0x2884                                  |                 goto label_14;
                                                             |             }
    0x000026dc ldr r3, [pc, 0x1f0]                           |             
    0x000026de mov r2, r8                                    |             r2 = r8;
    0x000026e0 ldr r0, [sp, 0x10]                            |             r0 = var_10h;
    0x000026e2 mov r1, r4                                    |             r1 = r4;
    0x000026e4 add r3, pc                                    |             r3 = 0x4fb8;
    0x000026e6 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x000026ea cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000026ec bne.w 0x2884                                  |                 goto label_14;
                                                             |             }
    0x000026f0 ldr r3, [pc, 0x1e0]                           |             
    0x000026f2 mov r2, r8                                    |             r2 = r8;
    0x000026f4 ldr r0, [sp, 0x14]                            |             r0 = var_14h;
    0x000026f6 mov r1, r4                                    |             r1 = r4;
    0x000026f8 add r3, pc                                    |             r3 = 0x4fd0;
    0x000026fa bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x000026fe cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00002700 bne.w 0x2884                                  |                 goto label_14;
                                                             |             }
    0x00002704 ldr r3, [pc, 0x1d0]                           |             
    0x00002706 mov r2, r8                                    |             r2 = r8;
    0x00002708 ldr r0, [sp, 0x18]                            |             r0 = var_18h;
    0x0000270a mov r1, r4                                    |             r1 = r4;
    0x0000270c add r3, pc                                    |             r3 = 0x4fe8;
    0x0000270e bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x00002712 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00002714 bne.w 0x2884                                  |                 goto label_14;
                                                             |             }
    0x00002716 strh r6, [r6, 4]                              |             *((r6 + 4)) = r6;
    0x00002718 ldr r3, [pc, 0x1c0]                           |             
    0x0000271a mov r2, r8                                    |             r2 = r8;
    0x0000271c ldr r0, [sp, 0x1c]                            |             r0 = var_1ch;
    0x0000271e mov r1, r4                                    |             r1 = r4;
    0x00002720 add r3, pc                                    |             r3 = 0x5000;
    0x00002722 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x00002726 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00002728 bne.w 0x2884                                  |                 goto label_14;
                                                             |             }
    0x0000272c ldr r3, [pc, 0x1b0]                           |             
    0x0000272e mov r2, r8                                    |             r2 = r8;
    0x00002730 ldr r0, [sp, 0x20]                            |             r0 = var_20h;
    0x00002732 mov r1, r4                                    |             r1 = r4;
    0x00002734 add r3, pc                                    |             r3 = 0x5018;
    0x00002736 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x0000273a cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x0000273c bne.w 0x2884                                  |                 goto label_14;
                                                             |             }
    0x00002740 ldr r3, [pc, 0x1a0]                           |             
    0x00002742 mov r2, r8                                    |             r2 = r8;
    0x00002744 ldr r0, [sp, 0x24]                            |             r0 = var_24h;
    0x00002746 mov r1, r4                                    |             r1 = r4;
    0x00002748 add r3, pc                                    |             r3 = 0x5030;
    0x0000274a bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x0000274e cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00002750 bne.w 0x2884                                  |                 goto label_14;
                                                             |             }
    0x00002754 ldr r3, [pc, 0x190]                           |             
    0x00002756 mov r2, r8                                    |             r2 = r8;
    0x00002758 ldr r0, [sp, 0x28]                            |             r0 = var_28h;
    0x0000275a mov r1, r4                                    |             r1 = r4;
    0x0000275c add r3, pc                                    |             r3 = 0x5048;
    0x0000275e bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x00002762 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00002764 bne.w 0x2884                                  |                 goto label_14;
                                                             |             }
    0x00002768 ldr r3, [pc, 0x180]                           |             
    0x0000276a mov r2, r8                                    |             r2 = r8;
    0x0000276c ldr r0, [sp, 0x2c]                            |             r0 = var_2ch;
    0x0000276e mov r1, r4                                    |             r1 = r4;
    0x00002770 add r3, pc                                    |             r3 = 0x5060;
    0x00002772 bl 0x1c3c                                     |             fcn_00001c3c (r0, r1, r2, r3);
    0x00002774 invalid                                       |             
                                                             |             if (r0 != 0) {
    0x00002778 bne.w 0x2884                                  |                 goto label_14;
                                                             |             }
    0x0000277c ldr r3, [pc, 0x170]                           |             
    0x0000277e mov r2, r8                                    |             r2 = r8;
    0x00002780 ldr r0, [sp, 0x30]                            |             r0 = var_30h;
    0x00002782 mov r1, r4                                    |             r1 = r4;
    0x00002784 add r3, pc                                    |             r3 = 0x5078;
    0x00002786 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x0000278a cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x0000278c bne 0x2884                                    |                 goto label_14;
                                                             |             }
    0x0000278e ldr r3, [pc, 0x164]                           |             
    0x00002790 mov r2, r8                                    |             r2 = r8;
    0x00002792 ldr r0, [sp, 0x34]                            |             r0 = var_34h;
    0x00002794 mov r1, r4                                    |             r1 = r4;
    0x00002796 add r3, pc                                    |             r3 = 0x5090;
    0x00002798 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x0000279c cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x0000279e bne 0x2884                                    |                 goto label_14;
                                                             |             }
    0x000027a0 ldr r3, [pc, 0x154]                           |             
    0x000027a2 mov r2, r8                                    |             r2 = r8;
    0x000027a4 ldr r0, [sp, 0x38]                            |             r0 = var_38h;
    0x000027a6 mov r1, r4                                    |             r1 = r4;
    0x000027a8 add r3, pc                                    |             r3 = 0x50a4;
    0x000027aa bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x000027ae cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000027b0 bne 0x2884                                    |                 goto label_14;
                                                             |             }
    0x000027b2 ldr r3, [pc, 0x148]                           |             
    0x000027b4 mov r2, r8                                    |             r2 = r8;
    0x000027b6 ldr r0, [sp, 0x3c]                            |             r0 = var_3ch;
    0x000027b8 mov r1, r4                                    |             r1 = r4;
    0x000027ba add r3, pc                                    |             r3 = 0x50bc;
    0x000027bc bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x000027c0 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000027c2 bne 0x2884                                    |                 goto label_14;
                                                             |             }
    0x000027c4 ldr r3, [pc, 0x138]                           |             
    0x000027c6 mov r2, r8                                    |             r2 = r8;
    0x000027c8 ldr r0, [sp, 0x40]                            |             r0 = var_40h;
    0x000027ca mov r1, r4                                    |             r1 = r4;
    0x000027cc add r3, pc                                    |             r3 = 0x50d0;
    0x000027ce bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x000027d2 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000027d4 bne 0x2884                                    |                 goto label_14;
                                                             |             }
    0x000027d6 ldr r3, [pc, 0x12c]                           |             
    0x000027d8 mov r2, r8                                    |             r2 = r8;
    0x000027da ldr r0, [sp, 0x44]                            |             r0 = var_44h;
    0x000027dc mov r1, r4                                    |             r1 = r4;
    0x000027de add r3, pc                                    |             r3 = 0x50e8;
    0x000027e0 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x000027e4 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000027e6 bne 0x2884                                    |                 goto label_14;
                                                             |             }
    0x000027e8 ldr r3, [pc, 0x11c]                           |             
    0x000027ea mov r2, r8                                    |             r2 = r8;
    0x000027ec ldr r0, [sp, 0x48]                            |             r0 = var_48h;
    0x000027ee mov r1, r4                                    |             r1 = r4;
    0x000027f0 add r3, pc                                    |             r3 = 0x50fc;
    0x000027f2 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x000027f6 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000027f8 bne 0x2884                                    |                 goto label_14;
                                                             |             }
    0x000027fa ldr r3, [pc, 0x110]                           |             
    0x000027fc mov r2, r8                                    |             r2 = r8;
    0x000027fe ldr r0, [sp, 0x4c]                            |             r0 = var_4ch;
    0x00002800 mov r1, r4                                    |             r1 = r4;
    0x00002802 add r3, pc                                    |             r3 = 0x5114;
    0x00002804 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x00002808 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x0000280a bne 0x2884                                    |                 goto label_14;
                                                             |             }
    0x0000280c ldr r3, [pc, 0x100]                           |             
    0x0000280e mov r2, r8                                    |             r2 = r8;
    0x00002810 ldr r0, [sp, 0x50]                            |             r0 = var_50h;
    0x00002812 mov r1, r4                                    |             r1 = r4;
    0x00002814 add r3, pc                                    |             r3 = 0x5128;
    0x00002816 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
                                                             |             if (r0 != 0) {
    0x0000281a cbnz r0, 0x2884                               |                 goto label_14;
                                                             |             }
    0x0000281c ldr r3, [pc, 0xf4]                            |             
    0x0000281e mov r2, r8                                    |             r2 = r8;
    0x00002820 ldr r0, [sp, 0x54]                            |             r0 = var_54h;
    0x00002822 mov r1, r4                                    |             r1 = r4;
    0x00002824 add r3, pc                                    |             r3 = 0x513c;
    0x00002826 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
                                                             |             if (r0 != 0) {
    0x0000282a cbnz r0, 0x2884                               |                 goto label_14;
                                                             |             }
    0x0000282c ldr r3, [pc, 0xe8]                            |             
    0x0000282e mov r2, r8                                    |             r2 = r8;
    0x00002830 ldr r0, [sp, 0x58]                            |             r0 = var_58h;
    0x00002832 mov r1, r4                                    |             r1 = r4;
    0x00002834 add r3, pc                                    |             r3 = 0x5150;
    0x00002836 bl 0x1c3c                                     |             r0 = fcn_00001c3c (r0, r1, r2, r3);
                                                             |             if (r0 != 0) {
    0x0000283a cbnz r0, 0x2884                               |                 goto label_14;
                                                             |             }
                                                             |         }
    0x0000283c ldr r1, [r5, 4]!                              |         r1 = *((r5 += 4));
    0x00002840 cmp r1, 0                                     |         
    0x00002842 bne.w 0x2644                                  |         
                                                             |     } while (r1 != 0);
    0x00002846 mov r6, r7                                    |     r6 = r7;
    0x00002848 ldrd r3, r7, [sp, 0x64]                       |     __asm ("ldrd r3, r7, [var_64h]");
    0x0000284c ldr r5, [sp, 0x6c]                            |     r5 = var_6ch;
    0x0000284e cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00002850 bne.w 0x25d4                                  |         goto label_1;
                                                             |     }
                                                             | label_12:
    0x00002854 ldr r0, [pc, 0xc4]                            |     
    0x00002856 mov r1, r6                                    |     r1 = r6;
    0x00002858 movs r5, 1                                    |     r5 = 1;
    0x0000285a add r0, pc                                    |     r0 = 0x517a;
    0x0000285c blx 0x1594                                    |     r0 = g_strdup_printf ()
    0x00002860 mov r1, r0                                    |     r1 = r0;
    0x00002862 movs r0, 1                                    |     r0 = 1;
    0x00002864 blx 0x14d4                                    |     fcn_000014d4 ();
    0x00002868 b 0x25d4                                      |     goto label_1;
                                                             | label_10:
    0x0000286a mov r1, r6                                    |     r1 = r6;
    0x0000286c mov r0, r4                                    |     r0 = r4;
    0x0000286e blx 0x1658                                    |     r0 = fcn_00001658 ();
    0x00002872 ldr r1, [r0]                                  |     r1 = *(r0);
    0x00002874 mov r7, r0                                    |     r7 = r0;
    0x00002876 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x00002878 beq.w 0x25dc                                  |         goto label_2;
                                                             |     }
    0x0000287c movs r3, 1                                    |     r3 = 1;
    0x0000287e mov r8, r6                                    |     r8 = r6;
    0x00002880 str r3, [sp, 0x64]                            |     var_64h = r3;
    0x00002882 b 0x2628                                      |     goto label_3;
                                                             | label_14:
    0x00002884 mov r6, r7                                    |     r6 = r7;
    0x00002886 movs r5, 1                                    |     r5 = 1;
    0x00002888 ldr r7, [sp, 0x68]                            |     r7 = var_68h;
    0x0000288a b 0x25d4                                      |     goto label_1;
                                                             | label_13:
    0x0000288c mov r8, r1                                    |     r8 = r1;
    0x0000288e b 0x265a                                      |     goto label_4;
                                                             | label_9:
    0x00002890 mov r7, r5                                    |     r7 = r5;
    0x00002892 b 0x25dc                                      |     goto label_2;
                                                             | label_11:
    0x00002894 ldr r0, [pc, 0x88]                            |     
    0x00002896 add r0, pc                                    |     r0 = 0x51ba;
    0x00002898 blx 0x1504                                    |     r0 = g_strdup ();
    0x0000289c mov r8, r0                                    |     r8 = r0;
    0x0000289e b 0x2612                                      |     goto label_5;
                                                             | label_8:
    0x000028a0 blx 0x1670                                    |     fcn_00001670 ();
    0x000028a4 cmp r2, 8                                     |     
    0x000028a6 movs r1, r0                                   |     r1 = r0;
    0x000028a8 lsls r4, r2, 4                                |     r4 = r2 << 4;
    0x000028aa movs r0, r0                                   |     
    0x000028ac cmp r1, 0x72                                  |     
    0x000028ae movs r1, r0                                   |     r1 = r0;
    0x000028b0 asrs r2, r6, 5                                |     r2 = r6 >> 5;
    0x000028b2 movs r0, r0                                   |     
    0x000028b4 asrs r2, r5, 1                                |     r2 = r5 >> 1;
    0x000028b6 movs r0, r0                                   |     
    0x000028b8 asrs r2, r4, 3                                |     r2 = r4 >> 3;
    0x000028ba movs r0, r0                                   |     
    0x000028bc asrs r4, r4, 5                                |     r4 >>= 5;
    0x000028be movs r0, r0                                   |     
    0x000028c0 asrs r4, r4, 5                                |     r4 >>= 5;
    0x000028c2 movs r0, r0                                   |     
    0x000028c4 asrs r4, r0, 4                                |     r4 = r0 >> 4;
    0x000028c6 movs r0, r0                                   |     
    0x000028c8 asrs r0, r0, 4                                |     r0 >>= 4;
    0x000028ca movs r0, r0                                   |     
    0x000028cc asrs r0, r6, 3                                |     r0 = r6 >> 3;
    0x000028ce movs r0, r0                                   |     
    0x000028d0 asrs r4, r4, 3                                |     r4 >>= 3;
    0x000028d2 movs r0, r0                                   |     
    0x000028d4 asrs r0, r4, 3                                |     r0 = r4 >> 3;
    0x000028d6 movs r0, r0                                   |     
    0x000028d8 asrs r0, r2, 3                                |     r0 = r2 >> 3;
    0x000028da movs r0, r0                                   |     
    0x000028dc asrs r4, r0, 3                                |     r4 = r0 >> 3;
    0x000028de movs r0, r0                                   |     
    0x000028e0 asrs r4, r6, 2                                |     r4 = r6 >> 2;
    0x000028e2 movs r0, r0                                   |     
    0x000028e4 asrs r4, r4, 2                                |     r4 >>= 2;
    0x000028e6 movs r0, r0                                   |     
    0x000028e8 asrs r0, r3, 2                                |     r0 = r3 >> 2;
    0x000028ea movs r0, r0                                   |     
    0x000028ec lsrs r0, r4, 0x1f                             |     r0 = r4 >> 0x1f;
    0x000028ee movs r0, r0                                   |     
    0x000028f0 lsrs r0, r2, 0x1f                             |     r0 = r2 >> 0x1f;
    0x000028f2 movs r0, r0                                   |     
    0x000028f4 lsrs r6, r0, 0x1f                             |     r6 = r0 >> 0x1f;
    0x000028f6 movs r0, r0                                   |     
    0x000028f8 lsrs r0, r7, 0x1e                             |     r0 = r7 >> 0x1e;
    0x000028fa movs r0, r0                                   |     
    0x000028fc lsrs r2, r5, 0x1e                             |     r2 = r5 >> 0x1e;
    0x000028fe movs r0, r0                                   |     
    0x00002900 lsrs r0, r4, 0x1e                             |     r0 = r4 >> 0x1e;
    0x00002902 movs r0, r0                                   |     
    0x00002904 asrs r6, r3, 0x20                             |     r6 = r3 >> 0x20;
    0x00002906 movs r0, r0                                   |     
    0x00002908 asrs r0, r3, 0x20                             |     r0 = r3 >> 0x20;
    0x0000290a movs r0, r0                                   |     
    0x0000290c asrs r2, r2, 0x20                             |     r2 >>= 0x20;
    0x0000290e movs r0, r0                                   |     
    0x00002910 asrs r0, r2, 0x20                             |     r0 = r2 >> 0x20;
    0x00002912 movs r0, r0                                   |     
    0x00002914 lsrs r4, r7, 0x1f                             |     r4 = r7 >> 0x1f;
    0x00002916 movs r0, r0                                   |     
    0x00002918 asrs r4, r2, 0x15                             |     r4 = r2 >> 0x15;
    0x0000291a movs r0, r0                                   |     
    0x0000291c asrs r2, r5, 0x20                             |     r2 = r5 >> 0x20;
    0x0000291e movs r0, r0                                   |     
    0x00002920 lsrs r2, r0, 0x15                             |     r2 = r0 >> 0x15;
    0x00002922 movs r0, r0                                   |     
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libcertutil.so.1.0 @ 0x33d4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.cert_util_get_properties_conf_full ()        | void cert_util_get_properties_conf_full () {
    0x000033d4 ldrbtmi r4, [r8], -0x801                      |     __asm ("ldrbtmi r4, [r8], -aav.0x00000a16");
    0x000033d8 bx lr                                         |     return;
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libcertutil.so.1.0 @ 0x3104 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.cert_util_key_ref ()                     | void cert_util_key_ref (int16_t arg1) {
                                                         |     int16_t var_4h;
                                                         |     int16_t var_8h_2;
                                                         |     int16_t var_ch;
                                                         |     r0 = arg1;
    0x00003104 ldr r2, [pc, 0x118]                       |     
    0x00003106 ldr r3, [pc, 0x11c]                       |     r3 = *(0x3226);
    0x00003108 push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x0000310c mov r4, r0                                |     r4 = r0;
    0x0000310e add r2, pc                                |     r2 = 0x6332;
    0x00003110 sub sp, 0x14                              |     
    0x00003112 mov.w r8, 0                               |     r8 = 0;
    0x00003116 ldr r3, [r2, r3]                          |     
    0x00003118 ldr r3, [r3]                              |     r3 = *(0x6332);
    0x0000311a str r3, [sp, 0xc]                         |     var_ch = r3;
    0x0000311c mov.w r3, 0                               |     r3 = 0;
    0x00003120 str.w r8, [sp, 4]                         |     __asm ("str.w r8, [var_4h]");
    0x00003124 blx 0x16c4                                |     r0 = fcn_000016c4 ();
    0x00003128 mov r7, r0                                |     r7 = r0;
    0x0000312a mov r0, r4                                |     r0 = r4;
    0x0000312c bl 0x2924                                 |     r0 = fcn_00002924 (r0);
    0x00003130 mov r4, r0                                |     r4 = r0;
    0x00003132 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00003134 beq 0x31fa                                |         goto label_2;
                                                         |     }
    0x00003136 add.w sb, sp, 4                           |     sb += var_4h;
    0x0000313a blx 0x14f8                                |     g_key_file_new ();
    0x0000313e mov r3, sb                                |     r3 = sb;
    0x00003140 mov r2, r8                                |     r2 = r8;
    0x00003142 mov r1, r7                                |     r1 = r7;
    0x00003144 mov r6, r0                                |     r6 = r0;
    0x00003146 blx 0x1664                                |     r0 = fcn_00001664 ();
    0x0000314a mov r5, r0                                |     r5 = r0;
    0x0000314c cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0000314e beq 0x31e0                                |         goto label_3;
                                                         |     }
    0x00003150 ldr r1, [pc, 0xd4]                        |     
    0x00003152 mov r3, sb                                |     r3 = sb;
    0x00003154 mov r2, r4                                |     r2 = r4;
    0x00003156 mov r0, r6                                |     r0 = r6;
    0x00003158 add r1, pc                                |     r1 = 0x6384;
    0x0000315a blx 0x15a0                                |     g_key_file_get_integer ();
    0x0000315e ldr r5, [sp, 4]                           |     r5 = var_4h;
    0x00003160 adds r3, r0, 1                            |     r3 = r0 + 1;
                                                         |     if (r5 != 0) {
    0x00003162 cbz r5, 0x3182                            |         
    0x00003164 blx 0x16d0                                |         fcn_000016d0 ();
    0x00003168 movs r2, 5                                |         r2 = 5;
    0x0000316a mov r1, r0                                |         r1 = r0;
    0x0000316c mov r0, r5                                |         r0 = r5;
    0x0000316e blx 0x1628                                |         r0 = fcn_00001628 ();
    0x00003172 mov r5, r0                                |         r5 = r0;
    0x00003174 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x00003176 bne 0x3202                                |             goto label_4;
                                                         |         }
    0x00003178 ldr r0, [sp, 4]                           |         r0 = var_4h;
    0x0000317a blx 0x16dc                                |         fcn_000016dc ();
    0x0000317e movs r3, 1                                |         r3 = 1;
    0x00003180 str r5, [sp, 4]                           |         var_4h = r5;
                                                         |     }
    0x00003182 ldr r1, [pc, 0xa8]                        |     
    0x00003184 mov r0, r6                                |     r0 = r6;
    0x00003186 mov r2, r4                                |     r2 = r4;
    0x00003188 add r1, pc                                |     r1 = 0x63ba;
    0x0000318a blx 0x16a0                                |     fcn_000016a0 ();
    0x0000318e mov r2, sb                                |     r2 = sb;
    0x00003190 add r1, sp, 8                             |     r1 += var_8h_2;
    0x00003192 mov r0, r6                                |     r0 = r6;
    0x00003194 blx 0x15dc                                |     g_key_file_to_data ();
    0x00003198 ldr r2, [sp, 8]                           |     r2 = var_8h_2;
    0x0000319a mov r5, r0                                |     r5 = r0;
    0x0000319c mov r1, r0                                |     r1 = r0;
    0x0000319e mov r3, sb                                |     r3 = sb;
    0x000031a0 mov r0, r7                                |     r0 = r7;
    0x000031a2 blx 0x161c                                |     r0 = fcn_0000161c ();
                                                         |     if (r0 == 0) {
    0x000031a6 cbz r0, 0x3210                            |         goto label_5;
                                                         |     }
    0x000031a8 movs r7, 0                                |     r7 = 0;
                                                         |     do {
                                                         | label_0:
    0x000031aa mov r0, r4                                |         r0 = r4;
    0x000031ac blx 0x1468                                |         g_free ();
    0x000031b0 ldr r0, [sp, 4]                           |         r0 = var_4h;
                                                         |         if (r0 != 0) {
    0x000031b2 cbz r0, 0x31b8                            |             
    0x000031b4 blx 0x16dc                                |             fcn_000016dc ();
                                                         |         }
    0x000031b8 mov r0, r5                                |         r0 = r5;
    0x000031ba blx 0x1468                                |         g_free ();
    0x000031be mov r0, r6                                |         r0 = r6;
    0x000031c0 blx 0x16b8                                |         fcn_000016b8 ();
    0x000031c4 ldr r2, [pc, 0x68]                        |         
    0x000031c6 ldr r3, [pc, 0x5c]                        |         r3 = *(0x3226);
    0x000031c8 add r2, pc                                |         r2 = 0x63fc;
    0x000031ca ldr r3, [r2, r3]                          |         r3 = *(0x63fc);
    0x000031cc ldr r2, [r3]                              |         r2 = *(0x63fc);
    0x000031ce ldr r3, [sp, 0xc]                         |         r3 = var_ch;
    0x000031d0 eors r2, r3                               |         r2 ^= r3;
    0x000031d2 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x000031d6 bne 0x321c                                |             goto label_6;
                                                         |         }
    0x000031d8 mov r0, r7                                |         r0 = r7;
    0x000031da add sp, 0x14                              |         
    0x000031dc pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_3:
    0x000031e0 ldr r3, [sp, 4]                           |         r3 = var_4h;
    0x000031e2 mov r1, r7                                |         r1 = r7;
    0x000031e4 ldr r0, [pc, 0x4c]                        |         
    0x000031e6 ldr r2, [r3, 8]                           |         r2 = *((r3 + 8));
    0x000031e8 add r0, pc                                |         r0 = 0x6420;
                                                         | label_1:
    0x000031ea blx 0x1594                                |         r0 = g_strdup_printf ()
    0x000031ee mov r1, r0                                |         r1 = r0;
    0x000031f0 movs r0, 1                                |         r0 = 1;
    0x000031f2 movs r7, 1                                |         r7 = 1;
    0x000031f4 blx 0x14d4                                |         fcn_000014d4 ();
    0x000031f8 b 0x31aa                                  |         
                                                         |     } while (1);
                                                         | label_2:
    0x000031fa mov r5, r0                                |     r5 = r0;
    0x000031fc mov r6, r0                                |     r6 = r0;
    0x000031fe movs r7, 1                                |     r7 = 1;
    0x00003200 b 0x31aa                                  |     goto label_0;
                                                         | label_4:
    0x00003202 ldr r3, [sp, 4]                           |     r3 = var_4h;
    0x00003204 mov r1, r7                                |     r1 = r7;
    0x00003206 ldr r0, [pc, 0x30]                        |     
    0x00003208 mov r5, r8                                |     r5 = r8;
    0x0000320a ldr r2, [r3, 8]                           |     r2 = *((r3 + 8));
    0x0000320c add r0, pc                                |     r0 = 0x644a;
    0x0000320e b 0x31ea                                  |     goto label_1;
                                                         | label_5:
    0x00003210 ldr r3, [sp, 4]                           |     r3 = var_4h;
    0x00003212 mov r1, r7                                |     r1 = r7;
    0x00003214 ldr r0, [pc, 0x24]                        |     
    0x00003216 ldr r2, [r3, 8]                           |     r2 = *((r3 + 8));
    0x00003218 add r0, pc                                |     r0 = 0x6458;
    0x0000321a b 0x31ea                                  |     goto label_1;
                                                         | label_6:
    0x0000321c blx 0x1670                                |     fcn_00001670 ();
    0x00003220 adds r2, r2, 7                            |     r2 += 7;
    0x00003222 movs r1, r0                               |     r1 = r0;
    0x00003224 lsls r4, r2, 4                            |     r4 = r2 << 4;
    0x00003226 movs r0, r0                               |     
    0x00003228 lsrs r0, r3, 8                            |     r0 = r3 >> 8;
    0x0000322a movs r0, r0                               |     
    0x0000322c lsrs r0, r5, 7                            |     r0 = r5 >> 7;
    0x0000322e movs r0, r0                               |     
    0x00003230 adds r0, r3, 4                            |     r0 = r3 + 4;
    0x00003232 movs r1, r0                               |     r1 = r0;
    0x00003234 lsrs r0, r4, 5                            |     r0 = r4 >> 5;
    0x00003236 movs r0, r0                               |     
    0x00003238 lsrs r4, r5, 5                            |     r4 = r5 >> 5;
    0x0000323a movs r0, r0                               |     
    0x0000323c lsrs r0, r2, 6                            |     r0 = r2 >> 6;
    0x0000323e movs r0, r0                               |     
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libcertutil.so.1.0 @ 0x3240 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.cert_util_key_unref ()                           | void cert_util_key_unref (int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch_2;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00003240 blmi 0x12d5b70                                    |     __asm ("blmi 0x12d5b70");
    0x00003244 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00003248 mov r4, r0                                        |     r4 = r0;
    0x0000324a add r2, pc                                        |     r2 += pc;
    0x0000324c sub sp, 0x14                                      |     
    0x0000324e mov.w sb, 0                                       |     sb = 0;
    0x00003252 mov r8, r1                                        |     r8 = r1;
    0x00003254 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00003256 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00003258 str r3, [sp, 0xc]                                 |     var_ch_2 = r3;
    0x0000325a mov.w r3, 0                                       |     r3 = 0;
    0x0000325e str.w sb, [sp, 4]                                 |     __asm ("str.w sb, [var_4h_2]");
    0x00003262 blx 0x16c4                                        |     r0 = fcn_000016c4 ();
    0x00003266 mov r6, r0                                        |     r6 = r0;
    0x00003268 mov r0, r4                                        |     r0 = r4;
    0x0000326a bl 0x2924                                         |     r0 = fcn_00002924 (r0);
    0x0000326e mov r5, r0                                        |     r5 = r0;
    0x00003270 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00003272 beq 0x332c                                        |         goto label_2;
                                                                 |     }
    0x00003274 add.w sl, sp, 4                                   |     sl += var_4h_2;
    0x00003278 blx 0x14f8                                        |     g_key_file_new ();
    0x0000327c mov r3, sl                                        |     r3 = sl;
    0x0000327e mov r2, sb                                        |     r2 = sb;
    0x00003280 mov r1, r6                                        |     r1 = r6;
    0x00003282 mov r7, r0                                        |     r7 = r0;
    0x00003284 blx 0x1664                                        |     r0 = fcn_00001664 ();
    0x00003288 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r0 != 0) {
    0x0000328a cbz r0, 0x32de                                    |         
    0x0000328c ldr.w fp, [pc, 0xe4]                              |         
    0x00003290 mov r3, sl                                        |         r3 = sl;
    0x00003292 mov r2, r5                                        |         r2 = r5;
    0x00003294 mov r0, r7                                        |         r0 = r7;
    0x00003296 add fp, pc                                        |         fp = 0x660e;
    0x00003298 mov r1, fp                                        |         r1 = fp;
    0x0000329a blx 0x15a0                                        |         g_key_file_get_integer ();
    0x0000329e ldr r4, [sp, 4]                                   |         r4 = var_4h_2;
    0x000032a0 cmp r4, 0                                         |         
                                                                 |         if (r4 != 0) {
    0x000032a2 bne 0x334e                                        |             goto label_3;
                                                                 |         }
    0x000032a4 add.w sb, r0, -1                                  |         sb = r0 + -1;
    0x000032a8 mov r1, fp                                        |         r1 = fp;
    0x000032aa cmp.w sb, 0                                       |         
                                                                 |         if (sb <= 0) {
    0x000032ae ble 0x3334                                        |             goto label_4;
                                                                 |         }
    0x000032b0 mov r3, sb                                        |         r3 = sb;
    0x000032b2 mov r2, r5                                        |         r2 = r5;
    0x000032b4 mov r0, r7                                        |         r0 = r7;
    0x000032b6 blx 0x16a0                                        |         fcn_000016a0 ();
                                                                 | label_0:
    0x000032ba movs r2, 0                                        |         r2 = 0;
    0x000032bc add r1, sp, 8                                     |         r1 += var_8h;
    0x000032be mov r0, r7                                        |         r0 = r7;
    0x000032c0 blx 0x15dc                                        |         g_key_file_to_data ();
    0x000032c4 ldr r2, [sp, 8]                                   |         r2 = var_8h;
    0x000032c6 mov r4, r0                                        |         r4 = r0;
    0x000032c8 mov r1, r0                                        |         r1 = r0;
    0x000032ca mov r3, sl                                        |         r3 = sl;
    0x000032cc mov r0, r6                                        |         r0 = r6;
    0x000032ce blx 0x161c                                        |         r0 = fcn_0000161c ();
    0x000032d2 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000032d4 beq 0x335a                                        |             goto label_5;
                                                                 |         }
    0x000032d6 movs r6, 0                                        |         r6 = 0;
    0x000032d8 str.w sb, [r8]                                    |         __asm ("str.w sb, [r8]");
    0x000032dc b 0x32f6                                          |         
                                                                 |     } else {
    0x000032de ldr r3, [sp, 4]                                   |         r3 = var_4h_2;
    0x000032e0 mov r1, r6                                        |         r1 = r6;
    0x000032e2 ldr r0, [pc, 0x94]                                |         
    0x000032e4 ldr r2, [r3, 8]                                   |         r2 = *((r3 + 8));
    0x000032e6 add r0, pc                                        |         r0 = 0x6664;
                                                                 | label_1:
    0x000032e8 movs r6, 1                                        |         r6 = 1;
    0x000032ea blx 0x1594                                        |         r0 = g_strdup_printf ()
    0x000032ee mov r1, r0                                        |         r1 = r0;
    0x000032f0 movs r0, 1                                        |         r0 = 1;
    0x000032f2 blx 0x14d4                                        |         fcn_000014d4 ();
                                                                 |     }
                                                                 |     do {
    0x000032f6 mov r0, r5                                        |         r0 = r5;
    0x000032f8 blx 0x1468                                        |         g_free ();
    0x000032fc ldr r0, [sp, 4]                                   |         r0 = var_4h_2;
                                                                 |         if (r0 != 0) {
    0x000032fe cbz r0, 0x3304                                    |             
    0x00003300 blx 0x16dc                                        |             fcn_000016dc ();
                                                                 |         }
    0x00003304 mov r0, r4                                        |         r0 = r4;
    0x00003306 blx 0x1468                                        |         g_free ();
    0x0000330a mov r0, r7                                        |         r0 = r7;
    0x0000330c blx 0x16b8                                        |         fcn_000016b8 ();
    0x00003310 ldr r2, [pc, 0x68]                                |         
    0x00003312 ldr r3, [pc, 0x5c]                                |         r3 = *(0x3372);
    0x00003314 add r2, pc                                        |         r2 = 0x6694;
    0x00003316 ldr r3, [r2, r3]                                  |         r3 = *(0x6694);
    0x00003318 ldr r2, [r3]                                      |         r2 = *(0x6694);
    0x0000331a ldr r3, [sp, 0xc]                                 |         r3 = var_ch_2;
    0x0000331c eors r2, r3                                       |         r2 ^= r3;
    0x0000331e mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00003322 bne 0x3366                                        |             goto label_6;
                                                                 |         }
    0x00003324 mov r0, r6                                        |         r0 = r6;
    0x00003326 add sp, 0x14                                      |         
    0x00003328 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_2:
    0x0000332c mov r4, r0                                        |         r4 = r0;
    0x0000332e mov r7, r0                                        |         r7 = r0;
    0x00003330 movs r6, 1                                        |         r6 = 1;
    0x00003332 b 0x32f6                                          |         
                                                                 |     } while (1);
                                                                 | label_4:
    0x00003334 mov r3, sl                                        |     r3 = sl;
    0x00003336 mov r2, r5                                        |     r2 = r5;
    0x00003338 mov r0, r7                                        |     r0 = r7;
    0x0000333a blx 0x151c                                        |     r0 = g_key_file_remove_key ();
    0x0000333e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00003340 bne 0x32ba                                        |         goto label_0;
                                                                 |     }
    0x00003342 ldr r3, [sp, 4]                                   |     r3 = var_4h_2;
    0x00003344 mov r1, r6                                        |     r1 = r6;
    0x00003346 ldr r0, [pc, 0x38]                                |     
    0x00003348 ldr r2, [r3, 8]                                   |     r2 = *((r3 + 8));
    0x0000334a add r0, pc                                        |     r0 = 0x66d0;
    0x0000334c b 0x32e8                                          |     goto label_1;
                                                                 | label_3:
    0x0000334e ldr r0, [pc, 0x34]                                |     
    0x00003350 mov r1, r6                                        |     r1 = r6;
    0x00003352 ldr r2, [r4, 8]                                   |     r2 = *((r4 + 8));
    0x00003354 mov r4, sb                                        |     r4 = sb;
    0x00003356 add r0, pc                                        |     r0 = 0x66e0;
    0x00003358 b 0x32e8                                          |     goto label_1;
                                                                 | label_5:
    0x0000335a ldr r3, [sp, 4]                                   |     r3 = var_4h_2;
    0x0000335c mov r1, r6                                        |     r1 = r6;
    0x0000335e ldr r0, [pc, 0x28]                                |     
    0x00003360 ldr r2, [r3, 8]                                   |     r2 = *((r3 + 8));
    0x00003362 add r0, pc                                        |     r0 = 0x66f0;
    0x00003364 b 0x32e8                                          |     goto label_1;
                                                                 | label_6:
    0x00003366 blx 0x1670                                        |     fcn_00001670 ();
    0x0000336a nop                                               |     
    0x0000336c adds r6, r2, 2                                    |     r6 = r2 + 2;
    0x0000336e movs r1, r0                                       |     r1 = r0;
    0x00003370 lsls r4, r2, 4                                    |     r4 = r2 << 4;
    0x00003372 movs r0, r0                                       |     
    0x00003374 lsrs r2, r3, 3                                    |     r2 = r3 >> 3;
    0x00003376 movs r0, r0                                       |     
    0x00003378 lsrs r2, r4, 1                                    |     r2 = r4 >> 1;
    0x0000337a movs r0, r0                                       |     
    0x0000337c subs r4, r1, r7                                   |     r4 = r1 - r7;
    0x0000337e movs r1, r0                                       |     r1 = r0;
    0x00003380 lsrs r6, r0, 2                                    |     r6 = r0 >> 2;
    0x00003382 movs r0, r0                                       |     
    0x00003384 lsrs r2, r4, 0x20                                 |     r2 = r4 >> 0x20;
    0x00003386 movs r0, r0                                       |     
    0x00003388 lsls r6, r1, 0x13                                 |     r6 = r1 << 0x13;
    0x0000338a movs r0, r0                                       |     
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libcertutil.so.1.0 @ 0x2b5c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.cert_util_remove_cert_from_cnf ()            | void cert_util_remove_cert_from_cnf (int16_t arg1) {
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch;
                                                             |     r0 = arg1;
    0x00002b5c blmi 0x1315490                                |     __asm ("blmi 0x1315490");
    0x00002b60 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x00002b64 mov r4, r0                                    |     r4 = r0;
    0x00002b66 add r2, pc                                    |     r2 += pc;
    0x00002b68 sub sp, 0x14                                  |     
    0x00002b6a movs r6, 0                                    |     r6 = 0;
    0x00002b6c ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x00002b6e ldr r3, [r3]                                  |     r3 = *(r3);
    0x00002b70 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00002b72 mov.w r3, 0                                   |     r3 = 0;
    0x00002b76 str r6, [sp, 4]                               |     var_4h = r6;
    0x00002b78 blx 0x157c                                    |     fcn_0000157c ();
    0x00002b7c cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00002b7e beq 0x2c56                                    |         goto label_3;
                                                             |     }
    0x00002b80 mov r7, r0                                    |     r7 = r0;
    0x00002b82 add.w sb, sp, 4                               |     sb += var_4h;
    0x00002b86 mov r0, r4                                    |     r0 = r4;
    0x00002b88 blx 0x1534                                    |     r0 = keyfile_encode ();
    0x00002b8c mov r8, r0                                    |     r8 = r0;
    0x00002b8e blx 0x14f8                                    |     g_key_file_new ();
    0x00002b92 mov r3, sb                                    |     r3 = sb;
    0x00002b94 mov r2, r6                                    |     r2 = r6;
    0x00002b96 mov r1, r7                                    |     r1 = r7;
    0x00002b98 mov r5, r0                                    |     r5 = r0;
    0x00002b9a blx 0x1664                                    |     r0 = fcn_00001664 ();
    0x00002b9e mov r4, r0                                    |     r4 = r0;
    0x00002ba0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00002ba2 beq 0x2c3e                                    |         goto label_4;
                                                             |     }
    0x00002ba4 ldr r1, [pc, 0xec]                            |     
    0x00002ba6 mov r3, sb                                    |     r3 = sb;
    0x00002ba8 mov r2, r8                                    |     r2 = r8;
    0x00002baa mov r0, r5                                    |     r0 = r5;
    0x00002bac add r1, pc                                    |     r1 = 0x5844;
    0x00002bae blx 0x151c                                    |     r0 = g_key_file_remove_key ();
    0x00002bb2 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r0 == 0) {
    0x00002bb4 cbz r0, 0x2c10                                |         goto label_5;
                                                             |     }
    0x00002bb6 mov r2, r6                                    |     r2 = r6;
    0x00002bb8 add r1, sp, 8                                 |     r1 += var_8h;
    0x00002bba mov r0, r5                                    |     r0 = r5;
    0x00002bbc blx 0x15dc                                    |     g_key_file_to_data ();
    0x00002bc0 ldr r2, [sp, 8]                               |     r2 = var_8h;
    0x00002bc2 mov r4, r0                                    |     r4 = r0;
    0x00002bc4 mov r1, r0                                    |     r1 = r0;
    0x00002bc6 mov r3, sb                                    |     r3 = sb;
    0x00002bc8 mov r0, r7                                    |     r0 = r7;
    0x00002bca blx 0x161c                                    |     r0 = fcn_0000161c ();
    0x00002bce cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00002bd0 beq 0x2c6a                                    |         goto label_6;
                                                             |     }
    0x00002bd2 mov r0, r4                                    |     r0 = r4;
    0x00002bd4 mov r4, r6                                    |     r4 = r6;
    0x00002bd6 blx 0x1468                                    |     g_free ();
    0x00002bda mov r0, r5                                    |     r0 = r5;
    0x00002bdc blx 0x16b8                                    |     fcn_000016b8 ();
    0x00002be0 mov r0, r6                                    |     r0 = r6;
    0x00002be2 blx 0x1468                                    |     g_free ();
    0x00002be6 mov r0, r8                                    |     r0 = r8;
    0x00002be8 blx 0x1468                                    |     g_free ();
                                                             |     do {
                                                             | label_2:
    0x00002bec ldr r0, [sp, 4]                               |         r0 = var_4h;
                                                             |         if (r0 != 0) {
    0x00002bee cbz r0, 0x2bf4                                |             
    0x00002bf0 blx 0x16dc                                    |             fcn_000016dc ();
                                                             |         }
                                                             | label_1:
    0x00002bf4 ldr r2, [pc, 0xa0]                            |         
    0x00002bf6 ldr r3, [pc, 0x98]                            |         r3 = *(0x2c92);
    0x00002bf8 add r2, pc                                    |         r2 = 0x5894;
    0x00002bfa ldr r3, [r2, r3]                              |         r3 = *(0x5894);
    0x00002bfc ldr r2, [r3]                                  |         r2 = *(0x5894);
    0x00002bfe ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00002c00 eors r2, r3                                   |         r2 ^= r3;
    0x00002c02 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00002c06 bne 0x2c86                                    |             goto label_7;
                                                             |         }
    0x00002c08 mov r0, r4                                    |         r0 = r4;
    0x00002c0a add sp, 0x14                                  |         
    0x00002c0c pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
                                                             | label_5:
    0x00002c10 ldr r3, [sp, 4]                               |         r3 = var_4h;
    0x00002c12 mov r1, r8                                    |         r1 = r8;
    0x00002c14 ldr r0, [pc, 0x84]                            |         
    0x00002c16 ldr r2, [r3, 8]                               |         r2 = *((r3 + 8));
    0x00002c18 add r0, pc                                    |         r0 = 0x58b8;
    0x00002c1a blx 0x1594                                    |         r0 = g_strdup_printf ()
    0x00002c1e mov r1, r0                                    |         r1 = r0;
    0x00002c20 movs r0, 1                                    |         r0 = 1;
    0x00002c22 blx 0x14d4                                    |         fcn_000014d4 ();
                                                             | label_0:
    0x00002c26 mov r0, r4                                    |         r0 = r4;
    0x00002c28 blx 0x1468                                    |         g_free ();
    0x00002c2c mov r0, r8                                    |         r0 = r8;
    0x00002c2e blx 0x1468                                    |         g_free ();
                                                             |         if (r5 == 0) {
    0x00002c32 cbz r5, 0x2c82                                |             goto label_8;
                                                             |         }
    0x00002c34 mov r0, r5                                    |         r0 = r5;
    0x00002c36 movs r4, 1                                    |         r4 = 1;
    0x00002c38 blx 0x16b8                                    |         fcn_000016b8 ();
    0x00002c3c b 0x2bec                                      |         
                                                             |     } while (1);
                                                             | label_4:
    0x00002c3e ldr r3, [sp, 4]                               |     r3 = var_4h;
    0x00002c40 mov r1, r7                                    |     r1 = r7;
    0x00002c42 ldr r0, [pc, 0x5c]                            |     
    0x00002c44 ldr r2, [r3, 8]                               |     r2 = *((r3 + 8));
    0x00002c46 add r0, pc                                    |     r0 = 0x58ec;
    0x00002c48 blx 0x1594                                    |     r0 = g_strdup_printf ()
    0x00002c4c mov r1, r0                                    |     r1 = r0;
    0x00002c4e movs r0, 1                                    |     r0 = 1;
    0x00002c50 blx 0x14d4                                    |     fcn_000014d4 ();
    0x00002c54 b 0x2c26                                      |     goto label_0;
                                                             | label_3:
    0x00002c56 ldr r1, [pc, 0x4c]                            |     
    0x00002c58 mov r0, r4                                    |     r0 = r4;
    0x00002c5a ldr r2, [pc, 0x4c]                            |     
    0x00002c5c movs r4, 1                                    |     r4 = 1;
    0x00002c5e add r1, pc                                    |     r1 = 0x5908;
    0x00002c60 add r2, pc                                    |     r2 = 0x590e;
    0x00002c62 adds r1, 0xc4                                 |     r1 += 0xc4;
    0x00002c64 blx 0x15f8                                    |     fcn_000015f8 ();
    0x00002c68 b 0x2bf4                                      |     goto label_1;
                                                             | label_6:
    0x00002c6a ldr r3, [sp, 4]                               |     r3 = var_4h;
    0x00002c6c mov r1, r7                                    |     r1 = r7;
    0x00002c6e ldr r0, [pc, 0x3c]                            |     
    0x00002c70 ldr r2, [r3, 8]                               |     r2 = *((r3 + 8));
    0x00002c72 add r0, pc                                    |     r0 = 0x5924;
    0x00002c74 blx 0x1594                                    |     r0 = g_strdup_printf ()
    0x00002c78 mov r1, r0                                    |     r1 = r0;
    0x00002c7a movs r0, 1                                    |     r0 = 1;
    0x00002c7c blx 0x14d4                                    |     fcn_000014d4 ();
    0x00002c80 b 0x2c26                                      |     goto label_0;
                                                             | label_8:
    0x00002c82 movs r4, 1                                    |     r4 = 1;
    0x00002c84 b 0x2bec                                      |     goto label_2;
                                                             | label_7:
    0x00002c86 blx 0x1670                                    |     fcn_00001670 ();
    0x00002c8a nop                                           |     
    0x00002c8c movs r3, 0x7a                                 |     r3 = 0x7a;
    0x00002c8e movs r1, r0                                   |     r1 = r0;
    0x00002c90 lsls r4, r2, 4                                |     r4 = r2 << 4;
    0x00002c92 movs r0, r0                                   |     
    0x00002c94 lsrs r4, r4, 0xa                              |     r4 >>= 0xa;
    0x00002c96 movs r0, r0                                   |     
    0x00002c98 movs r2, 0xe8                                 |     r2 = 0xe8;
    0x00002c9a movs r1, r0                                   |     r1 = r0;
    0x00002c9c lsrs r4, r6, 0x13                             |     r4 = r6 >> 0x13;
    0x00002c9e movs r0, r0                                   |     
    0x00002ca0 lsrs r2, r0, 0x10                             |     r2 = r0 >> 0x10;
    0x00002ca2 movs r0, r0                                   |     
    0x00002ca4 lsrs r6, r4, 0x1e                             |     r6 = r4 >> 0x1e;
    0x00002ca6 movs r0, r0                                   |     
    0x00002ca8 lsrs r4, r6, 6                                |     r4 = r6 >> 6;
    0x00002caa movs r0, r0                                   |     
    0x00002cac lsrs r6, r7, 0xe                              |     r6 = r7 >> 0xe;
    0x00002cae movs r0, r0                                   |     
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libcertutil.so.1.0 @ 0x23ac */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.cert_util_remove_cert_from_properties ()     | void cert_util_remove_cert_from_properties (int16_t arg1) {
                                                             |     int16_t var_4h;
                                                             |     int16_t var_b0h;
                                                             |     int16_t var_ch;
                                                             |     r0 = arg1;
    0x000023ac blmi 0xf94ca8                                 |     __asm ("blmi 0xf94ca8");
    0x000023b0 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x000023b4 mov r4, r0                                    |     r4 = r0;
    0x000023b6 add r2, pc                                    |     r2 += pc;
    0x000023b8 sub sp, 0x14                                  |     
    0x000023ba movs r5, 0                                    |     r5 = 0;
    0x000023bc ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x000023be ldr r3, [r3]                                  |     r3 = *(r3);
    0x000023c0 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x000023c2 mov.w r3, 0                                   |     r3 = 0;
    0x000023c6 str r5, [sp, 4]                               |     var_4h = r5;
    0x000023c8 blx 0x14a4                                    |     fcn_000014a4 ();
    0x000023cc cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x000023ce beq 0x247e                                    |         goto label_2;
                                                             |     }
    0x000023d0 mov r6, r0                                    |     r6 = r0;
    0x000023d2 add.w sb, sp, 4                               |     sb += var_4h;
    0x000023d6 mov r0, r4                                    |     r0 = r4;
    0x000023d8 blx 0x1534                                    |     r0 = keyfile_encode ();
    0x000023dc mov r8, r0                                    |     r8 = r0;
    0x000023de blx 0x14f8                                    |     g_key_file_new ();
    0x000023e2 mov r3, sb                                    |     r3 = sb;
    0x000023e4 mov r2, r5                                    |     r2 = r5;
    0x000023e6 mov r1, r6                                    |     r1 = r6;
    0x000023e8 mov r7, r0                                    |     r7 = r0;
    0x000023ea blx 0x1664                                    |     r0 = fcn_00001664 ();
    0x000023ee mov r4, r0                                    |     r4 = r0;
    0x000023f0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000023f2 beq 0x2472                                    |         goto label_3;
                                                             |     }
    0x000023f4 mov r2, sb                                    |     r2 = sb;
    0x000023f6 mov r1, r8                                    |     r1 = r8;
    0x000023f8 mov r0, r7                                    |     r0 = r7;
    0x000023fa blx 0x1588                                    |     r0 = g_key_file_remove_group ();
    0x000023fe mov r4, r0                                    |     r4 = r0;
                                                             |     if (r0 == 0) {
    0x00002400 cbz r0, 0x2458                                |         goto label_4;
                                                             |     }
    0x00002402 mov r2, r5                                    |     r2 = r5;
    0x00002404 add r1, sp, 8                                 |     r1 += var_b0h;
    0x00002406 mov r0, r7                                    |     r0 = r7;
    0x00002408 blx 0x15dc                                    |     g_key_file_to_data ();
    0x0000240c ldr r2, [sp, 8]                               |     r2 = var_b0h;
    0x0000240e mov r4, r0                                    |     r4 = r0;
    0x00002410 mov r1, r0                                    |     r1 = r0;
    0x00002412 mov r3, sb                                    |     r3 = sb;
    0x00002414 mov r0, r6                                    |     r0 = r6;
    0x00002416 blx 0x161c                                    |     r0 = fcn_0000161c ();
    0x0000241a cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000241c beq 0x2492                                    |         goto label_5;
                                                             |     }
                                                             |     do {
    0x0000241e mov r0, r4                                    |         r0 = r4;
    0x00002420 blx 0x1468                                    |         g_free ();
    0x00002424 mov r0, r7                                    |         r0 = r7;
    0x00002426 blx 0x16b8                                    |         fcn_000016b8 ();
    0x0000242a ldr r0, [sp, 4]                               |         r0 = var_4h;
                                                             |         if (r0 != 0) {
    0x0000242c cbz r0, 0x2436                                |             
    0x0000242e blx 0x16dc                                    |             fcn_000016dc ();
    0x00002432 movs r3, 0                                    |             r3 = 0;
    0x00002434 str r3, [sp, 4]                               |             var_4h = r3;
                                                             |         }
    0x00002436 mov r0, r8                                    |         r0 = r8;
    0x00002438 blx 0x1468                                    |         g_free ();
                                                             | label_1:
    0x0000243c ldr r2, [pc, 0x6c]                            |         
    0x0000243e ldr r3, [pc, 0x68]                            |         r3 = *(0x24aa);
    0x00002440 add r2, pc                                    |         r2 = 0x48f0;
    0x00002442 ldr r3, [r2, r3]                              |         r3 = *(0x48f0);
    0x00002444 ldr r2, [r3]                                  |         r2 = *(0x48f0);
    0x00002446 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00002448 eors r2, r3                                   |         r2 ^= r3;
    0x0000244a mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0000244e bne 0x249e                                    |             goto label_6;
                                                             |         }
    0x00002450 mov r0, r5                                    |         r0 = r5;
    0x00002452 add sp, 0x14                                  |         
    0x00002454 pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
                                                             | label_4:
    0x00002458 ldr r3, [sp, 4]                               |         r3 = var_4h;
    0x0000245a mov r1, r8                                    |         r1 = r8;
    0x0000245c ldr r0, [pc, 0x50]                            |         
    0x0000245e ldr r2, [r3, 8]                               |         r2 = *((r3 + 8));
    0x00002460 add r0, pc                                    |         r0 = 0x4914;
                                                             | label_0:
    0x00002462 blx 0x1594                                    |         r0 = g_strdup_printf ()
    0x00002466 mov r1, r0                                    |         r1 = r0;
    0x00002468 movs r0, 1                                    |         r0 = 1;
    0x0000246a movs r5, 1                                    |         r5 = 1;
    0x0000246c blx 0x14d4                                    |         fcn_000014d4 ();
    0x00002470 b 0x241e                                      |         
                                                             |     } while (1);
                                                             | label_3:
    0x00002472 ldr r3, [sp, 4]                               |     r3 = var_4h;
    0x00002474 mov r1, r6                                    |     r1 = r6;
    0x00002476 ldr r0, [pc, 0x3c]                            |     
    0x00002478 ldr r2, [r3, 8]                               |     r2 = *((r3 + 8));
    0x0000247a add r0, pc                                    |     r0 = 0x4934;
    0x0000247c b 0x2462                                      |     goto label_0;
                                                             | label_2:
    0x0000247e ldr r1, [pc, 0x38]                            |     
    0x00002480 mov r0, r4                                    |     r0 = r4;
    0x00002482 ldr r2, [pc, 0x38]                            |     
    0x00002484 movs r5, 1                                    |     r5 = 1;
    0x00002486 add r1, pc                                    |     r1 = 0x4944;
    0x00002488 add r2, pc                                    |     r2 = 0x494a;
    0x0000248a adds r1, 0x80                                 |     r1 += 0x80;
    0x0000248c blx 0x15f8                                    |     fcn_000015f8 ();
    0x00002490 b 0x243c                                      |     goto label_1;
                                                             | label_5:
    0x00002492 ldr r3, [sp, 4]                               |     r3 = var_4h;
    0x00002494 mov r1, r6                                    |     r1 = r6;
    0x00002496 ldr r0, [pc, 0x28]                            |     
    0x00002498 ldr r2, [r3, 8]                               |     r2 = *((r3 + 8));
    0x0000249a add r0, pc                                    |     r0 = 0x4960;
    0x0000249c b 0x2462                                      |     goto label_0;
                                                             | label_6:
    0x0000249e blx 0x1670                                    |     fcn_00001670 ();
    0x000024a2 nop                                           |     
    0x000024a4 cmp r3, 0x2a                                  |     
    0x000024a6 movs r1, r0                                   |     r1 = r0;
    0x000024a8 lsls r4, r2, 4                                |     r4 = r2 << 4;
    0x000024aa movs r0, r0                                   |     
    0x000024ac cmp r2, 0xa0                                  |     
    0x000024ae movs r1, r0                                   |     r1 = r0;
    0x000024b0 asrs r4, r0, 0x10                             |     r4 = r0 >> 0x10;
    0x000024b2 movs r0, r0                                   |     
    0x000024b4 asrs r6, r1, 0xf                              |     r6 = r1 >> 0xf;
    0x000024b6 movs r0, r0                                   |     
    0x000024b8 asrs r6, r7, 0x1d                             |     r6 = r7 >> 0x1d;
    0x000024ba movs r0, r0                                   |     
    0x000024bc asrs r4, r1, 6                                |     r4 = r1 >> 6;
    0x000024be movs r0, r0                                   |     
    0x000024c0 asrs r6, r2, 0xe                              |     r6 = r2 >> 0xe;
    0x000024c2 movs r0, r0                                   |     
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libcertutil.so.1.0 @ 0x1cc0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.cert_util_set_properties ()                  | void cert_util_set_properties (int16_t arg_f0h, int16_t arg_f4h, int16_t arg_f8h, int16_t arg_fch, int16_t arg_100h, int16_t arg_104h, int16_t arg_108h, int16_t arg_10ch, int16_t arg_110h, int16_t arg_114h, int16_t arg_118h, int16_t arg_11ch, int16_t arg_120h, int16_t arg_124h, int16_t arg_128h, int16_t arg_12ch, int16_t arg_130h, int16_t arg_134h, int16_t arg_138h, int16_t arg_13ch, int16_t arg_140h, int16_t arg_144h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_4h;
                                                             |     int16_t var_ch_2;
                                                             |     int16_t var_4h_2;
                                                             |     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_28h;
                                                             |     int16_t var_2ch;
                                                             |     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_50h;
                                                             |     int16_t var_54h;
                                                             |     int16_t var_58h;
                                                             |     int16_t var_5ch;
                                                             |     int16_t var_60h;
                                                             |     int16_t var_64h;
                                                             |     int16_t var_68h;
                                                             |     int16_t var_6ch;
                                                             |     int16_t var_70h;
                                                             |     int16_t var_74h;
                                                             |     int16_t var_78h;
                                                             |     int16_t var_7ch;
                                                             |     int16_t var_80h;
                                                             |     int16_t var_84h;
                                                             |     int16_t var_88h;
                                                             |     int16_t var_8ch;
                                                             |     int16_t var_90h;
                                                             |     int16_t var_94h;
                                                             |     int16_t var_98h;
                                                             |     int16_t var_9ch;
                                                             |     int16_t var_a0h;
                                                             |     int16_t var_a4h;
                                                             |     int16_t var_a8h;
                                                             |     int16_t var_ach;
                                                             |     int16_t var_b0h;
                                                             |     int16_t var_b4h;
                                                             |     int16_t var_b8h;
                                                             |     int16_t var_bch;
                                                             |     int16_t var_c0h;
                                                             |     int16_t var_c4h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00001cc0 svcmi 0xf0e92d                                |     __asm ("svcmi 0xf0e92d");
    0x00001cc4 sub sp, 0xcc                                  |     
    0x00001cc6 str r2, [sp, 8]                               |     var_8h = r2;
    0x00001cc8 movs r5, 0                                    |     r5 = 0;
    0x00001cca mov r6, r0                                    |     r6 = r0;
    0x00001ccc ldr.w r2, [pc, 0x5d0]                         |     r2 = *(0x000022a0);
    0x00001cd0 str r3, [sp, 0x30]                            |     var_30h = r3;
    0x00001cd2 ldr r4, [sp, 0xf0]                            |     r4 = *(arg_f0h);
    0x00001cd4 ldr.w r3, [pc, 0x5cc]                         |     
    0x00001cd8 add r2, pc                                    |     r2 += pc;
    0x00001cda str r0, [sp, 0x28]                            |     var_28h = r0;
    0x00001cdc str r4, [sp, 0x34]                            |     var_34h = r4;
    0x00001cde str r1, [sp, 0x2c]                            |     var_2ch = r1;
    0x00001ce0 ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x00001ce2 ldr.w r4, [pc, 0x5c4]                         |     r4 = *(0x000022a8);
    0x00001ce6 ldr r3, [r3]                                  |     r3 = *(0x22a4);
    0x00001ce8 str r3, [sp, 0xc4]                            |     var_c4h = r3;
    0x00001cea mov.w r3, 0                                   |     r3 = 0;
    0x00001cee ldr r3, [sp, 0xf4]                            |     r3 = *(arg_f4h);
    0x00001cf0 str r5, [sp, 0x80]                            |     var_80h = r5;
    0x00001cf2 add r4, pc                                    |     r4 += pc;
    0x00001cf4 str r3, [sp, 0x38]                            |     var_38h = r3;
    0x00001cf6 ldr r3, [sp, 0xf8]                            |     r3 = *(arg_f8h);
    0x00001cf8 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x00001cfa ldr r3, [sp, 0xfc]                            |     r3 = *(arg_fch);
    0x00001cfc str r3, [sp, 0x40]                            |     var_40h = r3;
    0x00001cfe ldr r3, [sp, 0x100]                           |     r3 = *(arg_100h);
    0x00001d00 str r3, [sp, 0x44]                            |     var_44h = r3;
    0x00001d02 ldr r3, [sp, 0x104]                           |     r3 = *(arg_104h);
    0x00001d04 str r3, [sp, 0x48]                            |     var_48h = r3;
    0x00001d06 ldr r3, [sp, 0x108]                           |     r3 = *(arg_108h);
    0x00001d08 str r3, [sp, 0x4c]                            |     var_4ch = r3;
    0x00001d0a ldr r3, [sp, 0x10c]                           |     r3 = *(arg_10ch);
    0x00001d0c str r3, [sp, 0x50]                            |     var_50h = r3;
    0x00001d0e ldr r3, [sp, 0x110]                           |     r3 = *(arg_110h);
    0x00001d10 str r3, [sp, 0x54]                            |     var_54h = r3;
    0x00001d12 ldr r3, [sp, 0x114]                           |     r3 = *(arg_114h);
    0x00001d14 str r3, [sp, 0x58]                            |     var_58h = r3;
    0x00001d16 ldr r3, [sp, 0x118]                           |     r3 = *(arg_118h);
    0x00001d18 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00001d1a ldr r3, [sp, 0x11c]                           |     r3 = *(arg_11ch);
    0x00001d1c str r3, [sp, 0x10]                            |     var_10h = r3;
    0x00001d1e ldr r3, [sp, 0x120]                           |     r3 = *(arg_120h);
    0x00001d20 str r3, [sp, 0x14]                            |     var_14h = r3;
    0x00001d22 ldr r3, [sp, 0x124]                           |     r3 = *(arg_124h);
    0x00001d24 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00001d26 ldr r3, [sp, 0x128]                           |     r3 = *(arg_128h);
    0x00001d28 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x00001d2a ldr r3, [sp, 0x12c]                           |     r3 = *(arg_12ch);
    0x00001d2c str r3, [sp, 0x20]                            |     var_20h = r3;
    0x00001d2e ldr r3, [sp, 0x130]                           |     r3 = *(arg_130h);
    0x00001d30 str r3, [sp, 0x5c]                            |     var_5ch = r3;
    0x00001d32 ldr r3, [sp, 0x134]                           |     r3 = *(arg_134h);
    0x00001d34 str r3, [sp, 0x60]                            |     var_60h = r3;
    0x00001d36 ldr r3, [sp, 0x138]                           |     r3 = *(arg_138h);
    0x00001d38 str r3, [sp, 0x64]                            |     var_64h = r3;
    0x00001d3a ldr r3, [sp, 0x13c]                           |     r3 = *(arg_13ch);
    0x00001d3c str r3, [sp, 0x68]                            |     var_68h = r3;
    0x00001d3e ldr r3, [sp, 0x140]                           |     r3 = *(arg_140h);
    0x00001d40 str r3, [sp, 0x6c]                            |     var_6ch = r3;
    0x00001d42 ldr r3, [sp, 0x144]                           |     r3 = *(arg_144h);
    0x00001d44 str r3, [sp, 0x74]                            |     var_74h = r3;
    0x00001d46 blx 0x14a4                                    |     fcn_000014a4 ();
    0x00001d4a str r0, [sp, 0x24]                            |     var_24h = r0;
    0x00001d4c cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00001d4e beq.w 0x1f00                                  |         goto label_28;
                                                             |     }
    0x00001d52 mov r1, r0                                    |     r1 = r0;
    0x00001d54 add r0, sp, 0x84                              |     r0 += var_84h;
    0x00001d56 blx 0x14e0                                    |     r0 = fcn_000014e0 ();
    0x00001d5a mov fp, r0                                    |     
                                                             |     if (r0 != 0) {
    0x00001d5c cbz r0, 0x1d98                                |         
    0x00001d5e mov r0, r5                                    |         r0 = r5;
    0x00001d60 mov.w fp, 1                                   |         
    0x00001d64 blx 0x1468                                    |         g_free ();
    0x00001d68 mov r0, r5                                    |         r0 = r5;
    0x00001d6a blx 0x1468                                    |         g_free ();
    0x00001d6e ldr r0, [sp, 0x80]                            |         r0 = var_80h;
                                                             |         if (r0 != 0) {
    0x00001d70 cbz r0, 0x1d76                                |             
    0x00001d72 blx 0x16dc                                    |             fcn_000016dc ();
                                                             |         }
                                                             | label_0:
    0x00001d76 ldr.w r2, [pc, 0x534]                         |         r2 = *(0x000022ac);
    0x00001d7a ldr.w r3, [pc, 0x528]                         |         r3 = *(0x22a6);
    0x00001d7e add r2, pc                                    |         r2 += pc;
    0x00001d80 ldr r3, [r2, r3]                              |         r3 = *((r2 + r3));
    0x00001d82 ldr r2, [r3]                                  |         r2 = *(0x22a6);
    0x00001d84 ldr r3, [sp, 0xc4]                            |         r3 = var_c4h;
    0x00001d86 eors r2, r3                                   |         r2 ^= r3;
    0x00001d88 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00001d8c bne.w 0x229a                                  |             goto label_29;
                                                             |         }
    0x00001d90 mov r0, fp                                    |         r0 = fp;
    0x00001d92 add sp, 0xcc                                  |         
    0x00001d94 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |         
                                                             |     }
    0x00001d98 add r6, sp, 0x80                              |     r6 += var_80h;
    0x00001d9a str r6, [sp, 0x78]                            |     var_78h = r6;
    0x00001d9c blx 0x14f8                                    |     g_key_file_new ();
    0x00001da0 ldr r1, [sp, 0x24]                            |     r1 = var_24h;
    0x00001da2 mov r3, r6                                    |     r3 = r6;
    0x00001da4 movs r2, 1                                    |     r2 = 1;
    0x00001da6 mov r7, r0                                    |     r7 = r0;
    0x00001da8 blx 0x1664                                    |     fcn_00001664 ();
    0x00001dac ldr.w r8, [sp, 0x80]                          |     r8 = var_80h;
    0x00001db0 cmp.w r8, 0                                   |     
                                                             |     if (r8 != 0) {
    0x00001db4 beq 0x1dd6                                    |         
    0x00001db6 ldr.w r6, [r8, 8]                             |         r6 = *((r8 + 8));
    0x00001dba ldr.w r1, [pc, 0x4f4]                         |         
    0x00001dbe mov r0, r6                                    |         r0 = r6;
    0x00001dc0 add r1, pc                                    |         r1 = 0x4076;
    0x00001dc2 blx 0x1730                                    |         r0 = fcn_00001730 ();
    0x00001dc6 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00001dc8 bne.w 0x21ac                                  |             goto label_30;
                                                             |         }
    0x00001dcc mov r0, r8                                    |         r0 = r8;
    0x00001dce blx 0x16dc                                    |         fcn_000016dc ();
    0x00001dd2 str.w fp, [sp, 0x80]                          |         __asm ("str.w fp, [var_80h]");
                                                             |     }
    0x00001dd6 ldr r3, [sp, 8]                               |     r3 = var_8h;
    0x00001dd8 movs r1, 0                                    |     r1 = 0;
    0x00001dda mov r0, r7                                    |     r0 = r7;
    0x00001ddc str r3, [sp, 0xa8]                            |     var_a8h = r3;
    0x00001dde ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00001de0 str r3, [sp, 0xac]                            |     var_ach = r3;
    0x00001de2 ldr r3, [sp, 0x10]                            |     r3 = var_10h;
    0x00001de4 str r3, [sp, 0xb0]                            |     var_b0h = r3;
    0x00001de6 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00001de8 str r3, [sp, 0xb4]                            |     var_b4h = r3;
    0x00001dea ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00001dec str r3, [sp, 0xb8]                            |     var_b8h = r3;
    0x00001dee ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x00001df0 str r3, [sp, 0xbc]                            |     var_bch = r3;
    0x00001df2 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00001df4 str r3, [sp, 0xc0]                            |     var_c0h = r3;
    0x00001df6 ldr.w r3, [pc, 0x4bc]                         |     
    0x00001dfa add r3, pc                                    |     r3 = 0x40b4;
    0x00001dfc str r3, [sp, 0x90]                            |     var_90h = r3;
    0x00001dfe ldr.w r3, [pc, 0x4b8]                         |     
    0x00001e02 add r3, pc                                    |     r3 = 0x40c0;
    0x00001e04 str r3, [sp, 0x94]                            |     var_94h = r3;
    0x00001e06 ldr.w r3, [pc, 0x4b4]                         |     
    0x00001e0a add r3, pc                                    |     r3 = 0x40cc;
    0x00001e0c str r3, [sp, 0x98]                            |     var_98h = r3;
    0x00001e0e ldr.w r3, [pc, 0x4b0]                         |     
    0x00001e12 add r3, pc                                    |     r3 = 0x40d8;
    0x00001e14 str r3, [sp, 0x9c]                            |     var_9ch = r3;
    0x00001e16 ldr.w r3, [pc, 0x4ac]                         |     
    0x00001e1a add r3, pc                                    |     r3 = 0x40e4;
    0x00001e1c str r3, [sp, 0xa0]                            |     var_a0h = r3;
    0x00001e1e ldr.w r3, [pc, 0x4a8]                         |     
    0x00001e22 add r3, pc                                    |     r3 = 0x40f0;
    0x00001e24 str r3, [sp, 0xa4]                            |     var_a4h = r3;
    0x00001e26 blx 0x1658                                    |     r0 = fcn_00001658 ();
    0x00001e2a mov r5, r0                                    |     r5 = r0;
    0x00001e2c str r0, [sp, 4]                               |     var_4h_2 = r0;
    0x00001e2e cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00001e30 beq 0x1f16                                    |         goto label_31;
                                                             |     }
    0x00001e32 movs r0, 7                                    |     r0 = 7;
    0x00001e34 mov sl, r5                                    |     sl = r5;
    0x00001e36 blx 0x1694                                    |     fcn_00001694 ();
    0x00001e3a ldr.w r3, [pc, 0x490]                         |     r3 = *(0x22ce);
    0x00001e3e mov r6, r0                                    |     r6 = r0;
    0x00001e40 ldr r1, [r4, r3]                              |     r1 = *((r4 + r3));
    0x00001e42 movs r4, 0                                    |     r4 = 0;
    0x00001e44 blx 0x1558                                    |     g_ptr_array_set_free_func ();
    0x00001e48 ldr.w r3, [pc, 0x484]                         |     
    0x00001e4c str.w fp, [sp, 0x7c]                          |     __asm ("str.w fp, [var_7ch]");
    0x00001e50 mov fp, r4                                    |     
    0x00001e52 add r3, pc                                    |     r3 = 0x4126;
    0x00001e54 str r3, [sp, 0x70]                            |     var_70h = r3;
                                                             | label_1:
    0x00001e56 ldr r0, [sp, 4]                               |     r0 = var_4h_2;
    0x00001e58 blx 0x1564                                    |     r0 = g_strv_length ();
    0x00001e5c cmp fp, r0                                    |     
                                                             |     if (fp >= r0) {
    0x00001e5e bhs.w 0x217a                                  |         goto label_32;
                                                             |     }
    0x00001e62 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00001e64 bne.w 0x228a                                  |         goto label_33;
                                                             |     }
    0x00001e68 ldr r3, [sp, 0x70]                            |     r3 = var_70h;
    0x00001e6a mov r1, r7                                    |     r1 = r7;
    0x00001e6c ldr.w r2, [sl]                                |     r2 = *(sl);
    0x00001e70 mov r0, r6                                    |     r0 = r6;
    0x00001e72 mov r5, r4                                    |     r5 = r4;
    0x00001e74 add.w sb, sp, 0x8c                            |     sb += var_8ch;
    0x00001e78 bl 0x1c3c                                     |     fcn_00001c3c (r0, r1, r2, r3);
    0x00001e7c add.w r8, sp, 0xa8                            |     r8 += var_a8h;
    0x00001e80 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r0 != 0) {
    0x00001e82 cbnz r0, 0x1eae                               |         goto label_34;
                                                             |     }
                                                             |     do {
    0x00001e84 ldr r3, [r6]                                  |         r3 = *(r6);
    0x00001e86 ldr r0, [r8], 4                               |         r0 = *(r8);
                                                             |         r8 += 4;
    0x00001e8a ldr r1, [r3, r5]                              |         r1 = *((r3 + r5));
    0x00001e8c blx 0x14ec                                    |         r0 = g_strcmp0 ();
                                                             |         if (r0 != 0) {
    0x00001e90 cbnz r0, 0x1eec                               |             goto label_35;
                                                             |         }
    0x00001e92 adds r5, 4                                    |         r5 += 4;
    0x00001e94 cmp r5, 0x1c                                  |         
                                                             |         if (r5 == 0x1c) {
    0x00001e96 beq 0x1eea                                    |             goto label_36;
                                                             |         }
    0x00001e98 ldr r3, [sb, 4]!                              |         r3 = var_90h;
    0x00001e9c mov r1, r7                                    |         r1 = r7;
    0x00001e9e ldr.w r2, [sl]                                |         r2 = *(sl);
    0x00001ea2 mov r0, r6                                    |         r0 = r6;
    0x00001ea4 bl 0x1c3c                                     |         r0 = fcn_00001c3c (r0, r1, r2, r3);
    0x00001ea8 mov r4, r0                                    |         r4 = r0;
    0x00001eaa cmp r0, 0                                     |         
    0x00001eac beq 0x1e84                                    |         
                                                             |     } while (r0 == 0);
                                                             | label_34:
    0x00001eae movs r5, 0                                    |     r5 = 0;
    0x00001eb0 ldr r0, [sp, 4]                               |     r0 = var_4h_2;
    0x00001eb2 mov r4, r5                                    |     r4 = r5;
    0x00001eb4 blx 0x16e8                                    |     fcn_000016e8 ();
    0x00001eb8 movs r1, 1                                    |     r1 = 1;
    0x00001eba mov r0, r6                                    |     r0 = r6;
    0x00001ebc mov fp, r1                                    |     
    0x00001ebe blx 0x15c4                                    |     g_ptr_array_free ();
                                                             |     do {
                                                             | label_2:
    0x00001ec2 mov r0, r4                                    |         r0 = r4;
    0x00001ec4 blx 0x1468                                    |         g_free ();
    0x00001ec8 mov r0, r5                                    |         r0 = r5;
    0x00001eca blx 0x1468                                    |         g_free ();
                                                             |         if (r7 != 0) {
    0x00001ece cbz r7, 0x1ed6                                |             
    0x00001ed0 mov r0, r7                                    |             r0 = r7;
    0x00001ed2 blx 0x16b8                                    |             fcn_000016b8 ();
                                                             |         }
    0x00001ed6 ldr r0, [sp, 0x80]                            |         r0 = var_80h;
                                                             |         if (r0 != 0) {
    0x00001ed8 cbz r0, 0x1ee2                                |             
    0x00001eda blx 0x16dc                                    |             fcn_000016dc ();
    0x00001ede movs r3, 0                                    |             r3 = 0;
    0x00001ee0 str r3, [sp, 0x80]                            |             var_80h = r3;
                                                             |         }
    0x00001ee2 ldr r0, [sp, 0x84]                            |         r0 = var_84h;
    0x00001ee4 blx 0x164c                                    |         fcn_0000164c ();
    0x00001ee8 b 0x1d76                                      |         goto label_0;
                                                             | label_36:
    0x00001eea movs r4, 1                                    |         r4 = 1;
                                                             | label_35:
    0x00001eec ldr r2, [r6, 4]                               |         r2 = *((r6 + 4));
    0x00001eee movs r1, 0                                    |         r1 = 0;
    0x00001ef0 mov r0, r6                                    |         r0 = r6;
    0x00001ef2 add.w fp, fp, 1                               |         
    0x00001ef6 add.w sl, sl, 4                               |         sl += var_88h;
    0x00001efa blx 0x1540                                    |         g_ptr_array_remove_range ();
    0x00001efe b 0x1e56                                      |         goto label_1;
                                                             | label_28:
    0x00001f00 ldr r1, [pc, 0x3d0]                           |         
    0x00001f02 mov.w fp, 1                                   |         
    0x00001f06 ldr r2, [pc, 0x3d0]                           |         
    0x00001f08 ldr r0, [sp, 0x28]                            |         r0 = var_28h;
    0x00001f0a add r1, pc                                    |         r1 = 0x41e2;
    0x00001f0c add r2, pc                                    |         r2 = 0x41ea;
    0x00001f0e adds r1, 0x64                                 |         r1 += 0x64;
    0x00001f10 blx 0x15f8                                    |         fcn_000015f8 ();
    0x00001f14 b 0x1d76                                      |         goto label_0;
                                                             | label_31:
    0x00001f16 blx 0x16e8                                    |         fcn_000016e8 ();
    0x00001f1a ldr r0, [sp, 4]                               |         r0 = var_4h_2;
    0x00001f1c movs r1, 1                                    |         r1 = 1;
    0x00001f1e blx 0x15c4                                    |         g_ptr_array_free ();
                                                             | label_3:
    0x00001f22 ldr r0, [sp, 0x28]                            |         r0 = var_28h;
    0x00001f24 blx 0x1534                                    |         keyfile_encode ();
    0x00001f28 ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x00001f2a mov r5, r0                                    |         r5 = r0;
    0x00001f2c cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00001f2e beq.w 0x2282                                  |             goto label_37;
                                                             |         }
                                                             | label_27:
    0x00001f32 ldr r2, [pc, 0x3a8]                           |         
    0x00001f34 mov r1, r5                                    |         r1 = r5;
    0x00001f36 ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x00001f38 mov r0, r7                                    |         r0 = r7;
    0x00001f3a add r2, pc                                    |         r2 = 0x421c;
    0x00001f3c blx 0x1510                                    |         g_key_file_set_string ();
    0x00001f40 ldr r3, [sp, 8]                               |         r3 = var_8h;
    0x00001f42 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00001f44 beq.w 0x227a                                  |             goto label_38;
                                                             |         }
                                                             | label_26:
    0x00001f48 ldr r2, [pc, 0x394]                           |         
    0x00001f4a mov r1, r5                                    |         r1 = r5;
    0x00001f4c ldr r3, [sp, 8]                               |         r3 = var_8h;
    0x00001f4e mov r0, r7                                    |         r0 = r7;
    0x00001f50 add r2, pc                                    |         r2 = 0x4234;
    0x00001f52 blx 0x1510                                    |         g_key_file_set_string ();
    0x00001f56 ldr r3, [sp, 0x30]                            |         r3 = var_30h;
    0x00001f58 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00001f5a beq.w 0x2272                                  |             goto label_39;
                                                             |         }
                                                             | label_25:
    0x00001f5e ldr r2, [pc, 0x384]                           |         
    0x00001f60 mov r1, r5                                    |         r1 = r5;
    0x00001f62 ldr r3, [sp, 0x30]                            |         r3 = var_30h;
    0x00001f64 mov r0, r7                                    |         r0 = r7;
    0x00001f66 add r2, pc                                    |         r2 = 0x4250;
    0x00001f68 blx 0x1510                                    |         g_key_file_set_string ();
    0x00001f6c ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x00001f6e cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00001f70 beq.w 0x226a                                  |             goto label_40;
                                                             |         }
                                                             | label_24:
    0x00001f74 ldr r2, [pc, 0x370]                           |         
    0x00001f76 mov r1, r5                                    |         r1 = r5;
    0x00001f78 ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x00001f7a mov r0, r7                                    |         r0 = r7;
    0x00001f7c add r2, pc                                    |         r2 = 0x4268;
    0x00001f7e blx 0x1510                                    |         g_key_file_set_string ();
    0x00001f82 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x00001f84 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00001f86 beq.w 0x2262                                  |             goto label_41;
                                                             |         }
                                                             | label_23:
    0x00001f8a ldr r2, [pc, 0x360]                           |         
    0x00001f8c mov r1, r5                                    |         r1 = r5;
    0x00001f8e ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x00001f90 mov r0, r7                                    |         r0 = r7;
    0x00001f92 add r2, pc                                    |         r2 = 0x4284;
    0x00001f94 blx 0x1510                                    |         g_key_file_set_string ();
    0x00001f98 ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x00001f9a cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00001f9c beq.w 0x225a                                  |             goto label_42;
                                                             |         }
                                                             | label_22:
    0x00001fa0 ldr r2, [pc, 0x34c]                           |         
    0x00001fa2 mov r1, r5                                    |         r1 = r5;
    0x00001fa4 ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x00001fa6 mov r0, r7                                    |         r0 = r7;
    0x00001fa8 add r2, pc                                    |         r2 = 0x429c;
    0x00001faa blx 0x1510                                    |         g_key_file_set_string ();
    0x00001fae ldr r3, [sp, 0x40]                            |         r3 = var_40h;
    0x00001fb0 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00001fb2 beq.w 0x2252                                  |             goto label_43;
                                                             |         }
                                                             | label_21:
    0x00001fb6 ldr r2, [pc, 0x33c]                           |         
    0x00001fb8 mov r1, r5                                    |         r1 = r5;
    0x00001fba ldr r3, [sp, 0x40]                            |         r3 = var_40h;
    0x00001fbc mov r0, r7                                    |         r0 = r7;
    0x00001fbe add r2, pc                                    |         r2 = 0x42b8;
    0x00001fc0 blx 0x1510                                    |         g_key_file_set_string ();
    0x00001fc4 ldr r3, [sp, 0x44]                            |         r3 = var_44h;
    0x00001fc6 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00001fc8 beq.w 0x224a                                  |             goto label_44;
                                                             |         }
                                                             | label_20:
    0x00001fcc ldr r2, [pc, 0x328]                           |         
    0x00001fce mov r1, r5                                    |         r1 = r5;
    0x00001fd0 ldr r3, [sp, 0x44]                            |         r3 = var_44h;
    0x00001fd2 mov r0, r7                                    |         r0 = r7;
    0x00001fd4 add r2, pc                                    |         r2 = 0x42d0;
    0x00001fd6 blx 0x1510                                    |         g_key_file_set_string ();
    0x00001fda ldr r3, [sp, 0x48]                            |         r3 = var_48h;
    0x00001fdc cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00001fde beq.w 0x2242                                  |             goto label_45;
                                                             |         }
                                                             | label_19:
    0x00001fe2 ldr r2, [pc, 0x318]                           |         
    0x00001fe4 mov r1, r5                                    |         r1 = r5;
    0x00001fe6 ldr r3, [sp, 0x48]                            |         r3 = var_48h;
    0x00001fe8 mov r0, r7                                    |         r0 = r7;
    0x00001fea add r2, pc                                    |         r2 = 0x42ec;
    0x00001fec blx 0x1510                                    |         g_key_file_set_string ();
    0x00001ff0 ldr r3, [sp, 0x4c]                            |         r3 = var_4ch;
    0x00001ff2 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00001ff4 beq.w 0x223a                                  |             goto label_46;
                                                             |         }
                                                             | label_18:
    0x00001ff8 ldr r2, [pc, 0x304]                           |         
    0x00001ffa mov r1, r5                                    |         r1 = r5;
    0x00001ffc ldr r3, [sp, 0x4c]                            |         r3 = var_4ch;
    0x00001ffe mov r0, r7                                    |         r0 = r7;
    0x00002000 add r2, pc                                    |         r2 = 0x4304;
    0x00002002 blx 0x1510                                    |         g_key_file_set_string ();
    0x00002006 ldr r3, [sp, 0x50]                            |         r3 = var_50h;
    0x00002008 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0000200a beq.w 0x2232                                  |             goto label_47;
                                                             |         }
                                                             | label_17:
    0x0000200e ldr r2, [pc, 0x2f4]                           |         
    0x00002010 mov r1, r5                                    |         r1 = r5;
    0x00002012 ldr r3, [sp, 0x50]                            |         r3 = var_50h;
    0x00002014 mov r0, r7                                    |         r0 = r7;
    0x00002016 add r2, pc                                    |         r2 = 0x4320;
    0x00002018 blx 0x1510                                    |         g_key_file_set_string ();
    0x0000201c ldr r3, [sp, 0x54]                            |         r3 = var_54h;
    0x0000201e cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00002020 beq.w 0x222a                                  |             goto label_48;
                                                             |         }
                                                             | label_16:
    0x00002024 ldr r2, [pc, 0x2e0]                           |         
    0x00002026 mov r1, r5                                    |         r1 = r5;
    0x00002028 ldr r3, [sp, 0x54]                            |         r3 = var_54h;
    0x0000202a mov r0, r7                                    |         r0 = r7;
    0x0000202c add r2, pc                                    |         r2 = 0x4338;
    0x0000202e blx 0x1510                                    |         g_key_file_set_string ();
    0x00002032 ldr r3, [sp, 0x58]                            |         r3 = var_58h;
    0x00002034 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00002036 beq.w 0x2222                                  |             goto label_49;
                                                             |         }
    0x00002038 strh r4, [r6, 6]                              |         *((r6 + 6)) = r4;
                                                             | label_15:
    0x0000203a ldr r2, [pc, 0x2d0]                           |         
    0x0000203c mov r1, r5                                    |         r1 = r5;
    0x0000203e ldr r3, [sp, 0x58]                            |         r3 = var_58h;
    0x00002040 mov r0, r7                                    |         r0 = r7;
    0x00002042 add r2, pc                                    |         r2 = 0x4354;
    0x00002044 blx 0x1510                                    |         g_key_file_set_string ();
    0x00002048 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x0000204a cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0000204c beq.w 0x221a                                  |             goto label_50;
                                                             |         }
                                                             | label_14:
    0x00002050 ldr r2, [pc, 0x2bc]                           |         
    0x00002052 mov r1, r5                                    |         r1 = r5;
    0x00002054 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00002056 mov r0, r7                                    |         r0 = r7;
    0x00002058 add r2, pc                                    |         r2 = 0x436c;
    0x0000205a blx 0x1510                                    |         g_key_file_set_string ();
    0x0000205e ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x00002060 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00002062 beq.w 0x2212                                  |             goto label_51;
                                                             |         }
                                                             | label_13:
    0x00002066 ldr r2, [pc, 0x2ac]                           |         
    0x00002068 mov r1, r5                                    |         r1 = r5;
    0x0000206a ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x0000206c mov r0, r7                                    |         r0 = r7;
    0x0000206e add r2, pc                                    |         r2 = 0x4388;
    0x00002070 blx 0x1510                                    |         g_key_file_set_string ();
    0x00002074 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x00002076 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00002078 beq.w 0x220a                                  |             goto label_52;
                                                             |         }
                                                             | label_12:
    0x0000207c ldr r2, [pc, 0x298]                           |         
    0x0000207e mov r1, r5                                    |         r1 = r5;
    0x00002080 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x00002082 mov r0, r7                                    |         r0 = r7;
    0x00002084 add r2, pc                                    |         r2 = 0x43a0;
    0x00002086 blx 0x1510                                    |         g_key_file_set_string ();
    0x0000208a ldr r3, [sp, 0x18]                            |         r3 = var_18h;
    0x0000208c cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0000208e beq.w 0x2202                                  |             goto label_53;
                                                             |         }
                                                             | label_11:
    0x00002092 ldr r2, [pc, 0x288]                           |         
    0x00002094 mov r1, r5                                    |         r1 = r5;
    0x00002096 ldr r3, [sp, 0x18]                            |         r3 = var_18h;
    0x00002098 mov r0, r7                                    |         r0 = r7;
    0x0000209a add r2, pc                                    |         r2 = 0x43bc;
    0x0000209c blx 0x1510                                    |         g_key_file_set_string ();
    0x000020a0 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x000020a2 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000020a4 beq.w 0x21fa                                  |             goto label_54;
                                                             |         }
                                                             | label_10:
    0x000020a8 ldr r2, [pc, 0x274]                           |         
    0x000020aa mov r1, r5                                    |         r1 = r5;
    0x000020ac ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x000020ae mov r0, r7                                    |         r0 = r7;
    0x000020b0 add r2, pc                                    |         r2 = 0x43d4;
    0x000020b2 blx 0x1510                                    |         g_key_file_set_string ();
    0x000020b6 ldr r3, [sp, 0x20]                            |         r3 = var_20h;
    0x000020b8 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000020ba beq.w 0x21f2                                  |             goto label_55;
                                                             |         }
                                                             | label_9:
    0x000020be ldr r2, [pc, 0x264]                           |         
    0x000020c0 mov r1, r5                                    |         r1 = r5;
    0x000020c2 ldr r3, [sp, 0x20]                            |         r3 = var_20h;
    0x000020c4 mov r0, r7                                    |         r0 = r7;
    0x000020c6 add r2, pc                                    |         r2 = 0x43f0;
    0x000020c8 blx 0x1510                                    |         g_key_file_set_string ();
    0x000020cc ldr r3, [sp, 0x5c]                            |         r3 = var_5ch;
    0x000020ce cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000020d0 beq.w 0x21ea                                  |             goto label_56;
                                                             |         }
                                                             | label_8:
    0x000020d4 ldr r2, [pc, 0x250]                           |         
    0x000020d6 mov r1, r5                                    |         r1 = r5;
    0x000020d8 ldr r3, [sp, 0x5c]                            |         r3 = var_5ch;
    0x000020da mov r0, r7                                    |         r0 = r7;
    0x000020dc add r2, pc                                    |         r2 = 0x4408;
    0x000020de blx 0x1510                                    |         g_key_file_set_string ();
    0x000020e2 ldr r3, [sp, 0x60]                            |         r3 = var_60h;
    0x000020e4 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000020e6 beq 0x21e2                                    |             goto label_57;
                                                             |         }
                                                             | label_7:
    0x000020e8 ldr r2, [pc, 0x240]                           |         
    0x000020ea mov r1, r5                                    |         r1 = r5;
    0x000020ec ldr r3, [sp, 0x60]                            |         r3 = var_60h;
    0x000020ee mov r0, r7                                    |         r0 = r7;
    0x000020f0 add r2, pc                                    |         r2 = 0x4420;
    0x000020f2 blx 0x1510                                    |         g_key_file_set_string ();
    0x000020f6 ldr r3, [sp, 0x64]                            |         r3 = var_64h;
    0x000020f8 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000020fa beq 0x21da                                    |             goto label_58;
                                                             |         }
                                                             | label_6:
    0x000020fc ldr r2, [pc, 0x230]                           |         
    0x000020fe mov r1, r5                                    |         r1 = r5;
    0x00002100 ldr r3, [sp, 0x64]                            |         r3 = var_64h;
    0x00002102 mov r0, r7                                    |         r0 = r7;
    0x00002104 add r2, pc                                    |         r2 = 0x4438;
    0x00002106 blx 0x1510                                    |         g_key_file_set_string ();
    0x0000210a ldr r3, [sp, 0x68]                            |         r3 = var_68h;
    0x0000210c cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0000210e beq 0x21d2                                    |             goto label_59;
                                                             |         }
                                                             | label_5:
    0x00002110 ldr r2, [pc, 0x220]                           |         
    0x00002112 mov r1, r5                                    |         r1 = r5;
    0x00002114 ldr r3, [sp, 0x68]                            |         r3 = var_68h;
    0x00002116 mov r0, r7                                    |         r0 = r7;
    0x00002118 add r2, pc                                    |         r2 = 0x4450;
    0x0000211a blx 0x1510                                    |         g_key_file_set_string ();
    0x0000211e ldr r3, [sp, 0x6c]                            |         r3 = var_6ch;
    0x00002120 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00002122 beq 0x21ca                                    |             goto label_60;
                                                             |         }
                                                             | label_4:
    0x00002124 ldr r2, [pc, 0x210]                           |         
    0x00002126 mov r1, r5                                    |         r1 = r5;
    0x00002128 ldr r3, [sp, 0x6c]                            |         r3 = var_6ch;
    0x0000212a mov r0, r7                                    |         r0 = r7;
    0x0000212c add r2, pc                                    |         r2 = 0x4468;
    0x0000212e blx 0x1510                                    |         g_key_file_set_string ();
    0x00002132 ldr r2, [pc, 0x208]                           |         
    0x00002134 mov r1, r5                                    |         r1 = r5;
    0x00002136 ldr r3, [sp, 0x74]                            |         r3 = var_74h;
    0x00002138 mov r0, r7                                    |         r0 = r7;
    0x0000213a add r2, pc                                    |         r2 = 0x447c;
    0x0000213c blx 0x1510                                    |         g_key_file_set_string ();
    0x00002140 movs r2, 0                                    |         r2 = 0;
    0x00002142 add r1, sp, 0x88                              |         r1 += var_88h;
    0x00002144 mov r0, r7                                    |         r0 = r7;
    0x00002146 blx 0x15dc                                    |         g_key_file_to_data ();
    0x0000214a ldr r3, [sp, 0x78]                            |         r3 = var_78h;
    0x0000214c mov r4, r0                                    |         r4 = r0;
    0x0000214e mov r1, r0                                    |         r1 = r0;
    0x00002150 ldr r2, [sp, 0x88]                            |         r2 = var_88h;
    0x00002152 ldr r0, [sp, 0x24]                            |         r0 = var_24h;
    0x00002154 blx 0x161c                                    |         r0 = fcn_0000161c ();
    0x00002158 cmp r0, 0                                     |         
    0x0000215a bne.w 0x1ec2                                  |         
                                                             |     } while (r0 != 0);
    0x0000215e ldr r3, [sp, 0x80]                            |     r3 = var_80h;
    0x00002160 mov.w fp, 1                                   |     
    0x00002164 ldr r0, [pc, 0x1d8]                           |     
    0x00002166 ldr r1, [sp, 0x24]                            |     r1 = var_24h;
    0x00002168 ldr r2, [r3, 8]                               |     r2 = *((r3 + 8));
    0x0000216a add r0, pc                                    |     r0 = 0x44ae;
    0x0000216c blx 0x1594                                    |     r0 = g_strdup_printf ()
    0x00002170 mov r1, r0                                    |     r1 = r0;
    0x00002172 movs r0, 1                                    |     r0 = 1;
    0x00002174 blx 0x14d4                                    |     fcn_000014d4 ();
    0x00002178 b 0x1ec2                                      |     goto label_2;
                                                             | label_32:
    0x0000217a ldr r0, [sp, 4]                               |     r0 = var_4h_2;
    0x0000217c ldr.w fp, [sp, 0x7c]                          |     fp = var_7ch;
    0x00002180 blx 0x16e8                                    |     fcn_000016e8 ();
    0x00002184 mov r0, r6                                    |     r0 = r6;
    0x00002186 movs r1, 1                                    |     r1 = 1;
    0x00002188 blx 0x15c4                                    |     g_ptr_array_free ();
    0x0000218c cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x0000218e beq.w 0x1f22                                  |         goto label_3;
                                                             |     }
                                                             |     do {
    0x00002192 ldr r0, [pc, 0x1b0]                           |         
    0x00002194 movs r5, 0                                    |         r5 = 0;
    0x00002196 mov.w fp, 1                                   |         
    0x0000219a mov r4, r5                                    |         r4 = r5;
    0x0000219c add r0, pc                                    |         r0 = 0x44e6;
    0x0000219e blx 0x1594                                    |         r0 = g_strdup_printf ()
    0x000021a2 mov r1, r0                                    |         r1 = r0;
    0x000021a4 movs r0, 7                                    |         r0 = 7;
    0x000021a6 blx 0x14d4                                    |         fcn_000014d4 ();
    0x000021aa b 0x1ec2                                      |         goto label_2;
                                                             | label_30:
    0x000021ac ldr r0, [pc, 0x198]                           |         
    0x000021ae mov r3, r6                                    |         r3 = r6;
    0x000021b0 ldr.w r2, [r8, 4]                             |         r2 = *((r8 + 4));
    0x000021b4 mov r4, r5                                    |         r4 = r5;
    0x000021b6 ldr r1, [sp, 0x24]                            |         r1 = var_24h;
    0x000021b8 add r0, pc                                    |         r0 = 0x4504;
    0x000021ba blx 0x1594                                    |         r0 = g_strdup_printf ()
    0x000021be mov r1, r0                                    |         r1 = r0;
    0x000021c0 movs r0, 1                                    |         r0 = 1;
    0x000021c2 mov fp, r0                                    |         
    0x000021c4 blx 0x14d4                                    |         fcn_000014d4 ();
    0x000021c8 b 0x1ec2                                      |         goto label_2;
                                                             | label_60:
    0x000021ca ldr r3, [pc, 0x180]                           |         
    0x000021cc add r3, pc                                    |         r3 = 0x451e;
    0x000021ce str r3, [sp, 0x6c]                            |         var_6ch = r3;
    0x000021d0 b 0x2124                                      |         goto label_4;
                                                             | label_59:
    0x000021d2 ldr r3, [pc, 0x17c]                           |         
    0x000021d4 add r3, pc                                    |         r3 = 0x452a;
    0x000021d6 str r3, [sp, 0x68]                            |         var_68h = r3;
    0x000021d8 b 0x2110                                      |         goto label_5;
                                                             | label_58:
    0x000021da ldr r3, [pc, 0x178]                           |         
    0x000021dc add r3, pc                                    |         r3 = 0x4536;
    0x000021de str r3, [sp, 0x64]                            |         var_64h = r3;
    0x000021e0 b 0x20fc                                      |         goto label_6;
                                                             | label_57:
    0x000021e2 ldr r3, [pc, 0x174]                           |         
    0x000021e4 add r3, pc                                    |         r3 = 0x4542;
    0x000021e6 str r3, [sp, 0x60]                            |         var_60h = r3;
    0x000021e8 b 0x20e8                                      |         goto label_7;
                                                             | label_56:
    0x000021ea ldr r3, [pc, 0x170]                           |         
    0x000021ec add r3, pc                                    |         r3 = 0x454e;
    0x000021ee str r3, [sp, 0x5c]                            |         var_5ch = r3;
    0x000021f0 b 0x20d4                                      |         goto label_8;
                                                             | label_55:
    0x000021f2 ldr r3, [pc, 0x16c]                           |         
    0x000021f4 add r3, pc                                    |         r3 = 0x455a;
    0x000021f6 str r3, [sp, 0x20]                            |         var_20h = r3;
    0x000021f8 b 0x20be                                      |         goto label_9;
                                                             | label_54:
    0x000021fa ldr r3, [pc, 0x168]                           |         
    0x000021fc add r3, pc                                    |         r3 = 0x4566;
    0x000021fe str r3, [sp, 0x1c]                            |         var_1ch = r3;
    0x00002200 b 0x20a8                                      |         goto label_10;
                                                             | label_53:
    0x00002202 ldr r3, [pc, 0x164]                           |         
    0x00002204 add r3, pc                                    |         r3 = 0x4572;
    0x00002206 str r3, [sp, 0x18]                            |         var_18h = r3;
    0x00002208 b 0x2092                                      |         goto label_11;
                                                             | label_52:
    0x0000220a ldr r3, [pc, 0x160]                           |         
    0x0000220c add r3, pc                                    |         r3 = 0x457e;
    0x0000220e str r3, [sp, 0x14]                            |         var_14h = r3;
    0x00002210 b 0x207c                                      |         goto label_12;
                                                             | label_51:
    0x00002212 ldr r3, [pc, 0x15c]                           |         
    0x00002214 add r3, pc                                    |         r3 = 0x458a;
    0x00002216 str r3, [sp, 0x10]                            |         var_10h = r3;
    0x00002218 b 0x2066                                      |         goto label_13;
                                                             | label_50:
    0x0000221a ldr r3, [pc, 0x158]                           |         
    0x0000221c add r3, pc                                    |         r3 = 0x4596;
    0x0000221e str r3, [sp, 0xc]                             |         var_ch = r3;
    0x00002220 b 0x2050                                      |         goto label_14;
                                                             | label_49:
    0x00002222 ldr r3, [pc, 0x154]                           |         
    0x00002224 add r3, pc                                    |         r3 = 0x45a2;
    0x00002226 str r3, [sp, 0x58]                            |         var_58h = r3;
    0x00002228 b 0x203a                                      |         goto label_15;
                                                             | label_48:
    0x0000222a ldr r3, [pc, 0x150]                           |         
    0x0000222c add r3, pc                                    |         r3 = 0x45ae;
    0x0000222e str r3, [sp, 0x54]                            |         var_54h = r3;
    0x00002230 b 0x2024                                      |         goto label_16;
                                                             | label_47:
    0x00002232 ldr r3, [pc, 0x14c]                           |         
    0x00002234 add r3, pc                                    |         r3 = 0x45ba;
    0x00002236 str r3, [sp, 0x50]                            |         var_50h = r3;
    0x00002238 b 0x200e                                      |         goto label_17;
                                                             | label_46:
    0x0000223a ldr r3, [pc, 0x148]                           |         
    0x0000223c add r3, pc                                    |         r3 = 0x45c6;
    0x0000223e str r3, [sp, 0x4c]                            |         var_4ch = r3;
    0x00002240 b 0x1ff8                                      |         goto label_18;
                                                             | label_45:
    0x00002242 ldr r3, [pc, 0x144]                           |         
    0x00002244 add r3, pc                                    |         r3 = 0x45d2;
    0x00002246 str r3, [sp, 0x48]                            |         var_48h = r3;
    0x00002248 b 0x1fe2                                      |         goto label_19;
                                                             | label_44:
    0x0000224a ldr r3, [pc, 0x140]                           |         
    0x0000224c add r3, pc                                    |         r3 = 0x45de;
    0x0000224e str r3, [sp, 0x44]                            |         var_44h = r3;
    0x00002250 b 0x1fcc                                      |         goto label_20;
                                                             | label_43:
    0x00002252 ldr r3, [pc, 0x13c]                           |         
    0x00002254 add r3, pc                                    |         r3 = 0x45ea;
    0x00002256 str r3, [sp, 0x40]                            |         var_40h = r3;
    0x00002258 b 0x1fb6                                      |         goto label_21;
                                                             | label_42:
    0x0000225a ldr r3, [pc, 0x138]                           |         
    0x0000225c add r3, pc                                    |         r3 = 0x45f6;
    0x0000225e str r3, [sp, 0x3c]                            |         var_3ch = r3;
    0x00002260 b 0x1fa0                                      |         goto label_22;
                                                             | label_41:
    0x00002262 ldr r3, [pc, 0x134]                           |         
    0x00002264 add r3, pc                                    |         r3 = 0x4602;
    0x00002266 str r3, [sp, 0x38]                            |         var_38h = r3;
    0x00002268 b 0x1f8a                                      |         goto label_23;
                                                             | label_40:
    0x0000226a ldr r3, [pc, 0x130]                           |         
    0x0000226c add r3, pc                                    |         r3 = 0x460e;
    0x0000226e str r3, [sp, 0x34]                            |         var_34h = r3;
    0x00002270 b 0x1f74                                      |         goto label_24;
                                                             | label_39:
    0x00002272 ldr r3, [pc, 0x12c]                           |         
    0x00002274 add r3, pc                                    |         r3 = 0x461a;
    0x00002276 str r3, [sp, 0x30]                            |         var_30h = r3;
    0x00002278 b 0x1f5e                                      |         goto label_25;
                                                             | label_38:
    0x0000227a ldr r3, [pc, 0x128]                           |         
    0x0000227c add r3, pc                                    |         r3 = 0x4626;
    0x0000227e str r3, [sp, 8]                               |         var_8h = r3;
    0x00002280 b 0x1f48                                      |         goto label_26;
                                                             | label_37:
    0x00002282 ldr r3, [pc, 0x124]                           |         
    0x00002284 add r3, pc                                    |         r3 = 0x4632;
    0x00002286 str r3, [sp, 0x2c]                            |         var_2ch = r3;
    0x00002288 b 0x1f32                                      |         goto label_27;
                                                             | label_33:
    0x0000228a ldr r0, [sp, 4]                               |         r0 = var_4h_2;
    0x0000228c blx 0x16e8                                    |         fcn_000016e8 ();
    0x00002290 movs r1, 1                                    |         r1 = 1;
    0x00002292 mov r0, r6                                    |         r0 = r6;
    0x00002294 blx 0x15c4                                    |         g_ptr_array_free ();
    0x00002298 b 0x2192                                      |         
                                                             |     } while (1);
                                                             | label_29:
    0x0000229a blx 0x1670                                    |     fcn_00001670 ();
    0x0000229e nop                                           |     
    0x000022a0 adds r2, 8                                    |     r2 += 8;
    0x000022a2 movs r1, r0                                   |     r1 = r0;
    0x000022a4 lsls r4, r2, 4                                |     r4 = r2 << 4;
    0x000022a6 movs r0, r0                                   |     
    0x000022a8 adds r1, 0xee                                 |     r1 += 0xee;
    0x000022aa movs r1, r0                                   |     r1 = r0;
    0x000022ac adds r1, 0x62                                 |     r1 += 0x62;
    0x000022ae movs r1, r0                                   |     r1 = r0;
    0x000022b0 adds r0, r4, r5                               |     r0 = r4 + r5;
    0x000022b2 movs r0, r0                                   |     
    0x000022b4 adds r6, r2, r5                               |     r6 = r2 + r5;
    0x000022b6 movs r0, r0                                   |     
    0x000022b8 adds r2, r2, r5                               |     r2 += r5;
    0x000022ba movs r0, r0                                   |     
    0x000022bc adds r2, r2, r5                               |     r2 += r5;
    0x000022be movs r0, r0                                   |     
    0x000022c0 adds r6, r1, r5                               |     r6 = r1 + r5;
    0x000022c2 movs r0, r0                                   |     
    0x000022c4 adds r2, r1, r5                               |     r2 = r1 + r5;
    0x000022c6 movs r0, r0                                   |     
    0x000022c8 adds r2, r1, r5                               |     r2 = r1 + r5;
    0x000022ca movs r0, r0                                   |     
    0x000022cc lsls r4, r0, 4                                |     r4 = r0 << 4;
    0x000022ce movs r0, r0                                   |     
    0x000022d0 adds r2, r0, r3                               |     r2 = r0 + r3;
    0x000022d2 movs r0, r0                                   |     
    0x000022d4 adds r2, r7, 3                                |     r2 = r7 + 3;
    0x000022d6 movs r0, r0                                   |     
    0x000022d8 asrs r0, r1, 0x1c                             |     r0 = r1 >> 0x1c;
    0x000022da movs r0, r0                                   |     
    0x000022dc adds r2, r4, r1                               |     r2 = r4 + r1;
    0x000022de movs r0, r0                                   |     
    0x000022e0 asrs r4, r0, 0x1f                             |     r4 = r0 >> 0x1f;
    0x000022e2 movs r0, r0                                   |     
    0x000022e4 adds r6, r7, r0                               |     r6 = r7 + r0;
    0x000022e6 movs r0, r0                                   |     
    0x000022e8 adds r0, r6, r0                               |     r0 = r6 + r0;
    0x000022ea movs r0, r0                                   |     
    0x000022ec adds r2, r5, r0                               |     r2 = r5 + r0;
    0x000022ee movs r0, r0                                   |     
    0x000022f0 adds r0, r3, r0                               |     r0 = r3 + r0;
    0x000022f2 movs r0, r0                                   |     
    0x000022f4 adds r2, r1, r0                               |     r2 = r1 + r0;
    0x000022f6 movs r0, r0                                   |     
    0x000022f8 adds r4, r0, r0                               |     r4 = r0 + r0;
    0x000022fa movs r0, r0                                   |     
    0x000022fc asrs r2, r6, 0x1f                             |     r2 = r6 >> 0x1f;
    0x000022fe movs r0, r0                                   |     
    0x00002300 asrs r4, r4, 0x1f                             |     r4 >>= 0x1f;
    0x00002302 movs r0, r0                                   |     
    0x00002304 asrs r2, r2, 0x1f                             |     r2 >>= 0x1f;
    0x00002306 movs r0, r0                                   |     
    0x00002308 asrs r0, r0, 0x1f                             |     r0 >>= 0x1f;
    0x0000230a movs r0, r0                                   |     
    0x0000230c asrs r2, r6, 0x1e                             |     r2 = r6 >> 0x1e;
    0x0000230e movs r0, r0                                   |     
    0x00002310 asrs r0, r7, 0x1b                             |     r0 = r7 >> 0x1b;
    0x00002312 movs r0, r0                                   |     
    0x00002314 asrs r6, r4, 0x1b                             |     r6 = r4 >> 0x1b;
    0x00002316 movs r0, r0                                   |     
    0x00002318 asrs r0, r3, 0x1b                             |     r0 = r3 >> 0x1b;
    0x0000231a movs r0, r0                                   |     
    0x0000231c asrs r6, r0, 0x1b                             |     r6 = r0 >> 0x1b;
    0x0000231e movs r0, r0                                   |     
    0x00002320 asrs r4, r6, 0x1a                             |     r4 = r6 >> 0x1a;
    0x00002322 movs r0, r0                                   |     
    0x00002324 asrs r6, r4, 0x1a                             |     r6 = r4 >> 0x1a;
    0x00002326 movs r0, r0                                   |     
    0x00002328 asrs r0, r4, 0x1c                             |     r0 = r4 >> 0x1c;
    0x0000232a movs r0, r0                                   |     
    0x0000232c asrs r0, r3, 0x1c                             |     r0 = r3 >> 0x1c;
    0x0000232e movs r0, r0                                   |     
    0x00002330 asrs r0, r2, 0x1c                             |     r0 = r2 >> 0x1c;
    0x00002332 movs r0, r0                                   |     
    0x00002334 asrs r4, r1, 0x1c                             |     r4 = r1 >> 0x1c;
    0x00002336 movs r0, r0                                   |     
    0x00002338 asrs r4, r6, 0x1b                             |     r4 = r6 >> 0x1b;
    0x0000233a movs r0, r0                                   |     
    0x0000233c adds r6, r1, 1                                |     r6 = r1 + 1;
    0x0000233e movs r0, r0                                   |     
    0x00002340 asrs r6, r0, 0x1b                             |     r6 = r0 >> 0x1b;
    0x00002342 movs r0, r0                                   |     
    0x00002344 asrs r0, r3, 0x17                             |     r0 = r3 >> 0x17;
    0x00002346 movs r0, r0                                   |     
    0x00002348 asrs r0, r7, 0x15                             |     r0 = r7 >> 0x15;
    0x0000234a movs r0, r0                                   |     
    0x0000234c asrs r4, r1, 0x10                             |     r4 = r1 >> 0x10;
    0x0000234e movs r0, r0                                   |     
    0x00002350 asrs r4, r0, 0x10                             |     r4 = r0 >> 0x10;
    0x00002352 movs r0, r0                                   |     
    0x00002354 asrs r4, r7, 0xf                              |     r4 = r7 >> 0xf;
    0x00002356 movs r0, r0                                   |     
    0x00002358 asrs r4, r6, 0xf                              |     r4 = r6 >> 0xf;
    0x0000235a movs r0, r0                                   |     
    0x0000235c asrs r4, r5, 0xf                              |     r4 = r5 >> 0xf;
    0x0000235e movs r0, r0                                   |     
    0x00002360 asrs r4, r4, 0xf                              |     r4 >>= 0xf;
    0x00002362 movs r0, r0                                   |     
    0x00002364 asrs r4, r3, 0xf                              |     r4 = r3 >> 0xf;
    0x00002366 movs r0, r0                                   |     
    0x00002368 asrs r4, r2, 0xf                              |     r4 = r2 >> 0xf;
    0x0000236a movs r0, r0                                   |     
    0x0000236c asrs r4, r1, 0xf                              |     r4 = r1 >> 0xf;
    0x0000236e movs r0, r0                                   |     
    0x00002370 asrs r4, r0, 0xf                              |     r4 = r0 >> 0xf;
    0x00002372 movs r0, r0                                   |     
    0x00002374 asrs r4, r7, 0xe                              |     r4 = r7 >> 0xe;
    0x00002376 movs r0, r0                                   |     
    0x00002378 asrs r4, r6, 0xe                              |     r4 = r6 >> 0xe;
    0x0000237a movs r0, r0                                   |     
    0x0000237c asrs r4, r5, 0xe                              |     r4 = r5 >> 0xe;
    0x0000237e movs r0, r0                                   |     
    0x00002380 asrs r4, r4, 0xe                              |     r4 >>= 0xe;
    0x00002382 movs r0, r0                                   |     
    0x00002384 asrs r4, r3, 0xe                              |     r4 = r3 >> 0xe;
    0x00002386 movs r0, r0                                   |     
    0x00002388 asrs r4, r2, 0xe                              |     r4 = r2 >> 0xe;
    0x0000238a movs r0, r0                                   |     
    0x0000238c asrs r4, r1, 0xe                              |     r4 = r1 >> 0xe;
    0x0000238e movs r0, r0                                   |     
    0x00002390 asrs r4, r0, 0xe                              |     r4 = r0 >> 0xe;
    0x00002392 movs r0, r0                                   |     
    0x00002394 asrs r4, r7, 0xd                              |     r4 = r7 >> 0xd;
    0x00002396 movs r0, r0                                   |     
    0x00002398 asrs r4, r6, 0xd                              |     r4 = r6 >> 0xd;
    0x0000239a movs r0, r0                                   |     
    0x0000239c asrs r4, r5, 0xd                              |     r4 = r5 >> 0xd;
    0x0000239e movs r0, r0                                   |     
    0x000023a0 asrs r4, r4, 0xd                              |     r4 >>= 0xd;
    0x000023a2 movs r0, r0                                   |     
    0x000023a4 asrs r4, r3, 0xd                              |     r4 = r3 >> 0xd;
    0x000023a6 movs r0, r0                                   |     
    0x000023a8 asrs r4, r2, 0xd                              |     r4 = r2 >> 0xd;
    0x000023aa movs r0, r0                                   |     
                                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libcertutil.so.1.0 @ 0x301c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.cert_util_target_dir_get_owner ()    | void cert_util_target_dir_get_owner (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                     |     int16_t var_4h;
                                                     |     int16_t var_ch;
                                                     |     int16_t var_0h;
                                                     |     int16_t var_18h;
                                                     |     int16_t var_1ch;
                                                     |     int16_t var_5ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r2 = arg3;
    0x0000301c ssub8mi fp, r7, r0                    |     __asm ("ssub8mi fp, r7, r0");
    0x00003020 ldr r2, [pc, 0xb8]                    |     
    0x00003022 sub sp, 0x64                          |     
    0x00003024 ldr r3, [pc, 0xb8]                    |     r3 = *(0x30e0);
    0x00003026 add r2, pc                            |     r2 = 0x6106;
    0x00003028 ldr r3, [r2, r3]                      |     
    0x0000302a ldr r3, [r3]                          |     r3 = *(0x6106);
    0x0000302c str r3, [sp, 0x5c]                    |     var_5ch = r3;
    0x0000302e mov.w r3, 0                           |     r3 = 0;
                                                     |     if (r0 == 0) {
    0x00003032 cbz r0, 0x3080                        |         goto label_2;
                                                     |     }
    0x00003034 mov r6, r1                            |     r6 = r1;
                                                     |     if (r1 == 0) {
    0x00003036 cbz r1, 0x3094                        |         goto label_3;
                                                     |     }
    0x00003038 cmp r7, 0                             |     
                                                     |     if (r7 == 0) {
    0x0000303a beq 0x30aa                            |         goto label_4;
                                                     |     }
    0x0000303c mov r4, r0                            |     r4 = r0;
    0x0000303e blx 0x15ac                            |     fcn_000015ac ();
    0x00003042 mov r1, r4                            |     r1 = r4;
    0x00003044 movs r2, 0                            |     r2 = 0;
    0x00003046 blx 0x1528                            |     g_strconcat ();
    0x0000304a mov r1, sp                            |     r1 = sp;
    0x0000304c mov r5, r0                            |     r5 = r0;
    0x0000304e blx 0x1718                            |     r0 = fcn_00001718 ();
    0x00003052 mov r4, r0                            |     r4 = r0;
    0x00003054 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00003056 bne 0x30c0                            |         goto label_5;
                                                     |     }
    0x00003058 ldr r3, [sp, 0x18]                    |     r3 = var_18h;
    0x0000305a str r3, [r6]                          |     *(r6) = r3;
    0x0000305c ldr r3, [sp, 0x1c]                    |     r3 = var_1ch;
    0x0000305e str r3, [r7]                          |     *(r7) = r3;
                                                     | label_1:
    0x00003060 mov r0, r5                            |     r0 = r5;
    0x00003062 blx 0x1468                            |     g_free ();
                                                     |     do {
                                                     | label_0:
    0x00003066 ldr r2, [pc, 0x7c]                    |         
    0x00003068 ldr r3, [pc, 0x74]                    |         r3 = *(0x30e0);
    0x0000306a add r2, pc                            |         r2 = 0x6154;
    0x0000306c ldr r3, [r2, r3]                      |         r3 = *(0x6154);
    0x0000306e ldr r2, [r3]                          |         r2 = *(0x6154);
    0x00003070 ldr r3, [sp, 0x5c]                    |         r3 = var_5ch;
    0x00003072 eors r2, r3                           |         r2 ^= r3;
    0x00003074 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x00003078 bne 0x30d6                            |             goto label_6;
                                                     |         }
    0x0000307a mov r0, r4                            |         r0 = r4;
    0x0000307c add sp, 0x64                          |         
    0x0000307e pop {r4, r5, r6, r7, pc}              |         
                                                     | label_2:
    0x00003080 ldr r1, [pc, 0x64]                    |         
    0x00003082 movs r4, 1                            |         r4 = 1;
    0x00003084 ldr r2, [pc, 0x64]                    |         
    0x00003086 add r1, pc                            |         
    0x00003088 add r2, pc                            |         r2 = 0x6178;
    0x0000308a add.w r1, r1, 0x120                   |         r1 = 0x6292;
    0x0000308e blx 0x15f8                            |         fcn_000015f8 ();
    0x00003092 b 0x3066                              |         
                                                     |     } while (1);
                                                     | label_3:
    0x00003094 ldr r1, [pc, 0x58]                    |     
    0x00003096 mov r0, r6                            |     r0 = r6;
    0x00003098 ldr r2, [pc, 0x58]                    |     
    0x0000309a movs r4, 1                            |     r4 = 1;
    0x0000309c add r1, pc                            |     
    0x0000309e add r2, pc                            |     r2 = 0x6196;
    0x000030a0 add.w r1, r1, 0x120                   |     r1 = 0x62b0;
    0x000030a4 blx 0x15f8                            |     fcn_000015f8 ();
    0x000030a8 b 0x3066                              |     goto label_0;
                                                     | label_4:
    0x000030aa ldr r1, [pc, 0x4c]                    |     
    0x000030ac mov r0, r7                            |     r0 = r7;
    0x000030ae ldr r2, [pc, 0x4c]                    |     
    0x000030b0 movs r4, 1                            |     r4 = 1;
    0x000030b2 add r1, pc                            |     
    0x000030b4 add r2, pc                            |     r2 = 0x61b6;
    0x000030b6 add.w r1, r1, 0x120                   |     r1 = 0x62d0;
    0x000030ba blx 0x15f8                            |     fcn_000015f8 ();
    0x000030be b 0x3066                              |     goto label_0;
                                                     | label_5:
    0x000030c0 ldr r0, [pc, 0x3c]                    |     
    0x000030c2 mov r1, r5                            |     r1 = r5;
    0x000030c4 add r0, pc                            |     r0 = 0x61c8;
    0x000030c6 blx 0x1594                            |     r0 = g_strdup_printf ()
    0x000030ca mov r1, r0                            |     r1 = r0;
    0x000030cc movs r0, 1                            |     r0 = 1;
    0x000030ce mov r4, r0                            |     r4 = r0;
    0x000030d0 blx 0x14d4                            |     fcn_000014d4 ();
    0x000030d4 b 0x3060                              |     goto label_1;
                                                     | label_6:
    0x000030d6 blx 0x1670                            |     fcn_00001670 ();
    0x000030da nop                                   |     
    0x000030dc subs r2, r7, 2                        |     r2 = r7 - 2;
    0x000030de movs r1, r0                           |     r1 = r0;
    0x000030e0 lsls r4, r2, 4                        |     r4 = r2 << 4;
    0x000030e2 movs r0, r0                           |     
    0x000030e4 subs r6, r6, 1                        |     r6--;
    0x000030e6 movs r1, r0                           |     r1 = r0;
    0x000030e8 lsrs r6, r7, 0xd                      |     r6 = r7 >> 0xd;
    0x000030ea movs r0, r0                           |     
    0x000030ec lsrs r0, r5, 9                        |     r0 = r5 >> 9;
    0x000030ee movs r0, r0                           |     
    0x000030f0 lsrs r0, r5, 0xd                      |     r0 = r5 >> 0xd;
    0x000030f2 movs r0, r0                           |     
    0x000030f4 lsrs r2, r4, 9                        |     r2 = r4 >> 9;
    0x000030f6 movs r0, r0                           |     
    0x000030f8 lsrs r2, r2, 0xd                      |     r2 >>= 0xd;
    0x000030fa movs r0, r0                           |     
    0x000030fc lsrs r4, r3, 9                        |     r4 = r3 >> 9;
    0x000030fe movs r0, r0                           |     
    0x00003100 lsrs r4, r3, 9                        |     r4 = r3 >> 9;
    0x00003102 movs r0, r0                           |     
                                                     | }

[*] Function printf used 21 times libcertutil.so.1.0