[*] Binary protection state of libmbedcrypto.so.2.2.1

  
  	Partial RELRO  No Canary found   NX disabled  DSO          No RPATH     No RUNPATH   Symbols


[*] Function printf tear down of libmbedcrypto.so.2.2.1

    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0xac0c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.mbedtls_aes_self_test ()                         | void mbedtls_aes_self_test (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_14h;
                                                                 |     void * s1;
                                                                 |     char * format;
                                                                 |     int32_t var_20h;
                                                                 |     void * s2;
                                                                 |     char * var_28h;
                                                                 |     int32_t var_2ch;
                                                                 |     int32_t var_30h;
                                                                 |     int32_t var_34h;
                                                                 |     int32_t var_3ch;
                                                                 |     int32_t var_40h;
                                                                 |     int32_t var_4h_2;
                                                                 |     int32_t var_8h_2;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_50h;
                                                                 |     int32_t var_54h;
                                                                 |     int32_t var_58h;
                                                                 |     int32_t var_5ch;
                                                                 |     int32_t var_60h;
                                                                 |     int32_t var_70h;
                                                                 |     void * s;
                                                                 |     void * var_a0h;
                                                                 |     int32_t var_a4h;
                                                                 |     int32_t var_a8h;
                                                                 |     int32_t var_ach;
                                                                 |     int32_t var_e0h;
                                                                 |     int32_t var_1fch;
                                                                 |     r0 = arg1;
    0x0000ac0c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000ac10 ldr sb, [pc, 0x7fc]                               |     
    0x0000ac14 sub sp, sp, 0x1fc                                 |     
    0x0000ac18 add r3, sp, 0x80                                  |     r3 += s;
    0x0000ac1c str r0, [sp, 0x14]                                |     var_14h = r0;
    0x0000ac20 mov r2, 0x20                                      |     r2 = 0x20;
    0x0000ac24 mov r0, r3                                        |     r0 = r3;
    0x0000ac28 mov r1, 0                                         |     r1 = 0;
    0x0000ac2c add r5, sp, 0xe0                                  |     r5 += var_e0h;
    0x0000ac30 str r3, [sp, 0x18]                                |     s1 = r3;
    0x0000ac34 bl 0x8c28                                         |     memset (r0, r1, r2);
    0x0000ac38 mov r0, r5                                        |     r0 = r5;
    0x0000ac3c bl 0x8cc4                                         |     fcn_00008cc4 ();
    0x0000ac40 ldr sl, [pc, 0x7d0]                               |     sl = *(0xb414);
    0x0000ac44 add sb, pc, sb                                    |     sb = pc + sb;
    0x0000ac48 add sl, pc, sl                                    |     sl = pc + sl;
    0x0000ac4c add sb, sb, 0x30                                  |     sb = 0xb440;
    0x0000ac50 mov r8, 0                                         |     r8 = 0;
    0x0000ac54 add r4, sp, 0xa0                                  |     r4 += var_a0h;
                                                                 | label_1:
    0x0000ac58 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000ac5c asr r7, r8, 1                                     |     r7 = r8 >> 1;
    0x0000ac60 add r6, r7, 2                                     |     r6 = r7 + 2;
    0x0000ac64 cmp r3, 0                                         |     
    0x0000ac68 lsl r6, r6, 6                                     |     r6 <<= 6;
    0x0000ac6c and fp, r8, 1                                     |     
                                                                 |     if (r3 != 0) {
    0x0000ac70 beq 0xac90                                        |         
    0x0000ac74 cmp fp, 0                                         |         
                                                                 |         if (fp != 0) {
    0x0000ac78 bne 0xb1d0                                        |             goto label_19;
                                                                 |         }
    0x0000ac7c ldr r2, [pc, 0x798]                               |         r2 = *(0xb418);
    0x0000ac80 add r2, pc, r2                                    |         r2 = pc + r2;
                                                                 | label_7:
    0x0000ac84 mov r1, r6                                        |         r1 = r6;
    0x0000ac88 mov r0, sl                                        |         r0 = sl;
    0x0000ac8c bl 0x8298                                         |         printf (r0, r1, r2)
                                                                 |     }
    0x0000ac90 mov r3, 0                                         |     r3 = 0;
    0x0000ac94 cmp fp, 0                                         |     
    0x0000ac98 mov r2, r6                                        |     r2 = r6;
    0x0000ac9c str r3, [r4]                                      |     *(r4) = r3;
    0x0000aca0 str r3, [r4, 4]                                   |     var_a4h = r3;
    0x0000aca4 str r3, [r4, 8]                                   |     var_a8h = r3;
    0x0000aca8 str r3, [r4, 0xc]                                 |     var_ach = r3;
    0x0000acac ldr r1, [sp, 0x18]                                |     r1 = s1;
    0x0000acb0 mov r0, r5                                        |     r0 = r5;
                                                                 |     if (fp != 0) {
    0x0000acb4 bne 0xad1c                                        |         goto label_20;
                                                                 |     }
    0x0000acb8 bl 0x85bc                                         |     fcn_000085bc ();
    0x0000acbc ldr r6, [pc, 0x75c]                               |     r6 = *(0xb41c);
                                                                 |     do {
    0x0000acc0 mov r3, r4                                        |         r3 = r4;
    0x0000acc4 mov r2, r4                                        |         r2 = r4;
    0x0000acc8 mov r1, 0                                         |         r1 = 0;
    0x0000accc mov r0, r5                                        |         r0 = r5;
    0x0000acd0 bl 0x8e20                                         |         fcn_00008e20 ();
    0x0000acd4 subs r6, r6, 1                                    |         r6--;
    0x0000acd8 bne 0xacc0                                        |         
                                                                 |     } while (r6 != r6);
    0x0000acdc ldr r3, [pc, 0x740]                               |     r3 = "_";
    0x0000ace0 ldr r1, [r4]                                      |     r1 = *(r4);
    0x0000ace4 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000ace8 ldr r2, [r3, r7, lsl 4]                           |     r2 = "_";
    0x0000acec add r3, r3, r7, lsl 4                             |     r3 += (r7 << 4);
    0x0000acf0 cmp r1, r2                                        |     
                                                                 |     if (r1 == r2) {
    0x0000acf4 beq 0xb1dc                                        |         goto label_21;
                                                                 |     }
                                                                 | label_0:
    0x0000acf8 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000acfc cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000ad00 moveq r4, 1                                       |         r4 = 1;
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x0000ad04 bne 0xb214                                        |         goto label_22;
                                                                 |     }
                                                                 | label_9:
    0x0000ad08 mov r0, r5                                        |     r0 = r5;
    0x0000ad0c bl 0x8334                                         |     fcn_00008334 ();
    0x0000ad10 mov r0, r4                                        |     r0 = r4;
    0x0000ad14 add sp, sp, 0x1fc                                 |     
    0x0000ad18 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |     
                                                                 | label_20:
    0x0000ad1c bl 0x8928                                         |     fcn_00008928 ();
    0x0000ad20 ldr r6, [pc, 0x6f8]                               |     r6 = *(0xb41c);
                                                                 |     do {
    0x0000ad24 mov r3, r4                                        |         r3 = r4;
    0x0000ad28 mov r2, r4                                        |         r2 = r4;
    0x0000ad2c mov r1, 1                                         |         r1 = 1;
    0x0000ad30 mov r0, r5                                        |         r0 = r5;
    0x0000ad34 bl 0x8e20                                         |         fcn_00008e20 ();
    0x0000ad38 subs r6, r6, 1                                    |         r6--;
    0x0000ad3c bne 0xad24                                        |         
                                                                 |     } while (r6 != r6);
    0x0000ad40 ldr r3, [sb, r7, lsl 4]                           |     offset_0 = r7 << 4;
                                                                 |     r3 = *((sb + offset_0));
    0x0000ad44 ldr r2, [r4]                                      |     r2 = *(r4);
    0x0000ad48 add r7, sb, r7, lsl 4                             |     r7 = sb + (r7 << 4);
    0x0000ad4c cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0000ad50 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000ad54 ldr r3, [r7, 4]                                   |     r3 = *((r7 + 4));
    0x0000ad58 ldr r2, [sp, 0xa4]                                |     r2 = var_a4h;
    0x0000ad5c add r7, r7, 4                                     |     r7 += 4;
    0x0000ad60 cmp r2, r3                                        |     
    0x0000ad64 add r6, sp, 0xa4                                  |     r6 += var_a4h;
                                                                 |     if (r2 != r3) {
    0x0000ad68 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000ad6c ldr r2, [sp, 0xa8]                                |     r2 = var_a8h;
    0x0000ad70 ldr r3, [r7, 4]!                                  |     r3 = *((r7 += 4));
    0x0000ad74 add r1, sp, 0xa8                                  |     r1 += var_a8h;
    0x0000ad78 cmp r2, r3                                        |     
    0x0000ad7c str r1, [sp, 0x30]                                |     var_30h = r1;
                                                                 |     if (r2 != r3) {
    0x0000ad80 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000ad84 ldr r3, [r7, 4]                                   |     r3 = *((r7 + 4));
                                                                 | label_8:
    0x0000ad88 ldr r2, [sp, 0xac]                                |     r2 = var_ach;
    0x0000ad8c add r1, sp, 0xac                                  |     r1 += var_ach;
    0x0000ad90 cmp r2, r3                                        |     
    0x0000ad94 str r1, [sp, 0x34]                                |     var_34h = r1;
                                                                 |     if (r2 != r3) {
    0x0000ad98 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000ad9c ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000ada0 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000ada4 bne 0xb2c0                                        |         goto label_23;
                                                                 |     }
                                                                 | label_11:
    0x0000ada8 add r8, r8, 1                                     |     r8++;
    0x0000adac cmp r8, 6                                         |     
                                                                 |     if (r8 != 6) {
    0x0000adb0 bne 0xac58                                        |         goto label_1;
                                                                 |     }
    0x0000adb4 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000adb8 str r6, [sp, 0x2c]                                |     var_2ch = r6;
    0x0000adbc cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000adc0 beq 0xadcc                                        |         
    0x0000adc4 mov r0, 0xa                                       |         r0 = 0xa;
    0x0000adc8 bl 0x81d8                                         |         putchar (r0);
                                                                 |     }
    0x0000adcc ldr r1, [pc, 0x654]                               |     r1 = *(0xb424);
    0x0000add0 ldr r2, [pc, 0x654]                               |     
    0x0000add4 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000add8 ldr r3, [pc, 0x650]                               |     
    0x0000addc str r1, [sp, 0x1c]                                |     format = r1;
    0x0000ade0 ldr r1, [pc, 0x64c]                               |     r1 = *(0xb430);
    0x0000ade4 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0000ade8 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000adec add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000adf0 add r2, r2, 0x90                                  |     r2 = 0xb4b8;
    0x0000adf4 add r3, r3, 0x60                                  |     r3 = 0xb48c;
    0x0000adf8 mov fp, 0                                         |     
    0x0000adfc add r6, sp, 0x40                                  |     r6 += var_40h;
    0x0000ae00 add r7, sp, 0x50                                  |     r7 += var_50h;
    0x0000ae04 str r1, [sp, 0x28]                                |     var_28h = r1;
    0x0000ae08 str r2, [sp, 0x20]                                |     var_20h = r2;
    0x0000ae0c str r3, [sp, 0x24]                                |     s2 = r3;
                                                                 | label_2:
    0x0000ae10 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000ae14 asr sl, fp, 1                                     |     sl = fp >> 1;
    0x0000ae18 add r8, sl, 2                                     |     r8 = sl + 2;
    0x0000ae1c cmp r3, 0                                         |     
    0x0000ae20 lsl r8, r8, 6                                     |     r8 <<= 6;
    0x0000ae24 and sb, fp, 1                                     |     sb = fp & 1;
                                                                 |     if (r3 != 0) {
    0x0000ae28 beq 0xae48                                        |         
    0x0000ae2c cmp sb, 0                                         |         
                                                                 |         if (sb != 0) {
    0x0000ae30 bne 0xb3f4                                        |             goto label_24;
                                                                 |         }
    0x0000ae34 ldr r2, [pc, 0x5fc]                               |         r2 = *(0xb434);
    0x0000ae38 add r2, pc, r2                                    |         r2 = pc + r2;
                                                                 | label_16:
    0x0000ae3c mov r1, r8                                        |         r1 = r8;
    0x0000ae40 ldr r0, [sp, 0x1c]                                |         r0 = format;
    0x0000ae44 bl 0x8298                                         |         printf (r0, r1, r2)
                                                                 |     }
    0x0000ae48 mov r3, 0                                         |     r3 = 0;
    0x0000ae4c cmp sb, 0                                         |     
    0x0000ae50 mov r2, r8                                        |     r2 = r8;
    0x0000ae54 str r3, [r6]                                      |     *(r6) = r3;
    0x0000ae58 str r3, [r6, 4]                                   |     var_4h_2 = r3;
    0x0000ae5c str r3, [r6, 8]                                   |     var_8h_2 = r3;
    0x0000ae60 str r3, [r6, 0xc]                                 |     var_ch = r3;
    0x0000ae64 str r3, [r7]                                      |     *(r7) = r3;
    0x0000ae68 str r3, [r7, 4]                                   |     var_54h = r3;
    0x0000ae6c str r3, [r7, 8]                                   |     var_58h = r3;
    0x0000ae70 str r3, [r7, 0xc]                                 |     var_5ch = r3;
    0x0000ae74 str r3, [r4]                                      |     *(r4) = r3;
    0x0000ae78 str r3, [r4, 4]                                   |     var_a4h = r3;
    0x0000ae7c str r3, [r4, 8]                                   |     var_a8h = r3;
    0x0000ae80 str r3, [r4, 0xc]                                 |     var_ach = r3;
    0x0000ae84 ldr r1, [sp, 0x18]                                |     r1 = s1;
    0x0000ae88 mov r0, r5                                        |     r0 = r5;
                                                                 |     if (sb != 0) {
    0x0000ae8c bne 0xb228                                        |         goto label_25;
                                                                 |     }
    0x0000ae90 bl 0x85bc                                         |     fcn_000085bc ();
    0x0000ae94 ldr r8, [pc, 0x584]                               |     r8 = *(0xb41c);
                                                                 |     do {
    0x0000ae98 str r4, [sp, 4]                                   |         var_4h = r4;
    0x0000ae9c str r4, [sp]                                      |         *(sp) = r4;
    0x0000aea0 mov r3, r6                                        |         r3 = r6;
    0x0000aea4 mov r2, 0x10                                      |         r2 = 0x10;
    0x0000aea8 mov r1, 0                                         |         r1 = 0;
    0x0000aeac mov r0, r5                                        |         r0 = r5;
    0x0000aeb0 bl 0x9000                                         |         fcn_00009000 ();
    0x0000aeb4 subs r8, r8, 1                                    |         r8--;
    0x0000aeb8 bne 0xae98                                        |         
                                                                 |     } while (r8 != r8);
    0x0000aebc ldr r1, [sp, 0x24]                                |     r1 = s2;
    0x0000aec0 ldr r2, [r4]                                      |     r2 = *(r4);
    0x0000aec4 ldr r3, [r1, sl, lsl 4]                           |     offset_1 = sl << 4;
                                                                 |     r3 = *((r1 + offset_1));
    0x0000aec8 add sl, r1, sl, lsl 4                             |     sl = r1 + (sl << 4);
    0x0000aecc cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0000aed0 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000aed4 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0000aed8 add sl, sl, 4                                     |     sl += 4;
    0x0000aedc ldr r2, [r3]                                      |     r2 = *(r3);
    0x0000aee0 ldr r3, [sl]                                      |     r3 = *(sl);
    0x0000aee4 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0000aee8 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000aeec ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x0000aef0 ldr r2, [r3]                                      |     r2 = *(r3);
    0x0000aef4 ldr r3, [sl, 4]!                                  |     r3 = *((sl += 4));
    0x0000aef8 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0000aefc bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000af00 ldr r2, [sp, 0x34]                                |     r2 = var_34h;
    0x0000af04 ldr r3, [sl, 4]                                   |     r3 = *((sl + 4));
    0x0000af08 ldr r2, [r2]                                      |     r2 = *(r2);
    0x0000af0c cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0000af10 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
                                                                 | label_10:
    0x0000af14 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000af18 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000af1c bne 0xb354                                        |         goto label_26;
                                                                 |     }
                                                                 | label_13:
    0x0000af20 add fp, fp, 1                                     |     
    0x0000af24 cmp fp, 6                                         |     
                                                                 |     if (fp != 6) {
    0x0000af28 bne 0xae10                                        |         goto label_2;
                                                                 |     }
    0x0000af2c ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000af30 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000af34 bne 0xb408                                        |         goto label_27;
                                                                 |     }
                                                                 | label_18:
    0x0000af38 ldr sb, [pc, 0x4fc]                               |     sb = *(0xb438);
    0x0000af3c ldr r3, [pc, 0x4fc]                               |     r3 = *(0xb43c);
    0x0000af40 add sb, pc, sb                                    |     sb = pc + sb;
    0x0000af44 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000af48 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0000af4c add r3, sb, 0xc0                                  |     r3 = sb + 0xc0;
    0x0000af50 str r3, [sp, 0x24]                                |     s2 = r3;
    0x0000af54 mov r8, 0                                         |     r8 = 0;
    0x0000af58 add r3, sp, 0x3c                                  |     r3 += var_3ch;
    0x0000af5c str r3, [sp, 0x20]                                |     var_20h = r3;
    0x0000af60 str r6, [sp, 0x1c]                                |     format = r6;
                                                                 | label_3:
    0x0000af64 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000af68 asr r6, r8, 1                                     |     r6 = r8 >> 1;
    0x0000af6c add sl, r6, 2                                     |     sl = r6 + 2;
    0x0000af70 cmp r3, 0                                         |     
    0x0000af74 lsl r7, sl, 6                                     |     r7 = sl << 6;
    0x0000af78 and fp, r8, 1                                     |     
                                                                 |     if (r3 != 0) {
    0x0000af7c beq 0xaf9c                                        |         
    0x0000af80 cmp fp, 0                                         |         
                                                                 |         if (fp != 0) {
    0x0000af84 bne 0xb3fc                                        |             goto label_28;
                                                                 |         }
    0x0000af88 ldr r2, [pc, 0x4b4]                               |         r2 = *(0xb440);
    0x0000af8c add r2, pc, r2                                    |         r2 = pc + r2;
                                                                 | label_17:
    0x0000af90 mov r1, r7                                        |         r1 = r7;
    0x0000af94 ldr r0, [sp, 0x28]                                |         r0 = var_28h;
    0x0000af98 bl 0x8298                                         |         printf (r0, r1, r2)
                                                                 |     }
    0x0000af9c ldr r3, [sp, 0x24]                                |     r3 = s2;
    0x0000afa0 ldr lr, [sp, 0x1c]                                |     lr = format;
    0x0000afa4 ldm r3, {r0, r1, r2, r3}                          |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
                                                                 |     r2 = *((r3 + 8));
                                                                 |     r3 = *((r3 + 12));
    0x0000afa8 add ip, sb, 0xd0                                  |     
    0x0000afac stm lr, {r0, r1, r2, r3}                          |     *(lr) = r0;
                                                                 |     *((lr + 4)) = r1;
                                                                 |     *((lr + 8)) = r2;
                                                                 |     *((lr + 12)) = r3;
    0x0000afb0 lsl r2, sl, 3                                     |     r2 = sl << 3;
    0x0000afb4 ldr sl, [sp, 0x18]                                |     sl = s1;
    0x0000afb8 add r1, ip, r6, lsl 5                             |     r1 = ip + (r6 << 5);
    0x0000afbc mov r0, sl                                        |     r0 = sl;
    0x0000afc0 bl 0x8550                                         |     memcpy (r0, r1, r2);
    0x0000afc4 mov r3, 0                                         |     r3 = 0;
    0x0000afc8 mov r2, r7                                        |     r2 = r7;
    0x0000afcc mov r1, sl                                        |     r1 = sl;
    0x0000afd0 mov r0, r5                                        |     r0 = r5;
    0x0000afd4 str r3, [sp, 0x3c]                                |     var_3ch = r3;
    0x0000afd8 bl 0x8928                                         |     fcn_00008928 ();
    0x0000afdc cmp fp, 0                                         |     
                                                                 |     if (fp != 0) {
    0x0000afe0 bne 0xb2d0                                        |         goto label_29;
                                                                 |     }
    0x0000afe4 add ip, sb, r6, lsl 6                             |     
    0x0000afe8 add ip, ip, 0x130                                 |     
    0x0000afec ldm ip!, {r0, r1, r2, r3}                         |     r0 = *(ip!);
                                                                 |     r1 = *((ip! + 4));
                                                                 |     r2 = *((ip! + 8));
                                                                 |     r3 = *((ip! + 12));
    0x0000aff0 mov lr, r4                                        |     lr = r4;
    0x0000aff4 stm lr!, {r0, r1, r2, r3}                         |     *(lr!) = r0;
                                                                 |     *((lr! + 4)) = r1;
                                                                 |     *((lr! + 8)) = r2;
                                                                 |     *((lr! + 12)) = r3;
    0x0000aff8 ldm ip!, {r0, r1, r2, r3}                         |     r0 = *(ip!);
                                                                 |     r1 = *((ip! + 4));
                                                                 |     r2 = *((ip! + 8));
                                                                 |     r3 = *((ip! + 12));
    0x0000affc stm lr!, {r0, r1, r2, r3}                         |     *(lr!) = r0;
                                                                 |     *((lr! + 4)) = r1;
                                                                 |     *((lr! + 8)) = r2;
                                                                 |     *((lr! + 12)) = r3;
    0x0000b000 ldm ip!, {r0, r1, r2, r3}                         |     r0 = *(ip!);
                                                                 |     r1 = *((ip! + 4));
                                                                 |     r2 = *((ip! + 8));
                                                                 |     r3 = *((ip! + 12));
    0x0000b004 stm lr!, {r0, r1, r2, r3}                         |     *(lr!) = r0;
                                                                 |     *((lr! + 4)) = r1;
                                                                 |     *((lr! + 8)) = r2;
                                                                 |     *((lr! + 12)) = r3;
    0x0000b008 ldm ip, {r0, r1, r2, r3}                          |     r0 = *(ip);
                                                                 |     r1 = *((ip + 4));
                                                                 |     r2 = *((ip + 8));
                                                                 |     r3 = *((ip + 12));
    0x0000b00c stm lr, {r0, r1, r2, r3}                          |     *(lr) = r0;
                                                                 |     *((lr + 4)) = r1;
                                                                 |     *((lr + 8)) = r2;
                                                                 |     *((lr + 12)) = r3;
    0x0000b010 str r4, [sp, 8]                                   |     var_8h = r4;
    0x0000b014 ldr lr, [sp, 0x1c]                                |     lr = format;
    0x0000b018 mov r1, fp                                        |     r1 = fp;
    0x0000b01c str lr, [sp]                                      |     
    0x0000b020 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x0000b024 mov r2, 0x40                                      |     r2 = 0x40;
    0x0000b028 str r4, [sp, 4]                                   |     var_4h = r4;
    0x0000b02c mov r0, r5                                        |     r0 = r5;
    0x0000b030 bl 0x84d8                                         |     fcn_000084d8 ();
    0x0000b034 mov r2, 0x40                                      |     r2 = 0x40;
    0x0000b038 add r1, sb, 0x1f0                                 |     r1 = sb + 0x1f0;
    0x0000b03c mov r0, r4                                        |     r0 = r4;
    0x0000b040 bl 0x8b08                                         |     r0 = memcmp (r0, r1, r2);
    0x0000b044 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000b048 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000b04c ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000b050 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000b054 bne 0xb344                                        |         goto label_30;
                                                                 |     }
                                                                 | label_12:
    0x0000b058 add r8, r8, 1                                     |     r8++;
    0x0000b05c cmp r8, 6                                         |     
                                                                 |     if (r8 != 6) {
    0x0000b060 bne 0xaf64                                        |         goto label_3;
                                                                 |     }
    0x0000b064 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000b068 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000b06c beq 0xb078                                        |         
    0x0000b070 mov r0, 0xa                                       |         r0 = 0xa;
    0x0000b074 bl 0x81d8                                         |         putchar (r0);
                                                                 |     }
    0x0000b078 ldr sb, [pc, 0x3c8]                               |     sb = *(0xb444);
    0x0000b07c ldr r3, [pc, 0x3c8]                               |     r3 = *(0xb448);
    0x0000b080 add sb, pc, sb                                    |     sb = pc + sb;
    0x0000b084 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000b088 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0000b08c add r3, sb, 0x260                                 |     r3 = sb + 0x260;
    0x0000b090 str r3, [sp, 0x1c]                                |     format = r3;
    0x0000b094 add r3, sp, 0x70                                  |     r3 += var_70h;
    0x0000b098 str r3, [sp, 0x24]                                |     s2 = r3;
    0x0000b09c ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000b0a0 mov r7, 0                                         |     r7 = 0;
    0x0000b0a4 cmp r3, 0                                         |     
    0x0000b0a8 mov r6, r7                                        |     r6 = r7;
    0x0000b0ac mov r8, 0x10                                      |     r8 = 0x10;
    0x0000b0b0 add fp, sp, 0x60                                  |     
    0x0000b0b4 and sl, r7, 1                                     |     sl = r7 & 1;
                                                                 |     if (r3 != 0) {
    0x0000b0b8 beq 0xb0d4                                        |         
    0x0000b0bc cmp sl, 0                                         |         
                                                                 |         if (sl != 0) {
    0x0000b0c0 bne 0xb1c4                                        |             goto label_31;
                                                                 |         }
                                                                 | label_5:
    0x0000b0c4 ldr r1, [pc, 0x384]                               |         r1 = *(0xb44c);
    0x0000b0c8 add r1, pc, r1                                    |         r1 = pc + r1;
                                                                 | label_6:
    0x0000b0cc ldr r0, [sp, 0x28]                                |         r0 = var_28h;
    0x0000b0d0 bl 0x8298                                         |         printf (r0, r1)
                                                                 |     }
                                                                 | label_4:
    0x0000b0d4 lsl ip, r6, 4                                     |     
    0x0000b0d8 add r3, sb, ip                                    |     r3 = sb + ip;
    0x0000b0dc add r3, r3, 0x230                                 |     r3 += 0x230;
    0x0000b0e0 ldm r3, {r0, r1, r2, r3}                          |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
                                                                 |     r2 = *((r3 + 8));
                                                                 |     r3 = *((r3 + 12));
    0x0000b0e4 ldr lr, [sp, 0x1c]                                |     lr = format;
    0x0000b0e8 stm fp, {r0, r1, r2, r3}                          |     *(fp) = r0;
                                                                 |     *((fp + 4)) = r1;
                                                                 |     *((fp + 8)) = r2;
                                                                 |     *((fp + 12)) = r3;
    0x0000b0ec add ip, lr, ip                                    |     
    0x0000b0f0 ldm ip, {r0, r1, r2, r3}                          |     r0 = *(ip);
                                                                 |     r1 = *((ip + 4));
                                                                 |     r2 = *((ip + 8));
                                                                 |     r3 = *((ip + 12));
    0x0000b0f4 ldr lr, [sp, 0x18]                                |     lr = s1;
    0x0000b0f8 mov ip, 0                                         |     
    0x0000b0fc stm lr, {r0, r1, r2, r3}                          |     *(lr) = r0;
                                                                 |     *((lr + 4)) = r1;
                                                                 |     *((lr + 8)) = r2;
                                                                 |     *((lr + 12)) = r3;
    0x0000b100 add r6, r6, r6, lsl 1                             |     r6 += (r6 << 1);
    0x0000b104 mov r2, 0x80                                      |     r2 = 0x80;
    0x0000b108 mov r1, lr                                        |     r1 = lr;
    0x0000b10c mov r0, r5                                        |     r0 = r5;
    0x0000b110 str ip, [sp, 0x3c]                                |     var_3ch = ip;
    0x0000b114 bl 0x8928                                         |     fcn_00008928 ();
    0x0000b118 lsl r3, r6, 4                                     |     r3 = r6 << 4;
    0x0000b11c cmp sl, 0                                         |     
    0x0000b120 add r6, sb, 0x290                                 |     r6 = sb + 0x290;
    0x0000b124 add sl, sb, 0x320                                 |     sl = sb + 0x320;
    0x0000b128 add r6, r6, r3                                    |     r6 += r3;
    0x0000b12c add sl, sl, r3                                    |     sl += r3;
                                                                 |     if (sl != 0) {
    0x0000b130 bne 0xb364                                        |         goto label_32;
                                                                 |     }
    0x0000b134 mov r1, r6                                        |     r1 = r6;
    0x0000b138 mov r2, r8                                        |     r2 = r8;
    0x0000b13c mov r0, r4                                        |     r0 = r4;
    0x0000b140 bl 0x8550                                         |     memcpy (r0, r1, r2);
    0x0000b144 ldr r3, [sp, 0x24]                                |     r3 = s2;
    0x0000b148 ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x0000b14c str r3, [sp]                                      |     *(sp) = r3;
    0x0000b150 mov r1, r8                                        |     r1 = r8;
    0x0000b154 mov r3, fp                                        |     r3 = fp;
    0x0000b158 str r4, [sp, 8]                                   |     var_8h = r4;
    0x0000b15c str r4, [sp, 4]                                   |     var_4h = r4;
    0x0000b160 mov r0, r5                                        |     r0 = r5;
    0x0000b164 bl 0x8e38                                         |     fcn_00008e38 ();
    0x0000b168 mov r2, r8                                        |     r2 = r8;
    0x0000b16c mov r1, sl                                        |     r1 = sl;
    0x0000b170 mov r0, r4                                        |     r0 = r4;
    0x0000b174 bl 0x8b08                                         |     r0 = memcmp (r0, r1, r2);
    0x0000b178 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000b17c bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000b180 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000b184 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000b188 bne 0xb3bc                                        |         goto label_33;
                                                                 |     }
                                                                 | label_14:
    0x0000b18c add r7, r7, 1                                     |     r7++;
    0x0000b190 cmp r7, 6                                         |     
                                                                 |     if (r7 == 6) {
    0x0000b194 beq 0xb3d4                                        |         goto label_34;
                                                                 |     }
                                                                 | label_15:
    0x0000b198 ldr r3, [pc, 0x2b4]                               |     r3 = *(0xb450);
    0x0000b19c asr r6, r7, 1                                     |     r6 = r7 >> 1;
    0x0000b1a0 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0000b1a4 add r3, r3, r6, lsl 2                             |     r3 += (r6 << 2);
    0x0000b1a8 ldr r8, [r3, 0x3b0]                               |     r8 = *((r3 + 0x3b0));
    0x0000b1ac ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000b1b0 and sl, r7, 1                                     |     sl = r7 & 1;
    0x0000b1b4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000b1b8 beq 0xb0d4                                        |         goto label_4;
                                                                 |     }
    0x0000b1bc cmp sl, 0                                         |     
                                                                 |     if (sl == 0) {
    0x0000b1c0 beq 0xb0c4                                        |         goto label_5;
                                                                 |     }
                                                                 | label_31:
    0x0000b1c4 ldr r1, [pc, 0x28c]                               |     r1 = *(0xb454);
    0x0000b1c8 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0000b1cc b 0xb0cc                                          |     goto label_6;
                                                                 | label_19:
    0x0000b1d0 ldr r2, [pc, 0x284]                               |     r2 = *(0xb458);
    0x0000b1d4 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0000b1d8 b 0xac84                                          |     goto label_7;
                                                                 | label_21:
    0x0000b1dc ldr r2, [r3, 4]                                   |     r2 = *((r3 + 4));
    0x0000b1e0 ldr r1, [sp, 0xa4]                                |     r1 = var_a4h;
    0x0000b1e4 add r3, r3, 4                                     |     r3 += 4;
    0x0000b1e8 cmp r1, r2                                        |     
    0x0000b1ec add r6, sp, 0xa4                                  |     r6 += var_a4h;
                                                                 |     if (r1 != r2) {
    0x0000b1f0 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000b1f4 ldr r1, [sp, 0xa8]                                |     r1 = var_a8h;
    0x0000b1f8 ldr r2, [r3, 4]!                                  |     r2 = *((r3 += 4));
    0x0000b1fc add r0, sp, 0xa8                                  |     r0 += var_a8h;
    0x0000b200 cmp r1, r2                                        |     
    0x0000b204 str r0, [sp, 0x30]                                |     var_30h = r0;
                                                                 |     if (r1 != r2) {
    0x0000b208 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000b20c ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x0000b210 b 0xad88                                          |     goto label_8;
                                                                 | label_22:
    0x0000b214 ldr r0, [pc, 0x244]                               |     r0 = *(0xb45c);
    0x0000b218 mov r4, 1                                         |     r4 = 1;
    0x0000b21c add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000b220 bl 0x858c                                         |     puts (r0);
    0x0000b224 b 0xad08                                          |     goto label_9;
                                                                 | label_25:
    0x0000b228 bl 0x8928                                         |     fcn_00008928 ();
    0x0000b22c ldr sb, [pc, 0x1ec]                               |     sb = *(0xb41c);
    0x0000b230 add r8, sp, 0x70                                  |     r8 += var_70h;
                                                                 |     do {
    0x0000b234 mov r3, r6                                        |         r3 = r6;
    0x0000b238 mov r2, 0x10                                      |         r2 = 0x10;
    0x0000b23c mov r1, 1                                         |         r1 = 1;
    0x0000b240 str r4, [sp, 4]                                   |         var_4h = r4;
    0x0000b244 str r4, [sp]                                      |         *(sp) = r4;
    0x0000b248 mov r0, r5                                        |         r0 = r5;
    0x0000b24c bl 0x9000                                         |         r0 = fcn_00009000 ();
    0x0000b250 ldm r7, {r0, r1, r2, r3}                          |         r0 = *(r7);
                                                                 |         r1 = *((r7 + 4));
                                                                 |         r2 = *((r7 + 8));
                                                                 |         r3 = *((r7 + 12));
    0x0000b254 subs sb, sb, 1                                    |         sb--;
    0x0000b258 stm r8, {r0, r1, r2, r3}                          |         *(r8) = r0;
                                                                 |         *((r8 + 4)) = r1;
                                                                 |         *((r8 + 8)) = r2;
                                                                 |         *((r8 + 12)) = r3;
    0x0000b25c ldm r4, {r0, r1, r2, r3}                          |         r0 = *(r4);
                                                                 |         r1 = *((r4 + 4));
                                                                 |         r2 = *((r4 + 8));
                                                                 |         r3 = *((r4 + 12));
    0x0000b260 stm r7, {r0, r1, r2, r3}                          |         *(r7) = r0;
                                                                 |         *((r7 + 4)) = r1;
                                                                 |         *((r7 + 8)) = r2;
                                                                 |         *((r7 + 12)) = r3;
    0x0000b264 ldm r8, {r0, r1, r2, r3}                          |         r0 = *(r8);
                                                                 |         r1 = *((r8 + 4));
                                                                 |         r2 = *((r8 + 8));
                                                                 |         r3 = *((r8 + 12));
    0x0000b268 stm r4, {r0, r1, r2, r3}                          |         *(r4) = r0;
                                                                 |         *((r4 + 4)) = r1;
                                                                 |         *((r4 + 8)) = r2;
                                                                 |         *((r4 + 12)) = r3;
    0x0000b26c bne 0xb234                                        |         
                                                                 |     } while (sb != sb);
    0x0000b270 ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x0000b274 ldr r2, [r7]                                      |     r2 = *(r7);
    0x0000b278 ldr r3, [r1, sl, lsl 4]                           |     offset_2 = sl << 4;
                                                                 |     r3 = *((r1 + offset_2));
    0x0000b27c add sl, r1, sl, lsl 4                             |     sl = r1 + (sl << 4);
    0x0000b280 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0000b284 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000b288 ldr r3, [sl, 4]                                   |     r3 = *((sl + 4));
    0x0000b28c ldr r2, [sp, 0x54]                                |     r2 = var_54h;
    0x0000b290 add sl, sl, 4                                     |     sl += 4;
    0x0000b294 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0000b298 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000b29c ldr r2, [sp, 0x58]                                |     r2 = var_58h;
    0x0000b2a0 ldr r3, [sl, 4]!                                  |     r3 = *((sl += 4));
    0x0000b2a4 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0000b2a8 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000b2ac ldr r3, [sl, 4]                                   |     r3 = *((sl + 4));
    0x0000b2b0 ldr r2, [sp, 0x5c]                                |     r2 = var_5ch;
    0x0000b2b4 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0000b2b8 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000b2bc b 0xaf14                                          |     goto label_10;
                                                                 | label_23:
    0x0000b2c0 ldr r0, [pc, 0x19c]                               |     r0 = *(0xb460);
    0x0000b2c4 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000b2c8 bl 0x858c                                         |     puts (r0);
    0x0000b2cc b 0xada8                                          |     goto label_11;
                                                                 | label_29:
    0x0000b2d0 add lr, sb, 0x1f0                                 |     lr = sb + 0x1f0;
    0x0000b2d4 ldm lr!, {r0, r1, r2, r3}                         |     r0 = *(lr!);
                                                                 |     r1 = *((lr! + 4));
                                                                 |     r2 = *((lr! + 8));
                                                                 |     r3 = *((lr! + 12));
    0x0000b2d8 mov ip, r4                                        |     
    0x0000b2dc stm ip!, {r0, r1, r2, r3}                         |     *(ip!) = r0;
                                                                 |     *((ip! + 4)) = r1;
                                                                 |     *((ip! + 8)) = r2;
                                                                 |     *((ip! + 12)) = r3;
    0x0000b2e0 ldm lr!, {r0, r1, r2, r3}                         |     r0 = *(lr!);
                                                                 |     r1 = *((lr! + 4));
                                                                 |     r2 = *((lr! + 8));
                                                                 |     r3 = *((lr! + 12));
    0x0000b2e4 stm ip!, {r0, r1, r2, r3}                         |     *(ip!) = r0;
                                                                 |     *((ip! + 4)) = r1;
                                                                 |     *((ip! + 8)) = r2;
                                                                 |     *((ip! + 12)) = r3;
    0x0000b2e8 ldm lr!, {r0, r1, r2, r3}                         |     r0 = *(lr!);
                                                                 |     r1 = *((lr! + 4));
                                                                 |     r2 = *((lr! + 8));
                                                                 |     r3 = *((lr! + 12));
    0x0000b2ec stm ip!, {r0, r1, r2, r3}                         |     *(ip!) = r0;
                                                                 |     *((ip! + 4)) = r1;
                                                                 |     *((ip! + 8)) = r2;
                                                                 |     *((ip! + 12)) = r3;
    0x0000b2f0 ldm lr, {r0, r1, r2, r3}                          |     r0 = *(lr);
                                                                 |     r1 = *((lr + 4));
                                                                 |     r2 = *((lr + 8));
                                                                 |     r3 = *((lr + 12));
    0x0000b2f4 stm ip, {r0, r1, r2, r3}                          |     *(ip) = r0;
                                                                 |     *((ip + 4)) = r1;
                                                                 |     *((ip + 8)) = r2;
                                                                 |     *((ip + 12)) = r3;
    0x0000b2f8 str r4, [sp, 8]                                   |     var_8h = r4;
    0x0000b2fc ldr r2, [sp, 0x1c]                                |     r2 = format;
    0x0000b300 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x0000b304 str r2, [sp]                                      |     *(sp) = r2;
    0x0000b308 mov r1, 1                                         |     r1 = 1;
    0x0000b30c mov r2, 0x40                                      |     r2 = 0x40;
    0x0000b310 str r4, [sp, 4]                                   |     var_4h = r4;
    0x0000b314 mov r0, r5                                        |     r0 = r5;
    0x0000b318 bl 0x84d8                                         |     fcn_000084d8 ();
    0x0000b31c add r1, sb, r7                                    |     r1 = sb + r7;
    0x0000b320 add r1, r1, 0xb0                                  |     r1 += 0xb0;
    0x0000b324 mov r2, 0x40                                      |     r2 = 0x40;
    0x0000b328 mov r0, r4                                        |     r0 = r4;
    0x0000b32c bl 0x8b08                                         |     r0 = memcmp (r0, r1, r2);
    0x0000b330 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000b334 bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000b338 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000b33c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000b340 beq 0xb058                                        |         goto label_12;
                                                                 |     }
                                                                 | label_30:
    0x0000b344 ldr r0, [pc, 0x11c]                               |     r0 = *(0xb464);
    0x0000b348 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000b34c bl 0x858c                                         |     puts (r0);
    0x0000b350 b 0xb058                                          |     goto label_12;
                                                                 | label_26:
    0x0000b354 ldr r0, [pc, 0x110]                               |     r0 = *(0xb468);
    0x0000b358 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000b35c bl 0x858c                                         |     puts (r0);
    0x0000b360 b 0xaf20                                          |     goto label_13;
                                                                 | label_32:
    0x0000b364 mov r1, sl                                        |     r1 = sl;
    0x0000b368 mov r2, r8                                        |     r2 = r8;
    0x0000b36c mov r0, r4                                        |     r0 = r4;
    0x0000b370 bl 0x8550                                         |     memcpy (r0, r1, r2);
    0x0000b374 ldr r3, [sp, 0x24]                                |     r3 = s2;
    0x0000b378 ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x0000b37c str r3, [sp]                                      |     *(sp) = r3;
    0x0000b380 mov r1, r8                                        |     r1 = r8;
    0x0000b384 mov r3, fp                                        |     r3 = fp;
    0x0000b388 str r4, [sp, 8]                                   |     var_8h = r4;
    0x0000b38c str r4, [sp, 4]                                   |     var_4h = r4;
    0x0000b390 mov r0, r5                                        |     r0 = r5;
    0x0000b394 bl 0x8e38                                         |     fcn_00008e38 ();
    0x0000b398 mov r2, r8                                        |     r2 = r8;
    0x0000b39c mov r1, r6                                        |     r1 = r6;
    0x0000b3a0 mov r0, r4                                        |     r0 = r4;
    0x0000b3a4 bl 0x8b08                                         |     r0 = memcmp (r0, r1, r2);
    0x0000b3a8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000b3ac bne 0xacf8                                        |         goto label_0;
                                                                 |     }
    0x0000b3b0 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000b3b4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000b3b8 beq 0xb18c                                        |         goto label_14;
                                                                 |     }
                                                                 | label_33:
    0x0000b3bc ldr r0, [pc, 0xac]                                |     r0 = *(0xb46c);
    0x0000b3c0 add r7, r7, 1                                     |     r7++;
    0x0000b3c4 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000b3c8 bl 0x858c                                         |     puts (r0);
    0x0000b3cc cmp r7, 6                                         |     
                                                                 |     if (r7 != 6) {
    0x0000b3d0 bne 0xb198                                        |         goto label_15;
                                                                 |     }
                                                                 | label_34:
    0x0000b3d4 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000b3d8 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000b3dc ldreq r4, [sp, 0x14]                              |         r4 = var_14h;
                                                                 |         goto label_35;
                                                                 |     }
                                                                 |     if (r3 == 0) {
                                                                 | label_35:
    0x0000b3e0 beq 0xad08                                        |         goto label_9;
                                                                 |     }
    0x0000b3e4 mov r0, 0xa                                       |     r0 = 0xa;
    0x0000b3e8 bl 0x81d8                                         |     putchar (r0);
    0x0000b3ec mov r4, 0                                         |     r4 = 0;
    0x0000b3f0 b 0xad08                                          |     goto label_9;
                                                                 | label_24:
    0x0000b3f4 ldr r2, [sp, 0x28]                                |     r2 = var_28h;
    0x0000b3f8 b 0xae3c                                          |     goto label_16;
                                                                 | label_28:
    0x0000b3fc ldr r2, [pc, 0x70]                                |     r2 = *(0xb470);
    0x0000b400 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0000b404 b 0xaf90                                          |     goto label_17;
                                                                 | label_27:
    0x0000b408 mov r0, 0xa                                       |     r0 = 0xa;
    0x0000b40c bl 0x81d8                                         |     putchar (r0);
    0x0000b410 b 0xaf38                                          |     goto label_18;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0xb59c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.mbedtls_arc4_self_test ()                        | void mbedtls_arc4_self_test (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     void * s1;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_11ch;
                                                                 |     r0 = arg1;
    0x0000b59c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0000b5a0 ldr sb, [pc, 0x100]                               |     sb = *(0xb6a4);
    0x0000b5a4 sub sp, sp, 0x11c                                 |     
    0x0000b5a8 add r8, sp, 0x10                                  |     r8 += var_10h;
    0x0000b5ac mov r7, r0                                        |     r7 = r0;
    0x0000b5b0 mov r0, r8                                        |     r0 = r8;
    0x0000b5b4 bl 0x8a3c                                         |     fcn_00008a3c ();
    0x0000b5b8 add sb, pc, sb                                    |     sb = pc + sb;
    0x0000b5bc mov r4, 0                                         |     r4 = 0;
    0x0000b5c0 add fp, sb, 0x18                                  |     
    0x0000b5c4 mov r5, r4                                        |     r5 = r4;
    0x0000b5c8 mov r6, sp                                        |     r6 = sp;
    0x0000b5cc add sl, sp, 8                                     |     sl += s1;
                                                                 |     do {
    0x0000b5d0 cmp r7, 0                                         |         
                                                                 |         if (r7 != 0) {
    0x0000b5d4 bne 0xb664                                        |             goto label_3;
                                                                 |         }
                                                                 | label_0:
    0x0000b5d8 add r3, sb, r5, lsl 3                             |         r3 = sb + (r5 << 3);
    0x0000b5dc ldm r3, {r0, r1}                                  |         r0 = *(r3);
                                                                 |         r1 = *((r3 + 4));
    0x0000b5e0 mov r2, 8                                         |         r2 = 8;
    0x0000b5e4 stm r6, {r0, r1}                                  |         *(r6) = r0;
                                                                 |         *((r6 + 4)) = r1;
    0x0000b5e8 add r1, fp, r4                                    |         r1 = fp + r4;
    0x0000b5ec mov r0, r8                                        |         r0 = r8;
    0x0000b5f0 bl 0x8e80                                         |         fcn_00008e80 ();
    0x0000b5f4 mov r3, sl                                        |         r3 = sl;
    0x0000b5f8 mov r2, r6                                        |         r2 = r6;
    0x0000b5fc mov r1, 8                                         |         r1 = 8;
    0x0000b600 mov r0, r8                                        |         r0 = r8;
    0x0000b604 bl 0x90cc                                         |         fcn_000090cc ();
    0x0000b608 add r1, sb, 0x30                                  |         r1 = sb + 0x30;
    0x0000b60c add r1, r1, r4                                    |         r1 += r4;
    0x0000b610 mov r2, 8                                         |         r2 = 8;
    0x0000b614 mov r0, sl                                        |         r0 = sl;
    0x0000b618 bl 0x8b08                                         |         memcmp (r0, r1, r2);
    0x0000b61c add r5, r5, 1                                     |         r5++;
    0x0000b620 add r4, r4, 8                                     |         r4 += 8;
    0x0000b624 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0000b628 bne 0xb688                                        |             goto label_4;
                                                                 |         }
    0x0000b62c cmp r7, 0                                         |         
                                                                 |         if (r7 != 0) {
    0x0000b630 bne 0xb678                                        |             goto label_5;
                                                                 |         }
                                                                 | label_1:
    0x0000b634 cmp r5, 3                                         |         
    0x0000b638 bne 0xb5d0                                        |         
                                                                 |     } while (r5 != 3);
    0x0000b63c cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0000b640 beq 0xb650                                        |         goto label_2;
                                                                 |     }
    0x0000b644 mov r0, 0xa                                       |     r0 = 0xa;
    0x0000b648 bl 0x81d8                                         |     putchar (r0);
    0x0000b64c mov r7, 0                                         |     r7 = 0;
                                                                 |     do {
                                                                 | label_2:
    0x0000b650 mov r0, r8                                        |         r0 = r8;
    0x0000b654 bl 0x85b0                                         |         fcn_000085b0 ();
    0x0000b658 mov r0, r7                                        |         r0 = r7;
    0x0000b65c add sp, sp, 0x11c                                 |         
    0x0000b660 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_3:
    0x0000b664 ldr r0, [pc, 0x40]                                |         r0 = *(0xb6a8);
    0x0000b668 add r1, r5, 1                                     |         r1 = r5 + 1;
    0x0000b66c add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000b670 bl 0x8298                                         |         printf (r0, r1)
    0x0000b674 b 0xb5d8                                          |         goto label_0;
                                                                 | label_5:
    0x0000b678 ldr r0, [pc, 0x30]                                |         r0 = *(0xb6ac);
    0x0000b67c add r0, pc, r0                                    |         r0 = pc + r0;
    0x0000b680 bl 0x858c                                         |         puts (r0);
    0x0000b684 b 0xb634                                          |         goto label_1;
                                                                 | label_4:
    0x0000b688 cmp r7, 0                                         |         
                                                                 |         if (r7 != 0) {
    0x0000b68c moveq r7, 1                                       |             r7 = 1;
                                                                 |         }
    0x0000b690 beq 0xb650                                        |         
                                                                 |     } while (r7 == 0);
    0x0000b694 ldr r0, [pc, 0x18]                                |     r0 = *(0xb6b0);
    0x0000b698 mov r7, 1                                         |     r7 = 1;
    0x0000b69c add r0, pc, r0                                    |     r0 = pc + r0;
    0x0000b6a0 bl 0x858c                                         |     puts (r0);
    0x0000b6a4 b 0xb650                                          |     goto label_2;
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0xc828 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.mbedtls_base64_self_test ()          | void mbedtls_base64_self_test (uint32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_ch;
                                                     |     void * s2;
                                                     |     int32_t var_90h;
                                                     |     r0 = arg1;
    0x0000c828 cmp r0, 0                             |     
    0x0000c82c push {r4, r5, r6, r7, r8, lr}         |     
    0x0000c830 sub sp, sp, 0x90                      |     
                                                     |     if (r0 != 0) {
    0x0000c834 bne 0xc880                            |         goto label_3;
                                                     |     }
    0x0000c838 ldr r4, [pc, 0x170]                   |     r4 = *(0xc9ac);
    0x0000c83c add r6, sp, 0xc                       |     r6 += var_ch;
    0x0000c840 add r4, pc, r4                        |     r4 = pc + r4;
    0x0000c844 add r7, r4, 0xc0                      |     r7 = r4 + 0xc0;
    0x0000c848 add r5, sp, 0x10                      |     r5 += s2;
    0x0000c84c mov r8, 0x40                          |     r8 = 0x40;
    0x0000c850 mov r3, r7                            |     r3 = r7;
    0x0000c854 mov r2, r6                            |     r2 = r6;
    0x0000c858 mov r0, r5                            |     r0 = r5;
    0x0000c85c str r8, [sp]                          |     *(sp) = r8;
    0x0000c860 mov r1, 0x80                          |     r1 = 0x80;
    0x0000c864 bl 0x90f0                             |     r0 = fcn_000090f0 ();
    0x0000c868 cmp r0, 0                             |     
    0x0000c86c beq 0xc8fc                            |     
                                                     |     while (r0 != 0) {
                                                     | label_0:
    0x0000c870 mov r4, 1                             |         r4 = 1;
                                                     | label_1:
    0x0000c874 mov r0, r4                            |         r0 = r4;
    0x0000c878 add sp, sp, 0x90                      |         
    0x0000c87c pop {r4, r5, r6, r7, r8, pc}          |         
                                                     | label_3:
    0x0000c880 ldr r4, [pc, 0x12c]                   |         r4 = *(0xc9b0);
    0x0000c884 ldr r0, [pc, 0x12c]                   |         r0 = *(0xc9b4);
    0x0000c888 add r4, pc, r4                        |         r4 = pc + r4;
    0x0000c88c add r0, pc, r0                        |         r0 = pc + r0;
    0x0000c890 add r7, r4, 0xc0                      |         r7 = r4 + 0xc0;
    0x0000c894 add r6, sp, 0xc                       |         r6 += var_ch;
    0x0000c898 add r5, sp, 0x10                      |         r5 += s2;
    0x0000c89c mov r8, 0x40                          |         r8 = 0x40;
    0x0000c8a0 bl 0x8298                             |         printf (r0, r1, r2, r3, r4, r5, r6)
    0x0000c8a4 mov r3, r7                            |         r3 = r7;
    0x0000c8a8 mov r2, r6                            |         r2 = r6;
    0x0000c8ac mov r0, r5                            |         r0 = r5;
    0x0000c8b0 str r8, [sp]                          |         *(sp) = r8;
    0x0000c8b4 mov r1, 0x80                          |         r1 = 0x80;
    0x0000c8b8 bl 0x90f0                             |         r0 = fcn_000090f0 ();
    0x0000c8bc cmp r0, 0                             |         
                                                     |         if (r0 == 0) {
    0x0000c8c0 bne 0xc8e0                            |             
    0x0000c8c4 add r4, r4, 0x100                     |             r4 += 0x100;
    0x0000c8c8 mov r0, r4                            |             r0 = r4;
    0x0000c8cc mov r2, 0x58                          |             r2 = 0x58;
    0x0000c8d0 mov r1, r5                            |             r1 = r5;
    0x0000c8d4 bl 0x8b08                             |             r0 = memcmp (r0, r1, r2);
    0x0000c8d8 cmp r0, 0                             |             
                                                     |             if (r0 == 0) {
    0x0000c8dc beq 0xc958                            |                 goto label_4;
                                                     |             }
                                                     |         }
                                                     | label_2:
    0x0000c8e0 ldr r0, [pc, 0xd4]                    |         r0 = *(0xc9b8);
    0x0000c8e4 mov r4, 1                             |         r4 = 1;
    0x0000c8e8 add r0, pc, r0                        |         r0 = pc + r0;
    0x0000c8ec bl 0x858c                             |         puts (r0);
    0x0000c8f0 mov r0, r4                            |         r0 = r4;
    0x0000c8f4 add sp, sp, 0x90                      |         
    0x0000c8f8 pop {r4, r5, r6, r7, r8, pc}          |         
    0x0000c8fc add r4, r4, 0x100                     |         r4 += 0x100;
    0x0000c900 mov r0, r4                            |         r0 = r4;
    0x0000c904 mov r2, 0x58                          |         r2 = 0x58;
    0x0000c908 mov r1, r5                            |         r1 = r5;
    0x0000c90c bl 0x8b08                             |         r0 = memcmp (r0, r1, r2);
    0x0000c910 cmp r0, 0                             |         
    0x0000c914 bne 0xc870                            |         
                                                     |     }
    0x0000c918 mov r1, 0x58                          |     r1 = 0x58;
    0x0000c91c str r1, [sp]                          |     *(sp) = r1;
    0x0000c920 mov r3, r4                            |     r3 = r4;
    0x0000c924 mov r2, r6                            |     r2 = r6;
    0x0000c928 mov r1, 0x80                          |     r1 = 0x80;
    0x0000c92c mov r0, r5                            |     r0 = r5;
    0x0000c930 bl 0x8e5c                             |     r0 = fcn_00008e5c ();
    0x0000c934 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0000c938 bne 0xc870                            |         goto label_0;
                                                     |     }
    0x0000c93c mov r2, r8                            |     r2 = r8;
    0x0000c940 mov r1, r5                            |     r1 = r5;
    0x0000c944 mov r0, r7                            |     r0 = r7;
    0x0000c948 bl 0x8b08                             |     r0 = memcmp (r0, r1, r2);
    0x0000c94c subs r4, r0, 0                        |     r4 = r0 - 0;
                                                     |     if (r4 != r0) {
    0x0000c950 bne 0xc870                            |         goto label_0;
                                                     |     }
    0x0000c954 b 0xc874                              |     goto label_1;
                                                     | label_4:
    0x0000c958 ldr r0, [pc, 0x60]                    |     r0 = *(0xc9bc);
    0x0000c95c add r0, pc, r0                        |     r0 = pc + r0;
    0x0000c960 bl 0x8298                             |     printf (r0)
    0x0000c964 mov r1, 0x58                          |     r1 = 0x58;
    0x0000c968 str r1, [sp]                          |     *(sp) = r1;
    0x0000c96c mov r3, r4                            |     r3 = r4;
    0x0000c970 mov r2, r6                            |     r2 = r6;
    0x0000c974 mov r1, 0x80                          |     r1 = 0x80;
    0x0000c978 mov r0, r5                            |     r0 = r5;
    0x0000c97c bl 0x8e5c                             |     r0 = fcn_00008e5c ();
    0x0000c980 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0000c984 bne 0xc8e0                            |         goto label_2;
                                                     |     }
    0x0000c988 mov r2, r8                            |     r2 = r8;
    0x0000c98c mov r1, r5                            |     r1 = r5;
    0x0000c990 mov r0, r7                            |     r0 = r7;
    0x0000c994 bl 0x8b08                             |     r0 = memcmp (r0, r1, r2);
    0x0000c998 subs r4, r0, 0                        |     r4 = r0 - 0;
                                                     |     if (r4 != r0) {
    0x0000c99c bne 0xc8e0                            |         goto label_2;
                                                     |     }
    0x0000c9a0 ldr r0, [pc, 0x1c]                    |     r0 = *(0xc9c0);
    0x0000c9a4 add r0, pc, r0                        |     r0 = pc + r0;
    0x0000c9a8 bl 0x858c                             |     puts (r0);
    0x0000c9ac b 0xc874                              |     goto label_1;
                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x11ffc */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mbedtls_camellia_self_test ()                | void mbedtls_camellia_self_test (int32_t arg1) {
                                                             |     void * var_0h;
                                                             |     int32_t var_sp_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     void * s1;
                                                             |     int32_t var_2ch;
                                                             |     char * var_30h;
                                                             |     int32_t var_34h;
                                                             |     void * s2;
                                                             |     int32_t var_3ch;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_44h;
                                                             |     int32_t var_48h;
                                                             |     int32_t var_4ch;
                                                             |     char * format;
                                                             |     int32_t var_54h;
                                                             |     int32_t var_58h;
                                                             |     int32_t var_5ch;
                                                             |     int32_t var_6ch;
                                                             |     int32_t var_70h;
                                                             |     int32_t var_74h;
                                                             |     int32_t var_78h;
                                                             |     int32_t var_7ch;
                                                             |     int32_t var_8ch;
                                                             |     int32_t var_9ch;
                                                             |     void * s;
                                                             |     int32_t var_d0h;
                                                             |     int32_t var_d4h;
                                                             |     int32_t var_d8h;
                                                             |     int32_t var_10ch;
                                                             |     int32_t var_224h;
                                                             |     r0 = arg1;
    0x00011ffc push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00012000 sub sp, sp, 0x224                             |     
    0x00012004 add r3, sp, 0xac                              |     r3 += s;
    0x00012008 str r0, [sp, 0x14]                            |     var_14h = r0;
    0x0001200c mov r2, 0x20                                  |     r2 = 0x20;
    0x00012010 mov r0, r3                                    |     r0 = r3;
    0x00012014 mov r1, 0                                     |     r1 = 0;
    0x00012018 str r3, [sp, 0x28]                            |     s1 = r3;
    0x0001201c bl 0x8c28                                     |     memset (r0, r1, r2);
    0x00012020 ldr r3, [pc, 0x6c4]                           |     
    0x00012024 ldr r2, [pc, 0x6c4]                           |     
    0x00012028 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001202c ldr r1, [pc, 0x6c0]                           |     r1 = *(0x126f0);
    0x00012030 add r3, r3, 0x630                             |     r3 = 0x12d18;
    0x00012034 add r2, pc, r2                                |     r2 = pc + r2;
    0x00012038 add r3, r3, 8                                 |     r3 += 8;
    0x0001203c str r2, [sp, 0x34]                            |     var_34h = r2;
    0x00012040 str r3, [sp, 0x40]                            |     var_40h = r3;
    0x00012044 add r2, r2, 0x510                             |     r2 = 0x12bfc;
    0x00012048 add r3, sp, 0x10c                             |     r3 += var_10ch;
    0x0001204c add r1, pc, r1                                |     r1 = pc + r1;
    0x00012050 add r2, r2, 8                                 |     r2 += 8;
    0x00012054 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x00012058 mov r8, 0                                     |     r8 = 0;
    0x0001205c add r3, sp, 0x5c                              |     r3 += var_5ch;
    0x00012060 add sb, sp, 0x6c                              |     sb += var_6ch;
    0x00012064 add fp, sp, 0xcc                              |     
    0x00012068 str r1, [sp, 0x50]                            |     format = r1;
    0x0001206c str r2, [sp, 0x38]                            |     s2 = r2;
    0x00012070 str r3, [sp, 0x18]                            |     var_18h = r3;
                                                             | label_1:
    0x00012074 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00012078 asr sl, r8, 1                                 |     sl = r8 >> 1;
    0x0001207c add r5, sl, 2                                 |     r5 = sl + 2;
    0x00012080 cmp r3, 0                                     |     
    0x00012084 lsl r6, r5, 6                                 |     r6 = r5 << 6;
    0x00012088 and r7, r8, 1                                 |     r7 = r8 & 1;
                                                             |     if (r3 != 0) {
    0x0001208c beq 0x120ac                                   |         
    0x00012090 cmp r7, 0                                     |         
                                                             |         if (r7 != 0) {
    0x00012094 bne 0x125a8                                   |             goto label_19;
                                                             |         }
    0x00012098 ldr r2, [pc, 0x658]                           |         r2 = *(0x126f4);
    0x0001209c add r2, pc, r2                                |         r2 = pc + r2;
                                                             | label_7:
    0x000120a0 mov r1, r6                                    |         r1 = r6;
    0x000120a4 ldr r0, [sp, 0x50]                            |         r0 = format;
    0x000120a8 bl 0x8298                                     |         printf (r0, r1, r2)
                                                             |     }
    0x000120ac ldr r4, [pc, 0x648]                           |     
    0x000120b0 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x000120b4 add r4, pc, r4                                |     r4 = pc + r4;
    0x000120b8 add r2, r3, 0x5d0                             |     r2 = r3 + 0x5d0;
    0x000120bc add r4, r4, 0x630                             |     r4 = 0x12d28;
    0x000120c0 sub r3, r6, 0x80                              |     r3 = r6 - 0x80;
    0x000120c4 lsl r1, r5, 3                                 |     r1 = r5 << 3;
    0x000120c8 add r4, r4, 8                                 |     r4 += 8;
    0x000120cc mov r5, r3                                    |     r5 = r3;
    0x000120d0 ldr r3, [sp, 0x38]                            |     r3 = s2;
    0x000120d4 str r8, [sp, 0x2c]                            |     var_2ch = r8;
    0x000120d8 str r4, [sp, 0x30]                            |     var_30h = r4;
    0x000120dc ldr r8, [sp, 0x28]                            |     r8 = s1;
    0x000120e0 ldr r4, [sp, 0x1c]                            |     r4 = var_1ch;
    0x000120e4 add r2, r2, 8                                 |     r2 += 8;
    0x000120e8 add r2, r2, sl, lsl 5                         |     r2 += (sl << 5);
    0x000120ec add r5, r3, r5                                |     r5 = r3 + r5;
    0x000120f0 mov sl, 0                                     |     sl = 0;
    0x000120f4 str r1, [sp, 0x24]                            |     var_24h = r1;
    0x000120f8 str r2, [sp, 0x20]                            |     var_20h = r2;
                                                             | label_8:
    0x000120fc ldr r2, [sp, 0x24]                            |     r2 = var_24h;
    0x00012100 mov r1, r5                                    |     r1 = r5;
    0x00012104 mov r0, r8                                    |     r0 = r8;
    0x00012108 bl 0x8550                                     |     memcpy (r0, r1, r2);
    0x0001210c cmp r7, 0                                     |     
    0x00012110 mov r2, r6                                    |     r2 = r6;
    0x00012114 mov r1, r8                                    |     r1 = r8;
    0x00012118 mov r0, r4                                    |     r0 = r4;
                                                             |     if (r7 != 0) {
    0x0001211c bne 0x12188                                   |         goto label_20;
                                                             |     }
    0x00012120 bl 0x8604                                     |     fcn_00008604 ();
    0x00012124 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00012128 ldr ip, [sp, 0x30]                            |     ip = var_30h;
    0x0001212c ldm r3, {r0, r1, r2, r3}                      |     r0 = *(r3);
                                                             |     r1 = *((r3 + 4));
                                                             |     r2 = *((r3 + 8));
                                                             |     r3 = *((r3 + 12));
    0x00012130 ldr lr, [sp, 0x18]                            |     lr = var_18h;
    0x00012134 add ip, ip, sl, lsl 4                         |     
    0x00012138 stm lr, {r0, r1, r2, r3}                      |     *(lr) = r0;
                                                             |     *((lr + 4)) = r1;
                                                             |     *((lr + 8)) = r2;
                                                             |     *((lr + 12)) = r3;
    0x0001213c ldm ip, {r0, r1, r2, r3}                      |     r0 = *(ip);
                                                             |     r1 = *((ip + 4));
                                                             |     r2 = *((ip + 8));
                                                             |     r3 = *((ip + 12));
    0x00012140 stm sb, {r0, r1, r2, r3}                      |     *(sb) = r0;
                                                             |     *((sb + 4)) = r1;
                                                             |     *((sb + 8)) = r2;
                                                             |     *((sb + 12)) = r3;
                                                             |     do {
    0x00012144 ldr r2, [sp, 0x18]                            |         r2 = var_18h;
    0x00012148 mov r3, fp                                    |         r3 = fp;
    0x0001214c mov r1, r7                                    |         r1 = r7;
    0x00012150 mov r0, r4                                    |         r0 = r4;
    0x00012154 bl 0x879c                                     |         fcn_0000879c ();
    0x00012158 ldr r2, [fp]                                  |         r2 = *(fp);
    0x0001215c ldr r3, [sb]                                  |         r3 = *(sb);
    0x00012160 cmp r2, r3                                    |         
                                                             |         if (r2 == r3) {
    0x00012164 beq 0x121b0                                   |             goto label_21;
                                                             |         }
                                                             | label_0:
    0x00012168 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x0001216c cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00012170 moveq r3, 1                                   |             r3 = 1;
                                                             |         }
                                                             |         if (r3 != 0) {
    0x00012174 streq r3, [sp, 0x18]                          |             var_18h = r3;
                                                             |         }
                                                             |         if (r3 != 0) {
    0x00012178 bne 0x125b4                                   |             goto label_22;
                                                             |         }
                                                             | label_18:
    0x0001217c ldr r0, [sp, 0x18]                            |         r0 = var_18h;
    0x00012180 add sp, sp, 0x224                             |         
    0x00012184 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_20:
    0x00012188 bl 0x8fa0                                     |         fcn_00008fa0 ();
    0x0001218c ldr r3, [sp, 0x40]                            |         r3 = var_40h;
    0x00012190 ldr ip, [sp, 0x18]                            |         ip = var_18h;
    0x00012194 add r3, r3, sl, lsl 4                         |         r3 += (sl << 4);
    0x00012198 ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x0001219c stm ip, {r0, r1, r2, r3}                      |         *(ip) = r0;
                                                             |         *((ip + 4)) = r1;
                                                             |         *((ip + 8)) = r2;
                                                             |         *((ip + 12)) = r3;
    0x000121a0 ldr r3, [sp, 0x20]                            |         r3 = var_20h;
    0x000121a4 ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x000121a8 stm sb, {r0, r1, r2, r3}                      |         *(sb) = r0;
                                                             |         *((sb + 4)) = r1;
                                                             |         *((sb + 8)) = r2;
                                                             |         *((sb + 12)) = r3;
    0x000121ac b 0x12144                                     |         
                                                             |     } while (1);
                                                             | label_21:
    0x000121b0 ldr r2, [sp, 0x70]                            |     r2 = var_70h;
    0x000121b4 ldr r1, [sp, 0xd0]                            |     r1 = var_d0h;
    0x000121b8 add r3, sp, 0xd0                              |     r3 += var_d0h;
    0x000121bc cmp r1, r2                                    |     
    0x000121c0 add r2, sp, 0x70                              |     r2 += var_70h;
                                                             |     if (r1 != r2) {
    0x000121c4 bne 0x12168                                   |         goto label_0;
                                                             |     }
    0x000121c8 ldr r0, [sp, 0x74]                            |     r0 = var_74h;
    0x000121cc ldr ip, [sp, 0xd4]                            |     ip = var_d4h;
    0x000121d0 add r1, sp, 0xd4                              |     r1 += var_d4h;
    0x000121d4 cmp ip, r0                                    |     
    0x000121d8 add r0, sp, 0x74                              |     r0 += var_74h;
                                                             |     if (ip != r0) {
    0x000121dc bne 0x12168                                   |         goto label_0;
                                                             |     }
    0x000121e0 add lr, sp, 0xd8                              |     lr += var_d8h;
    0x000121e4 ldr ip, [sp, 0x78]                            |     ip = var_78h;
    0x000121e8 str lr, [sp, 0x54]                            |     var_54h = lr;
    0x000121ec ldr lr, [sp, 0xd8]                            |     lr = var_d8h;
    0x000121f0 cmp lr, ip                                    |     
    0x000121f4 add ip, sp, 0x78                              |     
                                                             |     if (lr != ip) {
    0x000121f8 bne 0x12168                                   |         goto label_0;
                                                             |     }
    0x000121fc ldr lr, [sp, 0x20]                            |     lr = var_20h;
    0x00012200 cmp sl, 1                                     |     
    0x00012204 add lr, lr, 0x10                              |     lr += 0x10;
    0x00012208 add r5, r5, 0x20                              |     r5 += 0x20;
    0x0001220c str lr, [sp, 0x20]                            |     var_20h = lr;
                                                             |     if (sl != 1) {
    0x00012210 bne 0x125d4                                   |         goto label_23;
                                                             |     }
    0x00012214 str r3, [sp, 0x30]                            |     var_30h = r3;
    0x00012218 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x0001221c ldr r8, [sp, 0x2c]                            |     r8 = var_2ch;
    0x00012220 cmp r3, 0                                     |     
    0x00012224 str r1, [sp, 0x44]                            |     var_44h = r1;
    0x00012228 str r2, [sp, 0x3c]                            |     var_3ch = r2;
    0x0001222c str r0, [sp, 0x48]                            |     var_48h = r0;
    0x00012230 str ip, [sp, 0x4c]                            |     var_4ch = ip;
                                                             |     if (r3 != 0) {
    0x00012234 bne 0x125fc                                   |         goto label_24;
                                                             |     }
                                                             | label_10:
    0x00012238 add r8, r8, 1                                 |     r8++;
    0x0001223c cmp r8, 6                                     |     
                                                             |     if (r8 != 6) {
    0x00012240 bne 0x12074                                   |         goto label_1;
                                                             |     }
    0x00012244 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00012248 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0001224c bne 0x126c8                                   |         goto label_25;
                                                             |     }
                                                             | label_16:
    0x00012250 ldr r2, [pc, 0x4a8]                           |     
    0x00012254 ldr r3, [pc, 0x4a8]                           |     
    0x00012258 mov r8, 0                                     |     r8 = 0;
    0x0001225c add sl, sp, 0x7c                              |     sl += var_7ch;
    0x00012260 add r2, pc, r2                                |     r2 = pc + r2;
    0x00012264 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012268 str r8, [sp, 0x24]                            |     var_24h = r8;
    0x0001226c mov r8, sl                                    |     r8 = sl;
    0x00012270 ldr sl, [sp, 0x18]                            |     sl = var_18h;
    0x00012274 add r1, r2, 0x650                             |     r1 = r2 + 0x650;
    0x00012278 str r2, [sp, 0x34]                            |     var_34h = r2;
    0x0001227c add r3, r3, 0x750                             |     r3 = mbedtls_ccm_self_test;
    0x00012280 add r2, r2, 0x6c0                             |     r2 = 0x12dbc;
    0x00012284 add r1, r1, 8                                 |     r1 += 8;
    0x00012288 add r2, r2, 8                                 |     r2 += 8;
    0x0001228c add r3, r3, 8                                 |     r3 += 8;
    0x00012290 str r1, [sp, 0x38]                            |     s2 = r1;
    0x00012294 str r2, [sp, 0x40]                            |     var_40h = r2;
    0x00012298 str r3, [sp, 0x2c]                            |     var_2ch = r3;
                                                             | label_3:
    0x0001229c ldr r3, [sp, 0x24]                            |     r3 = var_24h;
    0x000122a0 ldr r2, [sp, 0x14]                            |     r2 = var_14h;
    0x000122a4 asr r4, r3, 1                                 |     r4 = r3 >> 1;
    0x000122a8 add r5, r4, 2                                 |     r5 = r4 + 2;
    0x000122ac cmp r2, 0                                     |     
    0x000122b0 lsl r7, r5, 6                                 |     r7 = r5 << 6;
    0x000122b4 and r6, r3, 1                                 |     r6 = r3 & 1;
                                                             |     if (r2 != 0) {
    0x000122b8 beq 0x122dc                                   |         
    0x000122bc cmp r6, 0                                     |         
                                                             |         if (r6 != 0) {
    0x000122c0 bne 0x126bc                                   |             goto label_26;
                                                             |         }
    0x000122c4 ldr r2, [pc, 0x43c]                           |         r2 = *(0x12704);
    0x000122c8 add r2, pc, r2                                |         r2 = pc + r2;
                                                             | label_15:
    0x000122cc ldr r0, [pc, 0x438]                           |         r0 = *(0x12708);
    0x000122d0 mov r1, r7                                    |         r1 = r7;
    0x000122d4 add r0, pc, r0                                |         r0 = pc + r0;
    0x000122d8 bl 0x8298                                     |         printf (r0, r1, r2)
                                                             |     }
    0x000122dc ldr lr, [sp, 0x38]                            |     lr = s2;
    0x000122e0 ldr ip, [sp, 0x34]                            |     ip = var_34h;
    0x000122e4 ldm lr, {r0, r1, r2, r3}                      |     r0 = *(lr);
                                                             |     r1 = *((lr + 4));
                                                             |     r2 = *((lr + 8));
                                                             |     r3 = *((lr + 12));
    0x000122e8 add ip, ip, 0x660                             |     
    0x000122ec stm sl, {r0, r1, r2, r3}                      |     *(sl) = r0;
                                                             |     *((sl + 4)) = r1;
                                                             |     *((sl + 8)) = r2;
                                                             |     *((sl + 12)) = r3;
    0x000122f0 stm sb, {r0, r1, r2, r3}                      |     *(sb) = r0;
                                                             |     *((sb + 4)) = r1;
                                                             |     *((sb + 8)) = r2;
                                                             |     *((sb + 12)) = r3;
    0x000122f4 lsl r2, r5, 3                                 |     r2 = r5 << 3;
    0x000122f8 ldr r5, [sp, 0x28]                            |     r5 = s1;
    0x000122fc add ip, ip, 8                                 |     
    0x00012300 add r1, ip, r4, lsl 5                         |     r1 = ip + (r4 << 5);
    0x00012304 mov r0, r5                                    |     r0 = r5;
    0x00012308 bl 0x8550                                     |     memcpy (r0, r1, r2);
    0x0001230c cmp r6, 0                                     |     
    0x00012310 mov r2, r7                                    |     r2 = r7;
                                                             |     if (r6 != 0) {
    0x00012314 bne 0x1260c                                   |         goto label_27;
                                                             |     }
    0x00012318 mov r1, r5                                    |     r1 = r5;
    0x0001231c ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x00012320 bl 0x8604                                     |     fcn_00008604 ();
                                                             | label_11:
    0x00012324 ldr r5, [pc, 0x3e4]                           |     
    0x00012328 ldr r3, [sp, 0x40]                            |     r3 = var_40h;
    0x0001232c add r5, pc, r5                                |     r5 = pc + r5;
    0x00012330 add r5, r5, 0x750                             |     r5 = 0x12e5c;
    0x00012334 add r5, r5, 8                                 |     r5 += 8;
    0x00012338 add r4, r4, r4, lsl 1                         |     r4 += (r4 << 1);
    0x0001233c mov r7, 0                                     |     r7 = 0;
    0x00012340 str r5, [sp, 0x20]                            |     var_20h = r5;
    0x00012344 add r4, r3, r4, lsl 4                         |     r4 = r3 + (r4 << 4);
    0x00012348 mov r5, r7                                    |     r5 = r7;
                                                             | label_2:
    0x0001234c ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00012350 lsl lr, r5, 4                                 |     lr = r5 << 4;
    0x00012354 add r3, lr, r3                                |     r3 = lr + r3;
    0x00012358 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x0001235c ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00012360 cmp r6, 0                                     |     
    0x00012364 add r7, r4, lr                                |     r7 = r4 + lr;
    0x00012368 add lr, lr, r3                                |     lr += r3;
                                                             |     if (r6 != 0) {
    0x0001236c bne 0x125dc                                   |         goto label_28;
                                                             |     }
    0x00012370 ldm sl, {r0, r1, r2, r3}                      |     r0 = *(sl);
                                                             |     r1 = *((sl + 4));
                                                             |     r2 = *((sl + 8));
                                                             |     r3 = *((sl + 12));
    0x00012374 stm r8, {r0, r1, r2, r3}                      |     *(r8) = r0;
                                                             |     *((r8 + 4)) = r1;
                                                             |     *((r8 + 8)) = r2;
                                                             |     *((r8 + 12)) = r3;
    0x00012378 ldm r7, {r0, r1, r2, r3}                      |     r0 = *(r7);
                                                             |     r1 = *((r7 + 4));
                                                             |     r2 = *((r7 + 8));
                                                             |     r3 = *((r7 + 12));
    0x0001237c stm sl, {r0, r1, r2, r3}                      |     *(sl) = r0;
                                                             |     *((sl + 4)) = r1;
                                                             |     *((sl + 8)) = r2;
                                                             |     *((sl + 12)) = r3;
    0x00012380 ldm lr, {r0, r1, r2, r3}                      |     r0 = *(lr);
                                                             |     r1 = *((lr + 4));
                                                             |     r2 = *((lr + 8));
                                                             |     r3 = *((lr + 12));
    0x00012384 stm sb, {r0, r1, r2, r3}                      |     *(sb) = r0;
                                                             |     *((sb + 4)) = r1;
                                                             |     *((sb + 8)) = r2;
                                                             |     *((sb + 12)) = r3;
                                                             | label_9:
    0x00012388 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x0001238c mov r3, r8                                    |     r3 = r8;
    0x00012390 mov r2, 0x10                                  |     r2 = 0x10;
    0x00012394 stm sp, {sl, fp}                              |     *(sp) = sl;
                                                             |     *((sp + 4)) = fp;
    0x00012398 mov r1, r6                                    |     r1 = r6;
    0x0001239c bl 0x8d60                                     |     fcn_00008d60 ();
    0x000123a0 ldr r2, [fp]                                  |     r2 = *(fp);
    0x000123a4 ldr r3, [sb]                                  |     r3 = *(sb);
    0x000123a8 cmp r2, r3                                    |     
                                                             |     if (r2 != r3) {
    0x000123ac bne 0x12168                                   |         goto label_0;
                                                             |     }
    0x000123b0 ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x000123b4 ldr r2, [r3]                                  |     r2 = *(r3);
    0x000123b8 ldr r3, [sp, 0x3c]                            |     r3 = var_3ch;
    0x000123bc ldr r3, [r3]                                  |     r3 = *(r3);
    0x000123c0 cmp r2, r3                                    |     
                                                             |     if (r2 != r3) {
    0x000123c4 bne 0x12168                                   |         goto label_0;
                                                             |     }
    0x000123c8 ldr r3, [sp, 0x44]                            |     r3 = var_44h;
    0x000123cc ldr r2, [r3]                                  |     r2 = *(r3);
    0x000123d0 ldr r3, [sp, 0x48]                            |     r3 = var_48h;
    0x000123d4 ldr r3, [r3]                                  |     r3 = *(r3);
    0x000123d8 cmp r2, r3                                    |     
                                                             |     if (r2 != r3) {
    0x000123dc bne 0x12168                                   |         goto label_0;
                                                             |     }
    0x000123e0 ldr r3, [sp, 0x54]                            |     r3 = var_54h;
    0x000123e4 ldr r2, [r3]                                  |     r2 = *(r3);
    0x000123e8 ldr r3, [sp, 0x4c]                            |     r3 = var_4ch;
    0x000123ec ldr r3, [r3]                                  |     r3 = *(r3);
    0x000123f0 cmp r2, r3                                    |     
                                                             |     if (r2 != r3) {
    0x000123f4 bne 0x12168                                   |         goto label_0;
                                                             |     }
    0x000123f8 add r5, r5, 1                                 |     r5++;
    0x000123fc cmp r5, 3                                     |     
    0x00012400 mov r3, 0                                     |     r3 = 0;
                                                             |     if (r5 != 3) {
    0x00012404 bne 0x1234c                                   |         goto label_2;
                                                             |     }
    0x00012408 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x0001240c ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00012410 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00012414 bne 0x126ac                                   |         goto label_29;
                                                             |     }
                                                             | label_14:
    0x00012418 ldr r3, [sp, 0x24]                            |     r3 = var_24h;
    0x0001241c add r3, r3, 1                                 |     r3++;
    0x00012420 cmp r3, 6                                     |     
    0x00012424 str r3, [sp, 0x24]                            |     var_24h = r3;
                                                             |     if (r3 != 6) {
    0x00012428 bne 0x1229c                                   |         goto label_3;
                                                             |     }
    0x0001242c ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00012430 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00012434 bne 0x126d4                                   |         goto label_30;
                                                             |     }
                                                             | label_17:
    0x00012438 ldr r7, [pc, 0x2d4]                           |     r7 = *(0x12710);
    0x0001243c ldr r3, [pc, 0x2d4]                           |     r3 = *(0x12714);
    0x00012440 add r7, pc, r7                                |     r7 = pc + r7;
    0x00012444 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012448 str r3, [sp, 0x30]                            |     var_30h = r3;
    0x0001244c add r3, r7, 0x7b0                             |     r3 = r7 + 0x7b0;
    0x00012450 add r3, r3, 8                                 |     r3 += 8;
    0x00012454 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x00012458 add r3, sp, 0x58                              |     r3 += var_58h;
    0x0001245c str r3, [sp, 0x24]                            |     var_24h = r3;
    0x00012460 add r3, sp, 0x9c                              |     r3 += var_9ch;
    0x00012464 str r3, [sp, 0x2c]                            |     var_2ch = r3;
    0x00012468 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x0001246c mov r5, 0                                     |     r5 = 0;
    0x00012470 cmp r3, 0                                     |     
    0x00012474 mov r4, r5                                    |     r4 = r5;
    0x00012478 mov r6, 0x10                                  |     r6 = 0x10;
    0x0001247c add sl, sp, 0x8c                              |     sl += var_8ch;
    0x00012480 ldr sb, [sp, 0x28]                            |     sb = s1;
    0x00012484 and r8, r5, 1                                 |     r8 = r5 & 1;
                                                             |     if (r3 != 0) {
    0x00012488 beq 0x124a4                                   |         
    0x0001248c cmp r8, 0                                     |         
                                                             |         if (r8 != 0) {
    0x00012490 bne 0x1259c                                   |             goto label_31;
                                                             |         }
                                                             | label_5:
    0x00012494 ldr r1, [pc, 0x280]                           |         r1 = *(0x12718);
    0x00012498 add r1, pc, r1                                |         r1 = pc + r1;
                                                             | label_6:
    0x0001249c ldr r0, [sp, 0x30]                            |         r0 = var_30h;
    0x000124a0 bl 0x8298                                     |         printf (r0, r1)
                                                             |     }
                                                             | label_4:
    0x000124a4 lsl ip, r4, 4                                 |     
    0x000124a8 add r3, r7, ip                                |     r3 = r7 + ip;
    0x000124ac add r3, r3, 0x780                             |     r3 += 0x780;
    0x000124b0 add r3, r3, 8                                 |     r3 += 8;
    0x000124b4 ldm r3, {r0, r1, r2, r3}                      |     r0 = *(r3);
                                                             |     r1 = *((r3 + 4));
                                                             |     r2 = *((r3 + 8));
                                                             |     r3 = *((r3 + 12));
    0x000124b8 ldr lr, [sp, 0x20]                            |     lr = var_20h;
    0x000124bc stm sl, {r0, r1, r2, r3}                      |     *(sl) = r0;
                                                             |     *((sl + 4)) = r1;
                                                             |     *((sl + 8)) = r2;
                                                             |     *((sl + 12)) = r3;
    0x000124c0 add ip, lr, ip                                |     
    0x000124c4 ldm ip, {r0, r1, r2, r3}                      |     r0 = *(ip);
                                                             |     r1 = *((ip + 4));
                                                             |     r2 = *((ip + 8));
                                                             |     r3 = *((ip + 12));
    0x000124c8 mov ip, 0                                     |     
    0x000124cc stm sb, {r0, r1, r2, r3}                      |     *(sb) = r0;
                                                             |     *((sb + 4)) = r1;
                                                             |     *((sb + 8)) = r2;
                                                             |     *((sb + 12)) = r3;
    0x000124d0 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x000124d4 mov r2, 0x80                                  |     r2 = 0x80;
    0x000124d8 mov r1, sb                                    |     r1 = sb;
    0x000124dc str ip, [sp, 0x58]                            |     var_58h = ip;
    0x000124e0 add r4, r4, r4, lsl 1                         |     r4 += (r4 << 1);
    0x000124e4 bl 0x8fa0                                     |     fcn_00008fa0 ();
    0x000124e8 add r2, r7, 0x7e0                             |     r2 = r7 + 0x7e0;
    0x000124ec add r3, r7, 0x870                             |     r3 = r7 + 0x870;
    0x000124f0 lsl r4, r4, 4                                 |     r4 <<= 4;
    0x000124f4 cmp r8, 0                                     |     
    0x000124f8 add r2, r2, 8                                 |     r2 += 8;
    0x000124fc add r3, r3, 8                                 |     r3 += 8;
    0x00012500 add r8, r2, r4                                |     r8 = r2 + r4;
    0x00012504 add r4, r3, r4                                |     r4 = r3 + r4;
                                                             |     if (r8 != 0) {
    0x00012508 bne 0x1261c                                   |         goto label_32;
                                                             |     }
    0x0001250c mov r1, r8                                    |     r1 = r8;
    0x00012510 mov r2, r6                                    |     r2 = r6;
    0x00012514 mov r0, fp                                    |     r0 = fp;
    0x00012518 bl 0x8550                                     |     memcpy (r0, r1, r2);
    0x0001251c ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00012520 ldr r2, [sp, 0x24]                            |     r2 = var_24h;
    0x00012524 str r3, [sp]                                  |     *(sp) = r3;
    0x00012528 mov r1, r6                                    |     r1 = r6;
    0x0001252c mov r3, sl                                    |     r3 = sl;
    0x00012530 str fp, [sp, 8]                               |     var_8h = fp;
    0x00012534 str fp, [sp, 4]                               |     var_4h = fp;
    0x00012538 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x0001253c bl 0x8d9c                                     |     fcn_00008d9c ();
    0x00012540 mov r2, r6                                    |     r2 = r6;
    0x00012544 mov r1, r4                                    |     r1 = r4;
    0x00012548 mov r0, fp                                    |     r0 = fp;
    0x0001254c bl 0x8b08                                     |     r0 = memcmp (r0, r1, r2);
    0x00012550 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00012554 bne 0x12168                                   |         goto label_0;
                                                             |     }
    0x00012558 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x0001255c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00012560 bne 0x12674                                   |         goto label_33;
                                                             |     }
                                                             | label_12:
    0x00012564 add r5, r5, 1                                 |     r5++;
    0x00012568 cmp r5, 6                                     |     
                                                             |     if (r5 == 6) {
    0x0001256c beq 0x1268c                                   |         goto label_34;
                                                             |     }
                                                             | label_13:
    0x00012570 ldr r3, [pc, 0x1a8]                           |     r3 = *(0x1271c);
    0x00012574 asr r4, r5, 1                                 |     r4 = r5 >> 1;
    0x00012578 add r3, pc, r3                                |     r3 = pc + r3;
    0x0001257c add r3, r3, r4, lsl 2                         |     r3 += (r4 << 2);
    0x00012580 ldr r6, [r3, 0x908]                           |     r6 = *((r3 + 0x908));
    0x00012584 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00012588 and r8, r5, 1                                 |     r8 = r5 & 1;
    0x0001258c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00012590 beq 0x124a4                                   |         goto label_4;
                                                             |     }
    0x00012594 cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x00012598 beq 0x12494                                   |         goto label_5;
                                                             |     }
                                                             | label_31:
    0x0001259c ldr r1, [pc, 0x180]                           |     r1 = *(0x12720);
    0x000125a0 add r1, pc, r1                                |     r1 = pc + r1;
    0x000125a4 b 0x1249c                                     |     goto label_6;
                                                             | label_19:
    0x000125a8 ldr r2, [pc, 0x178]                           |     r2 = *(0x12724);
    0x000125ac add r2, pc, r2                                |     r2 = pc + r2;
    0x000125b0 b 0x120a0                                     |     goto label_7;
                                                             | label_22:
    0x000125b4 ldr r0, [pc, 0x170]                           |     r0 = *(0x12728);
    0x000125b8 add r0, pc, r0                                |     r0 = pc + r0;
    0x000125bc bl 0x858c                                     |     puts (r0);
    0x000125c0 mov r3, 1                                     |     r3 = 1;
    0x000125c4 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x000125c8 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x000125cc add sp, sp, 0x224                             |     
    0x000125d0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_23:
    0x000125d4 mov sl, 1                                     |     sl = 1;
    0x000125d8 b 0x120fc                                     |     goto label_8;
                                                             | label_28:
    0x000125dc ldm sb, {r0, r1, r2, r3}                      |     r0 = *(sb);
                                                             |     r1 = *((sb + 4));
                                                             |     r2 = *((sb + 8));
                                                             |     r3 = *((sb + 12));
    0x000125e0 stm r8, {r0, r1, r2, r3}                      |     *(r8) = r0;
                                                             |     *((r8 + 4)) = r1;
                                                             |     *((r8 + 8)) = r2;
                                                             |     *((r8 + 12)) = r3;
    0x000125e4 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x000125e8 ldm r3, {r0, r1, r2, r3}                      |     r0 = *(r3);
                                                             |     r1 = *((r3 + 4));
                                                             |     r2 = *((r3 + 8));
                                                             |     r3 = *((r3 + 12));
    0x000125ec stm sl, {r0, r1, r2, r3}                      |     *(sl) = r0;
                                                             |     *((sl + 4)) = r1;
                                                             |     *((sl + 8)) = r2;
                                                             |     *((sl + 12)) = r3;
    0x000125f0 ldm r7, {r0, r1, r2, r3}                      |     r0 = *(r7);
                                                             |     r1 = *((r7 + 4));
                                                             |     r2 = *((r7 + 8));
                                                             |     r3 = *((r7 + 12));
    0x000125f4 stm sb, {r0, r1, r2, r3}                      |     *(sb) = r0;
                                                             |     *((sb + 4)) = r1;
                                                             |     *((sb + 8)) = r2;
                                                             |     *((sb + 12)) = r3;
    0x000125f8 b 0x12388                                     |     goto label_9;
                                                             | label_24:
    0x000125fc ldr r0, [pc, 0x12c]                           |     r0 = *(0x1272c);
    0x00012600 add r0, pc, r0                                |     r0 = pc + r0;
    0x00012604 bl 0x858c                                     |     puts (r0);
    0x00012608 b 0x12238                                     |     goto label_10;
                                                             | label_27:
    0x0001260c ldr r1, [sp, 0x28]                            |     r1 = s1;
    0x00012610 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x00012614 bl 0x8fa0                                     |     fcn_00008fa0 ();
    0x00012618 b 0x12324                                     |     goto label_11;
                                                             | label_32:
    0x0001261c mov r1, r4                                    |     r1 = r4;
    0x00012620 mov r2, r6                                    |     r2 = r6;
    0x00012624 mov r0, fp                                    |     r0 = fp;
    0x00012628 bl 0x8550                                     |     memcpy (r0, r1, r2);
    0x0001262c ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00012630 ldr r2, [sp, 0x24]                            |     r2 = var_24h;
    0x00012634 str r3, [sp]                                  |     *(sp) = r3;
    0x00012638 mov r1, r6                                    |     r1 = r6;
    0x0001263c mov r3, sl                                    |     r3 = sl;
    0x00012640 str fp, [sp, 8]                               |     var_8h = fp;
    0x00012644 str fp, [sp, 4]                               |     var_4h = fp;
    0x00012648 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x0001264c bl 0x8d9c                                     |     fcn_00008d9c ();
    0x00012650 mov r2, r6                                    |     r2 = r6;
    0x00012654 mov r1, r8                                    |     r1 = r8;
    0x00012658 mov r0, fp                                    |     r0 = fp;
    0x0001265c bl 0x8b08                                     |     r0 = memcmp (r0, r1, r2);
    0x00012660 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00012664 bne 0x12168                                   |         goto label_0;
                                                             |     }
    0x00012668 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x0001266c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00012670 beq 0x12564                                   |         goto label_12;
                                                             |     }
                                                             | label_33:
    0x00012674 ldr r0, [pc, 0xb8]                            |     r0 = *(0x12730);
    0x00012678 add r5, r5, 1                                 |     r5++;
    0x0001267c add r0, pc, r0                                |     r0 = pc + r0;
    0x00012680 bl 0x858c                                     |     puts (r0);
    0x00012684 cmp r5, 6                                     |     
                                                             |     if (r5 != 6) {
    0x00012688 bne 0x12570                                   |         goto label_13;
                                                             |     }
                                                             | label_34:
    0x0001268c ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00012690 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00012694 bne 0x126e0                                   |         
    0x00012698 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x0001269c str r3, [sp, 0x18]                            |         var_18h = r3;
    0x000126a0 ldr r0, [sp, 0x18]                            |         r0 = var_18h;
    0x000126a4 add sp, sp, 0x224                             |         
    0x000126a8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_29:
    0x000126ac ldr r0, [pc, 0x84]                            |         r0 = *(0x12734);
    0x000126b0 add r0, pc, r0                                |         r0 = pc + r0;
    0x000126b4 bl 0x858c                                     |         puts (r0);
    0x000126b8 b 0x12418                                     |         goto label_14;
                                                             | label_26:
    0x000126bc ldr r2, [pc, 0x78]                            |         r2 = *(0x12738);
    0x000126c0 add r2, pc, r2                                |         r2 = pc + r2;
    0x000126c4 b 0x122cc                                     |         goto label_15;
                                                             | label_25:
    0x000126c8 mov r0, 0xa                                   |         r0 = 0xa;
    0x000126cc bl 0x81d8                                     |         putchar (r0);
    0x000126d0 b 0x12250                                     |         goto label_16;
                                                             | label_30:
    0x000126d4 mov r0, 0xa                                   |         r0 = 0xa;
    0x000126d8 bl 0x81d8                                     |         putchar (r0);
    0x000126dc b 0x12438                                     |         goto label_17;
                                                             |     }
    0x000126e0 mov r0, 0xa                                   |     r0 = 0xa;
    0x000126e4 bl 0x81d8                                     |     putchar (r0);
    0x000126e8 b 0x1217c                                     |     goto label_18;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x12e50 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mbedtls_ccm_self_test ()                     | void mbedtls_ccm_self_test (int32_t arg_10h, int32_t arg_1ch, int32_t arg_34h, int32_t arg_48h, int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_34h;
                                                             |     char * format;
                                                             |     char * s;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_60h;
                                                             |     int32_t var_1h;
                                                             |     int32_t var_a4h;
                                                             |     r0 = arg1;
    0x00012e50 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00012e54 ldr fp, [pc, 0x22c]                           |     fp = *(0x13084);
    0x00012e58 sub sp, sp, 0xa4                              |     
    0x00012e5c add r8, sp, 0x60                              |     r8 += var_60h;
    0x00012e60 add fp, pc, fp                                |     
    0x00012e64 mov sl, r0                                    |     sl = r0;
    0x00012e68 mov r0, r8                                    |     r0 = r8;
    0x00012e6c bl 0x88b0                                     |     fcn_000088b0 ();
    0x00012e70 mov r0, r8                                    |     r0 = r8;
    0x00012e74 mov r2, fp                                    |     r2 = fp;
    0x00012e78 mov r3, 0x80                                  |     r3 = 0x80;
    0x00012e7c mov r1, 2                                     |     r1 = 2;
    0x00012e80 bl 0x8850                                     |     fcn_00008850 ();
    0x00012e84 subs r4, r0, 0                                |     r4 -= var_60h;
                                                             |     if (r4 != var_60h) {
    0x00012e88 beq 0x12ea4                                   |         
    0x00012e8c cmp sl, 0                                     |         
                                                             |         if (sl != 0) {
    0x00012e90 bne 0x13050                                   |             goto label_4;
                                                             |         }
                                                             | label_3:
    0x00012e94 mov r5, 1                                     |         r5 = 1;
                                                             | label_0:
    0x00012e98 mov r0, r5                                    |         r0 = r5;
    0x00012e9c add sp, sp, 0xa4                              |         
    0x00012ea0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             |     }
    0x00012ea4 ldr r2, [pc, 0x1e0]                           |     r2 = *(0x13088);
    0x00012ea8 ldr r3, [pc, 0x1e0]                           |     
    0x00012eac add r2, pc, r2                                |     r2 = pc + r2;
    0x00012eb0 str r2, [sp, 0x38]                            |     format = r2;
    0x00012eb4 ldr r2, [pc, 0x1d8]                           |     r2 = *(0x13090);
    0x00012eb8 add r3, pc, r3                                |     r3 = pc + r3;
    0x00012ebc str r3, [sp, 0x30]                            |     var_30h = r3;
    0x00012ec0 add r3, r3, 0xa8                              |     r3 = 0x13134;
    0x00012ec4 add r2, pc, r2                                |     r2 = pc + r2;
    0x00012ec8 mov sb, 4                                     |     sb = 4;
    0x00012ecc str r3, [sp, 0x34]                            |     var_34h = r3;
    0x00012ed0 mov r3, 8                                     |     r3 = 8;
    0x00012ed4 str r2, [sp, 0x3c]                            |     s = r2;
    0x00012ed8 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x00012edc add r2, fp, 0x10                              |     r2 += arg_10h;
    0x00012ee0 mov r3, 7                                     |     r3 = 7;
    0x00012ee4 mov r5, sb                                    |     r5 = sb;
    0x00012ee8 add r7, sp, 0x40                              |     r7 += var_40h;
    0x00012eec str r2, [sp, 0x2c]                            |     var_2ch = r2;
    0x00012ef0 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x00012ef4 str sl, [sp, 0x24]                            |     var_24h = sl;
    0x00012ef8 str r8, [sp, 0x28]                            |     var_28h = r8;
                                                             |     do {
    0x00012efc ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x00012f00 add r8, fp, 0x1c                              |         r8 += arg_1ch;
    0x00012f04 cmp r3, 0                                     |         
    0x00012f08 add sl, fp, 0x34                              |         sl += arg_34h;
                                                             |         if (r3 != 0) {
    0x00012f0c bne 0x13034                                   |             goto label_5;
                                                             |         }
                                                             | label_1:
    0x00012f10 ldr r2, [sp, 0x20]                            |         r2 = var_20h;
    0x00012f14 add r3, r7, r5                                |         r3 = r7 + r5;
    0x00012f18 str r2, [sp, 4]                               |         var_4h = r2;
    0x00012f1c str r3, [sp, 0x10]                            |         var_10h = r3;
    0x00012f20 ldr r2, [sp, 0x2c]                            |         r2 = var_2ch;
    0x00012f24 mov r1, r5                                    |         r1 = r5;
    0x00012f28 str sb, [sp, 0x14]                            |         var_14h = sb;
    0x00012f2c str r7, [sp, 0xc]                             |         var_ch = r7;
    0x00012f30 str r8, [sp, 8]                               |         var_8h = r8;
    0x00012f34 str sl, [sp]                                  |         *(sp) = sl;
    0x00012f38 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x00012f3c ldr r0, [sp, 0x28]                            |         r0 = var_28h;
    0x00012f40 bl 0x85ec                                     |         fcn_000085ec ();
    0x00012f44 add r6, fp, 0x48                              |         r6 += arg_48h;
    0x00012f48 add r6, r6, r4, lsl 5                         |         r6 += (r4 << 5);
    0x00012f4c add r2, r5, sb                                |         r2 = r5 + sb;
    0x00012f50 mov r1, r6                                    |         r1 = r6;
    0x00012f54 add r4, r4, 1                                 |         r4 += var_1h;
    0x00012f58 cmp r0, 0                                     |         
    0x00012f5c mov r0, r7                                    |         r0 = r7;
                                                             |         if (r0 != 0) {
    0x00012f60 bne 0x1306c                                   |             goto label_6;
                                                             |         }
    0x00012f64 bl 0x8b08                                     |         memcmp (r0, r1, r2);
    0x00012f68 add ip, r6, r5                                |         
    0x00012f6c ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x00012f70 ldr r2, [sp, 0x2c]                            |         r2 = var_2ch;
    0x00012f74 mov r1, r5                                    |         r1 = r5;
    0x00012f78 cmp r0, 0                                     |         
    0x00012f7c ldr r0, [sp, 0x28]                            |         r0 = var_28h;
                                                             |         if (r0 != 0) {
    0x00012f80 bne 0x1306c                                   |             goto label_6;
                                                             |         }
    0x00012f84 str ip, [sp, 0x10]                            |         var_10h = ip;
    0x00012f88 ldr ip, [sp, 0x20]                            |         ip = var_20h;
    0x00012f8c str sb, [sp, 0x14]                            |         var_14h = sb;
    0x00012f90 str r7, [sp, 0xc]                             |         var_ch = r7;
    0x00012f94 str r6, [sp, 8]                               |         var_8h = r6;
    0x00012f98 stm sp, {sl, ip}                              |         *(sp) = sl;
                                                             |         *((sp + 4)) = ip;
    0x00012f9c bl 0x8d6c                                     |         fcn_00008d6c ();
    0x00012fa0 mov r2, r5                                    |         r2 = r5;
    0x00012fa4 mov r1, r8                                    |         r1 = r8;
    0x00012fa8 cmp r0, 0                                     |         
    0x00012fac mov r0, r7                                    |         r0 = r7;
                                                             |         if (r0 != 0) {
    0x00012fb0 bne 0x1306c                                   |             goto label_6;
                                                             |         }
    0x00012fb4 bl 0x8b08                                     |         memcmp (r0, r1, r2);
    0x00012fb8 subs r5, r0, 0                                |         r5 -= var_40h;
                                                             |         if (r5 != var_40h) {
    0x00012fbc bne 0x1306c                                   |             goto label_6;
                                                             |         }
    0x00012fc0 ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x00012fc4 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00012fc8 bne 0x13044                                   |             goto label_7;
                                                             |         }
                                                             | label_2:
    0x00012fcc ldr r3, [sp, 0x30]                            |         r3 = var_30h;
    0x00012fd0 cmp r4, 3                                     |         
    0x00012fd4 add r1, r3, 0xb4                              |         r1 = r3 + 0xb4;
    0x00012fd8 add r2, r3, 0xc0                              |         r2 = r3 + 0xc0;
    0x00012fdc add r3, r3, 0xcc                              |         r3 += 0xcc;
                                                             |         if (r4 == 3) {
    0x00012fe0 beq 0x13004                                   |             goto label_8;
                                                             |         }
    0x00012fe4 ldr r1, [r1, r4, lsl 2]                       |         offset_0 = r4 << 2;
                                                             |         r1 = *((r1 + offset_0));
    0x00012fe8 ldr r2, [r2, r4, lsl 2]                       |         offset_1 = r4 << 2;
                                                             |         r2 = *((r2 + offset_1));
    0x00012fec ldr sb, [r3, r4, lsl 2]                       |         offset_2 = r4 << 2;
                                                             |         sb = *((r3 + offset_2));
    0x00012ff0 ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x00012ff4 str r1, [sp, 0x1c]                            |         var_1ch = r1;
    0x00012ff8 str r2, [sp, 0x20]                            |         var_20h = r2;
    0x00012ffc ldr r5, [r3, r4, lsl 2]                       |         offset_3 = r4 << 2;
                                                             |         r5 = *((r3 + offset_3));
    0x00013000 b 0x12efc                                     |         
                                                             |     } while (1);
                                                             | label_8:
    0x00013004 ldr r8, [sp, 0x28]                            |     r8 = var_28h;
    0x00013008 ldr sl, [sp, 0x24]                            |     sl = var_24h;
    0x0001300c mov r0, r8                                    |     r0 = r8;
    0x00013010 bl 0x88c8                                     |     fcn_000088c8 ();
    0x00013014 cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x00013018 moveq r5, sl                                  |         r5 = sl;
                                                             |         goto label_9;
                                                             |     }
                                                             |     if (sl == 0) {
                                                             | label_9:
    0x0001301c beq 0x12e98                                   |         goto label_0;
                                                             |     }
    0x00013020 mov r0, 0xa                                   |     r0 = 0xa;
    0x00013024 bl 0x81d8                                     |     putchar (r0);
    0x00013028 mov r0, r5                                    |     r0 = r5;
    0x0001302c add sp, sp, 0xa4                              |     
    0x00013030 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_5:
    0x00013034 add r1, r4, 1                                 |     r1 += var_1h;
    0x00013038 ldr r0, [sp, 0x38]                            |     r0 = format;
    0x0001303c bl 0x8298                                     |     printf (r0, r1)
    0x00013040 b 0x12f10                                     |     goto label_1;
                                                             | label_7:
    0x00013044 ldr r0, [sp, 0x3c]                            |     r0 = s;
    0x00013048 bl 0x858c                                     |     puts (r0);
    0x0001304c b 0x12fcc                                     |     goto label_2;
                                                             | label_4:
    0x00013050 ldr r0, [pc, 0x40]                            |     r0 = *(0x13094);
    0x00013054 mov r5, 1                                     |     r5 = 1;
    0x00013058 add r0, pc, r0                                |     r0 = pc + r0;
    0x0001305c bl 0x8298                                     |     printf (r0, r1, r2, r3, r4, r5)
    0x00013060 mov r0, r5                                    |     r0 = r5;
    0x00013064 add sp, sp, 0xa4                              |     
    0x00013068 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_6:
    0x0001306c ldr sl, [sp, 0x24]                            |     sl = var_24h;
    0x00013070 cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x00013074 beq 0x12e94                                   |         goto label_3;
                                                             |     }
    0x00013078 ldr r0, [pc, 0x1c]                            |     r0 = *(0x13098);
    0x0001307c add r0, pc, r0                                |     r0 = pc + r0;
    0x00013080 bl 0x858c                                     |     puts (r0);
    0x00013084 b 0x12e94                                     |     goto label_3;
                                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x14b28 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.mbedtls_ctr_drbg_self_test ()        | void mbedtls_ctr_drbg_self_test (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_4h;
                                                     |     void * s1;
                                                     |     int32_t var_ch;
                                                     |     int32_t var_10h;
                                                     |     int32_t var_14h;
                                                     |     int32_t var_18h;
                                                     |     int32_t var_15ch;
                                                     |     r0 = arg1;
    0x00014b28 push {r4, r5, r6, r7, r8, sb, lr}     |     
    0x00014b2c sub sp, sp, 0x15c                     |     
    0x00014b30 add r4, sp, 0x18                      |     r4 += var_18h;
    0x00014b34 mov r5, r0                            |     r5 = r0;
    0x00014b38 mov r0, r4                            |     r0 = r4;
    0x00014b3c bl 0x81e4                             |     fcn_000081e4 ();
    0x00014b40 cmp r5, 0                             |     
                                                     |     if (r5 != 0) {
    0x00014b44 bne 0x14bfc                           |         goto label_6;
                                                     |     }
    0x00014b48 mov r1, 0x20                          |     r1 = 0x20;
    0x00014b4c ldr r3, [pc, 0x2fc]                   |     r3 = *(0x14e4c);
    0x00014b50 ldr ip, [pc, 0x2fc]                   |     ip = "TLS_ECP_NIST_OPTIM";
    0x00014b54 str r1, [sp, 4]                       |     var_4h = r1;
    0x00014b58 ldr r1, [pc, 0x2f8]                   |     r1 = "TLS_ECP_NIST_OPTIM";
    0x00014b5c add r3, pc, r3                        |     r3 = pc + r3;
    0x00014b60 add ip, pc, ip                        |     
    0x00014b64 mov r6, 0x10                          |     r6 = 0x10;
    0x00014b68 str r6, [sp]                          |     *(sp) = r6;
    0x00014b6c add r2, r3, r6                        |     r2 = r3 + r6;
    0x00014b70 add r1, pc, r1                        |     r1 = pc + r1;
    0x00014b74 mov r0, r4                            |     r0 = r4;
    0x00014b78 str r5, [ip]                          |     *(ip) = r5;
    0x00014b7c bl 0x8544                             |     r0 = fcn_00008544 ();
    0x00014b80 cmp r0, 0                             |     
    0x00014b84 beq 0x14b98                           |     
                                                     |     while (r0 != 0) {
                                                     | label_0:
    0x00014b88 mov r6, 1                             |         r6 = 1;
                                                     | label_4:
    0x00014b8c mov r0, r6                            |         r0 = r6;
    0x00014b90 add sp, sp, 0x15c                     |         
    0x00014b94 pop {r4, r5, r6, r7, r8, sb, pc}      |         
    0x00014b98 mov r1, 1                             |         r1 = 1;
    0x00014b9c mov r0, r4                            |         r0 = r4;
    0x00014ba0 add r7, sp, 8                         |         r7 += s1;
    0x00014ba4 bl 0x8208                             |         fcn_00008208 ();
    0x00014ba8 mov r1, r7                            |         r1 = r7;
    0x00014bac mov r2, r6                            |         r2 = r6;
    0x00014bb0 mov r0, r4                            |         r0 = r4;
    0x00014bb4 bl 0x84c0                             |         r0 = fcn_000084c0 ();
    0x00014bb8 cmp r0, 0                             |         
    0x00014bbc bne 0x14b88                           |         
                                                     |     }
    0x00014bc0 mov r2, r6                            |     r2 = r6;
    0x00014bc4 mov r1, r7                            |     r1 = r7;
    0x00014bc8 mov r0, r4                            |     r0 = r4;
    0x00014bcc bl 0x84c0                             |     r0 = fcn_000084c0 ();
    0x00014bd0 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00014bd4 bne 0x14b88                           |         goto label_0;
                                                     |     }
                                                     | label_2:
    0x00014bd8 ldr r6, [pc, 0x27c]                   |     r6 = *(0x14e58);
    0x00014bdc ldr r2, [sp, 8]                       |     r2 = s1;
    0x00014be0 add r6, pc, r6                        |     r6 = pc + r6;
    0x00014be4 ldr r3, [r6, 0x70]                    |     r3 = *(0x14ec8);
    0x00014be8 cmp r2, r3                            |     
                                                     |     if (r2 == r3) {
    0x00014bec beq 0x14cac                           |         goto label_7;
                                                     |     }
                                                     | label_3:
    0x00014bf0 cmp r5, 0                             |     
                                                     |     if (r5 != 0) {
    0x00014bf4 bne 0x14c4c                           |         goto label_1;
                                                     |     }
    0x00014bf8 b 0x14b88                             |     goto label_0;
                                                     | label_6:
    0x00014bfc ldr r0, [pc, 0x25c]                   |     r0 = *(0x14e5c);
    0x00014c00 mov r6, 0x10                          |     r6 = 0x10;
    0x00014c04 add r0, pc, r0                        |     r0 = pc + r0;
    0x00014c08 bl 0x8298                             |     printf (r0, r1, r2, r3, r4, r5, r6)
    0x00014c0c mov r1, 0x20                          |     r1 = 0x20;
    0x00014c10 ldr r3, [pc, 0x24c]                   |     r3 = *(0x14e60);
    0x00014c14 ldr r0, [pc, 0x24c]                   |     r0 = *(0x14e64);
    0x00014c18 str r1, [sp, 4]                       |     var_4h = r1;
    0x00014c1c ldr r1, [pc, 0x248]                   |     r1 = "DP_SECP224K1_ENABLED";
    0x00014c20 add r3, pc, r3                        |     r3 = pc + r3;
    0x00014c24 add r0, pc, r0                        |     r0 = pc + r0;
    0x00014c28 mov ip, 0                             |     
    0x00014c2c str r6, [sp]                          |     *(sp) = r6;
    0x00014c30 add r2, r3, r6                        |     r2 = r3 + r6;
    0x00014c34 str ip, [r0]                          |     *(r0) = ip;
    0x00014c38 add r1, pc, r1                        |     r1 = pc + r1;
    0x00014c3c mov r0, r4                            |     r0 = r4;
    0x00014c40 bl 0x8544                             |     r0 = fcn_00008544 ();
    0x00014c44 cmp r0, 0                             |     
    0x00014c48 beq 0x14c68                           |     
                                                     |     while (r0 != 0) {
                                                     | label_1:
    0x00014c4c ldr r0, [pc, 0x21c]                   |         r0 = *(0x14e6c);
    0x00014c50 mov r6, 1                             |         r6 = 1;
    0x00014c54 add r0, pc, r0                        |         r0 = pc + r0;
    0x00014c58 bl 0x858c                             |         puts (r0);
    0x00014c5c mov r0, r6                            |         r0 = r6;
    0x00014c60 add sp, sp, 0x15c                     |         
    0x00014c64 pop {r4, r5, r6, r7, r8, sb, pc}      |         
    0x00014c68 mov r1, 1                             |         r1 = 1;
    0x00014c6c mov r0, r4                            |         r0 = r4;
    0x00014c70 add r7, sp, 8                         |         r7 += s1;
    0x00014c74 bl 0x8208                             |         fcn_00008208 ();
    0x00014c78 mov r1, r7                            |         r1 = r7;
    0x00014c7c mov r2, r6                            |         r2 = r6;
    0x00014c80 mov r0, r4                            |         r0 = r4;
    0x00014c84 bl 0x84c0                             |         r0 = fcn_000084c0 ();
    0x00014c88 cmp r0, 0                             |         
    0x00014c8c bne 0x14c4c                           |         
                                                     |     }
    0x00014c90 mov r2, r6                            |     r2 = r6;
    0x00014c94 mov r1, r7                            |     r1 = r7;
    0x00014c98 mov r0, r4                            |     r0 = r4;
    0x00014c9c bl 0x84c0                             |     r0 = fcn_000084c0 ();
    0x00014ca0 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00014ca4 bne 0x14c4c                           |         goto label_1;
                                                     |     }
    0x00014ca8 b 0x14bd8                             |     goto label_2;
                                                     | label_7:
    0x00014cac ldr r2, [sp, 0xc]                     |     r2 = var_ch;
    0x00014cb0 ldr r3, [r6, 0x74]                    |     r3 = *((r6 + 0x74));
    0x00014cb4 cmp r2, r3                            |     
                                                     |     if (r2 != r3) {
    0x00014cb8 bne 0x14bf0                           |         goto label_3;
                                                     |     }
    0x00014cbc ldr r2, [sp, 0x10]                    |     r2 = var_10h;
    0x00014cc0 ldr r3, [r6, 0x78]                    |     r3 = *((r6 + 0x78));
    0x00014cc4 cmp r2, r3                            |     
                                                     |     if (r2 != r3) {
    0x00014cc8 bne 0x14bf0                           |         goto label_3;
                                                     |     }
    0x00014ccc ldr r2, [sp, 0x14]                    |     r2 = var_14h;
    0x00014cd0 ldr r3, [r6, 0x7c]                    |     r3 = *((r6 + 0x7c));
    0x00014cd4 cmp r2, r3                            |     
                                                     |     if (r2 != r3) {
    0x00014cd8 bne 0x14bf0                           |         goto label_3;
                                                     |     }
    0x00014cdc mov r0, r4                            |     r0 = r4;
    0x00014ce0 bl 0x83f4                             |     fcn_000083f4 ();
    0x00014ce4 cmp r5, 0                             |     
    0x00014ce8 mov sb, 0                             |     sb = 0;
                                                     |     if (r5 != 0) {
    0x00014cec bne 0x14dc4                           |         goto label_8;
                                                     |     }
    0x00014cf0 mov r0, r4                            |     r0 = r4;
    0x00014cf4 bl 0x81e4                             |     fcn_000081e4 ();
    0x00014cf8 ldr ip, [pc, 0x174]                   |     ip = "ECP_DP_SECP192R1_ENABLED";
    0x00014cfc ldr r1, [pc, 0x174]                   |     r1 = "ECP_DP_SECP192R1_ENABLED";
    0x00014d00 add ip, pc, ip                        |     
    0x00014d04 mov r3, 0x20                          |     r3 = 0x20;
    0x00014d08 mov r8, 0x10                          |     r8 = 0x10;
    0x00014d0c str r3, [sp, 4]                       |     var_4h = r3;
    0x00014d10 str r8, [sp]                          |     *(sp) = r8;
    0x00014d14 add r3, r6, 0x80                      |     r3 = r6 + 0x80;
    0x00014d18 add r2, r6, 0x90                      |     r2 = r6 + 0x90;
    0x00014d1c add r1, pc, r1                        |     r1 = pc + r1;
    0x00014d20 mov r0, r4                            |     r0 = r4;
    0x00014d24 str r5, [ip]                          |     *(ip) = r5;
    0x00014d28 bl 0x8544                             |     r0 = fcn_00008544 ();
    0x00014d2c cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00014d30 bne 0x14b88                           |         goto label_0;
                                                     |     }
    0x00014d34 mov r2, r8                            |     r2 = r8;
    0x00014d38 mov r1, r7                            |     r1 = r7;
    0x00014d3c mov r0, r4                            |     r0 = r4;
    0x00014d40 bl 0x84c0                             |     r0 = fcn_000084c0 ();
    0x00014d44 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00014d48 bne 0x14b88                           |         goto label_0;
                                                     |     }
    0x00014d4c mov r2, r5                            |     r2 = r5;
    0x00014d50 mov r1, r5                            |     r1 = r5;
    0x00014d54 mov r0, r4                            |     r0 = r4;
    0x00014d58 bl 0x8868                             |     r0 = fcn_00008868 ();
    0x00014d5c cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00014d60 bne 0x14b88                           |         goto label_0;
                                                     |     }
                                                     | label_5:
    0x00014d64 mov r2, 0x10                          |     r2 = 0x10;
    0x00014d68 mov r1, r7                            |     r1 = r7;
    0x00014d6c mov r0, r4                            |     r0 = r4;
    0x00014d70 bl 0x84c0                             |     r0 = fcn_000084c0 ();
    0x00014d74 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00014d78 bne 0x14bf0                           |         goto label_3;
                                                     |     }
    0x00014d7c ldr r1, [pc, 0xf8]                    |     
    0x00014d80 mov r0, r7                            |     r0 = r7;
    0x00014d84 add r1, pc, r1                        |     r1 = pc + r1;
    0x00014d88 add r1, r1, 0xd0                      |     r1 = 0x14f48;
    0x00014d8c mov r2, 0x10                          |     r2 = 0x10;
    0x00014d90 bl 0x8b08                             |     memcmp (r0, r1, r2);
    0x00014d94 subs r6, r0, 0                        |     r6 -= s1;
                                                     |     if (r6 != s1) {
    0x00014d98 bne 0x14bf0                           |         goto label_3;
                                                     |     }
    0x00014d9c mov r0, r4                            |     r0 = r4;
    0x00014da0 bl 0x83f4                             |     fcn_000083f4 ();
    0x00014da4 cmp r5, 0                             |     
                                                     |     if (r5 == 0) {
    0x00014da8 beq 0x14b8c                           |         goto label_4;
                                                     |     }
    0x00014dac ldr r0, [pc, 0xcc]                    |     r0 = *(0x14e7c);
    0x00014db0 add r0, pc, r0                        |     r0 = pc + r0;
    0x00014db4 bl 0x858c                             |     puts (r0);
    0x00014db8 mov r0, 0xa                           |     r0 = 0xa;
    0x00014dbc bl 0x81d8                             |     putchar (r0);
    0x00014dc0 b 0x14b8c                             |     goto label_4;
                                                     | label_8:
    0x00014dc4 ldr r0, [pc, 0xb8]                    |     r0 = *(0x14e80);
    0x00014dc8 mov r8, 0x10                          |     r8 = 0x10;
    0x00014dcc add r0, pc, r0                        |     r0 = pc + r0;
    0x00014dd0 bl 0x858c                             |     puts (r0);
    0x00014dd4 ldr r0, [pc, 0xac]                    |     r0 = *(0x14e84);
    0x00014dd8 add r0, pc, r0                        |     r0 = pc + r0;
    0x00014ddc bl 0x8298                             |     printf (r0)
    0x00014de0 mov r0, r4                            |     r0 = r4;
    0x00014de4 bl 0x81e4                             |     fcn_000081e4 ();
    0x00014de8 ldr r0, [pc, 0x9c]                    |     r0 = *(0x14e88);
    0x00014dec ldr r1, [pc, 0x9c]                    |     r1 = "CBC";
    0x00014df0 add r0, pc, r0                        |     r0 = pc + r0;
    0x00014df4 mov r3, 0x20                          |     r3 = 0x20;
    0x00014df8 str r3, [sp, 4]                       |     var_4h = r3;
    0x00014dfc str r8, [sp]                          |     *(sp) = r8;
    0x00014e00 add r3, r6, 0x80                      |     r3 = r6 + 0x80;
    0x00014e04 str sb, [r0]                          |     *(r0) = sb;
    0x00014e08 add r2, r6, 0x90                      |     r2 = r6 + 0x90;
    0x00014e0c add r1, pc, r1                        |     r1 = pc + r1;
    0x00014e10 mov r0, r4                            |     r0 = r4;
    0x00014e14 bl 0x8544                             |     r0 = fcn_00008544 ();
    0x00014e18 cmp r0, sb                            |     
                                                     |     if (r0 != sb) {
    0x00014e1c bne 0x14c4c                           |         goto label_1;
                                                     |     }
    0x00014e20 mov r2, r8                            |     r2 = r8;
    0x00014e24 mov r1, r7                            |     r1 = r7;
    0x00014e28 mov r0, r4                            |     r0 = r4;
    0x00014e2c bl 0x84c0                             |     fcn_000084c0 ();
    0x00014e30 subs r2, r0, 0                        |     r2 -= var_18h;
                                                     |     if (r2 != var_18h) {
    0x00014e34 bne 0x14c4c                           |         goto label_1;
                                                     |     }
    0x00014e38 mov r1, r2                            |     r1 = r2;
    0x00014e3c mov r0, r4                            |     r0 = r4;
    0x00014e40 bl 0x8868                             |     r0 = fcn_00008868 ();
    0x00014e44 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00014e48 bne 0x14c4c                           |         goto label_1;
                                                     |     }
    0x00014e4c b 0x14d64                             |     goto label_5;
                                                     | }


r2dec has crashed (info: /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x16178).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x172bc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.mbedtls_dhm_self_test ()     | void mbedtls_dhm_self_test (int32_t arg1) {
                                             |     int32_t var_4h;
                                             |     int32_t var_84h;
                                             |     r0 = arg1;
    0x000172bc push {r4, r5, lr}             |     
    0x000172c0 sub sp, sp, 0x84              |     
    0x000172c4 add r4, sp, 4                 |     r4 += var_4h;
    0x000172c8 mov r5, r0                    |     r5 = r0;
    0x000172cc mov r0, r4                    |     r0 = r4;
    0x000172d0 bl 0x8ff4                     |     fcn_00008ff4 ();
    0x000172d4 cmp r5, 0                     |     
                                             |     if (r5 != 0) {
    0x000172d8 bne 0x1730c                   |         goto label_1;
                                             |     }
    0x000172dc ldr r1, [pc, 0x74]            |     r1 = *(0x17354);
    0x000172e0 mov r2, 0xfb                  |     r2 = 0xfb;
    0x000172e4 add r1, pc, r1                |     r1 = pc + r1;
    0x000172e8 mov r0, r4                    |     r0 = r4;
    0x000172ec bl 0x8b44                     |     fcn_00008b44 ();
    0x000172f0 adds r5, r0, 0                |     r5 += var_4h;
    0x000172f4 movne r5, 1                   |     r5 = 1;
                                             |     while (1) {
                                             | label_0:
    0x000172f8 mov r0, r4                    |         r0 = r4;
    0x000172fc bl 0x86ac                     |         fcn_000086ac ();
    0x00017300 mov r0, r5                    |         r0 = r5;
    0x00017304 add sp, sp, 0x84              |         
    0x00017308 pop {r4, r5, pc}              |         
                                             | label_1:
    0x0001730c ldr r0, [pc, 0x48]            |         r0 = *(0x17358);
    0x00017310 add r0, pc, r0                |         r0 = pc + r0;
    0x00017314 bl 0x8298                     |         printf (r0)
    0x00017318 ldr r1, [pc, 0x40]            |         r1 = *(0x1735c);
    0x0001731c mov r2, 0xfb                  |         r2 = 0xfb;
    0x00017320 add r1, pc, r1                |         r1 = pc + r1;
    0x00017324 mov r0, r4                    |         r0 = r4;
    0x00017328 bl 0x8b44                     |         fcn_00008b44 ();
    0x0001732c subs r5, r0, 0                |         r5 -= var_4h;
                                             |         if (r5 == var_4h) {
    0x00017330 beq 0x17348                   |             goto label_2;
                                             |         }
    0x00017334 ldr r0, [pc, 0x28]            |         r0 = *(0x17360);
    0x00017338 mov r5, 1                     |         r5 = 1;
    0x0001733c add r0, pc, r0                |         r0 = pc + r0;
    0x00017340 bl 0x858c                     |         puts (r0);
    0x00017344 b 0x172f8                     |         
                                             |     }
                                             | label_2:
    0x00017348 ldr r0, [pc, 0x18]            |     r0 = *(0x17364);
    0x0001734c add r0, pc, r0                |     r0 = pc + r0;
    0x00017350 bl 0x858c                     |     puts (r0);
    0x00017354 b 0x172f8                     |     goto label_0;
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x1b94c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.mbedtls_ecp_self_test ()                         | void mbedtls_ecp_self_test (int32_t arg_0h, int32_t arg_4h, int32_t arg_3ch, int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_1ch;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_2ch;
                                                                 |     int32_t var_0h_2;
                                                                 |     int32_t var_44h;
                                                                 |     int32_t var_68h;
                                                                 |     int32_t var_8ch;
                                                                 |     int32_t var_b4h;
                                                                 |     int32_t var_10ch;
                                                                 |     r0 = arg1;
    0x0001b94c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0001b950 ldr lr, [pc, 0x480]                               |     lr = "A3C12710F10A09FA08AB87";
    0x0001b954 mov sb, r0                                        |     sb = r0;
    0x0001b958 add lr, pc, lr                                    |     lr = pc + lr;
    0x0001b95c ldm lr!, {r0, r1, r2, r3}                         |     r0 = *(lr!);
                                                                 |     r1 = *((lr! + 4));
                                                                 |     r2 = *((lr! + 8));
                                                                 |     r3 = *((lr! + 12));
    0x0001b960 sub sp, sp, 0x10c                                 |     
    0x0001b964 add sl, sp, 0x2c                                  |     sl += var_2ch;
    0x0001b968 mov ip, sl                                        |     
    0x0001b96c stm ip!, {r0, r1, r2, r3}                         |     *(ip!) = r0;
                                                                 |     *((ip! + 4)) = r1;
                                                                 |     *((ip! + 8)) = r2;
                                                                 |     *((ip! + 12)) = r3;
    0x0001b970 ldm lr, {r0, r1}                                  |     r0 = *(lr);
                                                                 |     r1 = *((lr + 4));
    0x0001b974 add r5, sp, 0x8c                                  |     r5 += var_8ch;
    0x0001b978 stm ip, {r0, r1}                                  |     *(ip) = r0;
                                                                 |     *((ip + 4)) = r1;
    0x0001b97c add r8, sp, 0x44                                  |     r8 += var_44h;
    0x0001b980 mov r0, r5                                        |     r0 = r5;
    0x0001b984 bl 0x8f1c                                         |     fcn_00008f1c ();
    0x0001b988 add r7, sp, 0x68                                  |     r7 += var_68h;
    0x0001b98c mov r0, r8                                        |     r0 = r8;
    0x0001b990 bl 0x8244                                         |     fcn_00008244 ();
    0x0001b994 add r6, sp, 0x20                                  |     r6 += var_20h;
    0x0001b998 mov r0, r7                                        |     r0 = r7;
    0x0001b99c bl 0x8244                                         |     fcn_00008244 ();
    0x0001b9a0 mov r0, r6                                        |     r0 = r6;
    0x0001b9a4 bl 0x86c4                                         |     fcn_000086c4 ();
    0x0001b9a8 mov r0, r5                                        |     r0 = r5;
    0x0001b9ac mov r1, 1                                         |     r1 = 1;
    0x0001b9b0 bl 0x8b20                                         |     fcn_00008b20 ();
    0x0001b9b4 subs r4, r0, 0                                    |     r4 -= var_8ch;
                                                                 |     if (r4 != var_8ch) {
    0x0001b9b8 bne 0x1ba08                                       |         goto label_0;
                                                                 |     }
    0x0001b9bc cmp sb, 0                                         |     
                                                                 |     if (sb != 0) {
    0x0001b9c0 bne 0x1ba90                                       |         goto label_9;
                                                                 |     }
    0x0001b9c4 mov r1, 2                                         |     r1 = 2;
    0x0001b9c8 mov r0, r6                                        |     r0 = r6;
    0x0001b9cc bl 0x8874                                         |     fcn_00008874 ();
    0x0001b9d0 subs r4, r0, 0                                    |     r4 -= var_20h;
                                                                 |     if (r4 == var_20h) {
    0x0001b9d4 beq 0x1bcfc                                       |         goto label_10;
                                                                 |     }
                                                                 | label_3:
    0x0001b9d8 mov r0, r5                                        |     r0 = r5;
    0x0001b9dc bl 0x85c8                                         |     fcn_000085c8 ();
    0x0001b9e0 mov r0, r8                                        |     r0 = r8;
    0x0001b9e4 bl 0x89ac                                         |     fcn_000089ac ();
    0x0001b9e8 mov r0, r7                                        |     r0 = r7;
    0x0001b9ec bl 0x89ac                                         |     fcn_000089ac ();
    0x0001b9f0 mov r0, r6                                        |     r0 = r6;
    0x0001b9f4 bl 0x8fac                                         |     fcn_00008fac ();
    0x0001b9f8 mov r0, r4                                        |     r0 = r4;
    0x0001b9fc add sp, sp, 0x10c                                 |     
    0x0001ba00 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |     
                                                                 | label_1:
    0x0001ba04 mov r4, ip                                        |     r4 = ip;
                                                                 |     do {
                                                                 | label_0:
    0x0001ba08 adds r3, sb, 0                                    |         r3 = sb + 0;
                                                                 |         if (r3 == sb) {
    0x0001ba0c movne r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x0001ba10 ands r3, r3, r4, lsr 31                           |         r3 &= (r4 >> 31);
                                                                 |         if (r3 == r3) {
    0x0001ba14 bne 0x1ba4c                                       |             
    0x0001ba18 mov r0, r5                                        |             r0 = r5;
    0x0001ba1c bl 0x85c8                                         |             fcn_000085c8 ();
    0x0001ba20 mov r0, r8                                        |             r0 = r8;
    0x0001ba24 bl 0x89ac                                         |             fcn_000089ac ();
    0x0001ba28 mov r0, r7                                        |             r0 = r7;
    0x0001ba2c bl 0x89ac                                         |             fcn_000089ac ();
    0x0001ba30 mov r0, r6                                        |             r0 = r6;
    0x0001ba34 bl 0x8fac                                         |             fcn_00008fac ();
    0x0001ba38 cmp sb, 0                                         |             
                                                                 |             if (sb != 0) {
    0x0001ba3c bne 0x1ba7c                                       |                 goto label_11;
                                                                 |             }
    0x0001ba40 mov r0, r4                                        |             r0 = r4;
    0x0001ba44 add sp, sp, 0x10c                                 |             
    0x0001ba48 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |             
                                                                 |         }
    0x0001ba4c ldr r0, [pc, 0x388]                               |         r0 = "A3C12710F10A09FA08AB87";
    0x0001ba50 mov r1, r4                                        |         r1 = r4;
    0x0001ba54 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001ba58 bl 0x8298                                         |         printf ("A3C12710F10A09FA08AB87", r1)
                                                                 | label_5:
    0x0001ba5c mov r0, r5                                        |         r0 = r5;
    0x0001ba60 bl 0x85c8                                         |         fcn_000085c8 ();
    0x0001ba64 mov r0, r8                                        |         r0 = r8;
    0x0001ba68 bl 0x89ac                                         |         fcn_000089ac ();
    0x0001ba6c mov r0, r7                                        |         r0 = r7;
    0x0001ba70 bl 0x89ac                                         |         fcn_000089ac ();
    0x0001ba74 mov r0, r6                                        |         r0 = r6;
    0x0001ba78 bl 0x8fac                                         |         fcn_00008fac ();
                                                                 | label_11:
    0x0001ba7c mov r0, 0xa                                       |         r0 = 0xa;
    0x0001ba80 bl 0x81d8                                         |         putchar (r0);
    0x0001ba84 mov r0, r4                                        |         r0 = r4;
    0x0001ba88 add sp, sp, 0x10c                                 |         
    0x0001ba8c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_9:
    0x0001ba90 ldr r0, [pc, 0x348]                               |         r0 = *(0x1bddc);
    0x0001ba94 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0001ba98 bl 0x8298                                         |         printf (r0)
    0x0001ba9c mov r1, 2                                         |         r1 = 2;
    0x0001baa0 mov r0, r6                                        |         r0 = r6;
    0x0001baa4 bl 0x8874                                         |         fcn_00008874 ();
    0x0001baa8 subs r4, r0, 0                                    |         r4 -= var_20h;
    0x0001baac bne 0x1ba08                                       |         
                                                                 |     } while (r4 != var_20h);
    0x0001bab0 add r3, sp, 0xb4                                  |     r3 += var_b4h;
    0x0001bab4 str r4, [sp, 4]                                   |     var_4h = r4;
    0x0001bab8 str r4, [sp]                                      |     *(sp) = r4;
    0x0001babc mov r2, r6                                        |     r2 = r6;
    0x0001bac0 mov r1, r7                                        |     r1 = r7;
    0x0001bac4 mov r0, r5                                        |     r0 = r5;
    0x0001bac8 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0001bacc bl 0x8c10                                         |     fcn_00008c10 ();
    0x0001bad0 subs r4, r0, 0                                    |     r4 -= var_8ch;
                                                                 |     if (r4 != var_8ch) {
    0x0001bad4 bne 0x1ba08                                       |         goto label_0;
                                                                 |     }
                                                                 | label_6:
    0x0001bad8 ldr fp, [pc, 0x304]                               |     fp = *(0x1bde0);
    0x0001badc ldr r2, [pc, 0x304]                               |     r2 = *(0x1bde4);
    0x0001bae0 mov r3, 0                                         |     r3 = 0;
    0x0001bae4 add fp, pc, fp                                    |     
    0x0001bae8 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0001baec mov r1, 0x10                                      |     r1 = 0x10;
    0x0001baf0 mov r0, r6                                        |     r0 = r6;
    0x0001baf4 str r3, [fp, 0x3c]                                |     *(arg_3ch) = r3;
    0x0001baf8 str r3, [fp, 4]                                   |     *(arg_4h) = r3;
    0x0001bafc str r3, [fp]                                      |     *(fp) = r3;
    0x0001bb00 bl 0x83e8                                         |     fcn_000083e8 ();
    0x0001bb04 subs r4, r0, 0                                    |     r4 -= var_20h;
                                                                 |     if (r4 != var_20h) {
    0x0001bb08 bne 0x1ba08                                       |         goto label_0;
                                                                 |     }
    0x0001bb0c str r4, [sp, 4]                                   |     var_4h = r4;
    0x0001bb10 str r4, [sp]                                      |     *(sp) = r4;
    0x0001bb14 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0001bb18 mov r2, r6                                        |     r2 = r6;
    0x0001bb1c mov r1, r8                                        |     r1 = r8;
    0x0001bb20 mov r0, r5                                        |     r0 = r5;
    0x0001bb24 bl 0x8c10                                         |     fcn_00008c10 ();
    0x0001bb28 subs r4, r0, 0                                    |     r4 -= var_8ch;
                                                                 |     if (r4 != var_8ch) {
    0x0001bb2c bne 0x1ba08                                       |         goto label_0;
                                                                 |     }
    0x0001bb30 ldr r3, [fp, 0x3c]                                |     r3 = *(arg_3ch);
    0x0001bb34 str r4, [sp, 0x10]                                |     var_10h = r4;
    0x0001bb38 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0001bb3c ldr r3, [fp, 4]                                   |     r3 = *(arg_4h);
    0x0001bb40 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0001bb44 ldr r3, [fp]                                      |     r3 = *(fp);
    0x0001bb48 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x0001bb4c mov r3, 1                                         |     r3 = 1;
    0x0001bb50 mov r4, r3                                        |     r4 = r3;
                                                                 | label_2:
    0x0001bb54 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0001bb58 ldr r2, [sl, r4, lsl 2]                           |     offset_0 = r4 << 2;
                                                                 |     r2 = *((sl + offset_0));
    0x0001bb5c mov r1, 0x10                                      |     r1 = 0x10;
    0x0001bb60 mov r0, r6                                        |     r0 = r6;
    0x0001bb64 str r3, [fp, 0x3c]                                |     *(arg_3ch) = r3;
    0x0001bb68 str r3, [fp, 4]                                   |     *(arg_4h) = r3;
    0x0001bb6c str r3, [fp]                                      |     *(fp) = r3;
    0x0001bb70 bl 0x83e8                                         |     fcn_000083e8 ();
    0x0001bb74 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0001bb78 mov r2, r6                                        |     r2 = r6;
    0x0001bb7c mov r1, r8                                        |     r1 = r8;
    0x0001bb80 subs ip, r0, 0                                    |     
    0x0001bb84 mov r0, r5                                        |     r0 = r5;
                                                                 |     if (ip != var_20h) {
    0x0001bb88 bne 0x1ba04                                       |         goto label_1;
                                                                 |     }
    0x0001bb8c str ip, [sp, 4]                                   |     var_4h = ip;
    0x0001bb90 str ip, [sp]                                      |     *(sp) = ip;
    0x0001bb94 bl 0x8c10                                         |     fcn_00008c10 ();
    0x0001bb98 subs ip, r0, 0                                    |     
                                                                 |     if (ip != var_8ch) {
    0x0001bb9c bne 0x1ba04                                       |         goto label_1;
                                                                 |     }
    0x0001bba0 ldr r3, [fp, 0x3c]                                |     r3 = *(arg_3ch);
    0x0001bba4 ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x0001bba8 cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x0001bbac bne 0x1bd28                                       |         goto label_12;
                                                                 |     }
    0x0001bbb0 ldr r3, [fp, 4]                                   |     r3 = *(arg_4h);
    0x0001bbb4 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0001bbb8 cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x0001bbbc bne 0x1bd28                                       |         goto label_12;
                                                                 |     }
    0x0001bbc0 ldr r3, [fp]                                      |     r3 = *(fp);
    0x0001bbc4 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x0001bbc8 cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x0001bbcc bne 0x1bd28                                       |         goto label_12;
                                                                 |     }
    0x0001bbd0 add r4, r4, 1                                     |     r4++;
    0x0001bbd4 cmp r4, 6                                         |     
                                                                 |     if (r4 != 6) {
    0x0001bbd8 bne 0x1bb54                                       |         goto label_2;
                                                                 |     }
    0x0001bbdc cmp sb, 0                                         |     
    0x0001bbe0 mov r4, ip                                        |     r4 = ip;
                                                                 |     if (sb != 0) {
    0x0001bbe4 bne 0x1bd38                                       |         goto label_13;
                                                                 |     }
    0x0001bbe8 ldr r2, [pc, 0x1fc]                               |     r2 = *(0x1bde8);
    0x0001bbec mov r1, 0x10                                      |     r1 = 0x10;
    0x0001bbf0 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0001bbf4 mov r0, r6                                        |     r0 = r6;
    0x0001bbf8 str sb, [fp, 0x3c]                                |     *(arg_3ch) = sb;
    0x0001bbfc str sb, [fp, 4]                                   |     *(arg_4h) = sb;
    0x0001bc00 str sb, [fp]                                      |     *(fp) = sb;
    0x0001bc04 bl 0x83e8                                         |     fcn_000083e8 ();
    0x0001bc08 subs r4, r0, 0                                    |     r4 -= var_20h;
                                                                 |     if (r4 != var_20h) {
    0x0001bc0c bne 0x1b9d8                                       |         goto label_3;
                                                                 |     }
    0x0001bc10 str sb, [sp, 4]                                   |     var_4h = sb;
    0x0001bc14 str sb, [sp]                                      |     *(sp) = sb;
    0x0001bc18 mov r3, r7                                        |     r3 = r7;
    0x0001bc1c mov r2, r6                                        |     r2 = r6;
    0x0001bc20 mov r1, r8                                        |     r1 = r8;
    0x0001bc24 mov r0, r5                                        |     r0 = r5;
    0x0001bc28 bl 0x8c10                                         |     fcn_00008c10 ();
    0x0001bc2c subs r4, r0, 0                                    |     r4 -= var_8ch;
                                                                 |     if (r4 != var_8ch) {
    0x0001bc30 bne 0x1b9d8                                       |         goto label_3;
                                                                 |     }
                                                                 | label_7:
    0x0001bc34 ldr fp, [pc, 0x1b4]                               |     fp = *(0x1bdec);
    0x0001bc38 mov r4, 1                                         |     r4 = 1;
    0x0001bc3c add fp, pc, fp                                    |     
    0x0001bc40 ldr r3, [fp, 0x3c]                                |     r3 = *(arg_3ch);
    0x0001bc44 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0001bc48 ldr r3, [fp, 4]                                   |     r3 = *(arg_4h);
    0x0001bc4c str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0001bc50 ldr r3, [fp]                                      |     r3 = *(0x1bdec);
    0x0001bc54 str r3, [sp, 0x14]                                |     var_14h = r3;
                                                                 | label_4:
    0x0001bc58 mov r3, 0                                         |     r3 = 0;
    0x0001bc5c ldr r2, [sl, r4, lsl 2]                           |     offset_1 = r4 << 2;
                                                                 |     r2 = *((sl + offset_1));
    0x0001bc60 mov r1, 0x10                                      |     r1 = 0x10;
    0x0001bc64 mov r0, r6                                        |     r0 = r6;
    0x0001bc68 str r3, [fp, 0x3c]                                |     *(arg_3ch) = r3;
    0x0001bc6c str r3, [fp, 4]                                   |     *(arg_4h) = r3;
    0x0001bc70 str r3, [fp]                                      |     *(fp) = r3;
    0x0001bc74 bl 0x83e8                                         |     fcn_000083e8 ();
    0x0001bc78 mov r3, r7                                        |     r3 = r7;
    0x0001bc7c mov r2, r6                                        |     r2 = r6;
    0x0001bc80 mov r1, r8                                        |     r1 = r8;
    0x0001bc84 subs ip, r0, 0                                    |     
    0x0001bc88 mov r0, r5                                        |     r0 = r5;
                                                                 |     if (ip != var_20h) {
    0x0001bc8c bne 0x1ba04                                       |         goto label_1;
                                                                 |     }
    0x0001bc90 str ip, [sp, 4]                                   |     var_4h = ip;
    0x0001bc94 str ip, [sp]                                      |     *(sp) = ip;
    0x0001bc98 bl 0x8c10                                         |     fcn_00008c10 ();
    0x0001bc9c subs ip, r0, 0                                    |     
                                                                 |     if (ip != var_8ch) {
    0x0001bca0 bne 0x1ba04                                       |         goto label_1;
                                                                 |     }
    0x0001bca4 ldr r3, [fp, 0x3c]                                |     r3 = *(arg_3ch);
    0x0001bca8 ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x0001bcac cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x0001bcb0 bne 0x1bdb8                                       |         goto label_14;
                                                                 |     }
    0x0001bcb4 ldr r3, [fp, 4]                                   |     r3 = *(arg_4h);
    0x0001bcb8 ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x0001bcbc cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x0001bcc0 bne 0x1bdb8                                       |         goto label_14;
                                                                 |     }
    0x0001bcc4 ldr r3, [fp]                                      |     r3 = *(fp);
    0x0001bcc8 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0001bccc cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x0001bcd0 bne 0x1bdb8                                       |         goto label_14;
                                                                 |     }
    0x0001bcd4 add r4, r4, 1                                     |     r4++;
    0x0001bcd8 cmp r4, 6                                         |     
                                                                 |     if (r4 != 6) {
    0x0001bcdc bne 0x1bc58                                       |         goto label_4;
                                                                 |     }
    0x0001bce0 cmp sb, 0                                         |     
    0x0001bce4 mov r4, ip                                        |     r4 = ip;
                                                                 |     if (sb == 0) {
    0x0001bce8 beq 0x1b9d8                                       |         goto label_3;
                                                                 |     }
    0x0001bcec ldr r0, [pc, 0x100]                               |     r0 = *(0x1bdf0);
    0x0001bcf0 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0001bcf4 bl 0x858c                                         |     puts (r0);
    0x0001bcf8 b 0x1ba5c                                         |     goto label_5;
                                                                 | label_10:
    0x0001bcfc add r3, sp, 0xb4                                  |     r3 += var_b4h;
    0x0001bd00 str r4, [sp, 4]                                   |     var_4h = r4;
    0x0001bd04 str r4, [sp]                                      |     *(sp) = r4;
    0x0001bd08 mov r2, r6                                        |     r2 = r6;
    0x0001bd0c mov r1, r7                                        |     r1 = r7;
    0x0001bd10 mov r0, r5                                        |     r0 = r5;
    0x0001bd14 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0001bd18 bl 0x8c10                                         |     fcn_00008c10 ();
    0x0001bd1c subs r4, r0, 0                                    |     r4 -= var_8ch;
                                                                 |     if (r4 != var_8ch) {
    0x0001bd20 bne 0x1b9d8                                       |         goto label_3;
                                                                 |     }
    0x0001bd24 b 0x1bad8                                         |     goto label_6;
                                                                 | label_12:
    0x0001bd28 cmp sb, 0                                         |     
                                                                 |     if (sb != 0) {
    0x0001bd2c bne 0x1bda0                                       |         goto label_15;
                                                                 |     }
                                                                 | label_8:
    0x0001bd30 mov r4, 1                                         |     r4 = 1;
    0x0001bd34 b 0x1b9d8                                         |     goto label_3;
                                                                 | label_13:
    0x0001bd38 ldr r0, [pc, 0xb8]                                |     r0 = *(0x1bdf4);
    0x0001bd3c add r0, pc, r0                                    |     r0 = pc + r0;
    0x0001bd40 bl 0x858c                                         |     puts (r0);
    0x0001bd44 ldr r0, [pc, 0xb0]                                |     r0 = *(0x1bdf8);
    0x0001bd48 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0001bd4c bl 0x8298                                         |     printf (r0)
    0x0001bd50 ldr r2, [pc, 0xa8]                                |     r2 = *(0x1bdfc);
    0x0001bd54 mov r1, 0x10                                      |     r1 = 0x10;
    0x0001bd58 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0001bd5c mov r0, r6                                        |     r0 = r6;
    0x0001bd60 str r4, [fp, 0x3c]                                |     *(arg_3ch) = r4;
    0x0001bd64 str r4, [fp, 4]                                   |     *(arg_4h) = r4;
    0x0001bd68 str r4, [fp]                                      |     *(fp) = r4;
    0x0001bd6c bl 0x83e8                                         |     fcn_000083e8 ();
    0x0001bd70 subs r4, r0, 0                                    |     r4 -= var_20h;
                                                                 |     if (r4 != var_20h) {
    0x0001bd74 bne 0x1ba08                                       |         goto label_0;
                                                                 |     }
    0x0001bd78 str r4, [sp, 4]                                   |     var_4h = r4;
    0x0001bd7c str r4, [sp]                                      |     *(sp) = r4;
    0x0001bd80 mov r3, r7                                        |     r3 = r7;
    0x0001bd84 mov r2, r6                                        |     r2 = r6;
    0x0001bd88 mov r1, r8                                        |     r1 = r8;
    0x0001bd8c mov r0, r5                                        |     r0 = r5;
    0x0001bd90 bl 0x8c10                                         |     fcn_00008c10 ();
    0x0001bd94 subs r4, r0, 0                                    |     r4 -= var_8ch;
                                                                 |     if (r4 != var_8ch) {
    0x0001bd98 bne 0x1ba08                                       |         goto label_0;
                                                                 |     }
    0x0001bd9c b 0x1bc34                                         |     goto label_7;
                                                                 | label_15:
    0x0001bda0 ldr r0, [pc, 0x5c]                                |     r0 = *(0x1be00);
    0x0001bda4 mov r1, r4                                        |     r1 = r4;
    0x0001bda8 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0001bdac bl 0x8298                                         |     printf (r0, r1)
    0x0001bdb0 mov r4, 1                                         |     r4 = 1;
    0x0001bdb4 b 0x1ba5c                                         |     goto label_5;
                                                                 | label_14:
    0x0001bdb8 cmp sb, 0                                         |     
                                                                 |     if (sb == 0) {
    0x0001bdbc beq 0x1bd30                                       |         goto label_8;
                                                                 |     }
    0x0001bdc0 ldr r0, [pc, 0x40]                                |     r0 = *(0x1be04);
    0x0001bdc4 mov r1, r4                                        |     r1 = r4;
    0x0001bdc8 add r0, pc, r0                                    |     r0 = pc + r0;
    0x0001bdcc bl 0x8298                                         |     printf (r0, r1)
    0x0001bdd0 mov r4, 1                                         |     r4 = 1;
    0x0001bdd4 b 0x1ba5c                                         |     goto label_5;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x1e2e8 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.mbedtls_entropy_self_test ()             | void mbedtls_entropy_self_test (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_1h_2;
                                                         |     void * s;
                                                         |     int32_t var_1h;
                                                         |     void * var_48h;
                                                         |     int32_t var_1h_3;
                                                         |     int32_t var_3fh;
                                                         |     int32_t var_88h;
                                                         |     int32_t var_2f8h;
                                                         |     r0 = arg1;
    0x0001e2e8 push {r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x0001e2ec sub sp, sp, 0x2f8                         |     
    0x0001e2f0 add r7, sp, 8                             |     r7 += s;
    0x0001e2f4 mov r8, r0                                |     r8 = r0;
    0x0001e2f8 mov r2, 0x40                              |     r2 = 0x40;
    0x0001e2fc mov r1, 0                                 |     r1 = 0;
    0x0001e300 mov r0, r7                                |     r0 = r7;
    0x0001e304 add r6, sp, 0x48                          |     r6 += var_48h;
    0x0001e308 bl 0x8c28                                 |     memset (r0, r1, r2);
    0x0001e30c mov r0, r6                                |     r0 = r6;
    0x0001e310 mov r2, 0x40                              |     r2 = 0x40;
    0x0001e314 mov r1, 0                                 |     r1 = 0;
    0x0001e318 bl 0x8c28                                 |     memset (r0, r1, r2);
    0x0001e31c cmp r8, 0                                 |     
                                                         |     if (r8 != 0) {
    0x0001e320 bne 0x1e390                               |         goto label_6;
                                                         |     }
    0x0001e324 add r5, sp, 0x88                          |     r5 += var_88h;
    0x0001e328 mov r0, r5                                |     r0 = r5;
    0x0001e32c bl 0x8a18                                 |     fcn_00008a18 ();
    0x0001e330 mov r0, r5                                |     r0 = r5;
    0x0001e334 bl 0x8b74                                 |     r0 = fcn_00008b74 ();
    0x0001e338 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0001e33c beq 0x1e358                               |         goto label_0;
                                                         |     }
    0x0001e340 mov r0, r5                                |     r0 = r5;
    0x0001e344 bl 0x89a0                                 |     fcn_000089a0 ();
                                                         |     do {
    0x0001e348 mov sl, 1                                 |         sl = 1;
                                                         | label_4:
    0x0001e34c mov r0, sl                                |         r0 = sl;
    0x0001e350 add sp, sp, 0x2f8                         |         
    0x0001e354 pop {r4, r5, r6, r7, r8, sb, sl, pc}      |         
                                                         | label_0:
    0x0001e358 ldr r1, [pc, 0x124]                       |         r1 = *(0x1e480);
    0x0001e35c mov r2, 0                                 |         r2 = 0;
    0x0001e360 str r2, [sp]                              |         *(sp) = r2;
    0x0001e364 mov r3, 0x10                              |         r3 = 0x10;
    0x0001e368 add r1, pc, r1                            |         r1 = pc + r1;
    0x0001e36c mov r0, r5                                |         r0 = r5;
    0x0001e370 bl 0x90fc                                 |         r0 = fcn_000090fc ();
    0x0001e374 cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x0001e378 beq 0x1e3e4                               |             goto label_7;
                                                         |         }
                                                         | label_1:
    0x0001e37c mov r0, r5                                |         r0 = r5;
    0x0001e380 bl 0x89a0                                 |         fcn_000089a0 ();
    0x0001e384 cmp r8, 0                                 |         
    0x0001e388 beq 0x1e348                               |         
                                                         |     } while (r8 == 0);
    0x0001e38c b 0x1e3c0                                 |     goto label_8;
                                                         | label_6:
    0x0001e390 ldr r0, [pc, 0xf0]                        |     r0 = *(0x1e484);
    0x0001e394 add r5, sp, 0x88                          |     r5 += var_88h;
    0x0001e398 add r0, pc, r0                            |     r0 = pc + r0;
    0x0001e39c bl 0x8298                                 |     printf (r0, r1, r2, r3, r4, r5)
    0x0001e3a0 mov r0, r5                                |     r0 = r5;
    0x0001e3a4 bl 0x8a18                                 |     fcn_00008a18 ();
    0x0001e3a8 mov r0, r5                                |     r0 = r5;
    0x0001e3ac bl 0x8b74                                 |     r0 = fcn_00008b74 ();
    0x0001e3b0 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0001e3b4 beq 0x1e358                               |         goto label_0;
                                                         |     }
    0x0001e3b8 mov r0, r5                                |     r0 = r5;
    0x0001e3bc bl 0x89a0                                 |     fcn_000089a0 ();
                                                         | label_8:
    0x0001e3c0 ldr r0, [pc, 0xc4]                        |     r0 = *(0x1e488);
    0x0001e3c4 mov sl, 1                                 |     sl = 1;
    0x0001e3c8 add r0, pc, r0                            |     r0 = pc + r0;
    0x0001e3cc bl 0x858c                                 |     puts (r0);
                                                         | label_5:
    0x0001e3d0 mov r0, 0xa                               |     r0 = 0xa;
    0x0001e3d4 bl 0x81d8                                 |     putchar (r0);
    0x0001e3d8 mov r0, sl                                |     r0 = sl;
    0x0001e3dc add sp, sp, 0x2f8                         |     
    0x0001e3e0 pop {r4, r5, r6, r7, r8, sb, sl, pc}      |     
                                                         | label_7:
    0x0001e3e4 mov r2, 0x40                              |     r2 = 0x40;
    0x0001e3e8 mov r1, r7                                |     r1 = r7;
    0x0001e3ec mov r0, r5                                |     r0 = r5;
    0x0001e3f0 bl 0x8d78                                 |     r0 = fcn_00008d78 ();
    0x0001e3f4 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0001e3f8 bne 0x1e37c                               |         goto label_1;
                                                         |     }
    0x0001e3fc mov sb, 8                                 |     sb = 8;
    0x0001e400 add r4, r6, 0x3f                          |     r4 += var_3fh;
                                                         | label_2:
    0x0001e404 mov r2, 0x40                              |     r2 = 0x40;
    0x0001e408 mov r1, r7                                |     r1 = r7;
    0x0001e40c mov r0, r5                                |     r0 = r5;
    0x0001e410 bl 0x90d8                                 |     fcn_000090d8 ();
    0x0001e414 subs sl, r0, 0                            |     sl -= var_88h;
                                                         |     if (sl != var_88h) {
    0x0001e418 bne 0x1e37c                               |         goto label_1;
                                                         |     }
    0x0001e41c sub r3, r6, 1                             |     r3 -= var_1h;
    0x0001e420 sub r1, r7, 1                             |     r1 -= var_1h_2;
    0x0001e424 mov ip, r6                                |     
                                                         |     do {
    0x0001e428 ldrb r2, [r3, 1]!                         |         r2 = var_48h;
    0x0001e42c ldrb r0, [r1, 1]!                         |         r0 = s;
    0x0001e430 cmp r3, r4                                |         
    0x0001e434 orr r2, r2, r0                            |         r2 |= r0;
    0x0001e438 strb r2, [r3]                             |         *(r3) = r2;
    0x0001e43c bne 0x1e428                               |         
                                                         |     } while (r3 != r4);
    0x0001e440 subs sb, sb, 1                            |     sb--;
                                                         |     if (sb != sb) {
    0x0001e444 bne 0x1e404                               |         goto label_2;
                                                         |     }
    0x0001e448 add r6, r6, 0x40                          |     r6 += var_88h;
                                                         | label_3:
    0x0001e44c ldrb r3, [ip], 1                          |     r3 = *(ip);
                                                         |     ip++;
    0x0001e450 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x0001e454 beq 0x1e37c                               |         goto label_1;
                                                         |     }
    0x0001e458 cmp r6, ip                                |     
                                                         |     if (r6 != ip) {
    0x0001e45c bne 0x1e44c                               |         goto label_3;
                                                         |     }
    0x0001e460 mov r0, r5                                |     r0 = r5;
    0x0001e464 bl 0x89a0                                 |     fcn_000089a0 ();
    0x0001e468 cmp r8, 0                                 |     
                                                         |     if (r8 == 0) {
    0x0001e46c moveq sl, r8                              |         sl = r8;
                                                         |         goto label_9;
                                                         |     }
                                                         |     if (r8 == 0) {
                                                         | label_9:
    0x0001e470 beq 0x1e34c                               |         goto label_4;
                                                         |     }
    0x0001e474 ldr r0, [pc, 0x14]                        |     r0 = mbedtls_ecp_curve_list;
    0x0001e478 add r0, pc, r0                            |     r0 = pc + r0;
    0x0001e47c bl 0x858c                                 |     puts (r0);
    0x0001e480 b 0x1e3d0                                 |     goto label_5;
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x20d3c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mbedtls_gcm_self_test ()                     | void mbedtls_gcm_self_test (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     void * var_2ch;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_38h;
                                                             |     void * var_3ch;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_44h;
                                                             |     int32_t var_48h;
                                                             |     void * s2;
                                                             |     int32_t var_50h;
                                                             |     int32_t var_54h;
                                                             |     int32_t var_58h;
                                                             |     int32_t var_5ch;
                                                             |     void * var_60h;
                                                             |     void * s1;
                                                             |     int32_t var_90h;
                                                             |     int32_t var_b0h;
                                                             |     int32_t var_23ch;
                                                             |     r0 = arg1;
    0x00020d3c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00020d40 sub sp, sp, 0x23c                             |     
    0x00020d44 add fp, sp, 0xb0                              |     
    0x00020d48 str r0, [sp, 0x28]                            |     var_28h = r0;
    0x00020d4c mov r0, fp                                    |     r0 = fp;
    0x00020d50 bl 0x82a4                                     |     fcn_000082a4 ();
    0x00020d54 ldr r3, [pc, 0x63c]                           |     
    0x00020d58 ldr r2, [pc, 0x63c]                           |     r2 = *(0x21398);
    0x00020d5c add r3, pc, r3                                |     r3 = pc + r3;
    0x00020d60 str r3, [sp, 0x54]                            |     var_54h = r3;
    0x00020d64 add r3, r3, 0xb70                             |     r3 = 0x21f04;
    0x00020d68 add r3, r3, 8                                 |     r3 += 8;
    0x00020d6c str r3, [sp, 0x58]                            |     var_58h = r3;
    0x00020d70 add sl, sp, 0x60                              |     sl += var_60h;
    0x00020d74 mov r3, 0x80                                  |     r3 = 0x80;
    0x00020d78 add r2, pc, r2                                |     r2 = pc + r2;
    0x00020d7c str r3, [sp, 0x24]                            |     var_24h = r3;
    0x00020d80 mov sb, fp                                    |     sb = fp;
    0x00020d84 mov r3, 0                                     |     r3 = 0;
    0x00020d88 add r8, sp, 0x70                              |     r8 += s1;
    0x00020d8c mov fp, sl                                    |     
    0x00020d90 str r2, [sp, 0x30]                            |     var_30h = r2;
    0x00020d94 str r3, [sp, 0x48]                            |     var_48h = r3;
                                                             | label_8:
    0x00020d98 mov r3, 0xc                                   |     r3 = 0xc;
    0x00020d9c str r3, [sp, 0x34]                            |     var_34h = r3;
    0x00020da0 ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x00020da4 mov r7, 0                                     |     r7 = 0;
    0x00020da8 add r2, r3, 0x5c0                             |     r2 = r3 + 0x5c0;
    0x00020dac add r3, r3, 0x5e0                             |     r3 += 0x5e0;
    0x00020db0 str r3, [sp, 0x5c]                            |     var_5ch = r3;
    0x00020db4 ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x00020db8 mov sl, fp                                    |     sl = fp;
    0x00020dbc cmp r3, 0                                     |     
    0x00020dc0 str r7, [sp, 0x38]                            |     var_38h = r7;
    0x00020dc4 mov r6, r7                                    |     r6 = r7;
    0x00020dc8 mov r4, r7                                    |     r4 = r7;
    0x00020dcc str r7, [sp, 0x2c]                            |     var_2ch = r7;
    0x00020dd0 str r2, [sp, 0x4c]                            |     s2 = r2;
    0x00020dd4 str r7, [sp, 0x3c]                            |     var_3ch = r7;
    0x00020dd8 mov fp, r7                                    |     
                                                             |     if (r3 != 0) {
    0x00020ddc bne 0x2122c                                   |         goto label_10;
                                                             |     }
                                                             |     do {
                                                             | label_0:
    0x00020de0 ldr r5, [sp, 0x30]                            |         r5 = var_30h;
    0x00020de4 mov r1, 2                                     |         r1 = 2;
    0x00020de8 add r3, r5, 0x80                              |         r3 = r5 + 0x80;
    0x00020dec add r3, r3, r4, lsl 5                         |         r3 += (r4 << 5);
    0x00020df0 mov r2, r3                                    |         r2 = r3;
    0x00020df4 str r3, [sp, 0x40]                            |         var_40h = r3;
    0x00020df8 mov r0, sb                                    |         r0 = sb;
    0x00020dfc ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x00020e00 bl 0x87b4                                     |         fcn_000087b4 ();
    0x00020e04 ldr r1, [sp, 0x3c]                            |         r1 = var_3ch;
    0x00020e08 add r2, r5, 0x140                             |         r2 = r5 + 0x140;
    0x00020e0c add r2, r2, r1, lsl 6                         |         r2 += (r1 << 6);
    0x00020e10 ldr r1, [sp, 0x38]                            |         r1 = var_38h;
    0x00020e14 mov r3, r5                                    |         r3 = r5;
    0x00020e18 str r1, [sp, 8]                               |         var_8h = r1;
    0x00020e1c ldr r1, [sp, 0x34]                            |         r1 = var_34h;
    0x00020e20 str r3, [sp, 0x30]                            |         var_30h = r3;
    0x00020e24 add r5, r5, 0x2c0                             |         r5 += 0x2c0;
    0x00020e28 add r3, r3, 0x440                             |         r3 += 0x440;
    0x00020e2c add r5, r5, fp, lsl 6                         |         r5 += (fp << 6);
    0x00020e30 add r4, r3, r7, lsl 6                         |         r4 = r3 + (r7 << 6);
    0x00020e34 mov fp, 0x10                                  |         
    0x00020e38 str r2, [sp, 0x44]                            |         var_44h = r2;
    0x00020e3c str r1, [sp]                                  |         *(sp) = r1;
    0x00020e40 mov r3, r2                                    |         r3 = r2;
    0x00020e44 str sl, [sp, 0x18]                            |         var_18h = sl;
    0x00020e48 str r8, [sp, 0x10]                            |         var_10h = r8;
    0x00020e4c str r5, [sp, 4]                               |         var_4h = r5;
    0x00020e50 str r4, [sp, 0xc]                             |         var_ch = r4;
    0x00020e54 str fp, [sp, 0x14]                            |         var_14h = fp;
    0x00020e58 mov r2, r6                                    |         r2 = r6;
    0x00020e5c mov r1, 1                                     |         r1 = 1;
    0x00020e60 mov r0, sb                                    |         r0 = sb;
    0x00020e64 bl 0x8c7c                                     |         r0 = fcn_00008c7c ();
    0x00020e68 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00020e6c bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x00020e70 ldr r2, [sp, 0x48]                            |         r2 = var_48h;
    0x00020e74 ldr r1, [sp, 0x2c]                            |         r1 = var_2ch;
    0x00020e78 mov r0, r8                                    |         r0 = r8;
    0x00020e7c add r3, r2, r1                                |         r3 = r2 + r1;
    0x00020e80 ldr r1, [sp, 0x4c]                            |         r1 = s2;
    0x00020e84 lsl r2, r3, 6                                 |         r2 = r3 << 6;
    0x00020e88 add r7, r1, r2                                |         r7 = r1 + r2;
    0x00020e8c str r2, [sp, 0x50]                            |         var_50h = r2;
    0x00020e90 mov r1, r7                                    |         r1 = r7;
    0x00020e94 mov r2, r6                                    |         r2 = r6;
    0x00020e98 str r3, [sp, 0x3c]                            |         var_3ch = r3;
    0x00020e9c bl 0x8b08                                     |         r0 = memcmp (r0, r1, r2);
    0x00020ea0 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00020ea4 bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x00020ea8 ldr r3, [sp, 0x30]                            |         r3 = var_30h;
    0x00020eac mov r0, sl                                    |         r0 = sl;
    0x00020eb0 add r2, r3, 0xa40                             |         r2 = r3 + 0xa40;
    0x00020eb4 ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x00020eb8 add r3, r2, r3, lsl 4                         |         r3 = r2 + (r3 << 4);
    0x00020ebc mov r1, r3                                    |         r1 = r3;
    0x00020ec0 mov r2, fp                                    |         r2 = fp;
    0x00020ec4 str r3, [sp, 0x3c]                            |         var_3ch = r3;
    0x00020ec8 bl 0x8b08                                     |         r0 = memcmp (r0, r1, r2);
    0x00020ecc cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00020ed0 bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x00020ed4 mov r0, sb                                    |         r0 = sb;
    0x00020ed8 bl 0x8f04                                     |         fcn_00008f04 ();
    0x00020edc ldr r3, [sp, 0x28]                            |         r3 = var_28h;
    0x00020ee0 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00020ee4 bne 0x212a0                                   |             goto label_11;
                                                             |         }
                                                             | label_4:
    0x00020ee8 ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x00020eec ldr r2, [sp, 0x40]                            |         r2 = var_40h;
    0x00020ef0 mov r1, 2                                     |         r1 = 2;
    0x00020ef4 mov r0, sb                                    |         r0 = sb;
    0x00020ef8 bl 0x87b4                                     |         fcn_000087b4 ();
    0x00020efc ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x00020f00 mov fp, 0x10                                  |         
    0x00020f04 str r3, [sp, 8]                               |         var_8h = r3;
    0x00020f08 ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x00020f0c str sl, [sp, 0x18]                            |         var_18h = sl;
    0x00020f10 str r3, [sp]                                  |         *(sp) = r3;
    0x00020f14 str r8, [sp, 0x10]                            |         var_10h = r8;
    0x00020f18 str r7, [sp, 0xc]                             |         var_ch = r7;
    0x00020f1c str r5, [sp, 4]                               |         var_4h = r5;
    0x00020f20 str fp, [sp, 0x14]                            |         var_14h = fp;
    0x00020f24 ldr r3, [sp, 0x44]                            |         r3 = var_44h;
    0x00020f28 mov r2, r6                                    |         r2 = r6;
    0x00020f2c mov r1, 0                                     |         r1 = 0;
    0x00020f30 mov r0, sb                                    |         r0 = sb;
    0x00020f34 bl 0x8c7c                                     |         r0 = fcn_00008c7c ();
    0x00020f38 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00020f3c bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x00020f40 mov r2, r6                                    |         r2 = r6;
    0x00020f44 mov r1, r4                                    |         r1 = r4;
    0x00020f48 mov r0, r8                                    |         r0 = r8;
    0x00020f4c bl 0x8b08                                     |         r0 = memcmp (r0, r1, r2);
    0x00020f50 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00020f54 bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x00020f58 mov r2, fp                                    |         r2 = fp;
    0x00020f5c ldr r1, [sp, 0x3c]                            |         r1 = var_3ch;
    0x00020f60 mov r0, sl                                    |         r0 = sl;
    0x00020f64 bl 0x8b08                                     |         r0 = memcmp (r0, r1, r2);
    0x00020f68 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00020f6c bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x00020f70 mov r0, sb                                    |         r0 = sb;
    0x00020f74 bl 0x8f04                                     |         fcn_00008f04 ();
    0x00020f78 ldr r3, [sp, 0x28]                            |         r3 = var_28h;
    0x00020f7c cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00020f80 bne 0x212cc                                   |             goto label_12;
                                                             |         }
                                                             | label_5:
    0x00020f84 ldr r2, [sp, 0x40]                            |         r2 = var_40h;
    0x00020f88 ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x00020f8c mov r1, 2                                     |         r1 = 2;
    0x00020f90 mov r0, sb                                    |         r0 = sb;
    0x00020f94 bl 0x87b4                                     |         fcn_000087b4 ();
    0x00020f98 ldr r3, [sp, 0x38]                            |         r3 = var_38h;
    0x00020f9c str r5, [sp]                                  |         *(sp) = r5;
    0x00020fa0 str r3, [sp, 4]                               |         var_4h = r3;
    0x00020fa4 ldr r2, [sp, 0x44]                            |         r2 = var_44h;
    0x00020fa8 ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x00020fac mov r1, 1                                     |         r1 = 1;
    0x00020fb0 mov r0, sb                                    |         r0 = sb;
    0x00020fb4 bl 0x8814                                     |         r0 = fcn_00008814 ();
    0x00020fb8 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00020fbc bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x00020fc0 cmp r6, 0x20                                  |         
                                                             |         if (r6 < 0x20) {
    0x00020fc4 bls 0x2124c                                   |             goto label_13;
                                                             |         }
    0x00020fc8 mov r1, 0x20                                  |         r1 = 0x20;
    0x00020fcc mov r3, r8                                    |         r3 = r8;
    0x00020fd0 mov r2, r4                                    |         r2 = r4;
    0x00020fd4 mov r0, sb                                    |         r0 = sb;
    0x00020fd8 bl 0x8ee0                                     |         fcn_00008ee0 ();
    0x00020fdc sub r1, r6, 0x20                              |         r1 = r6 - 0x20;
    0x00020fe0 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00020fe4 bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x00020fe8 add r2, r4, 0x20                              |         r2 = r4 + 0x20;
    0x00020fec add r3, sp, 0x90                              |         r3 += var_90h;
    0x00020ff0 mov r0, sb                                    |         r0 = sb;
    0x00020ff4 bl 0x8ee0                                     |         r0 = fcn_00008ee0 ();
    0x00020ff8 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00020ffc bne 0x21268                                   |             goto label_3;
                                                             |         }
                                                             | label_1:
    0x00021000 mov r2, 0x10                                  |         r2 = 0x10;
    0x00021004 mov r1, sl                                    |         r1 = sl;
    0x00021008 mov r0, sb                                    |         r0 = sb;
    0x0002100c bl 0x8b14                                     |         r0 = fcn_00008b14 ();
    0x00021010 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00021014 bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x00021018 ldr r3, [pc, 0x380]                           |         
    0x0002101c ldr r4, [sp, 0x2c]                            |         r4 = var_2ch;
    0x00021020 add r3, pc, r3                                |         r3 = pc + r3;
    0x00021024 add r3, r3, 0xb60                             |         r3 = 0x21efc;
    0x00021028 ldr r5, [r3, r4, lsl 2]                       |         r5 = *(0x21efc);
    0x0002102c mov r1, r7                                    |         r1 = r7;
    0x00021030 mov r0, r8                                    |         r0 = r8;
    0x00021034 mov r2, r5                                    |         r2 = r5;
    0x00021038 bl 0x8b08                                     |         memcmp (r0, r1, r2);
    0x0002103c lsl r4, r4, 2                                 |         r4 <<= 2;
    0x00021040 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00021044 bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x00021048 mov r2, 0x10                                  |         r2 = 0x10;
    0x0002104c ldr r1, [sp, 0x3c]                            |         r1 = var_3ch;
    0x00021050 mov r0, sl                                    |         r0 = sl;
    0x00021054 bl 0x8b08                                     |         r0 = memcmp (r0, r1, r2);
    0x00021058 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0002105c bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x00021060 mov r0, sb                                    |         r0 = sb;
    0x00021064 bl 0x8f04                                     |         fcn_00008f04 ();
    0x00021068 ldr r3, [sp, 0x28]                            |         r3 = var_28h;
    0x0002106c cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00021070 bne 0x212f8                                   |             goto label_14;
                                                             |         }
                                                             | label_6:
    0x00021074 ldr r3, [sp, 0x58]                            |         r3 = var_58h;
    0x00021078 ldr r6, [sp, 0x54]                            |         r6 = var_54h;
    0x0002107c ldr r2, [r4, r3]                              |         r2 = *((r4 + r3));
    0x00021080 add r3, r6, 0x80                              |         r3 = r6 + 0x80;
    0x00021084 add r2, r3, r2, lsl 5                         |         r2 = r3 + (r2 << 5);
    0x00021088 mov r1, 2                                     |         r1 = 2;
    0x0002108c ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x00021090 mov r0, sb                                    |         r0 = sb;
    0x00021094 bl 0x87b4                                     |         fcn_000087b4 ();
    0x00021098 add r3, r6, 0xbd0                             |         r3 = r6 + 0xbd0;
    0x0002109c add r3, r3, 8                                 |         r3 += 8;
    0x000210a0 add r1, r6, 0xba0                             |         r1 = r6 + 0xba0;
    0x000210a4 ldr lr, [r4, r3]                              |         
    0x000210a8 add r1, r1, 8                                 |         r1 += 8;
    0x000210ac add r2, r6, 0xbc0                             |         r2 = r6 + 0xbc0;
    0x000210b0 ldr r0, [r4, r2]                              |         r0 = *((r4 + r2));
    0x000210b4 ldr ip, [r4, r1]                              |         ip = *((r4 + r1));
    0x000210b8 add r1, r6, 0x2c0                             |         r1 = r6 + 0x2c0;
    0x000210bc add r1, r1, lr, lsl 6                         |         r1 += (lr << 6);
    0x000210c0 add r3, r6, 0xb90                             |         r3 = r6 + 0xb90;
    0x000210c4 add r2, r6, 0x140                             |         r2 = r6 + 0x140;
    0x000210c8 str r1, [sp]                                  |         *(sp) = r1;
    0x000210cc str r0, [sp, 4]                               |         var_4h = r0;
    0x000210d0 ldr r3, [r4, r3]                              |         r3 = *((r4 + r3));
    0x000210d4 add r2, r2, ip, lsl 6                         |         r2 += (ip << 6);
    0x000210d8 mov r1, 0                                     |         r1 = 0;
    0x000210dc mov r0, sb                                    |         r0 = sb;
    0x000210e0 bl 0x8814                                     |         r0 = fcn_00008814 ();
    0x000210e4 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000210e8 bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x000210ec cmp r5, 0x20                                  |         
    0x000210f0 mov r2, r7                                    |         r2 = r7;
                                                             |         if (r5 < 0x20) {
    0x000210f4 bls 0x21284                                   |             goto label_15;
                                                             |         }
    0x000210f8 mov r1, 0x20                                  |         r1 = 0x20;
    0x000210fc mov r3, r8                                    |         r3 = r8;
    0x00021100 mov r0, sb                                    |         r0 = sb;
    0x00021104 bl 0x8ee0                                     |         fcn_00008ee0 ();
    0x00021108 sub r1, r5, 0x20                              |         r1 = r5 - 0x20;
    0x0002110c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00021110 bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x00021114 ldr r3, [sp, 0x5c]                            |         r3 = var_5ch;
    0x00021118 ldr r2, [sp, 0x50]                            |         r2 = var_50h;
    0x0002111c mov r0, sb                                    |         r0 = sb;
    0x00021120 add r2, r3, r2                                |         r2 = r3 + r2;
    0x00021124 add r3, sp, 0x90                              |         r3 += var_90h;
    0x00021128 bl 0x8ee0                                     |         r0 = fcn_00008ee0 ();
    0x0002112c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00021130 bne 0x21268                                   |             goto label_3;
                                                             |         }
                                                             | label_2:
    0x00021134 mov r2, 0x10                                  |         r2 = 0x10;
    0x00021138 mov r1, sl                                    |         r1 = sl;
    0x0002113c mov r0, sb                                    |         r0 = sb;
    0x00021140 bl 0x8b14                                     |         r0 = fcn_00008b14 ();
    0x00021144 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00021148 bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x0002114c ldr r2, [pc, 0x250]                           |         r2 = *(0x213a0);
    0x00021150 ldr r3, [pc, 0x250]                           |         
    0x00021154 add r2, pc, r2                                |         r2 = pc + r2;
    0x00021158 ldr r1, [r4, r2]                              |         r1 = *((r4 + r2));
    0x0002115c add r3, pc, r3                                |         r3 = pc + r3;
    0x00021160 add r2, r3, 0x440                             |         r2 = r3 + 0x440;
    0x00021164 add r3, r3, 0xb60                             |         r3 = 0x21f04;
    0x00021168 add r1, r2, r1, lsl 6                         |         r1 = r2 + (r1 << 6);
    0x0002116c mov r0, r8                                    |         r0 = r8;
    0x00021170 ldr r2, [r3, r4]                              |         r2 = *(0x21f04);
    0x00021174 bl 0x8b08                                     |         r0 = memcmp (r0, r1, r2);
    0x00021178 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0002117c bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x00021180 ldr r1, [sp, 0x3c]                            |         r1 = var_3ch;
    0x00021184 mov r2, 0x10                                  |         r2 = 0x10;
    0x00021188 mov r0, sl                                    |         r0 = sl;
    0x0002118c bl 0x8b08                                     |         memcmp (r0, r1, r2);
    0x00021190 subs r5, r0, 0                                |         r5 -= var_60h;
                                                             |         if (r5 != var_60h) {
    0x00021194 bne 0x21268                                   |             goto label_3;
                                                             |         }
    0x00021198 mov r0, sb                                    |         r0 = sb;
    0x0002119c bl 0x8f04                                     |         fcn_00008f04 ();
    0x000211a0 ldr r3, [sp, 0x28]                            |         r3 = var_28h;
    0x000211a4 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000211a8 bne 0x21324                                   |             goto label_16;
                                                             |         }
                                                             | label_7:
    0x000211ac ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x000211b0 add r3, r3, 1                                 |         r3++;
    0x000211b4 cmp r3, 6                                     |         
    0x000211b8 str r3, [sp, 0x2c]                            |         var_2ch = r3;
                                                             |         if (r3 == 6) {
    0x000211bc beq 0x21334                                   |             goto label_17;
                                                             |         }
    0x000211c0 ldr r3, [pc, 0x1e4]                           |         
    0x000211c4 add r2, r4, 4                                 |         r2 = r4 + 4;
    0x000211c8 add r3, pc, r3                                |         r3 = pc + r3;
    0x000211cc add r6, r3, 0xb70                             |         r6 = r3 + 0xb70;
    0x000211d0 add r5, r3, 0xba0                             |         r5 = r3 + 0xba0;
    0x000211d4 add r0, r3, 0xbd0                             |         r0 = r3 + 0xbd0;
    0x000211d8 add lr, r3, 0xb60                             |         lr = r3 + 0xb60;
    0x000211dc add ip, r3, 0xb90                             |         
    0x000211e0 add r3, r3, 0xbc0                             |         r3 = 0x21f68;
    0x000211e4 ldr r3, [r2, r3]                              |         r3 = *((r2 + r3));
    0x000211e8 add r0, r0, 8                                 |         r0 += 8;
    0x000211ec ldr r1, [pc, 0x1bc]                           |         r1 = *(0x213ac);
    0x000211f0 add r5, r5, 8                                 |         r5 += 8;
    0x000211f4 str r3, [sp, 0x38]                            |         var_38h = r3;
    0x000211f8 ldr r3, [sp, 0x28]                            |         r3 = var_28h;
    0x000211fc ldr r5, [r2, r5]                              |         r5 = *((r2 + r5));
    0x00021200 ldr fp, [r2, r0]                              |         fp = *((r2 + r0));
    0x00021204 ldr r0, [r2, ip]                              |         r0 = *((r2 + ip));
    0x00021208 add r6, r6, 8                                 |         r6 += 8;
    0x0002120c add r1, pc, r1                                |         r1 = pc + r1;
    0x00021210 cmp r3, 0                                     |         
    0x00021214 ldr r4, [r2, r6]                              |         r4 = *((r2 + r6));
    0x00021218 str r5, [sp, 0x3c]                            |         var_3ch = r5;
    0x0002121c ldr r6, [r2, lr]                              |         r6 = *((r2 + lr));
    0x00021220 str r0, [sp, 0x34]                            |         var_34h = r0;
    0x00021224 ldr r7, [r2, r1]                              |         r7 = *((r2 + r1));
    0x00021228 beq 0x20de0                                   |         
                                                             |     } while (r3 == 0);
                                                             | label_10:
    0x0002122c ldr r3, [pc, 0x180]                           |     r3 = *(0x213b0);
    0x00021230 ldr r0, [pc, 0x180]                           |     r0 = *(0x213b4);
    0x00021234 add r3, pc, r3                                |     r3 = pc + r3;
    0x00021238 ldr r2, [sp, 0x2c]                            |     r2 = var_2ch;
    0x0002123c ldr r1, [sp, 0x24]                            |     r1 = var_24h;
    0x00021240 add r0, pc, r0                                |     r0 = pc + r0;
    0x00021244 bl 0x8298                                     |     printf (r0, r1, r2, r3)
    0x00021248 b 0x20de0                                     |     goto label_0;
                                                             | label_13:
    0x0002124c mov r2, r4                                    |     r2 = r4;
    0x00021250 mov r1, r6                                    |     r1 = r6;
    0x00021254 mov r3, r8                                    |     r3 = r8;
    0x00021258 mov r0, sb                                    |     r0 = sb;
    0x0002125c bl 0x8ee0                                     |     r0 = fcn_00008ee0 ();
    0x00021260 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00021264 beq 0x21000                                   |         goto label_1;
                                                             |     }
                                                             | label_3:
    0x00021268 ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x0002126c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00021270 moveq r5, 1                                   |         r5 = 1;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00021274 bne 0x2137c                                   |         goto label_18;
                                                             |     }
                                                             | label_9:
    0x00021278 mov r0, r5                                    |     r0 = r5;
    0x0002127c add sp, sp, 0x23c                             |     
    0x00021280 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_15:
    0x00021284 mov r1, r5                                    |     r1 = r5;
    0x00021288 mov r3, r8                                    |     r3 = r8;
    0x0002128c mov r0, sb                                    |     r0 = sb;
    0x00021290 bl 0x8ee0                                     |     r0 = fcn_00008ee0 ();
    0x00021294 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00021298 beq 0x21134                                   |         goto label_2;
                                                             |     }
    0x0002129c b 0x21268                                     |     goto label_3;
                                                             | label_11:
    0x000212a0 ldr r0, [pc, 0x114]                           |     r0 = *(0x213b8);
    0x000212a4 add r0, pc, r0                                |     r0 = pc + r0;
    0x000212a8 bl 0x858c                                     |     puts (r0);
    0x000212ac ldr r3, [pc, 0x10c]                           |     r3 = *(0x213bc);
    0x000212b0 ldr r0, [pc, 0x10c]                           |     r0 = *(0x213c0);
    0x000212b4 add r3, pc, r3                                |     r3 = pc + r3;
    0x000212b8 ldr r2, [sp, 0x2c]                            |     r2 = var_2ch;
    0x000212bc ldr r1, [sp, 0x24]                            |     r1 = var_24h;
    0x000212c0 add r0, pc, r0                                |     r0 = pc + r0;
    0x000212c4 bl 0x8298                                     |     printf (r0, r1, r2, r3)
    0x000212c8 b 0x20ee8                                     |     goto label_4;
                                                             | label_12:
    0x000212cc ldr r0, [pc, 0xf4]                            |     r0 = ecp_modp;
    0x000212d0 add r0, pc, r0                                |     r0 = pc + r0;
    0x000212d4 bl 0x858c                                     |     puts (r0);
    0x000212d8 ldr r3, [pc, 0xec]                            |     r3 = *(0x213c8);
    0x000212dc ldr r0, [pc, 0xec]                            |     r0 = *(0x213cc);
    0x000212e0 add r3, pc, r3                                |     r3 = pc + r3;
    0x000212e4 ldr r2, [sp, 0x2c]                            |     r2 = var_2ch;
    0x000212e8 ldr r1, [sp, 0x24]                            |     r1 = var_24h;
    0x000212ec add r0, pc, r0                                |     r0 = pc + r0;
    0x000212f0 bl 0x8298                                     |     printf (r0, r1, r2, r3)
    0x000212f4 b 0x20f84                                     |     goto label_5;
                                                             | label_14:
    0x000212f8 ldr r0, [pc, 0xd4]                            |     r0 = *(0x213d0);
    0x000212fc add r0, pc, r0                                |     r0 = pc + r0;
    0x00021300 bl 0x858c                                     |     puts (r0);
    0x00021304 ldr r3, [pc, 0xcc]                            |     r3 = *(0x213d4);
    0x00021308 ldr r0, [pc, 0xcc]                            |     r0 = *(0x213d8);
    0x0002130c add r3, pc, r3                                |     r3 = pc + r3;
    0x00021310 ldr r2, [sp, 0x2c]                            |     r2 = var_2ch;
    0x00021314 ldr r1, [sp, 0x24]                            |     r1 = var_24h;
    0x00021318 add r0, pc, r0                                |     r0 = pc + r0;
    0x0002131c bl 0x8298                                     |     printf (r0, r1, r2, r3)
    0x00021320 b 0x21074                                     |     goto label_6;
                                                             | label_16:
    0x00021324 ldr r0, [pc, 0xb4]                            |     r0 = *(0x213dc);
    0x00021328 add r0, pc, r0                                |     r0 = pc + r0;
    0x0002132c bl 0x858c                                     |     puts (r0);
    0x00021330 b 0x211ac                                     |     goto label_7;
                                                             | label_17:
    0x00021334 ldr r3, [sp, 0x24]                            |     r3 = var_24h;
    0x00021338 mov fp, sl                                    |     
    0x0002133c add r3, r3, 0x40                              |     r3 += 0x40;
    0x00021340 str r3, [sp, 0x24]                            |     var_24h = r3;
    0x00021344 cmp r3, 0x140                                 |     
    0x00021348 ldr r3, [sp, 0x48]                            |     r3 = var_48h;
    0x0002134c add r3, r3, 6                                 |     r3 += 6;
    0x00021350 str r3, [sp, 0x48]                            |     var_48h = r3;
                                                             |     if (r3 != 0x140) {
    0x00021354 bne 0x20d98                                   |         goto label_8;
                                                             |     }
    0x00021358 ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x0002135c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00021360 ldreq r5, [sp, 0x28]                          |         r5 = var_28h;
                                                             |         goto label_19;
                                                             |     }
                                                             |     if (r3 == 0) {
                                                             | label_19:
    0x00021364 beq 0x21278                                   |         goto label_9;
                                                             |     }
    0x00021368 mov r0, 0xa                                   |     r0 = 0xa;
    0x0002136c bl 0x81d8                                     |     putchar (r0);
    0x00021370 mov r0, r5                                    |     r0 = r5;
    0x00021374 add sp, sp, 0x23c                             |     
    0x00021378 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_18:
    0x0002137c ldr r0, [pc, 0x60]                            |     r0 = *(0x213e0);
    0x00021380 mov r5, 1                                     |     r5 = 1;
    0x00021384 add r0, pc, r0                                |     r0 = pc + r0;
    0x00021388 bl 0x858c                                     |     puts (r0);
    0x0002138c mov r0, r5                                    |     r0 = r5;
    0x00021390 add sp, sp, 0x23c                             |     
    0x00021394 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x219cc */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.mbedtls_hmac_drbg_self_test ()       | void mbedtls_hmac_drbg_self_test (int32_t arg1) {
                                                     |     int32_t var_0h;
                                                     |     int32_t var_4h;
                                                     |     void * s1;
                                                     |     int32_t var_5ch;
                                                     |     int32_t var_c4h;
                                                     |     r0 = arg1;
    0x000219cc push {r4, r5, r6, r7, r8, sb, lr}     |     
    0x000219d0 mov r4, r0                            |     r4 = r0;
    0x000219d4 sub sp, sp, 0xc4                      |     
    0x000219d8 mov r0, 4                             |     r0 = 4;
    0x000219dc bl 0x90e4                             |     fcn_000090e4 ();
    0x000219e0 add r5, sp, 0x5c                      |     r5 += var_5ch;
    0x000219e4 mov r6, r0                            |     r6 = r0;
    0x000219e8 mov r0, r5                            |     r0 = r5;
    0x000219ec bl 0x900c                             |     fcn_0000900c ();
    0x000219f0 cmp r4, 0                             |     
                                                     |     if (r4 != 0) {
    0x000219f4 bne 0x21aac                           |         goto label_6;
                                                     |     }
    0x000219f8 ldr ip, [pc, 0x2c4]                   |     ip = *(0x21cc0);
    0x000219fc ldr r3, [pc, 0x2c4]                   |     r3 = *(0x21cc4);
    0x00021a00 ldr r2, [pc, 0x2c4]                   |     r2 = *(0x21cc8);
    0x00021a04 add ip, pc, ip                        |     
    0x00021a08 str r4, [sp, 4]                       |     var_4h = r4;
    0x00021a0c str r4, [sp]                          |     *(sp) = r4;
    0x00021a10 add r3, pc, r3                        |     r3 = pc + r3;
    0x00021a14 add r2, pc, r2                        |     r2 = pc + r2;
    0x00021a18 mov r1, r6                            |     r1 = r6;
    0x00021a1c mov r0, r5                            |     r0 = r5;
    0x00021a20 str r4, [ip]                          |     *(ip) = r4;
    0x00021a24 bl 0x8dd8                             |     r0 = fcn_00008dd8 ();
    0x00021a28 cmp r0, 0                             |     
    0x00021a2c beq 0x21a40                           |     
                                                     |     while (r0 != 0) {
                                                     | label_0:
    0x00021a30 mov r6, 1                             |         r6 = 1;
                                                     | label_4:
    0x00021a34 mov r0, r6                            |         r0 = r6;
    0x00021a38 add sp, sp, 0xc4                      |         
    0x00021a3c pop {r4, r5, r6, r7, r8, sb, pc}      |         
    0x00021a40 mov r1, 1                             |         r1 = 1;
    0x00021a44 mov r0, r5                            |         r0 = r5;
    0x00021a48 add r7, sp, 0xc                       |         r7 += s1;
    0x00021a4c bl 0x8778                             |         fcn_00008778 ();
    0x00021a50 mov r1, r7                            |         r1 = r7;
    0x00021a54 mov r2, 0x50                          |         r2 = 0x50;
    0x00021a58 mov r0, r5                            |         r0 = r5;
    0x00021a5c bl 0x8fd0                             |         r0 = fcn_00008fd0 ();
    0x00021a60 cmp r0, 0                             |         
    0x00021a64 bne 0x21a30                           |         
                                                     |     }
    0x00021a68 mov r2, 0x50                          |     r2 = 0x50;
    0x00021a6c mov r1, r7                            |     r1 = r7;
    0x00021a70 mov r0, r5                            |     r0 = r5;
    0x00021a74 bl 0x8fd0                             |     r0 = fcn_00008fd0 ();
    0x00021a78 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00021a7c bne 0x21a30                           |         goto label_0;
                                                     |     }
                                                     | label_2:
    0x00021a80 ldr r8, [pc, 0x248]                   |     r8 = *(0x21ccc);
    0x00021a84 mov r2, 0x50                          |     r2 = 0x50;
    0x00021a88 add r8, pc, r8                        |     r8 = pc + r8;
    0x00021a8c add r1, r8, 0x38                      |     r1 = r8 + 0x38;
    0x00021a90 mov r0, r7                            |     r0 = r7;
    0x00021a94 bl 0x8b08                             |     memcmp (r0, r1, r2);
    0x00021a98 subs sb, r0, 0                        |     sb -= s1;
                                                     |     if (sb == s1) {
    0x00021a9c beq 0x21b54                           |         goto label_7;
                                                     |     }
                                                     | label_3:
    0x00021aa0 cmp r4, 0                             |     
                                                     |     if (r4 != 0) {
    0x00021aa4 bne 0x21af4                           |         goto label_1;
                                                     |     }
    0x00021aa8 b 0x21a30                             |     goto label_0;
                                                     | label_6:
    0x00021aac ldr r0, [pc, 0x220]                   |     r0 = *(0x21cd0);
    0x00021ab0 add r0, pc, r0                        |     r0 = pc + r0;
    0x00021ab4 bl 0x8298                             |     printf (r0)
    0x00021ab8 ldr r0, [pc, 0x218]                   |     r0 = *(0x21cd4);
    0x00021abc ldr r3, [pc, 0x218]                   |     r3 = *(0x21cd8);
    0x00021ac0 ldr r2, [pc, 0x218]                   |     r2 = *(0x21cdc);
    0x00021ac4 mov ip, 0                             |     
    0x00021ac8 add r0, pc, r0                        |     r0 = pc + r0;
    0x00021acc str ip, [sp, 4]                       |     var_4h = ip;
    0x00021ad0 str ip, [sp]                          |     *(sp) = ip;
    0x00021ad4 add r3, pc, r3                        |     r3 = pc + r3;
    0x00021ad8 str ip, [r0]                          |     *(r0) = ip;
    0x00021adc add r2, pc, r2                        |     r2 = pc + r2;
    0x00021ae0 mov r1, r6                            |     r1 = r6;
    0x00021ae4 mov r0, r5                            |     r0 = r5;
    0x00021ae8 bl 0x8dd8                             |     r0 = fcn_00008dd8 ();
    0x00021aec cmp r0, 0                             |     
    0x00021af0 beq 0x21b10                           |     
                                                     |     while (r0 != 0) {
                                                     | label_1:
    0x00021af4 ldr r0, [pc, 0x1e8]                   |         r0 = *(0x21ce0);
    0x00021af8 mov r6, 1                             |         r6 = 1;
    0x00021afc add r0, pc, r0                        |         r0 = pc + r0;
    0x00021b00 bl 0x858c                             |         puts (r0);
    0x00021b04 mov r0, r6                            |         r0 = r6;
    0x00021b08 add sp, sp, 0xc4                      |         
    0x00021b0c pop {r4, r5, r6, r7, r8, sb, pc}      |         
    0x00021b10 mov r1, 1                             |         r1 = 1;
    0x00021b14 mov r0, r5                            |         r0 = r5;
    0x00021b18 add r7, sp, 0xc                       |         r7 += s1;
    0x00021b1c bl 0x8778                             |         fcn_00008778 ();
    0x00021b20 mov r1, r7                            |         r1 = r7;
    0x00021b24 mov r2, 0x50                          |         r2 = 0x50;
    0x00021b28 mov r0, r5                            |         r0 = r5;
    0x00021b2c bl 0x8fd0                             |         r0 = fcn_00008fd0 ();
    0x00021b30 cmp r0, 0                             |         
    0x00021b34 bne 0x21af4                           |         
                                                     |     }
    0x00021b38 mov r2, 0x50                          |     r2 = 0x50;
    0x00021b3c mov r1, r7                            |     r1 = r7;
    0x00021b40 mov r0, r5                            |     r0 = r5;
    0x00021b44 bl 0x8fd0                             |     r0 = fcn_00008fd0 ();
    0x00021b48 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00021b4c bne 0x21af4                           |         goto label_1;
                                                     |     }
    0x00021b50 b 0x21a80                             |     goto label_2;
                                                     | label_7:
    0x00021b54 mov r0, r5                            |     r0 = r5;
    0x00021b58 bl 0x8bc8                             |     fcn_00008bc8 ();
    0x00021b5c mov r0, r5                            |     r0 = r5;
    0x00021b60 bl 0x8bc8                             |     fcn_00008bc8 ();
    0x00021b64 cmp r4, 0                             |     
                                                     |     if (r4 != 0) {
    0x00021b68 bne 0x21c40                           |         goto label_8;
                                                     |     }
    0x00021b6c mov r0, r5                            |     r0 = r5;
    0x00021b70 bl 0x900c                             |     fcn_0000900c ();
    0x00021b74 ldr ip, [pc, 0x16c]                   |     ip = *(0x21ce4);
    0x00021b78 ldr r2, [pc, 0x16c]                   |     r2 = *(0x21ce8);
    0x00021b7c add ip, pc, ip                        |     
    0x00021b80 str r4, [sp, 4]                       |     var_4h = r4;
    0x00021b84 str r4, [sp]                          |     *(sp) = r4;
    0x00021b88 add r3, r8, 0x88                      |     r3 = r8 + 0x88;
    0x00021b8c mov r1, r6                            |     r1 = r6;
    0x00021b90 add r2, pc, r2                        |     r2 = pc + r2;
    0x00021b94 mov r0, r5                            |     r0 = r5;
    0x00021b98 str r4, [ip]                          |     *(ip) = r4;
    0x00021b9c bl 0x8dd8                             |     r0 = fcn_00008dd8 ();
    0x00021ba0 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00021ba4 bne 0x21a30                           |         goto label_0;
                                                     |     }
    0x00021ba8 mov r2, r4                            |     r2 = r4;
    0x00021bac mov r1, r4                            |     r1 = r4;
    0x00021bb0 mov r0, r5                            |     r0 = r5;
    0x00021bb4 bl 0x8724                             |     r0 = fcn_00008724 ();
    0x00021bb8 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00021bbc bne 0x21a30                           |         goto label_0;
                                                     |     }
    0x00021bc0 mov r2, 0x50                          |     r2 = 0x50;
    0x00021bc4 mov r1, r7                            |     r1 = r7;
    0x00021bc8 mov r0, r5                            |     r0 = r5;
    0x00021bcc bl 0x8fd0                             |     r0 = fcn_00008fd0 ();
    0x00021bd0 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00021bd4 bne 0x21a30                           |         goto label_0;
                                                     |     }
                                                     | label_5:
    0x00021bd8 mov r2, 0x50                          |     r2 = 0x50;
    0x00021bdc mov r1, r7                            |     r1 = r7;
    0x00021be0 mov r0, r5                            |     r0 = r5;
    0x00021be4 bl 0x8fd0                             |     r0 = fcn_00008fd0 ();
    0x00021be8 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00021bec bne 0x21aa0                           |         goto label_3;
                                                     |     }
    0x00021bf0 ldr r1, [pc, 0xf8]                    |     
    0x00021bf4 mov r0, r7                            |     r0 = r7;
    0x00021bf8 add r1, pc, r1                        |     r1 = pc + r1;
    0x00021bfc add r1, r1, 0xb0                      |     r1 = 0x21d9c;
    0x00021c00 mov r2, 0x50                          |     r2 = 0x50;
    0x00021c04 bl 0x8b08                             |     memcmp (r0, r1, r2);
    0x00021c08 subs r6, r0, 0                        |     r6 -= s1;
                                                     |     if (r6 != s1) {
    0x00021c0c bne 0x21aa0                           |         goto label_3;
                                                     |     }
    0x00021c10 mov r0, r5                            |     r0 = r5;
    0x00021c14 bl 0x8bc8                             |     fcn_00008bc8 ();
    0x00021c18 mov r0, r5                            |     r0 = r5;
    0x00021c1c bl 0x8bc8                             |     fcn_00008bc8 ();
    0x00021c20 cmp r4, 0                             |     
                                                     |     if (r4 == 0) {
    0x00021c24 beq 0x21a34                           |         goto label_4;
                                                     |     }
    0x00021c28 ldr r0, [pc, 0xc4]                    |     r0 = *(0x21cf0);
    0x00021c2c add r0, pc, r0                        |     r0 = pc + r0;
    0x00021c30 bl 0x858c                             |     puts (r0);
    0x00021c34 mov r0, 0xa                           |     r0 = 0xa;
    0x00021c38 bl 0x81d8                             |     putchar (r0);
    0x00021c3c b 0x21a34                             |     goto label_4;
                                                     | label_8:
    0x00021c40 ldr r0, [pc, 0xb0]                    |     r0 = *(0x21cf4);
    0x00021c44 add r0, pc, r0                        |     r0 = pc + r0;
    0x00021c48 bl 0x858c                             |     puts (r0);
    0x00021c4c ldr r0, [pc, 0xa8]                    |     r0 = *(0x21cf8);
    0x00021c50 add r0, pc, r0                        |     r0 = pc + r0;
    0x00021c54 bl 0x8298                             |     printf (r0)
    0x00021c58 mov r0, r5                            |     r0 = r5;
    0x00021c5c bl 0x900c                             |     fcn_0000900c ();
    0x00021c60 ldr r0, [pc, 0x98]                    |     r0 = *(0x21cfc);
    0x00021c64 ldr r2, [pc, 0x98]                    |     r2 = *(0x21d00);
    0x00021c68 add r0, pc, r0                        |     r0 = pc + r0;
    0x00021c6c str sb, [sp, 4]                       |     var_4h = sb;
    0x00021c70 str sb, [sp]                          |     *(sp) = sb;
    0x00021c74 add r2, pc, r2                        |     r2 = pc + r2;
    0x00021c78 str sb, [r0]                          |     *(r0) = sb;
    0x00021c7c add r3, r8, 0x88                      |     r3 = r8 + 0x88;
    0x00021c80 mov r1, r6                            |     r1 = r6;
    0x00021c84 mov r0, r5                            |     r0 = r5;
    0x00021c88 bl 0x8dd8                             |     fcn_00008dd8 ();
    0x00021c8c subs r2, r0, 0                        |     r2 -= var_5ch;
                                                     |     if (r2 != var_5ch) {
    0x00021c90 bne 0x21af4                           |         goto label_1;
                                                     |     }
    0x00021c94 mov r1, r2                            |     r1 = r2;
    0x00021c98 mov r0, r5                            |     r0 = r5;
    0x00021c9c bl 0x8724                             |     r0 = fcn_00008724 ();
    0x00021ca0 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00021ca4 bne 0x21af4                           |         goto label_1;
                                                     |     }
    0x00021ca8 mov r2, 0x50                          |     r2 = 0x50;
    0x00021cac mov r1, r7                            |     r1 = r7;
    0x00021cb0 mov r0, r5                            |     r0 = r5;
    0x00021cb4 bl 0x8fd0                             |     r0 = fcn_00008fd0 ();
    0x00021cb8 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00021cbc bne 0x21af4                           |         goto label_1;
                                                     |     }
    0x00021cc0 b 0x21bd8                             |     goto label_5;
                                                     | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x23600 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.mbedtls_md5_self_test ()                 | void mbedtls_md5_self_test (int32_t arg1) {
                                                         |     void * s1;
                                                         |     int32_t var_10h;
                                                         |     r0 = arg1;
    0x00023600 push {r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x00023604 ldr r7, [pc, 0xf8]                        |     
    0x00023608 ldr sl, [pc, 0xf8]                        |     
    0x0002360c mov r6, r0                                |     r6 = r0;
    0x00023610 add r7, pc, r7                            |     r7 = pc + r7;
    0x00023614 sub sp, sp, 0x10                          |     
    0x00023618 add sl, pc, sl                            |     sl = pc + sl;
    0x0002361c mov sb, 0                                 |     sb = 0;
    0x00023620 cmp r6, 0                                 |     
    0x00023624 add r5, r7, 0x40                          |     r5 = r7 + 0x40;
    0x00023628 add sl, sl, 0x2e8                         |     sl = 0x239ec;
    0x0002362c add r7, r7, 0x278                         |     r7 = 0x23978;
    0x00023630 mov r4, sb                                |     r4 = sb;
    0x00023634 mov r8, sp                                |     r8 = sp;
                                                         |     if (r6 != 0) {
    0x00023638 bne 0x23688                               |         goto label_2;
                                                         |     }
                                                         |     do {
                                                         | label_0:
    0x0002363c mov r1, sb                                |         r1 = sb;
    0x00023640 mov r0, r5                                |         r0 = r5;
    0x00023644 mov r2, r8                                |         r2 = r8;
    0x00023648 bl 0x918c                                 |         fcn_0000918c ();
    0x0002364c add r1, r7, r4, lsl 4                     |         r1 = r7 + (r4 << 4);
    0x00023650 mov r2, 0x10                              |         r2 = 0x10;
    0x00023654 mov r0, r8                                |         r0 = r8;
    0x00023658 bl 0x8b08                                 |         memcmp (r0, r1, r2);
    0x0002365c add r4, r4, 1                             |         r4++;
    0x00023660 add r5, r5, 0x51                          |         r5 += 0x51;
    0x00023664 subs sb, r0, 0                            |         sb -= s1;
                                                         |         if (sb != s1) {
    0x00023668 bne 0x236dc                               |             goto label_3;
                                                         |         }
    0x0002366c cmp r6, 0                                 |         
                                                         |         if (r6 != 0) {
    0x00023670 bne 0x2369c                               |             goto label_4;
                                                         |         }
    0x00023674 cmp r4, 7                                 |         
                                                         |         if (r4 == 7) {
    0x00023678 beq 0x236b0                               |             goto label_5;
                                                         |         }
                                                         | label_1:
    0x0002367c cmp r6, 0                                 |         
    0x00023680 ldr sb, [sl, r4, lsl 2]                   |         offset_0 = r4 << 2;
                                                         |         sb = *((sl + offset_0));
    0x00023684 beq 0x2363c                               |         
                                                         |     } while (r6 == 0);
                                                         | label_2:
    0x00023688 ldr r0, [pc, 0x7c]                        |     r0 = *(0x23708);
    0x0002368c add r1, r4, 1                             |     r1 = r4 + 1;
    0x00023690 add r0, pc, r0                            |     r0 = pc + r0;
    0x00023694 bl 0x8298                                 |     printf (r0, r1)
    0x00023698 b 0x2363c                                 |     goto label_0;
                                                         | label_4:
    0x0002369c ldr r0, [pc, 0x6c]                        |     r0 = *(0x2370c);
    0x000236a0 add r0, pc, r0                            |     r0 = pc + r0;
    0x000236a4 bl 0x858c                                 |     puts (r0);
    0x000236a8 cmp r4, 7                                 |     
                                                         |     if (r4 != 7) {
    0x000236ac bne 0x2367c                               |         goto label_1;
                                                         |     }
                                                         | label_5:
    0x000236b0 cmp r6, 0                                 |     
                                                         |     if (r6 != 0) {
    0x000236b4 moveq sb, r6                              |         sb = r6;
                                                         |     }
    0x000236b8 bne 0x236c8                               |     
                                                         |     while (r6 == 0) {
    0x000236bc mov r0, sb                                |         r0 = sb;
    0x000236c0 add sp, sp, 0x10                          |         
    0x000236c4 pop {r4, r5, r6, r7, r8, sb, sl, pc}      |         
    0x000236c8 mov r0, 0xa                               |         r0 = 0xa;
    0x000236cc bl 0x81d8                                 |         putchar (r0);
    0x000236d0 mov r0, sb                                |         r0 = sb;
    0x000236d4 add sp, sp, 0x10                          |         
    0x000236d8 pop {r4, r5, r6, r7, r8, sb, sl, pc}      |         
                                                         | label_3:
    0x000236dc cmp r6, 0                                 |         
                                                         |         if (r6 != 0) {
    0x000236e0 moveq sb, 1                               |             sb = 1;
                                                         |         }
    0x000236e4 beq 0x236bc                               |         
                                                         |     }
    0x000236e8 ldr r0, [pc, 0x24]                        |     r0 = *(0x23710);
    0x000236ec mov sb, 1                                 |     sb = 1;
    0x000236f0 add r0, pc, r0                            |     r0 = pc + r0;
    0x000236f4 bl 0x858c                                 |     puts (r0);
    0x000236f8 mov r0, sb                                |     r0 = sb;
    0x000236fc add sp, sp, 0x10                          |     
    0x00023700 pop {r4, r5, r6, r7, r8, sb, sl, pc}      |     
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x105dc */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mbedtls_mpi_self_test ()                     | void mbedtls_mpi_self_test (int32_t arg_2a0h, int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     char * s;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_4ch;
                                                             |     int32_t var_58h;
                                                             |     int32_t var_64h;
                                                             |     int32_t var_74h;
                                                             |     r0 = arg1;
    0x000105dc push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000105e0 sub sp, sp, 0x74                              |     
    0x000105e4 add r4, sp, 0x1c                              |     r4 += var_1ch;
    0x000105e8 str r0, [sp, 0xc]                             |     var_ch = r0;
    0x000105ec add r5, sp, 0x28                              |     r5 += var_28h;
    0x000105f0 mov r0, r4                                    |     r0 = r4;
    0x000105f4 bl 0x86c4                                     |     fcn_000086c4 ();
    0x000105f8 add r6, sp, 0x34                              |     r6 += var_34h;
    0x000105fc mov r0, r5                                    |     r0 = r5;
    0x00010600 bl 0x86c4                                     |     fcn_000086c4 ();
    0x00010604 add r7, sp, 0x40                              |     r7 += var_40h;
    0x00010608 mov r0, r6                                    |     r0 = r6;
    0x0001060c bl 0x86c4                                     |     fcn_000086c4 ();
    0x00010610 add sb, sp, 0x4c                              |     sb += var_4ch;
    0x00010614 mov r0, r7                                    |     r0 = r7;
    0x00010618 bl 0x86c4                                     |     fcn_000086c4 ();
    0x0001061c add r8, sp, 0x58                              |     r8 += var_58h;
    0x00010620 mov r0, sb                                    |     r0 = sb;
    0x00010624 bl 0x86c4                                     |     fcn_000086c4 ();
    0x00010628 add sl, sp, 0x64                              |     sl += var_64h;
    0x0001062c mov r0, r8                                    |     r0 = r8;
    0x00010630 bl 0x86c4                                     |     fcn_000086c4 ();
    0x00010634 mov r0, sl                                    |     r0 = sl;
    0x00010638 bl 0x86c4                                     |     fcn_000086c4 ();
    0x0001063c ldr r2, [pc, 0x514]                           |     r2 = *(0x10b54);
    0x00010640 mov r0, r4                                    |     r0 = r4;
    0x00010644 add r2, pc, r2                                |     r2 = pc + r2;
    0x00010648 mov r1, 0x10                                  |     r1 = 0x10;
    0x0001064c bl 0x83e8                                     |     fcn_000083e8 ();
    0x00010650 subs fp, r0, 0                                |     
    0x00010654 beq 0x106a8                                   |     
                                                             |     while (fp != var_28h) {
                                                             | label_0:
    0x00010658 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x0001065c cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00010660 bne 0x1076c                                   |             goto label_4;
                                                             |         }
                                                             | label_1:
    0x00010664 mov r0, r4                                    |         r0 = r4;
    0x00010668 bl 0x8fac                                     |         fcn_00008fac ();
    0x0001066c mov r0, r5                                    |         r0 = r5;
    0x00010670 bl 0x8fac                                     |         fcn_00008fac ();
    0x00010674 mov r0, r6                                    |         r0 = r6;
    0x00010678 bl 0x8fac                                     |         fcn_00008fac ();
    0x0001067c mov r0, r7                                    |         r0 = r7;
    0x00010680 bl 0x8fac                                     |         fcn_00008fac ();
    0x00010684 mov r0, sb                                    |         r0 = sb;
    0x00010688 bl 0x8fac                                     |         fcn_00008fac ();
    0x0001068c mov r0, r8                                    |         r0 = r8;
    0x00010690 bl 0x8fac                                     |         fcn_00008fac ();
    0x00010694 mov r0, sl                                    |         r0 = sl;
    0x00010698 bl 0x8fac                                     |         fcn_00008fac ();
    0x0001069c mov r0, fp                                    |         r0 = fp;
    0x000106a0 add sp, sp, 0x74                              |         
    0x000106a4 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
    0x000106a8 ldr r2, [pc, 0x4ac]                           |         r2 = *(0x10b58);
    0x000106ac mov r1, 0x10                                  |         r1 = 0x10;
    0x000106b0 add r2, pc, r2                                |         r2 = pc + r2;
    0x000106b4 mov r0, r5                                    |         r0 = r5;
    0x000106b8 bl 0x83e8                                     |         fcn_000083e8 ();
    0x000106bc subs fp, r0, 0                                |         
    0x000106c0 bne 0x10658                                   |         
                                                             |     }
    0x000106c4 ldr r2, [pc, 0x494]                           |     r2 = *(0x10b5c);
    0x000106c8 mov r1, 0x10                                  |     r1 = 0x10;
    0x000106cc add r2, pc, r2                                |     r2 = pc + r2;
    0x000106d0 mov r0, r6                                    |     r0 = r6;
    0x000106d4 bl 0x83e8                                     |     fcn_000083e8 ();
    0x000106d8 subs fp, r0, 0                                |     
                                                             |     if (fp != var_34h) {
    0x000106dc bne 0x10658                                   |         goto label_0;
                                                             |     }
    0x000106e0 mov r2, r6                                    |     r2 = r6;
    0x000106e4 mov r1, r4                                    |     r1 = r4;
    0x000106e8 mov r0, r7                                    |     r0 = r7;
    0x000106ec bl 0x8694                                     |     fcn_00008694 ();
    0x000106f0 subs fp, r0, 0                                |     
                                                             |     if (fp != var_40h) {
    0x000106f4 bne 0x10658                                   |         goto label_0;
                                                             |     }
    0x000106f8 ldr r2, [pc, 0x464]                           |     r2 = *(0x10b60);
    0x000106fc mov r1, 0x10                                  |     r1 = 0x10;
    0x00010700 add r2, pc, r2                                |     r2 = pc + r2;
    0x00010704 mov r0, r8                                    |     r0 = r8;
    0x00010708 bl 0x83e8                                     |     fcn_000083e8 ();
    0x0001070c subs fp, r0, 0                                |     
                                                             |     if (fp != var_58h) {
    0x00010710 bne 0x10658                                   |         goto label_0;
                                                             |     }
    0x00010714 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00010718 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001071c bne 0x1073c                                   |         
    0x00010720 mov r1, r8                                    |         r1 = r8;
    0x00010724 mov r0, r7                                    |         r0 = r7;
    0x00010728 bl 0x8afc                                     |         r0 = fcn_00008afc ();
    0x0001072c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00010730 beq 0x107c8                                   |             goto label_8;
                                                             |         }
                                                             | label_2:
    0x00010734 mov fp, 1                                     |         
    0x00010738 b 0x10664                                     |         goto label_1;
                                                             |     }
    0x0001073c ldr r0, [pc, 0x424]                           |     r0 = *(0x10b64);
    0x00010740 add r0, pc, r0                                |     r0 = pc + r0;
    0x00010744 bl 0x8298                                     |     printf (r0)
    0x00010748 mov r1, r8                                    |     r1 = r8;
    0x0001074c mov r0, r7                                    |     r0 = r7;
    0x00010750 bl 0x8afc                                     |     r0 = fcn_00008afc ();
    0x00010754 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010758 beq 0x109a4                                   |         goto label_9;
                                                             |     }
                                                             | label_6:
    0x0001075c ldr r0, [pc, 0x408]                           |     r0 = *(0x10b68);
    0x00010760 mov fp, 1                                     |     
    0x00010764 add r0, pc, r0                                |     r0 = pc + r0;
    0x00010768 bl 0x858c                                     |     puts (r0);
                                                             | label_4:
    0x0001076c ldr r0, [pc, 0x3fc]                           |     r0 = *(0x10b6c);
    0x00010770 mov r1, fp                                    |     r1 = fp;
    0x00010774 add r0, pc, r0                                |     r0 = pc + r0;
    0x00010778 bl 0x8298                                     |     printf (r0, r1)
                                                             | label_3:
    0x0001077c mov r0, r4                                    |     r0 = r4;
    0x00010780 bl 0x8fac                                     |     fcn_00008fac ();
    0x00010784 mov r0, r5                                    |     r0 = r5;
    0x00010788 bl 0x8fac                                     |     fcn_00008fac ();
    0x0001078c mov r0, r6                                    |     r0 = r6;
    0x00010790 bl 0x8fac                                     |     fcn_00008fac ();
    0x00010794 mov r0, r7                                    |     r0 = r7;
    0x00010798 bl 0x8fac                                     |     fcn_00008fac ();
    0x0001079c mov r0, sb                                    |     r0 = sb;
    0x000107a0 bl 0x8fac                                     |     fcn_00008fac ();
    0x000107a4 mov r0, r8                                    |     r0 = r8;
    0x000107a8 bl 0x8fac                                     |     fcn_00008fac ();
    0x000107ac mov r0, sl                                    |     r0 = sl;
    0x000107b0 bl 0x8fac                                     |     fcn_00008fac ();
    0x000107b4 mov r0, 0xa                                   |     r0 = 0xa;
    0x000107b8 bl 0x81d8                                     |     putchar (r0);
    0x000107bc mov r0, fp                                    |     r0 = fp;
    0x000107c0 add sp, sp, 0x74                              |     
    0x000107c4 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_8:
    0x000107c8 mov r3, r6                                    |     r3 = r6;
    0x000107cc mov r2, r4                                    |     r2 = r4;
    0x000107d0 mov r1, sb                                    |     r1 = sb;
    0x000107d4 mov r0, r7                                    |     r0 = r7;
    0x000107d8 bl 0x8dfc                                     |     fcn_00008dfc ();
    0x000107dc subs fp, r0, 0                                |     
                                                             |     if (fp != var_40h) {
    0x000107e0 bne 0x10664                                   |         goto label_1;
                                                             |     }
    0x000107e4 ldr r2, [pc, 0x388]                           |     r2 = *(0x10b70);
    0x000107e8 mov r1, 0x10                                  |     r1 = 0x10;
    0x000107ec add r2, pc, r2                                |     r2 = pc + r2;
    0x000107f0 mov r0, r8                                    |     r0 = r8;
    0x000107f4 bl 0x83e8                                     |     fcn_000083e8 ();
    0x000107f8 subs fp, r0, 0                                |     
                                                             |     if (fp != var_58h) {
    0x000107fc bne 0x10664                                   |         goto label_1;
                                                             |     }
                                                             | label_5:
    0x00010800 ldr r2, [pc, 0x370]                           |     r2 = *(0x10b74);
    0x00010804 mov r1, 0x10                                  |     r1 = 0x10;
    0x00010808 add r2, pc, r2                                |     r2 = pc + r2;
    0x0001080c mov r0, sl                                    |     r0 = sl;
    0x00010810 bl 0x83e8                                     |     fcn_000083e8 ();
    0x00010814 subs r3, r0, 0                                |     r3 -= var_64h;
    0x00010818 str r3, [sp, 0x10]                            |     var_10h = r3;
                                                             |     if (r3 != var_64h) {
    0x0001081c bne 0x109ec                                   |         goto label_10;
                                                             |     }
    0x00010820 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00010824 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00010828 bne 0x109f4                                   |         goto label_11;
                                                             |     }
    0x0001082c mov r1, r8                                    |     r1 = r8;
    0x00010830 mov r0, r7                                    |     r0 = r7;
    0x00010834 bl 0x8afc                                     |     r0 = fcn_00008afc ();
    0x00010838 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001083c bne 0x10734                                   |         goto label_2;
                                                             |     }
    0x00010840 mov r1, sl                                    |     r1 = sl;
    0x00010844 mov r0, sb                                    |     r0 = sb;
    0x00010848 bl 0x8afc                                     |     r0 = fcn_00008afc ();
    0x0001084c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010850 bne 0x10734                                   |         goto label_2;
                                                             |     }
    0x00010854 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00010858 mov r2, r5                                    |     r2 = r5;
    0x0001085c str r3, [sp]                                  |     *(sp) = r3;
    0x00010860 mov r1, r4                                    |     r1 = r4;
    0x00010864 mov r3, r6                                    |     r3 = r6;
    0x00010868 mov r0, r7                                    |     r0 = r7;
    0x0001086c bl 0x8910                                     |     fcn_00008910 ();
    0x00010870 subs fp, r0, 0                                |     
                                                             |     if (fp != var_40h) {
    0x00010874 bne 0x10664                                   |         goto label_1;
                                                             |     }
    0x00010878 ldr r2, [pc, 0x2fc]                           |     r2 = *(0x10b78);
    0x0001087c mov r1, 0x10                                  |     r1 = 0x10;
    0x00010880 add r2, pc, r2                                |     r2 = pc + r2;
    0x00010884 mov r0, r8                                    |     r0 = r8;
    0x00010888 bl 0x83e8                                     |     fcn_000083e8 ();
    0x0001088c subs fp, r0, 0                                |     
                                                             |     if (fp != var_58h) {
    0x00010890 bne 0x10664                                   |         goto label_1;
                                                             |     }
    0x00010894 mov r1, r8                                    |     r1 = r8;
    0x00010898 mov r0, r7                                    |     r0 = r7;
    0x0001089c bl 0x8afc                                     |     r0 = fcn_00008afc ();
    0x000108a0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000108a4 bne 0x10734                                   |         goto label_2;
                                                             |     }
    0x000108a8 mov r2, r6                                    |     r2 = r6;
    0x000108ac mov r1, r4                                    |     r1 = r4;
    0x000108b0 mov r0, r7                                    |     r0 = r7;
    0x000108b4 bl 0x8dcc                                     |     fcn_00008dcc ();
    0x000108b8 subs fp, r0, 0                                |     
                                                             |     if (fp != var_40h) {
    0x000108bc bne 0x10664                                   |         goto label_1;
                                                             |     }
    0x000108c0 ldr r2, [pc, 0x2b8]                           |     r2 = *(0x10b7c);
    0x000108c4 mov r1, 0x10                                  |     r1 = 0x10;
    0x000108c8 add r2, pc, r2                                |     r2 = pc + r2;
    0x000108cc mov r0, r8                                    |     r0 = r8;
    0x000108d0 bl 0x83e8                                     |     fcn_000083e8 ();
    0x000108d4 subs fp, r0, 0                                |     
                                                             |     if (fp != var_58h) {
    0x000108d8 bne 0x10664                                   |         goto label_1;
                                                             |     }
    0x000108dc mov r1, r8                                    |     r1 = r8;
    0x000108e0 mov r0, r7                                    |     r0 = r7;
    0x000108e4 bl 0x8afc                                     |     r0 = fcn_00008afc ();
    0x000108e8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000108ec bne 0x10734                                   |         goto label_2;
                                                             |     }
                                                             | label_7:
    0x000108f0 ldr fp, [pc, 0x28c]                           |     fp = *(0x10b80);
    0x000108f4 add fp, pc, fp                                |     
    0x000108f8 add r3, fp, 0x2a0                             |     r3 += arg_2a0h;
    0x000108fc mov fp, r5                                    |     
    0x00010900 mov r5, r4                                    |     r5 = r4;
    0x00010904 mov r4, r6                                    |     r4 = r6;
    0x00010908 mov r6, r3                                    |     r6 = r3;
                                                             |     do {
    0x0001090c ldr r1, [r6]                                  |         r1 = *(r6);
    0x00010910 mov r0, r7                                    |         r0 = r7;
    0x00010914 bl 0x8874                                     |         fcn_00008874 ();
    0x00010918 subs r3, r0, 0                                |         r3 -= var_40h;
    0x0001091c mov r0, sb                                    |         r0 = sb;
                                                             |         if (r3 != var_40h) {
    0x00010920 bne 0x10b44                                   |             goto label_12;
                                                             |         }
    0x00010924 ldr r1, [r6, 4]                               |         r1 = *((r6 + 4));
    0x00010928 bl 0x8874                                     |         fcn_00008874 ();
    0x0001092c mov r2, sb                                    |         r2 = sb;
    0x00010930 mov r1, r7                                    |         r1 = r7;
    0x00010934 subs r3, r0, 0                                |         r3 -= var_4ch;
    0x00010938 mov r0, r5                                    |         r0 = r5;
                                                             |         if (r3 != var_4ch) {
    0x0001093c bne 0x10b44                                   |             goto label_12;
                                                             |         }
    0x00010940 bl 0x8be0                                     |         fcn_00008be0 ();
    0x00010944 subs r3, r0, 0                                |         r3 -= var_1ch;
    0x00010948 mov r0, r5                                    |         r0 = r5;
                                                             |         if (r3 != var_1ch) {
    0x0001094c bne 0x10b44                                   |             goto label_12;
                                                             |         }
    0x00010950 ldr r1, [r6, 8]                               |         r1 = *((r6 + 8));
    0x00010954 bl 0x89d0                                     |         fcn_000089d0 ();
    0x00010958 add r6, r6, 0xc                               |         r6 += 0xc;
    0x0001095c subs r3, r0, 0                                |         r3 -= var_1ch;
                                                             |         if (r3 != var_1ch) {
    0x00010960 bne 0x10b14                                   |             goto label_13;
                                                             |         }
    0x00010964 ldr r2, [sp, 0x10]                            |         r2 = var_10h;
    0x00010968 add r2, r2, 1                                 |         r2++;
    0x0001096c cmp r2, 3                                     |         
    0x00010970 str r2, [sp, 0x10]                            |         var_10h = r2;
    0x00010974 bne 0x1090c                                   |         
                                                             |     } while (r2 != 3);
    0x00010978 mov r6, r4                                    |     r6 = r4;
    0x0001097c mov r4, r5                                    |     r4 = r5;
    0x00010980 mov r5, fp                                    |     r5 = fp;
    0x00010984 mov fp, r3                                    |     
    0x00010988 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x0001098c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00010990 beq 0x10664                                   |         goto label_1;
                                                             |     }
    0x00010994 ldr r0, [pc, 0x1ec]                           |     r0 = *(0x10b84);
    0x00010998 add r0, pc, r0                                |     r0 = pc + r0;
    0x0001099c bl 0x858c                                     |     puts (r0);
    0x000109a0 b 0x1077c                                     |     goto label_3;
                                                             | label_9:
    0x000109a4 ldr r0, [pc, 0x1e0]                           |     r0 = mbedtls_hmac_drbg_self_test;
    0x000109a8 add r0, pc, r0                                |     r0 = pc + r0;
    0x000109ac bl 0x858c                                     |     puts (r0);
    0x000109b0 mov r3, r6                                    |     r3 = r6;
    0x000109b4 mov r2, r4                                    |     r2 = r4;
    0x000109b8 mov r1, sb                                    |     r1 = sb;
    0x000109bc mov r0, r7                                    |     r0 = r7;
    0x000109c0 bl 0x8dfc                                     |     fcn_00008dfc ();
    0x000109c4 subs fp, r0, 0                                |     
                                                             |     if (fp != var_40h) {
    0x000109c8 bne 0x1076c                                   |         goto label_4;
                                                             |     }
    0x000109cc ldr r2, [pc, 0x1bc]                           |     r2 = *(0x10b8c);
    0x000109d0 mov r1, 0x10                                  |     r1 = 0x10;
    0x000109d4 add r2, pc, r2                                |     r2 = pc + r2;
    0x000109d8 mov r0, r8                                    |     r0 = r8;
    0x000109dc bl 0x83e8                                     |     fcn_000083e8 ();
    0x000109e0 subs fp, r0, 0                                |     
                                                             |     if (fp != var_58h) {
    0x000109e4 bne 0x1076c                                   |         goto label_4;
                                                             |     }
    0x000109e8 b 0x10800                                     |     goto label_5;
                                                             | label_10:
    0x000109ec ldr fp, [sp, 0x10]                            |     fp = var_10h;
    0x000109f0 b 0x10658                                     |     goto label_0;
                                                             | label_11:
    0x000109f4 ldr r0, [pc, 0x198]                           |     r0 = *(0x10b90);
    0x000109f8 add r0, pc, r0                                |     r0 = pc + r0;
    0x000109fc bl 0x8298                                     |     printf (r0)
    0x00010a00 mov r1, r8                                    |     r1 = r8;
    0x00010a04 mov r0, r7                                    |     r0 = r7;
    0x00010a08 bl 0x8afc                                     |     r0 = fcn_00008afc ();
    0x00010a0c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010a10 bne 0x1075c                                   |         goto label_6;
                                                             |     }
    0x00010a14 mov r1, sl                                    |     r1 = sl;
    0x00010a18 mov r0, sb                                    |     r0 = sb;
    0x00010a1c bl 0x8afc                                     |     r0 = fcn_00008afc ();
    0x00010a20 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010a24 bne 0x1075c                                   |         goto label_6;
                                                             |     }
    0x00010a28 ldr r3, [pc, 0x168]                           |     r3 = *(0x10b94);
    0x00010a2c add r3, pc, r3                                |     r3 = pc + r3;
    0x00010a30 mov r0, r3                                    |     r0 = r3;
    0x00010a34 str r3, [sp, 0x14]                            |     s = r3;
    0x00010a38 bl 0x858c                                     |     puts (r0);
    0x00010a3c ldr r3, [sp, 0x10]                            |     r3 = var_10h;
    0x00010a40 mov r2, r5                                    |     r2 = r5;
    0x00010a44 str r3, [sp]                                  |     *(sp) = r3;
    0x00010a48 mov r1, r4                                    |     r1 = r4;
    0x00010a4c mov r3, r6                                    |     r3 = r6;
    0x00010a50 mov r0, r7                                    |     r0 = r7;
    0x00010a54 bl 0x8910                                     |     fcn_00008910 ();
    0x00010a58 subs fp, r0, 0                                |     
                                                             |     if (fp != var_40h) {
    0x00010a5c bne 0x1076c                                   |         goto label_4;
                                                             |     }
    0x00010a60 ldr r2, [pc, 0x134]                           |     r2 = *(0x10b98);
    0x00010a64 mov r1, 0x10                                  |     r1 = 0x10;
    0x00010a68 add r2, pc, r2                                |     r2 = pc + r2;
    0x00010a6c mov r0, r8                                    |     r0 = r8;
    0x00010a70 bl 0x83e8                                     |     fcn_000083e8 ();
    0x00010a74 subs fp, r0, 0                                |     
                                                             |     if (fp != var_58h) {
    0x00010a78 bne 0x1076c                                   |         goto label_4;
                                                             |     }
    0x00010a7c ldr r0, [pc, 0x11c]                           |     r0 = *(0x10b9c);
    0x00010a80 add r0, pc, r0                                |     r0 = pc + r0;
    0x00010a84 bl 0x8298                                     |     printf (r0)
    0x00010a88 mov r1, r8                                    |     r1 = r8;
    0x00010a8c mov r0, r7                                    |     r0 = r7;
    0x00010a90 bl 0x8afc                                     |     r0 = fcn_00008afc ();
    0x00010a94 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010a98 bne 0x1075c                                   |         goto label_6;
                                                             |     }
    0x00010a9c ldr r0, [sp, 0x14]                            |     r0 = s;
    0x00010aa0 bl 0x858c                                     |     puts (r0);
    0x00010aa4 mov r2, r6                                    |     r2 = r6;
    0x00010aa8 mov r1, r4                                    |     r1 = r4;
    0x00010aac mov r0, r7                                    |     r0 = r7;
    0x00010ab0 bl 0x8dcc                                     |     fcn_00008dcc ();
    0x00010ab4 subs fp, r0, 0                                |     
                                                             |     if (fp != var_40h) {
    0x00010ab8 bne 0x1076c                                   |         goto label_4;
                                                             |     }
    0x00010abc ldr r2, [pc, 0xe0]                            |     r2 = *(0x10ba0);
    0x00010ac0 mov r1, 0x10                                  |     r1 = 0x10;
    0x00010ac4 add r2, pc, r2                                |     r2 = pc + r2;
    0x00010ac8 mov r0, r8                                    |     r0 = r8;
    0x00010acc bl 0x83e8                                     |     fcn_000083e8 ();
    0x00010ad0 subs fp, r0, 0                                |     
                                                             |     if (fp != var_58h) {
    0x00010ad4 bne 0x1076c                                   |         goto label_4;
                                                             |     }
    0x00010ad8 ldr r0, [pc, 0xc8]                            |     r0 = *(0x10ba4);
    0x00010adc add r0, pc, r0                                |     r0 = pc + r0;
    0x00010ae0 bl 0x8298                                     |     printf (r0)
    0x00010ae4 mov r1, r8                                    |     r1 = r8;
    0x00010ae8 mov r0, r7                                    |     r0 = r7;
    0x00010aec bl 0x8afc                                     |     r0 = fcn_00008afc ();
    0x00010af0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010af4 bne 0x1075c                                   |         goto label_6;
                                                             |     }
    0x00010af8 ldr r0, [pc, 0xac]                            |     r0 = *(0x10ba8);
    0x00010afc add r0, pc, r0                                |     r0 = pc + r0;
    0x00010b00 bl 0x858c                                     |     puts (r0);
    0x00010b04 ldr r0, [pc, 0xa4]                            |     r0 = *(0x10bac);
    0x00010b08 add r0, pc, r0                                |     r0 = pc + r0;
    0x00010b0c bl 0x8298                                     |     printf (r0)
    0x00010b10 b 0x108f0                                     |     goto label_7;
                                                             | label_13:
    0x00010b14 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00010b18 mov r6, r4                                    |     r6 = r4;
    0x00010b1c cmp r3, 0                                     |     
    0x00010b20 mov r4, r5                                    |     r4 = r5;
    0x00010b24 mov r5, fp                                    |     r5 = fp;
                                                             |     if (r3 == 0) {
    0x00010b28 beq 0x10734                                   |         goto label_2;
                                                             |     }
    0x00010b2c ldr r0, [pc, 0x80]                            |     r0 = *(0x10bb0);
    0x00010b30 ldr r1, [sp, 0x10]                            |     r1 = var_10h;
    0x00010b34 add r0, pc, r0                                |     r0 = pc + r0;
    0x00010b38 bl 0x8298                                     |     printf (r0, r1)
    0x00010b3c mov fp, 1                                     |     
    0x00010b40 b 0x1076c                                     |     goto label_4;
                                                             | label_12:
    0x00010b44 mov r6, r4                                    |     r6 = r4;
    0x00010b48 mov r4, r5                                    |     r4 = r5;
    0x00010b4c mov r5, fp                                    |     r5 = fp;
    0x00010b50 mov fp, r3                                    |     
    0x00010b54 b 0x10658                                     |     goto label_0;
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0xeec4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.mbedtls_mpi_write_file ()                | void mbedtls_mpi_write_file (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     char * ptr;
                                                         |     int32_t var_2h;
                                                         |     int32_t var_10h;
                                                         |     int32_t var_9c0h;
                                                         |     int32_t var_4h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0000eec4 push {r4, r5, r6, r7, r8, sb, lr}         |     
    0x0000eec8 sub sp, sp, 0x9c0                         |     
    0x0000eecc sub sp, sp, 4                             |     
    0x0000eed0 add r5, sp, 0xc                           |     r5 += ptr;
    0x0000eed4 add r4, sp, 0x10                          |     r4 += var_10h;
    0x0000eed8 mov r8, r1                                |     r8 = r1;
    0x0000eedc mov sb, r2                                |     sb = r2;
    0x0000eee0 mov r1, 0                                 |     r1 = 0;
    0x0000eee4 ldr r2, [pc, 0xf8]                        |     r2 = *(0xefe0);
    0x0000eee8 mov r6, r0                                |     r6 = r0;
    0x0000eeec sub r4, r4, 8                             |     r4 -= var_8h;
    0x0000eef0 mov r0, r5                                |     r0 = r5;
    0x0000eef4 mov r7, r3                                |     r7 = r3;
    0x0000eef8 bl 0x8c28                                 |     memset (r0, r1, r2);
    0x0000eefc mov r0, r8                                |     r0 = r8;
    0x0000ef00 str r4, [sp]                              |     *(sp) = r4;
    0x0000ef04 mov r1, sb                                |     r1 = sb;
    0x0000ef08 mov r2, r5                                |     r2 = r5;
    0x0000ef0c ldr r3, [pc, 0xd4]                        |     r3 = *(0xefe4);
    0x0000ef10 bl 0x9114                                 |     r0 = fcn_00009114 ();
    0x0000ef14 subs r8, r0, 0                            |     r8 = r0 - 0;
                                                         |     if (r8 != r0) {
    0x0000ef18 bne 0xef98                                |         goto label_0;
                                                         |     }
    0x0000ef1c cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x0000ef20 beq 0xefa8                                |         goto label_1;
                                                         |     }
    0x0000ef24 mov r0, r6                                |     r0 = r6;
    0x0000ef28 bl 0x9048                                 |     r0 = strlen (r0);
    0x0000ef2c mov sb, r0                                |     sb = r0;
                                                         |     do {
    0x0000ef30 mov r0, r5                                |         r0 = r5;
    0x0000ef34 bl 0x9048                                 |         strlen (r0);
    0x0000ef38 add r3, sp, 0x9c0                         |         r3 += var_9c0h;
    0x0000ef3c mov r1, 0xd                               |         r1 = 0xd;
    0x0000ef40 mov r2, 0xa                               |         r2 = 0xa;
    0x0000ef44 cmp r7, 0                                 |         
    0x0000ef48 add r3, r3, r0                            |         r3 += r0;
    0x0000ef4c mov r4, r0                                |         r4 = r0;
    0x0000ef50 strb r1, [r3, -0x9b4]                     |         *((r3 - 0x9b4)) = r1;
    0x0000ef54 strb r2, [r3, -0x9b3]                     |         *((r3 - 0x9b3)) = r2;
                                                         |         if (r7 == 0) {
    0x0000ef58 beq 0xefb8                                |             goto label_2;
                                                         |         }
    0x0000ef5c mov r0, r6                                |         r0 = r6;
    0x0000ef60 mov r3, r7                                |         r3 = r7;
    0x0000ef64 mov r2, sb                                |         r2 = sb;
    0x0000ef68 mov r1, 1                                 |         r1 = 1;
    0x0000ef6c bl 0x8eb0                                 |         r0 = fwrite (r0, r1, r2, r3);
    0x0000ef70 cmp r0, sb                                |         
                                                         |         if (r0 != sb) {
    0x0000ef74 bne 0xefdc                                |             goto label_3;
                                                         |         }
    0x0000ef78 add r4, r4, 2                             |         r4 += var_2h;
    0x0000ef7c mov r3, r7                                |         r3 = r7;
    0x0000ef80 mov r0, r5                                |         r0 = r5;
    0x0000ef84 mov r2, r4                                |         r2 = r4;
    0x0000ef88 mov r1, 1                                 |         r1 = 1;
    0x0000ef8c bl 0x8eb0                                 |         r0 = fwrite (r0, r1, r2, r3);
    0x0000ef90 cmp r0, r4                                |         
                                                         |         if (r0 != r4) {
    0x0000ef94 bne 0xefdc                                |             goto label_3;
                                                         |         }
                                                         | label_0:
    0x0000ef98 mov r0, r8                                |         r0 = r8;
    0x0000ef9c add sp, sp, 0x9c0                         |         
    0x0000efa0 add sp, sp, 4                             |         
    0x0000efa4 pop {r4, r5, r6, r7, r8, sb, pc}          |         
                                                         | label_1:
    0x0000efa8 mov sb, r6                                |         sb = r6;
    0x0000efac ldr r6, [pc, 0x38]                        |         r6 = *(0xefe8);
    0x0000efb0 add r6, pc, r6                            |         r6 = pc + r6;
    0x0000efb4 b 0xef30                                  |         
                                                         |     } while (1);
                                                         | label_2:
    0x0000efb8 ldr r0, [pc, 0x30]                        |     r0 = *(0xefec);
    0x0000efbc mov r2, r5                                |     r2 = r5;
    0x0000efc0 mov r1, r6                                |     r1 = r6;
    0x0000efc4 add r0, pc, r0                            |     r0 = pc + r0;
    0x0000efc8 bl 0x8298                                 |     printf (r0, r1, r2)
    0x0000efcc mov r0, r8                                |     r0 = r8;
    0x0000efd0 add sp, sp, 0x9c0                         |     
    0x0000efd4 add sp, sp, 4                             |     
    0x0000efd8 pop {r4, r5, r6, r7, r8, sb, pc}          |     
                                                         | label_3:
    0x0000efdc mvn r8, 1                                 |     r8 = ~1;
    0x0000efe0 b 0xef98                                  |     goto label_0;
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x262f0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mbedtls_pkcs5_self_test ()                   | void mbedtls_pkcs5_self_test (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     char * format;
                                                             |     char * s;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_1h;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_84h;
                                                             |     r0 = arg1;
    0x000262f0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000262f4 sub sp, sp, 0x84                              |     
    0x000262f8 add r5, sp, 0x34                              |     r5 += var_34h;
    0x000262fc mov sl, r0                                    |     sl = r0;
    0x00026300 mov r0, r5                                    |     r0 = r5;
    0x00026304 bl 0x8958                                     |     fcn_00008958 ();
    0x00026308 mov r0, 4                                     |     r0 = 4;
    0x0002630c bl 0x90e4                                     |     r0 = fcn_000090e4 ();
    0x00026310 subs r1, r0, 0                                |     r1 = r0 - 0;
                                                             |     if (r1 == r0) {
    0x00026314 beq 0x26458                                   |         goto label_2;
                                                             |     }
    0x00026318 mov r2, 1                                     |     r2 = 1;
    0x0002631c mov r0, r5                                    |     r0 = r5;
    0x00026320 bl 0x8ba4                                     |     fcn_00008ba4 ();
    0x00026324 subs r4, r0, 0                                |     r4 -= var_34h;
                                                             |     if (r4 != var_34h) {
    0x00026328 bne 0x26458                                   |         goto label_2;
                                                             |     }
    0x0002632c ldr r3, [pc, 0x158]                           |     r3 = *(0x26488);
    0x00026330 ldr r6, [pc, 0x158]                           |     r6 = *(0x2648c);
    0x00026334 add r3, pc, r3                                |     r3 = pc + r3;
    0x00026338 str r3, [sp, 0x28]                            |     format = r3;
    0x0002633c ldr r3, [pc, 0x150]                           |     r3 = *(0x26490);
    0x00026340 ldr r7, [pc, 0x150]                           |     r7 = *(0x26494);
    0x00026344 add r6, pc, r6                                |     r6 = pc + r6;
    0x00026348 add r3, pc, r3                                |     r3 = pc + r3;
    0x0002634c add r7, pc, r7                                |     r7 = pc + r7;
    0x00026350 str r3, [sp, 0x2c]                            |     s = r3;
    0x00026354 add r3, r6, 0xf0                              |     r3 = r6 + 0xf0;
    0x00026358 mov r2, 8                                     |     r2 = 8;
    0x0002635c str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00026360 mov r1, 1                                     |     r1 = 1;
    0x00026364 add r3, r7, 0x270                             |     r3 = r7 + 0x270;
    0x00026368 cmp sl, 0                                     |     
    0x0002636c str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x00026370 mov r8, r2                                    |     r8 = r2;
    0x00026374 str r5, [sp, 0x10]                            |     var_10h = r5;
    0x00026378 str r6, [sp, 0x14]                            |     var_14h = r6;
    0x0002637c mov sb, 0x14                                  |     sb = 0x14;
    0x00026380 mov r3, 4                                     |     r3 = 4;
    0x00026384 add fp, sp, 0x40                              |     
    0x00026388 mov r2, r1                                    |     r2 = r1;
    0x0002638c lsl r5, r4, 5                                 |     r5 = r4 << 5;
                                                             |     if (sl != 0) {
    0x00026390 bne 0x26420                                   |         goto label_3;
                                                             |     }
                                                             |     do {
                                                             | label_0:
    0x00026394 ldr r1, [sp, 0x18]                            |         r1 = var_18h;
    0x00026398 stmib sp, {r2, sb, fp}                        |         __asm ("stmib sp, {r2, sb, fp}");
    0x0002639c ldr r0, [sp, 0x10]                            |         r0 = var_10h;
    0x000263a0 str r3, [sp]                                  |         *(sp) = r3;
    0x000263a4 mov r2, r8                                    |         r2 = r8;
    0x000263a8 mov r3, r6                                    |         r3 = r6;
    0x000263ac add r1, r1, r5                                |         r1 += r5;
    0x000263b0 bl 0x8a0c                                     |         fcn_00008a0c ();
    0x000263b4 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x000263b8 mov r2, sb                                    |         r2 = sb;
    0x000263bc add r3, r3, 0x1b0                             |         r3 += 0x1b0;
    0x000263c0 mov r1, fp                                    |         r1 = fp;
    0x000263c4 add r4, r4, 1                                 |         r4 += var_1h;
    0x000263c8 add r6, r6, 0x28                              |         r6 += 0x28;
    0x000263cc cmp r0, 0                                     |         
    0x000263d0 add r0, r3, r5                                |         r0 = r3 + r5;
                                                             |         if (r0 != 0) {
    0x000263d4 bne 0x26440                                   |             goto label_4;
                                                             |         }
    0x000263d8 bl 0x8b08                                     |         r0 = memcmp (r0, r1, r2);
    0x000263dc subs r8, r0, 0                                |         r8 = r0 - 0;
                                                             |         if (r8 != r0) {
    0x000263e0 bne 0x26440                                   |             goto label_4;
                                                             |         }
    0x000263e4 cmp sl, 0                                     |         
                                                             |         if (sl != 0) {
    0x000263e8 bne 0x26470                                   |             goto label_5;
                                                             |         }
                                                             | label_1:
    0x000263ec cmp r4, 6                                     |         
    0x000263f0 add r3, r7, 0x288                             |         r3 = r7 + 0x288;
    0x000263f4 add r2, r7, 0x2a0                             |         r2 = r7 + 0x2a0;
    0x000263f8 add r1, r7, 0x2b8                             |         r1 = r7 + 0x2b8;
                                                             |         if (r4 == 6) {
    0x000263fc beq 0x2647c                                   |             goto label_6;
                                                             |         }
    0x00026400 ldr sb, [r1, r4, lsl 2]                       |         offset_0 = r4 << 2;
                                                             |         sb = *((r1 + offset_0));
    0x00026404 ldr r1, [sp, 0x1c]                            |         r1 = var_1ch;
    0x00026408 cmp sl, 0                                     |         
    0x0002640c ldr r3, [r3, r4, lsl 2]                       |         offset_1 = r4 << 2;
                                                             |         r3 = *((r3 + offset_1));
    0x00026410 ldr r2, [r2, r4, lsl 2]                       |         offset_2 = r4 << 2;
                                                             |         r2 = *((r2 + offset_2));
    0x00026414 ldr r8, [r1, r4, lsl 2]                       |         offset_3 = r4 << 2;
                                                             |         r8 = *((r1 + offset_3));
    0x00026418 lsl r5, r4, 5                                 |         r5 = r4 << 5;
    0x0002641c beq 0x26394                                   |         
                                                             |     } while (sl == 0);
                                                             | label_3:
    0x00026420 mov r1, r4                                    |     r1 = r4;
    0x00026424 ldr r0, [sp, 0x28]                            |     r0 = format;
    0x00026428 str r2, [sp, 0x24]                            |     var_24h = r2;
    0x0002642c str r3, [sp, 0x20]                            |     var_20h = r3;
    0x00026430 bl 0x8298                                     |     printf (r0, r1, r2, r3)
    0x00026434 ldr r2, [sp, 0x24]                            |     r2 = var_24h;
    0x00026438 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x0002643c b 0x26394                                     |     goto label_0;
                                                             | label_4:
    0x00026440 cmp sl, 0                                     |     
    0x00026444 ldr r5, [sp, 0x10]                            |     r5 = var_10h;
                                                             |     if (sl != 0) {
    0x00026448 beq 0x26458                                   |         
    0x0002644c ldr r0, [pc, 0x48]                            |         r0 = *(0x26498);
    0x00026450 add r0, pc, r0                                |         r0 = pc + r0;
    0x00026454 bl 0x858c                                     |         puts (r0);
                                                             |     }
                                                             | label_2:
    0x00026458 mov r8, 1                                     |     r8 = 1;
                                                             |     do {
    0x0002645c mov r0, r5                                    |         r0 = r5;
    0x00026460 bl 0x9108                                     |         fcn_00009108 ();
    0x00026464 mov r0, r8                                    |         r0 = r8;
    0x00026468 add sp, sp, 0x84                              |         
    0x0002646c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_5:
    0x00026470 ldr r0, [sp, 0x2c]                            |         r0 = s;
    0x00026474 bl 0x858c                                     |         puts (r0);
    0x00026478 b 0x263ec                                     |         goto label_1;
                                                             | label_6:
    0x0002647c mov r0, 0xa                                   |         r0 = 0xa;
    0x00026480 ldr r5, [sp, 0x10]                            |         r5 = var_10h;
    0x00026484 bl 0x81d8                                     |         putchar (r0);
    0x00026488 b 0x2645c                                     |         
                                                             |     } while (1);
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x2a24c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.mbedtls_ripemd160_self_test ()                   | void mbedtls_ripemd160_self_test (int32_t arg1) {
                                                                 |     void * s1;
                                                                 |     int32_t var_4h_2;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_1ch;
                                                                 |     r0 = arg1;
    0x0002a24c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0002a250 ldr r5, [pc, 0x118]                               |     
    0x0002a254 ldr r6, [pc, 0x118]                               |     r6 = *(0x2a370);
    0x0002a258 ldr fp, [pc, 0x118]                               |     fp = *(0x2a374);
    0x0002a25c ldr sl, [pc, 0x118]                               |     sl = *(0x2a378);
    0x0002a260 ldr sb, [pc, 0x118]                               |     sb = *(0x2a37c);
    0x0002a264 sub sp, sp, 0x1c                                  |     
    0x0002a268 mov r8, r0                                        |     r8 = r0;
    0x0002a26c mov r3, 0                                         |     r3 = 0;
    0x0002a270 add r7, sp, 4                                     |     r7 += s1;
    0x0002a274 add r5, pc, r5                                    |     r5 = pc + r5;
    0x0002a278 add r6, pc, r6                                    |     r6 = pc + r6;
    0x0002a27c cmp r8, 0                                         |     
    0x0002a280 str r3, [r7, 4]                                   |     var_4h_2 = r3;
    0x0002a284 add fp, pc, fp                                    |     
    0x0002a288 str r3, [sp, 4]                                   |     s1 = r3;
    0x0002a28c add sl, pc, sl                                    |     sl = pc + sl;
    0x0002a290 add sb, pc, sb                                    |     sb = pc + sb;
    0x0002a294 add r5, r5, 0x40                                  |     r5 = 0x2a3ac;
    0x0002a298 mov r4, 1                                         |     r4 = 1;
    0x0002a29c str r3, [r7, 8]                                   |     var_8h = r3;
    0x0002a2a0 str r3, [r7, 0xc]                                 |     var_ch = r3;
    0x0002a2a4 str r3, [r7, 0x10]                                |     var_10h = r3;
    0x0002a2a8 mov r0, r6                                        |     r0 = r6;
                                                                 |     if (r8 != 0) {
    0x0002a2ac bne 0x2a2fc                                       |         goto label_1;
                                                                 |     }
                                                                 |     do {
    0x0002a2b0 bl 0x9048                                         |         strlen (r0);
    0x0002a2b4 mov r2, r7                                        |         r2 = r7;
    0x0002a2b8 mov r1, r0                                        |         r1 = r0;
    0x0002a2bc mov r0, r6                                        |         r0 = r6;
    0x0002a2c0 bl 0x8658                                         |         fcn_00008658 ();
    0x0002a2c4 mov r2, 0x14                                      |         r2 = 0x14;
    0x0002a2c8 mov r1, r5                                        |         r1 = r5;
    0x0002a2cc mov r0, r7                                        |         r0 = r7;
    0x0002a2d0 bl 0x8b08                                         |         r0 = memcmp (r0, r1, r2);
    0x0002a2d4 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0002a2d8 bne 0x2a364                                       |             goto label_2;
                                                                 |         }
    0x0002a2dc cmp r4, 8                                         |         
    0x0002a2e0 add r5, r5, 0x14                                  |         r5 += 0x14;
                                                                 |         if (r4 == 8) {
    0x0002a2e4 beq 0x2a34c                                       |             goto label_3;
                                                                 |         }
                                                                 | label_0:
    0x0002a2e8 ldr r6, [sb, r4, lsl 2]                           |         offset_0 = r4 << 2;
                                                                 |         r6 = *((sb + offset_0));
    0x0002a2ec cmp r8, 0                                         |         
    0x0002a2f0 add r4, r4, 1                                     |         r4++;
    0x0002a2f4 mov r0, r6                                        |         r0 = r6;
    0x0002a2f8 beq 0x2a2b0                                       |         
                                                                 |     } while (r8 == 0);
                                                                 | label_1:
    0x0002a2fc mov r1, r4                                        |     r1 = r4;
    0x0002a300 mov r0, fp                                        |     r0 = fp;
    0x0002a304 bl 0x8298                                         |     printf (r0, r1)
    0x0002a308 mov r0, r6                                        |     r0 = r6;
    0x0002a30c bl 0x9048                                         |     strlen (r0);
    0x0002a310 mov r2, r7                                        |     r2 = r7;
    0x0002a314 mov r1, r0                                        |     r1 = r0;
    0x0002a318 mov r0, r6                                        |     r0 = r6;
    0x0002a31c bl 0x8658                                         |     fcn_00008658 ();
    0x0002a320 mov r2, 0x14                                      |     r2 = 0x14;
    0x0002a324 mov r1, r5                                        |     r1 = r5;
    0x0002a328 mov r0, r7                                        |     r0 = r7;
    0x0002a32c bl 0x8b08                                         |     r0 = memcmp (r0, r1, r2);
    0x0002a330 cmp r0, 0                                         |     
    0x0002a334 mov r0, sl                                        |     r0 = sl;
                                                                 |     if (r0 != 0) {
    0x0002a338 bne 0x2a358                                       |         goto label_4;
                                                                 |     }
    0x0002a33c bl 0x858c                                         |     puts (r0);
    0x0002a340 cmp r4, 8                                         |     
    0x0002a344 add r5, r5, 0x14                                  |     r5 += 0x14;
                                                                 |     if (r4 != 8) {
    0x0002a348 bne 0x2a2e8                                       |         goto label_0;
                                                                 |     }
                                                                 | label_3:
    0x0002a34c mov r0, 0                                         |     r0 = 0;
    0x0002a350 add sp, sp, 0x1c                                  |     
    0x0002a354 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |     
                                                                 | label_4:
    0x0002a358 ldr r0, [pc, 0x24]                                |     r0 = *(0x2a380);
    0x0002a35c add r0, pc, r0                                    |     r0 = pc + r0;
    0x0002a360 bl 0x858c                                         |     puts (r0);
                                                                 | label_2:
    0x0002a364 mov r0, 1                                         |     r0 = 1;
    0x0002a368 add sp, sp, 0x1c                                  |     
    0x0002a36c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x2c5f8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.mbedtls_rsa_self_test ()                         | void mbedtls_rsa_self_test (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     void * s2;
                                                                 |     void * s1;
                                                                 |     int32_t var_5ch;
                                                                 |     int32_t var_dch;
                                                                 |     int32_t var_e0h;
                                                                 |     int32_t var_e4h;
                                                                 |     int32_t var_f0h;
                                                                 |     int32_t var_fch;
                                                                 |     int32_t var_108h;
                                                                 |     int32_t var_114h;
                                                                 |     int32_t var_120h;
                                                                 |     int32_t var_12ch;
                                                                 |     int32_t var_138h;
                                                                 |     int32_t var_18ch;
                                                                 |     r0 = arg1;
    0x0002c5f8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0002c5fc sub sp, sp, 0x18c                                 |     
    0x0002c600 mov r2, 0                                         |     r2 = 0;
    0x0002c604 add r4, sp, 0xdc                                  |     r4 += var_dch;
    0x0002c608 mov r1, r2                                        |     r1 = r2;
    0x0002c60c mov r6, r0                                        |     r6 = r0;
    0x0002c610 mov r0, r4                                        |     r0 = r4;
    0x0002c614 bl 0x9084                                         |     fcn_00009084 ();
    0x0002c618 ldr r2, [pc, 0x3d0]                               |     r2 = *(0x2c9ec);
    0x0002c61c mov r3, 0x80                                      |     r3 = 0x80;
    0x0002c620 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0002c624 mov r1, 0x10                                      |     r1 = 0x10;
    0x0002c628 add r0, sp, 0xe4                                  |     r0 += var_e4h;
    0x0002c62c str r3, [sp, 0xe0]                                |     var_e0h = r3;
    0x0002c630 bl 0x83e8                                         |     fcn_000083e8 ();
    0x0002c634 subs r5, r0, 0                                    |     r5 -= var_e4h;
                                                                 |     if (r5 != var_e4h) {
    0x0002c638 bne 0x2c658                                       |         goto label_0;
                                                                 |     }
    0x0002c63c ldr r2, [pc, 0x3b0]                               |     r2 = *(0x2c9f0);
    0x0002c640 mov r1, 0x10                                      |     r1 = 0x10;
    0x0002c644 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0002c648 add r0, sp, 0xf0                                  |     r0 += var_f0h;
    0x0002c64c bl 0x83e8                                         |     fcn_000083e8 ();
    0x0002c650 subs r5, r0, 0                                    |     r5 -= var_f0h;
    0x0002c654 beq 0x2c66c                                       |     
                                                                 |     while (r5 != var_fch) {
                                                                 | label_0:
    0x0002c658 mov r0, r4                                        |         r0 = r4;
    0x0002c65c bl 0x8250                                         |         fcn_00008250 ();
                                                                 | label_1:
    0x0002c660 mov r0, r5                                        |         r0 = r5;
    0x0002c664 add sp, sp, 0x18c                                 |         
    0x0002c668 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
    0x0002c66c ldr r2, [pc, 0x384]                               |         r2 = *(0x2c9f4);
    0x0002c670 mov r1, 0x10                                      |         r1 = 0x10;
    0x0002c674 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0002c678 add r0, sp, 0xfc                                  |         r0 += var_fch;
    0x0002c67c bl 0x83e8                                         |         fcn_000083e8 ();
    0x0002c680 subs r5, r0, 0                                    |         r5 -= var_fch;
    0x0002c684 bne 0x2c658                                       |         
                                                                 |     }
    0x0002c688 ldr r2, [pc, 0x36c]                               |     r2 = *(0x2c9f8);
    0x0002c68c mov r1, 0x10                                      |     r1 = 0x10;
    0x0002c690 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0002c694 add r0, sp, 0x108                                 |     r0 += var_108h;
    0x0002c698 bl 0x83e8                                         |     fcn_000083e8 ();
    0x0002c69c subs r5, r0, 0                                    |     r5 -= var_108h;
                                                                 |     if (r5 != var_108h) {
    0x0002c6a0 bne 0x2c658                                       |         goto label_0;
                                                                 |     }
    0x0002c6a4 ldr r2, [pc, 0x354]                               |     r2 = *(0x2c9fc);
    0x0002c6a8 mov r1, 0x10                                      |     r1 = 0x10;
    0x0002c6ac add r2, pc, r2                                    |     r2 = pc + r2;
    0x0002c6b0 add r0, sp, 0x114                                 |     r0 += var_114h;
    0x0002c6b4 bl 0x83e8                                         |     fcn_000083e8 ();
    0x0002c6b8 subs r5, r0, 0                                    |     r5 -= var_114h;
                                                                 |     if (r5 != var_114h) {
    0x0002c6bc bne 0x2c658                                       |         goto label_0;
                                                                 |     }
    0x0002c6c0 ldr r2, [pc, 0x33c]                               |     r2 = *(0x2ca00);
    0x0002c6c4 mov r1, 0x10                                      |     r1 = 0x10;
    0x0002c6c8 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0002c6cc add r0, sp, 0x120                                 |     r0 += var_120h;
    0x0002c6d0 bl 0x83e8                                         |     fcn_000083e8 ();
    0x0002c6d4 subs r5, r0, 0                                    |     r5 -= var_120h;
                                                                 |     if (r5 != var_120h) {
    0x0002c6d8 bne 0x2c658                                       |         goto label_0;
                                                                 |     }
    0x0002c6dc ldr r2, [pc, 0x324]                               |     r2 = *(0x2ca04);
    0x0002c6e0 mov r1, 0x10                                      |     r1 = 0x10;
    0x0002c6e4 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0002c6e8 add r0, sp, 0x12c                                 |     r0 += var_12ch;
    0x0002c6ec bl 0x83e8                                         |     fcn_000083e8 ();
    0x0002c6f0 subs r5, r0, 0                                    |     r5 -= var_12ch;
                                                                 |     if (r5 != var_12ch) {
    0x0002c6f4 bne 0x2c658                                       |         goto label_0;
                                                                 |     }
    0x0002c6f8 ldr r2, [pc, 0x30c]                               |     r2 = *(0x2ca08);
    0x0002c6fc mov r1, 0x10                                      |     r1 = 0x10;
    0x0002c700 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0002c704 add r0, sp, 0x138                                 |     r0 += var_138h;
    0x0002c708 bl 0x83e8                                         |     fcn_000083e8 ();
    0x0002c70c subs r5, r0, 0                                    |     r5 -= var_138h;
                                                                 |     if (r5 != var_138h) {
    0x0002c710 bne 0x2c658                                       |         goto label_0;
                                                                 |     }
    0x0002c714 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x0002c718 bne 0x2c734                                       |         goto label_3;
                                                                 |     }
    0x0002c71c mov r0, r4                                        |     r0 = r4;
    0x0002c720 bl 0x864c                                         |     r0 = fcn_0000864c ();
    0x0002c724 cmp r0, 0                                         |     
    0x0002c728 beq 0x2c8dc                                       |     
                                                                 |     while (r6 != var_dch) {
                                                                 | label_2:
    0x0002c72c mov r5, 1                                         |         r5 = 1;
    0x0002c730 b 0x2c660                                         |         goto label_1;
                                                                 | label_3:
    0x0002c734 ldr r0, [pc, 0x2d4]                               |         r0 = *(0x2ca0c);
    0x0002c738 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0002c73c bl 0x8298                                         |         printf (r0)
    0x0002c740 mov r0, r4                                        |         r0 = r4;
    0x0002c744 bl 0x864c                                         |         r0 = fcn_0000864c ();
    0x0002c748 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0002c74c bne 0x2c8c8                                       |             
    0x0002c750 mov r0, r4                                        |             r0 = r4;
    0x0002c754 bl 0x83d0                                         |             fcn_000083d0 ();
    0x0002c758 subs r6, r0, 0                                    |             r6 -= var_dch;
                                                                 |             if (r6 != var_dch) {
    0x0002c75c bne 0x2c8c8                                       |                 goto label_4;
                                                                 |             }
    0x0002c760 ldr r0, [pc, 0x2ac]                               |             r0 = *(0x2ca10);
    0x0002c764 ldr r7, [pc, 0x2ac]                               |             r7 = *(0x2ca14);
    0x0002c768 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0002c76c bl 0x8298                                         |             printf (r0)
    0x0002c770 ldr lr, [pc, 0x2a4]                               |             lr = *(0x2ca18);
    0x0002c774 add ip, sp, 0x2c                                  |             
    0x0002c778 add lr, pc, lr                                    |             lr = pc + lr;
    0x0002c77c ldm lr!, {r0, r1, r2, r3}                         |             r0 = *(lr!);
                                                                 |             r1 = *((lr! + 4));
                                                                 |             r2 = *((lr! + 8));
                                                                 |             r3 = *((lr! + 12));
    0x0002c780 add r7, pc, r7                                    |             r7 = pc + r7;
    0x0002c784 stm ip!, {r0, r1, r2, r3}                         |             *(ip!) = r0;
                                                                 |             *((ip! + 4)) = r1;
                                                                 |             *((ip! + 8)) = r2;
                                                                 |             *((ip! + 12)) = r3;
    0x0002c788 ldm lr, {r0, r1}                                  |             r0 = *(lr);
                                                                 |             r1 = *((lr + 4));
    0x0002c78c add r5, sp, 0x5c                                  |             r5 += var_5ch;
    0x0002c790 add r8, sp, 0x2c                                  |             r8 += s2;
    0x0002c794 mov sb, 0x18                                      |             sb = 0x18;
    0x0002c798 stm ip, {r0, r1}                                  |             *(ip) = r0;
                                                                 |             *((ip + 4)) = r1;
    0x0002c79c mov r3, r6                                        |             r3 = r6;
    0x0002c7a0 str r5, [sp, 8]                                   |             var_8h = r5;
    0x0002c7a4 mov r1, r7                                        |             r1 = r7;
    0x0002c7a8 str r8, [sp, 4]                                   |             var_4h = r8;
    0x0002c7ac str sb, [sp]                                      |             *(sp) = sb;
    0x0002c7b0 mov r2, r6                                        |             r2 = r6;
    0x0002c7b4 mov r0, r4                                        |             r0 = r4;
    0x0002c7b8 bl 0x8820                                         |             fcn_00008820 ();
    0x0002c7bc subs sl, r0, 0                                    |             sl -= var_dch;
                                                                 |             if (sl != var_dch) {
    0x0002c7c0 bne 0x2c8c8                                       |                 goto label_4;
                                                                 |             }
    0x0002c7c4 ldr r0, [pc, 0x254]                               |             r0 = *(0x2ca1c);
    0x0002c7c8 add r6, sp, 0x44                                  |             r6 += s1;
    0x0002c7cc add r0, pc, r0                                    |             r0 = pc + r0;
    0x0002c7d0 bl 0x8298                                         |             printf (r0, r1, r2, r3, r4, r5, r6)
    0x0002c7d4 add r3, sp, 0x14                                  |             r3 += var_14h;
    0x0002c7d8 str r3, [sp]                                      |             *(sp) = r3;
    0x0002c7dc str sb, [sp, 0xc]                                 |             var_ch = sb;
    0x0002c7e0 str r5, [sp, 4]                                   |             var_4h = r5;
    0x0002c7e4 mov r2, sl                                        |             r2 = sl;
    0x0002c7e8 str r6, [sp, 8]                                   |             var_8h = r6;
    0x0002c7ec mov r3, 1                                         |             r3 = 1;
    0x0002c7f0 mov r1, r7                                        |             r1 = r7;
    0x0002c7f4 mov r0, r4                                        |             r0 = r4;
    0x0002c7f8 bl 0x8394                                         |             r0 = fcn_00008394 ();
    0x0002c7fc cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x0002c800 bne 0x2c8c8                                       |                 goto label_4;
                                                                 |             }
    0x0002c804 mov r0, r6                                        |             r0 = r6;
    0x0002c808 ldr r2, [sp, 0x14]                                |             r2 = var_14h;
    0x0002c80c mov r1, r8                                        |             r1 = r8;
    0x0002c810 bl 0x8b08                                         |             memcmp (r0, r1, r2);
    0x0002c814 subs fp, r0, 0                                    |             
                                                                 |             if (fp != s1) {
    0x0002c818 bne 0x2c8c8                                       |                 goto label_4;
                                                                 |             }
    0x0002c81c ldr sl, [pc, 0x200]                               |             sl = "ls_pkcs12_pbe";
    0x0002c820 add r6, sp, 0x18                                  |             r6 += var_18h;
    0x0002c824 add sl, pc, sl                                    |             sl = pc + sl;
    0x0002c828 mov r0, sl                                        |             r0 = sl;
    0x0002c82c bl 0x858c                                         |             puts (r0);
    0x0002c830 ldr r0, [pc, 0x1f0]                               |             r0 = "ls_pkcs12_pbe";
    0x0002c834 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0002c838 bl 0x8298                                         |             printf ("ls_pkcs12_pbe")
    0x0002c83c mov r0, r8                                        |             r0 = r8;
    0x0002c840 mov r1, sb                                        |             r1 = sb;
    0x0002c844 mov r2, r6                                        |             r2 = r6;
    0x0002c848 mov r8, 4                                         |             r8 = 4;
    0x0002c84c bl 0x8ea4                                         |             fcn_00008ea4 ();
    0x0002c850 mov r1, r7                                        |             r1 = r7;
    0x0002c854 str r6, [sp, 8]                                   |             var_8h = r6;
    0x0002c858 str r5, [sp, 0xc]                                 |             var_ch = r5;
    0x0002c85c str fp, [sp, 4]                                   |             var_4h = fp;
    0x0002c860 mov r2, fp                                        |             r2 = fp;
    0x0002c864 str r8, [sp]                                      |             *(sp) = r8;
    0x0002c868 mov r3, 1                                         |             r3 = 1;
    0x0002c86c mov r0, r4                                        |             r0 = r4;
    0x0002c870 bl 0x9090                                         |             fcn_00009090 ();
    0x0002c874 subs r7, r0, 0                                    |             r7 -= var_dch;
                                                                 |             if (r7 != var_dch) {
    0x0002c878 bne 0x2c8c8                                       |                 goto label_4;
                                                                 |             }
    0x0002c87c ldr r0, [pc, 0x1a8]                               |             r0 = *(0x2ca28);
    0x0002c880 add r0, pc, r0                                    |             r0 = pc + r0;
    0x0002c884 bl 0x8298                                         |             printf (r0)
    0x0002c888 str r5, [sp, 0xc]                                 |             var_ch = r5;
    0x0002c88c str r6, [sp, 8]                                   |             var_8h = r6;
    0x0002c890 str r7, [sp, 4]                                   |             var_4h = r7;
    0x0002c894 str r8, [sp]                                      |             *(sp) = r8;
    0x0002c898 mov r3, r7                                        |             r3 = r7;
    0x0002c89c mov r2, r7                                        |             r2 = r7;
    0x0002c8a0 mov r1, r7                                        |             r1 = r7;
    0x0002c8a4 mov r0, r4                                        |             r0 = r4;
    0x0002c8a8 bl 0x8b50                                         |             fcn_00008b50 ();
    0x0002c8ac subs r5, r0, 0                                    |             r5 -= var_dch;
                                                                 |             if (r5 != var_dch) {
    0x0002c8b0 bne 0x2c8c8                                       |                 goto label_4;
                                                                 |             }
    0x0002c8b4 mov r0, sl                                        |             r0 = sl;
    0x0002c8b8 bl 0x858c                                         |             puts (r0);
    0x0002c8bc mov r0, 0xa                                       |             r0 = 0xa;
    0x0002c8c0 bl 0x81d8                                         |             putchar (r0);
    0x0002c8c4 b 0x2c658                                         |             goto label_0;
                                                                 |         }
                                                                 | label_4:
    0x0002c8c8 ldr r0, [pc, 0x160]                               |         r0 = *(0x2ca2c);
    0x0002c8cc mov r5, 1                                         |         r5 = 1;
    0x0002c8d0 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0002c8d4 bl 0x858c                                         |         puts (r0);
    0x0002c8d8 b 0x2c660                                         |         goto label_1;
    0x0002c8dc mov r0, r4                                        |         r0 = r4;
    0x0002c8e0 bl 0x83d0                                         |         fcn_000083d0 ();
    0x0002c8e4 subs r6, r0, 0                                    |         r6 -= var_dch;
    0x0002c8e8 bne 0x2c72c                                       |         
                                                                 |     }
    0x0002c8ec ldr lr, [pc, 0x140]                               |     lr = *(0x2ca30);
    0x0002c8f0 add ip, sp, 0x2c                                  |     
    0x0002c8f4 add lr, pc, lr                                    |     lr = pc + lr;
    0x0002c8f8 ldm lr!, {r0, r1, r2, r3}                         |     r0 = *(lr!);
                                                                 |     r1 = *((lr! + 4));
                                                                 |     r2 = *((lr! + 8));
                                                                 |     r3 = *((lr! + 12));
    0x0002c8fc ldr r7, [pc, 0x134]                               |     r7 = *(0x2ca34);
    0x0002c900 stm ip!, {r0, r1, r2, r3}                         |     *(ip!) = r0;
                                                                 |     *((ip! + 4)) = r1;
                                                                 |     *((ip! + 8)) = r2;
                                                                 |     *((ip! + 12)) = r3;
    0x0002c904 ldm lr, {r0, r1}                                  |     r0 = *(lr);
                                                                 |     r1 = *((lr + 4));
    0x0002c908 add r7, pc, r7                                    |     r7 = pc + r7;
    0x0002c90c add r5, sp, 0x5c                                  |     r5 += var_5ch;
    0x0002c910 add r8, sp, 0x2c                                  |     r8 += s2;
    0x0002c914 mov sb, 0x18                                      |     sb = 0x18;
    0x0002c918 stm ip, {r0, r1}                                  |     *(ip) = r0;
                                                                 |     *((ip + 4)) = r1;
    0x0002c91c mov r2, r6                                        |     r2 = r6;
    0x0002c920 str r5, [sp, 8]                                   |     var_8h = r5;
    0x0002c924 mov r1, r7                                        |     r1 = r7;
    0x0002c928 str r8, [sp, 4]                                   |     var_4h = r8;
    0x0002c92c str sb, [sp]                                      |     *(sp) = sb;
    0x0002c930 mov r3, r6                                        |     r3 = r6;
    0x0002c934 mov r0, r4                                        |     r0 = r4;
    0x0002c938 bl 0x8820                                         |     fcn_00008820 ();
    0x0002c93c subs r2, r0, 0                                    |     r2 -= var_dch;
                                                                 |     if (r2 != var_dch) {
    0x0002c940 bne 0x2c72c                                       |         goto label_2;
                                                                 |     }
    0x0002c944 add r3, sp, 0x14                                  |     r3 += var_14h;
    0x0002c948 add r6, sp, 0x44                                  |     r6 += s1;
    0x0002c94c str r3, [sp]                                      |     *(sp) = r3;
    0x0002c950 stmib sp, {r5, r6, sb}                            |     __asm ("stmib sp, {r5, r6, sb}");
    0x0002c954 mov r3, 1                                         |     r3 = 1;
    0x0002c958 mov r1, r7                                        |     r1 = r7;
    0x0002c95c mov r0, r4                                        |     r0 = r4;
    0x0002c960 bl 0x8394                                         |     r0 = fcn_00008394 ();
    0x0002c964 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002c968 bne 0x2c72c                                       |         goto label_2;
                                                                 |     }
    0x0002c96c mov r0, r6                                        |     r0 = r6;
    0x0002c970 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0002c974 mov r1, r8                                        |     r1 = r8;
    0x0002c978 bl 0x8b08                                         |     memcmp (r0, r1, r2);
    0x0002c97c subs sl, r0, 0                                    |     sl -= s1;
                                                                 |     if (sl != s1) {
    0x0002c980 bne 0x2c72c                                       |         goto label_2;
                                                                 |     }
    0x0002c984 add r6, sp, 0x18                                  |     r6 += var_18h;
    0x0002c988 mov r0, r8                                        |     r0 = r8;
    0x0002c98c mov r1, sb                                        |     r1 = sb;
    0x0002c990 mov r2, r6                                        |     r2 = r6;
    0x0002c994 mov r8, 4                                         |     r8 = 4;
    0x0002c998 bl 0x8ea4                                         |     fcn_00008ea4 ();
    0x0002c99c mov r3, 1                                         |     r3 = 1;
    0x0002c9a0 str r6, [sp, 8]                                   |     var_8h = r6;
    0x0002c9a4 str r5, [sp, 0xc]                                 |     var_ch = r5;
    0x0002c9a8 str sl, [sp, 4]                                   |     var_4h = sl;
    0x0002c9ac mov r2, sl                                        |     r2 = sl;
    0x0002c9b0 mov r1, r7                                        |     r1 = r7;
    0x0002c9b4 str r8, [sp]                                      |     *(sp) = r8;
    0x0002c9b8 mov r0, r4                                        |     r0 = r4;
    0x0002c9bc bl 0x9090                                         |     fcn_00009090 ();
    0x0002c9c0 subs r3, r0, 0                                    |     r3 -= var_dch;
                                                                 |     if (r3 != var_dch) {
    0x0002c9c4 bne 0x2c72c                                       |         goto label_2;
                                                                 |     }
    0x0002c9c8 str r5, [sp, 0xc]                                 |     var_ch = r5;
    0x0002c9cc stmib sp, {r3, r6}                                |     __asm ("stmib sp, {r3, r6}");
    0x0002c9d0 str r8, [sp]                                      |     *(sp) = r8;
    0x0002c9d4 mov r2, r3                                        |     r2 = r3;
    0x0002c9d8 mov r1, r3                                        |     r1 = r3;
    0x0002c9dc mov r0, r4                                        |     r0 = r4;
    0x0002c9e0 bl 0x8b50                                         |     fcn_00008b50 ();
    0x0002c9e4 subs r5, r0, 0                                    |     r5 -= var_dch;
                                                                 |     if (r5 != var_dch) {
    0x0002c9e8 bne 0x2c72c                                       |         goto label_2;
                                                                 |     }
    0x0002c9ec b 0x2c658                                         |     goto label_0;
                                                                 | }


r2dec has crashed (info: /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x2e568).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.


r2dec has crashed (info: /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x2f5b8).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.


r2dec has crashed (info: /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x311b4).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x3157c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.mbedtls_timing_self_test ()                  | void mbedtls_timing_self_test (int32_t arg1) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_4ch;
                                                             |     r0 = arg1;
    0x0003157c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00031580 ldr r4, [pc, 0x2a0]                           |     r4 = *(0x31824);
    0x00031584 subs r7, r0, 0                                |     r7 = r0 - 0;
    0x00031588 sub sp, sp, 0x4c                              |     
    0x0003158c add r4, pc, r4                                |     r4 = pc + r4;
                                                             |     if (r7 != r0) {
    0x00031590 bne 0x316e8                                   |         goto label_8;
                                                             |     }
                                                             | label_2:
    0x00031594 ldr r3, [pc, 0x290]                           |     r3 = *(0x31828);
    0x00031598 ldr r8, [pc, 0x290]                           |     r8 = *(0x3182c);
    0x0003159c ldr r4, [r4, r3]                              |     r4 = *((r4 + r3));
    0x000315a0 mov r6, 0x320                                 |     r6 = 0x320;
    0x000315a4 mov r5, 1                                     |     r5 = 1;
    0x000315a8 mov sb, sp                                    |     sb = sp;
                                                             | label_0:
    0x000315ac mov r1, 1                                     |     r1 = 1;
    0x000315b0 mov r0, sb                                    |     r0 = sb;
    0x000315b4 bl 0x8730                                     |     fcn_00008730 ();
    0x000315b8 mov r0, r5                                    |     r0 = r5;
    0x000315bc bl 0x8ab4                                     |     fcn_00008ab4 ();
                                                             |     do {
    0x000315c0 ldr r3, [r4]                                  |         r3 = *(r4);
    0x000315c4 cmp r3, 0                                     |         
    0x000315c8 beq 0x315c0                                   |         
                                                             |     } while (r3 == 0);
    0x000315cc mov r1, 0                                     |     r1 = 0;
    0x000315d0 mov r0, sb                                    |     r0 = sb;
    0x000315d4 bl 0x8730                                     |     r0 = fcn_00008730 ();
    0x000315d8 cmp r0, r6                                    |     
                                                             |     if (r0 <= r6) {
    0x000315dc blo 0x316d0                                   |         goto label_9;
                                                             |     }
    0x000315e0 cmp r8, r0                                    |     
                                                             |     if (r8 <= r0) {
    0x000315e4 blo 0x316d0                                   |         goto label_9;
                                                             |     }
    0x000315e8 add r5, r5, 1                                 |     r5++;
    0x000315ec cmp r5, 4                                     |     
    0x000315f0 add r8, r8, 0x4b0                             |     r8 += 0x4b0;
    0x000315f4 add r6, r6, 0x320                             |     r6 += 0x320;
                                                             |     if (r5 != 4) {
    0x000315f8 bne 0x315ac                                   |         goto label_0;
                                                             |     }
    0x000315fc cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00031600 bne 0x31720                                   |         goto label_10;
                                                             |     }
                                                             | label_3:
    0x00031604 mov r6, 0xc8                                  |     r6 = 0xc8;
    0x00031608 add r5, sp, 0x20                              |     r5 += var_20h;
                                                             | label_1:
    0x0003160c lsr sb, r6, 3                                 |     sb = r6 >> 3;
    0x00031610 sub fp, r6, sb                                |     
    0x00031614 lsr sl, r6, 2                                 |     sl = r6 >> 2;
    0x00031618 mov r4, 0xc8                                  |     r4 = 0xc8;
                                                             |     do {
    0x0003161c add r2, r6, r4                                |         r2 = r6 + r4;
    0x00031620 mov r1, r6                                    |         r1 = r6;
    0x00031624 mov r0, r5                                    |         r0 = r5;
    0x00031628 bl 0x8424                                     |         fcn_00008424 ();
    0x0003162c mov r0, fp                                    |         r0 = fp;
    0x00031630 bl 0x31484                                    |         busy_msleep ();
    0x00031634 mov r0, r5                                    |         r0 = r5;
    0x00031638 bl 0x9174                                     |         fcn_00009174 ();
    0x0003163c subs r8, r0, 0                                |         r8 -= var_20h;
    0x00031640 mov r0, sl                                    |         r0 = sl;
                                                             |         if (r8 != var_20h) {
    0x00031644 bne 0x316d0                                   |             goto label_9;
                                                             |         }
    0x00031648 bl 0x31484                                    |         busy_msleep ();
    0x0003164c mov r0, r5                                    |         r0 = r5;
    0x00031650 bl 0x9174                                     |         fcn_00009174 ();
    0x00031654 sub r3, r4, sb                                |         r3 = r4 - sb;
    0x00031658 cmp r0, 1                                     |         
    0x0003165c sub r0, r3, r4, lsr 3                         |         r0 = r3 - (r4 >> 3);
                                                             |         if (r0 != 1) {
    0x00031660 bne 0x316d0                                   |             goto label_9;
                                                             |         }
    0x00031664 bl 0x31484                                    |         busy_msleep ();
    0x00031668 mov r0, r5                                    |         r0 = r5;
    0x0003166c bl 0x9174                                     |         r0 = fcn_00009174 ();
    0x00031670 cmp r0, 1                                     |         
    0x00031674 lsr r0, r4, 2                                 |         r0 = r4 >> 2;
    0x00031678 add r4, r4, 0xc8                              |         r4 += 0xc8;
                                                             |         if (r0 != 1) {
    0x0003167c bne 0x316d0                                   |             goto label_9;
                                                             |         }
    0x00031680 bl 0x31484                                    |         busy_msleep ();
    0x00031684 mov r0, r5                                    |         r0 = r5;
    0x00031688 bl 0x9174                                     |         r0 = fcn_00009174 ();
    0x0003168c cmp r0, 2                                     |         
                                                             |         if (r0 != 2) {
    0x00031690 bne 0x316d0                                   |             goto label_9;
                                                             |         }
    0x00031694 cmp r4, 0x258                                 |         
    0x00031698 bne 0x3161c                                   |         
                                                             |     } while (r4 != 0x258);
    0x0003169c add r6, r6, 0xc8                              |     r6 += 0xc8;
    0x000316a0 cmp r6, 0x258                                 |     
                                                             |     if (r6 != 0x258) {
    0x000316a4 bne 0x3160c                                   |         goto label_1;
                                                             |     }
    0x000316a8 mov r2, r8                                    |     r2 = r8;
    0x000316ac mov r1, r8                                    |     r1 = r8;
    0x000316b0 mov r0, r5                                    |     r0 = r5;
    0x000316b4 bl 0x8424                                     |     fcn_00008424 ();
    0x000316b8 mov r0, 0xc8                                  |     r0 = 0xc8;
    0x000316bc bl 0x31484                                    |     busy_msleep ();
    0x000316c0 mov r0, r5                                    |     r0 = r5;
    0x000316c4 bl 0x9174                                     |     r0 = fcn_00009174 ();
    0x000316c8 cmn r0, 1                                     |     
                                                             |     if (r0 != 1) {
    0x000316cc beq 0x3173c                                   |         
                                                             | label_9:
    0x000316d0 cmp r7, 0                                     |         
                                                             |         if (r7 != 0) {
    0x000316d4 moveq r8, 1                                   |             r8 = 1;
                                                             |         }
                                                             |         if (r7 == 0) {
    0x000316d8 bne 0x31704                                   |             
                                                             | label_5:
    0x000316dc mov r0, r8                                    |             r0 = r8;
    0x000316e0 add sp, sp, 0x4c                              |             
    0x000316e4 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |             
                                                             | label_8:
    0x000316e8 ldr r0, [pc, 0x144]                           |             r0 = *(0x31830);
    0x000316ec add r0, pc, r0                                |             r0 = pc + r0;
    0x000316f0 bl 0x858c                                     |             puts (r0);
    0x000316f4 ldr r0, [pc, 0x13c]                           |             r0 = *(0x31834);
    0x000316f8 add r0, pc, r0                                |             r0 = pc + r0;
    0x000316fc bl 0x8298                                     |             printf (r0)
    0x00031700 b 0x31594                                     |             goto label_2;
                                                             |         }
    0x00031704 ldr r0, [pc, 0x130]                           |         r0 = *(0x31838);
    0x00031708 mov r8, 1                                     |         r8 = 1;
    0x0003170c add r0, pc, r0                                |         r0 = pc + r0;
    0x00031710 bl 0x858c                                     |         puts (r0);
    0x00031714 mov r0, r8                                    |         r0 = r8;
    0x00031718 add sp, sp, 0x4c                              |         
    0x0003171c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_10:
    0x00031720 ldr r0, [pc, 0x118]                           |         r0 = "write_key_der";
    0x00031724 add r0, pc, r0                                |         r0 = pc + r0;
    0x00031728 bl 0x858c                                     |         puts (r0);
    0x0003172c ldr r0, [pc, 0x110]                           |         r0 = *(0x31840);
    0x00031730 add r0, pc, r0                                |         r0 = pc + r0;
    0x00031734 bl 0x8298                                     |         printf (r0)
    0x00031738 b 0x31604                                     |         goto label_3;
                                                             |     }
    0x0003173c cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00031740 bne 0x317cc                                   |         goto label_11;
                                                             |     }
                                                             | label_4:
    0x00031744 ldr sb, [pc, 0xfc]                            |     sb = *(0x00031848);
    0x00031748 mov sl, 2                                     |     sl = 2;
                                                             | label_7:
    0x0003174c bl 0x8718                                     |     fcn_00008718 ();
    0x00031750 mov r4, 2                                     |     r4 = 2;
    0x00031754 mov r5, r0                                    |     r5 = r0;
    0x00031758 mov r0, 1                                     |     r0 = 1;
    0x0003175c bl 0x31484                                    |     busy_msleep ();
    0x00031760 bl 0x8718                                     |     r0 = fcn_00008718 ();
    0x00031764 sub r0, r0, r5                                |     r0 -= r5;
    0x00031768 umull r2, r3, r0, sb                          |     r2:r3 = r0 * sb;
    0x0003176c lsr r5, r3, r4                                |     r5 = r3 >> r4;
    0x00031770 sub r6, r0, r5                                |     r6 = r0 - r5;
    0x00031774 add r5, r5, r0                                |     r5 += r0;
                                                             |     do {
    0x00031778 bl 0x8718                                     |         r0 = fcn_00008718 ();
    0x0003177c mov fp, r0                                    |         
    0x00031780 mov r0, r4                                    |         r0 = r4;
    0x00031784 bl 0x31484                                    |         busy_msleep ();
    0x00031788 bl 0x8718                                     |         fcn_00008718 ();
    0x0003178c mov r1, r4                                    |         r1 = r4;
    0x00031790 add r4, r4, 1                                 |         r4++;
    0x00031794 sub r0, r0, fp                                |         r0 -= fp;
    0x00031798 bl 0x31d10                                    |         r0 = loc_udivsi3_skip_div0_test (r0, r1);
    0x0003179c cmp r0, r6                                    |         
                                                             |         if (r0 <= r6) {
    0x000317a0 blo 0x31800                                   |             goto label_12;
                                                             |         }
    0x000317a4 cmp r0, r5                                    |         
                                                             |         if (r0 > r5) {
    0x000317a8 bhi 0x31800                                   |             goto label_12;
                                                             |         }
    0x000317ac cmp r4, 5                                     |         
    0x000317b0 bne 0x31778                                   |         
                                                             |     } while (r4 != 5);
    0x000317b4 cmp r7, 0                                     |     
    0x000317b8 bne 0x317e8                                   |     
                                                             |     while (r7 == 0) {
    0x000317bc mov r8, r7                                    |         r8 = r7;
    0x000317c0 mov r0, r8                                    |         r0 = r8;
    0x000317c4 add sp, sp, 0x4c                              |         
    0x000317c8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_11:
    0x000317cc ldr r0, [pc, 0x78]                            |         r0 = *(0x31848);
    0x000317d0 add r0, pc, r0                                |         r0 = pc + r0;
    0x000317d4 bl 0x858c                                     |         puts (r0);
    0x000317d8 ldr r0, [pc, 0x70]                            |         r0 = *(0x3184c);
    0x000317dc add r0, pc, r0                                |         r0 = pc + r0;
    0x000317e0 bl 0x8298                                     |         printf (r0)
    0x000317e4 b 0x31744                                     |         goto label_4;
    0x000317e8 ldr r0, [pc, 0x64]                            |         r0 = *(0x31850);
    0x000317ec add r0, pc, r0                                |         r0 = pc + r0;
    0x000317f0 bl 0x858c                                     |         puts (r0);
                                                             | label_6:
    0x000317f4 mov r0, 0xa                                   |         r0 = 0xa;
    0x000317f8 bl 0x81d8                                     |         putchar (r0);
    0x000317fc b 0x316dc                                     |         goto label_5;
                                                             | label_12:
    0x00031800 cmp sl, 1                                     |         
                                                             |         if (sl != 1) {
    0x00031804 bne 0x31820                                   |             goto label_13;
                                                             |         }
    0x00031808 cmp r7, 0                                     |         
    0x0003180c beq 0x317bc                                   |         
                                                             |     }
    0x00031810 ldr r0, [pc, 0x40]                            |     r0 = *(0x31854);
    0x00031814 add r0, pc, r0                                |     r0 = pc + r0;
    0x00031818 bl 0x858c                                     |     puts (r0);
    0x0003181c b 0x317f4                                     |     goto label_6;
                                                             | label_13:
    0x00031820 mov sl, 1                                     |     sl = 1;
    0x00031824 b 0x3174c                                     |     goto label_7;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedcrypto.so.2.2.1 @ 0x31bf8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.mbedtls_xtea_self_test ()                        | void mbedtls_xtea_self_test (int32_t arg1) {
                                                                 |     void * s1;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_1ch;
                                                                 |     r0 = arg1;
    0x00031bf8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x00031bfc ldr sb, [pc, 0xfc]                                |     sb = *(0x31cfc);
    0x00031c00 sub sp, sp, 0x1c                                  |     
    0x00031c04 add r7, sp, 8                                     |     r7 += var_8h;
    0x00031c08 mov r8, r0                                        |     r8 = r0;
    0x00031c0c mov r0, r7                                        |     r0 = r7;
    0x00031c10 bl 0x8b68                                         |     fcn_00008b68 ();
    0x00031c14 ldr fp, [pc, 0xe8]                                |     fp = *(0x31d00);
    0x00031c18 add sb, pc, sb                                    |     sb = pc + sb;
    0x00031c1c add fp, pc, fp                                    |     
    0x00031c20 add sl, sb, 0x30                                  |     sl = sb + 0x30;
    0x00031c24 mov r4, 0                                         |     r4 = 0;
    0x00031c28 mov r5, sp                                        |     r5 = sp;
                                                                 |     do {
    0x00031c2c cmp r8, 0                                         |         
    0x00031c30 lsl r6, r4, 3                                     |         r6 = r4 << 3;
                                                                 |         if (r8 != 0) {
    0x00031c34 bne 0x31cb4                                       |             goto label_3;
                                                                 |         }
                                                                 | label_0:
    0x00031c38 add r3, sb, r6                                    |         r3 = sb + r6;
    0x00031c3c ldm r3, {r0, r1}                                  |         r0 = *(r3);
                                                                 |         r1 = *((r3 + 4));
    0x00031c40 stm r5, {r0, r1}                                  |         *(r5) = r0;
                                                                 |         *((r5 + 4)) = r1;
    0x00031c44 add r1, sl, r4, lsl 4                             |         r1 = sl + (r4 << 4);
    0x00031c48 mov r0, r7                                        |         r0 = r7;
    0x00031c4c bl 0x8ae4                                         |         fcn_00008ae4 ();
    0x00031c50 mov r3, r5                                        |         r3 = r5;
    0x00031c54 mov r2, r5                                        |         r2 = r5;
    0x00031c58 mov r1, 1                                         |         r1 = 1;
    0x00031c5c mov r0, r7                                        |         r0 = r7;
    0x00031c60 bl 0x8d30                                         |         fcn_00008d30 ();
    0x00031c64 add r1, sb, 0x90                                  |         r1 = sb + 0x90;
    0x00031c68 add r1, r1, r6                                    |         r1 += r6;
    0x00031c6c mov r2, 8                                         |         r2 = 8;
    0x00031c70 mov r0, r5                                        |         r0 = r5;
    0x00031c74 bl 0x8b08                                         |         memcmp (r0, r1, r2);
    0x00031c78 add r4, r4, 1                                     |         r4++;
    0x00031c7c subs r6, r0, 0                                    |         r6 -= s1;
                                                                 |         if (r6 != s1) {
    0x00031c80 bne 0x31ce0                                       |             goto label_4;
                                                                 |         }
    0x00031c84 cmp r8, 0                                         |         
                                                                 |         if (r8 != 0) {
    0x00031c88 bne 0x31cc4                                       |             goto label_5;
                                                                 |         }
                                                                 | label_1:
    0x00031c8c cmp r4, 6                                         |         
    0x00031c90 bne 0x31c2c                                       |         
                                                                 |     } while (r4 != 6);
    0x00031c94 cmp r8, 0                                         |     
                                                                 |     if (r8 != 0) {
    0x00031c98 moveq r6, r8                                      |         r6 = r8;
                                                                 |     }
    0x00031c9c bne 0x31cd4                                       |     
                                                                 |     while (1) {
                                                                 | label_2:
    0x00031ca0 mov r0, r7                                        |         r0 = r7;
    0x00031ca4 bl 0x8fdc                                         |         fcn_00008fdc ();
    0x00031ca8 mov r0, r6                                        |         r0 = r6;
    0x00031cac add sp, sp, 0x1c                                  |         
    0x00031cb0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_3:
    0x00031cb4 add r1, r4, 1                                     |         r1 = r4 + 1;
    0x00031cb8 mov r0, fp                                        |         r0 = fp;
    0x00031cbc bl 0x8298                                         |         printf (r0, r1)
    0x00031cc0 b 0x31c38                                         |         goto label_0;
                                                                 | label_5:
    0x00031cc4 ldr r0, [pc, 0x3c]                                |         r0 = *(0x31d04);
    0x00031cc8 add r0, pc, r0                                    |         r0 = pc + r0;
    0x00031ccc bl 0x858c                                         |         puts (r0);
    0x00031cd0 b 0x31c8c                                         |         goto label_1;
    0x00031cd4 mov r0, 0xa                                       |         r0 = 0xa;
    0x00031cd8 bl 0x81d8                                         |         putchar (r0);
    0x00031cdc b 0x31ca0                                         |         
                                                                 |     }
                                                                 | label_4:
    0x00031ce0 cmp r8, 0                                         |     
                                                                 |     if (r8 == 0) {
    0x00031ce4 moveq r6, 1                                       |         r6 = 1;
                                                                 |         goto label_6;
                                                                 |     }
                                                                 |     if (r8 == 0) {
                                                                 | label_6:
    0x00031ce8 beq 0x31ca0                                       |         goto label_2;
                                                                 |     }
    0x00031cec ldr r0, [pc, 0x18]                                |     r0 = "_";
    0x00031cf0 mov r6, 1                                         |     r6 = 1;
    0x00031cf4 add r0, pc, r0                                    |     r0 = pc + r0;
    0x00031cf8 bl 0x858c                                         |     puts (r0);
    0x00031cfc b 0x31ca0                                         |     goto label_2;
                                                                 | }

[*] Function printf used 48 times libmbedcrypto.so.2.2.1