[*] Binary protection state of libcurl.so

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


[*] Function strcpy tear down of libcurl.so

    ; 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/libcurl.so @ 0x195bc */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.Curl_follow ()                               | void Curl_follow (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_17h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_2ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000195bc push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000195c0 ldr r8, [pc, 0x4dc]                           |     r8 = *(0x19aa0);
    0x000195c4 cmp r2, 3                                     |     
    0x000195c8 add r8, pc, r8                                |     r8 = pc + r8;
    0x000195cc sub sp, sp, 0x2c                              |     
    0x000195d0 mov r4, r0                                    |     r4 = r0;
    0x000195d4 mov r5, r1                                    |     r5 = r1;
    0x000195d8 mov fp, r2                                    |     
                                                             |     if (r2 != 3) {
    0x000195dc bne 0x19678                                   |         goto label_8;
                                                             |     }
    0x000195e0 ldr r2, [r0, 0x164]                           |     r2 = *((r0 + 0x164));
    0x000195e4 ldr r3, [r0, 0x160]                           |     r3 = *((r0 + 0x160));
    0x000195e8 cmn r2, 1                                     |     
    0x000195ec mov r7, 1                                     |     r7 = 1;
                                                             |     if (r2 != 1) {
    0x000195f0 beq 0x195fc                                   |         
    0x000195f4 cmp r2, r3                                    |         
                                                             |         if (r2 <= r3) {
    0x000195f8 ble 0x19784                                   |             goto label_9;
                                                             |         }
                                                             |     }
    0x000195fc add r2, r4, 0x4000                            |     r2 = r4 + 0x4000;
    0x00019600 strb r7, [r2, 0x7e0]                          |     *((r2 + 0x7e0)) = r7;
    0x00019604 ldrb r7, [r4, 0x4cf]                          |     r7 = *((r4 + 0x4cf));
    0x00019608 add r3, r3, 1                                 |     r3++;
    0x0001960c cmp r7, 0                                     |     
    0x00019610 str r3, [r4, 0x160]                           |     *((r4 + 0x160)) = r3;
                                                             |     if (r7 == 0) {
    0x00019614 beq 0x1967c                                   |         goto label_0;
                                                             |     }
    0x00019618 ldrb r3, [r4, 0x684]                          |     r3 = *((r4 + 0x684));
    0x0001961c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00019620 beq 0x19644                                   |         
    0x00019624 ldr r3, [pc, 0x47c]                           |         
    0x00019628 ldr r0, [r4, 0x680]                           |         r0 = *((r4 + 0x680));
    0x0001962c ldr r3, [r8, r3]                              |         r3 = *((r8 + r3));
    0x00019630 ldr r3, [r3]                                  |         r3 = $d;
    0x00019634 blx r3                                        |         uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
    0x00019638 mov r3, 0                                     |         r3 = 0;
    0x0001963c str r3, [r4, 0x680]                           |         *((r4 + 0x680)) = r3;
    0x00019640 strb r3, [r4, 0x684]                          |         *((r4 + 0x684)) = r3;
                                                             |     }
    0x00019644 ldr r3, [pc, 0x460]                           |     
    0x00019648 ldr r0, [r4, 0x678]                           |     r0 = *((r4 + 0x678));
    0x0001964c ldr r3, [r8, r3]                              |     r3 = *((r8 + r3));
    0x00019650 ldr r3, [r3]                                  |     r3 = *(0x19aa8);
    0x00019654 blx r3                                        |     r0 = uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
    0x00019658 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001965c movne r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00019660 str r0, [r4, 0x680]                           |     *((r4 + 0x680)) = r0;
                                                             |     if (r0 == 0) {
    0x00019664 strbne r3, [r4, 0x684]                        |         *((r4 + 0x684)) = r3;
                                                             |     }
    0x00019668 bne 0x19678                                   |     
                                                             |     while (sl == r0) {
                                                             | label_2:
    0x0001966c mov r0, 0x1b                                  |         r0 = 0x1b;
                                                             | label_4:
    0x00019670 add sp, sp, 0x2c                              |         
    0x00019674 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_8:
    0x00019678 mov r7, 0                                     |         r7 = 0;
                                                             | label_0:
    0x0001967c ldr r1, [pc, 0x42c]                           |         r1 = *(0x19aac);
    0x00019680 add r3, sp, 0x17                              |         r3 += var_17h;
    0x00019684 add r2, sp, 0x18                              |         r2 += var_18h;
    0x00019688 add r1, pc, r1                                |         r1 = pc + r1;
    0x0001968c mov r0, r5                                    |         r0 = r5;
    0x00019690 bl 0x5658                                     |         r0 = sscanf (r0, r1, r2);
    0x00019694 cmp r0, 2                                     |         
                                                             |         if (r0 == 2) {
    0x00019698 beq 0x19934                                   |             goto label_10;
                                                             |         }
    0x0001969c ldr r3, [pc, 0x408]                           |         
    0x000196a0 ldr r0, [r4, 0x678]                           |         r0 = *((r4 + 0x678));
    0x000196a4 ldr r3, [r8, r3]                              |         r3 = *((r8 + r3));
    0x000196a8 ldr r3, [r3]                                  |         r3 = *(0x19aa8);
    0x000196ac blx r3                                        |         r0 = uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
    0x000196b0 subs sl, r0, 0                                |         sl = r0 - 0;
    0x000196b4 beq 0x1966c                                   |         
                                                             |     }
    0x000196b8 ldr r1, [pc, 0x3f4]                           |     r1 = *(0x19ab0);
    0x000196bc add r1, pc, r1                                |     r1 = pc + r1;
    0x000196c0 bl 0x5a18                                     |     strstr (r0, r1);
    0x000196c4 ldrb r1, [r5]                                 |     r1 = *(r5);
    0x000196c8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000196cc addne r6, r0, 2                               |         r6 = r0 + 2;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x000196d0 moveq r6, sl                                  |         r6 = sl;
                                                             |     }
    0x000196d4 cmp r1, 0x2f                                  |     
                                                             |     if (r1 == 0x2f) {
    0x000196d8 beq 0x19834                                   |         goto label_11;
                                                             |     }
    0x000196dc mov r1, 0x3f                                  |     r1 = 0x3f;
    0x000196e0 mov r0, r6                                    |     r0 = r6;
    0x000196e4 bl 0x5b38                                     |     r0 = strchr (r0, r1);
    0x000196e8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000196ec movne r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x000196f0 strbne r3, [r0]                               |         *(r0) = r3;
                                                             |     }
    0x000196f4 ldrb r3, [r5]                                 |     r3 = *(r5);
    0x000196f8 cmp r3, 0x3f                                  |     
                                                             |     if (r3 != 0x3f) {
    0x000196fc beq 0x19718                                   |         
    0x00019700 mov r1, 0x2f                                  |         r1 = 0x2f;
    0x00019704 mov r0, r6                                    |         r0 = r6;
    0x00019708 bl 0x5160                                     |         r0 = strrchr (r0, r1);
    0x0001970c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00019710 movne r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x00019714 strbne r3, [r0]                               |             *(r0) = r3;
                                                             |             goto label_12;
                                                             |         }
                                                             |     }
                                                             | label_12:
    0x00019718 mov r0, r6                                    |     r0 = r6;
    0x0001971c mov r1, 0x2f                                  |     r1 = 0x2f;
    0x00019720 bl 0x5b38                                     |     strchr (r0, r1);
    0x00019724 ldrb r3, [r5]                                 |     r3 = *(r5);
    0x00019728 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 == r0) {
    0x0001972c addne r6, r6, 1                               |         r6++;
                                                             |     }
    0x00019730 cmp r3, 0x2e                                  |     
                                                             |     if (r3 == 0x2e) {
    0x00019734 movne sb, 0                                   |         sb = 0;
                                                             |     }
                                                             |     if (r3 != 0x2e) {
    0x00019738 bne 0x19770                                   |         goto label_13;
                                                             |     }
    0x0001973c ldrb r3, [r5, 1]                              |     r3 = *((r5 + 1));
    0x00019740 mov sb, 0                                     |     sb = 0;
    0x00019744 cmp r3, 0x2f                                  |     
    0x00019748 addeq r5, r5, 2                               |     r5 += 2;
                                                             |     while (1) {
    0x0001974c ldrb r3, [r5]                                 |         r3 = *(r5);
    0x00019750 cmp r3, 0x2e                                  |         
                                                             |         if (r3 == 0x2e) {
    0x00019754 bne 0x19770                                   |             
    0x00019758 ldrb r3, [r5, 1]                              |             r3 = *((r5 + 1));
    0x0001975c cmp r3, 0x2e                                  |             
                                                             |             if (r3 != 0x2e) {
    0x00019760 bne 0x19770                                   |                 goto label_13;
                                                             |             }
    0x00019764 ldrb r3, [r5, 2]                              |             r3 = *((r5 + 2));
    0x00019768 cmp r3, 0x2f                                  |             
                                                             |             if (r3 == 0x2f) {
    0x0001976c beq 0x1978c                                   |                 goto label_14;
                                                             |             }
                                                             |         }
                                                             | label_13:
    0x00019770 cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x00019774 movne r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r6 != 0) {
    0x00019778 bne 0x197b8                                   |             goto label_15;
                                                             |         }
                                                             | label_1:
    0x0001977c mov r0, 0                                     |         r0 = 0;
    0x00019780 b 0x197c8                                     |         goto label_3;
                                                             | label_9:
    0x00019784 mov fp, r7                                    |         
    0x00019788 b 0x1967c                                     |         goto label_0;
                                                             | label_14:
    0x0001978c add sb, sb, 1                                 |         sb++;
    0x00019790 add r5, r5, 3                                 |         r5 += 3;
    0x00019794 b 0x1974c                                     |         
                                                             |     }
                                                             |     do {
    0x00019798 mov r1, 0x2f                                  |         r1 = 0x2f;
    0x0001979c mov r0, r6                                    |         r0 = r6;
    0x000197a0 str r3, [sp, 4]                               |         var_4h = r3;
    0x000197a4 bl 0x5160                                     |         r0 = strrchr (r0, r1);
    0x000197a8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000197ac beq 0x197c4                                   |             goto label_16;
                                                             |         }
    0x000197b0 ldr r3, [sp, 4]                               |         r3 = var_4h;
    0x000197b4 strb r3, [r0]                                 |         *(r0) = r3;
                                                             | label_15:
    0x000197b8 subs sb, sb, 1                                |         sb--;
    0x000197bc bhs 0x19798                                   |         
                                                             |     } while (sb >= sb);
    0x000197c0 b 0x1977c                                     |     goto label_1;
                                                             | label_16:
    0x000197c4 strb r0, [r6]                                 |     *(r6) = r0;
                                                             |     do {
                                                             | label_3:
    0x000197c8 eor r3, r0, 1                                 |         r3 = r0 ^ 1;
    0x000197cc mov r1, r3                                    |         r1 = r3;
    0x000197d0 mov r0, r5                                    |         r0 = r5;
    0x000197d4 str r3, [sp, 4]                               |         var_4h = r3;
    0x000197d8 bl 0x17d0c                                    |         r0 = strlen_url ();
    0x000197dc mov sb, r0                                    |         sb = r0;
    0x000197e0 mov r0, sl                                    |         r0 = sl;
    0x000197e4 bl 0x5250                                     |         strlen (r0);
    0x000197e8 ldr r2, [pc, 0x2c8]                           |         
    0x000197ec mov r3, r0                                    |         r3 = r0;
    0x000197f0 str r3, [sp, 0xc]                             |         var_ch = r3;
    0x000197f4 ldr r2, [r8, r2]                              |         r2 = *((r8 + r2));
    0x000197f8 add r0, sb, r0                                |         r0 = sb + r0;
    0x000197fc ldr r2, [r2]                                  |         r2 = *(0x19ab4);
    0x00019800 add r0, r0, 2                                 |         r0 += 2;
    0x00019804 blx r2                                        |         uint32_t (*r2)(uint32_t, uint32_t, uint32_t) (r0, r2, r3);
    0x00019808 ldr r2, [pc, 0x298]                           |         r2 = $d;
    0x0001980c ldr r3, [r8, r2]                              |         r3 = *((r8 + r2));
    0x00019810 str r3, [sp, 8]                               |         var_8h = r3;
    0x00019814 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00019818 subs sb, r0, 0                                |         sb = r0 - 0;
                                                             |         if (sb != r0) {
    0x0001981c bne 0x19898                                   |             goto label_17;
                                                             |         }
    0x00019820 ldr r3, [sp, 8]                               |         r3 = var_8h;
    0x00019824 mov r0, sl                                    |         r0 = sl;
    0x00019828 ldr r3, [r3]                                  |         r3 = *(r3);
    0x0001982c blx r3                                        |         uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
    0x00019830 b 0x1966c                                     |         goto label_2;
                                                             | label_11:
    0x00019834 ldrb r3, [r5, 1]                              |         r3 = *((r5 + 1));
    0x00019838 cmp r3, 0x2f                                  |         
                                                             |         if (r3 != 0x2f) {
    0x0001983c moveq r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r3 != 0x2f) {
    0x00019840 strbeq r3, [r6]                               |             *(r6) = r3;
                                                             |         }
                                                             |         if (r3 != 0x2f) {
    0x00019844 addeq r5, r5, 2                               |             r5 += 2;
                                                             |         }
                                                             |         if (r3 != 0x2f) {
    0x00019848 moveq r0, 1                                   |             r0 = 1;
                                                             |         }
    0x0001984c beq 0x197c8                                   |         
                                                             |     } while (r3 == 0x2f);
    0x00019850 mov r0, r6                                    |     r0 = r6;
    0x00019854 bl 0x5b38                                     |     strchr (r0, r1);
    0x00019858 mov r1, 0x3f                                  |     r1 = 0x3f;
    0x0001985c mov sb, r0                                    |     sb = r0;
    0x00019860 mov r0, r6                                    |     r0 = r6;
    0x00019864 bl 0x5b38                                     |     strchr (r0, r1);
    0x00019868 cmp sb, 0                                     |     
                                                             |     if (sb != 0) {
    0x0001986c beq 0x19888                                   |         
    0x00019870 cmp r0, 0                                     |         
    0x00019874 cmpne sb, r0                                  |         __asm ("cmpne sb, r0");
                                                             |         if (r0 > 0) {
    0x00019878 movls r0, sb                                  |             r0 = sb;
                                                             |         }
    0x0001987c mov r3, 0                                     |         r3 = 0;
    0x00019880 strb r3, [r0]                                 |         *(r0) = r3;
    0x00019884 b 0x1977c                                     |         goto label_1;
                                                             |     }
    0x00019888 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001988c strbne sb, [r0]                               |         *(r0) = sb;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00019890 movne r0, sb                                  |         r0 = sb;
                                                             |     }
    0x00019894 b 0x197c8                                     |     goto label_3;
                                                             | label_17:
    0x00019898 mov r2, r3                                    |     r2 = r3;
    0x0001989c mov r1, sl                                    |     r1 = sl;
    0x000198a0 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x000198a4 bl 0x4f5c                                     |     memcpy (r0, r1, r2);
    0x000198a8 ldrb r2, [r5]                                 |     r2 = *(r5);
    0x000198ac ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x000198b0 cmp r2, 0x2f                                  |     
                                                             |     if (r2 != 0x2f) {
    0x000198b4 beq 0x198dc                                   |         
    0x000198b8 cmp r6, 0                                     |         
                                                             |         if (r6 != 0) {
    0x000198bc beq 0x198cc                                   |             
    0x000198c0 ldrb r1, [r6]                                 |             r1 = *(r6);
    0x000198c4 cmp r1, 0                                     |             
                                                             |             if (r1 == 0) {
    0x000198c8 beq 0x198dc                                   |                 goto label_18;
                                                             |             }
                                                             |         }
    0x000198cc cmp r2, 0x3f                                  |         
                                                             |         if (r2 == 0x3f) {
    0x000198d0 movne r2, 0x2f                                |             r2 = 0x2f;
                                                             |         }
                                                             |         if (r2 == 0x3f) {
    0x000198d4 strbne r2, [sb, r3]                           |             *((sb + r3)) = r2;
                                                             |         }
                                                             |         if (r2 != 0x3f) {
    0x000198d8 addne r3, r3, 1                               |             r3++;
                                                             |             goto label_18;
                                                             |         }
                                                             |     }
                                                             | label_18:
    0x000198dc add r0, sb, r3                                |     r0 = sb + r3;
    0x000198e0 ldr r2, [sp, 4]                               |     r2 = var_4h;
    0x000198e4 mov r1, r5                                    |     r1 = r5;
    0x000198e8 bl 0x17d88                                    |     strcpy_url ()
    0x000198ec ldr r3, [sp, 8]                               |     r3 = var_8h;
    0x000198f0 mov r0, sl                                    |     r0 = sl;
    0x000198f4 ldr r3, [r3]                                  |     r3 = *(r3);
    0x000198f8 blx r3                                        |     uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
    0x000198fc cmp fp, 1                                     |     
                                                             |     if (fp != 1) {
    0x00019900 bne 0x1997c                                   |         goto label_19;
                                                             |     }
                                                             | label_5:
    0x00019904 add r3, r4, 0x4000                            |     r3 = r4 + 0x4000;
    0x00019908 cmp r7, 0                                     |     
    0x0001990c str sb, [r3, 0xa8c]                           |     *((r3 + 0xa8c)) = sb;
                                                             |     if (r7 == 0) {
    0x00019910 moveq r0, r7                                  |         r0 = r7;
                                                             |         goto label_20;
                                                             |     }
                                                             |     if (r7 == 0) {
                                                             | label_20:
    0x00019914 beq 0x19670                                   |         goto label_4;
                                                             |     }
    0x00019918 ldr r1, [pc, 0x19c]                           |     r1 = *(0x19ab8);
    0x0001991c mov r0, r4                                    |     r0 = r4;
    0x00019920 ldr r2, [r4, 0x164]                           |     r2 = *((r4 + 0x164));
    0x00019924 add r1, pc, r1                                |     r1 = pc + r1;
    0x00019928 bl 0x10544                                    |     Curl_failf ();
    0x0001992c mov r0, 0x2f                                  |     r0 = 0x2f;
    0x00019930 b 0x19670                                     |     goto label_4;
                                                             | label_10:
    0x00019934 mov r1, 0                                     |     r1 = 0;
    0x00019938 mov r0, r5                                    |     r0 = r5;
    0x0001993c bl 0x17d0c                                    |     strlen_url ();
    0x00019940 ldr r3, [pc, 0x170]                           |     
    0x00019944 ldr r3, [r8, r3]                              |     r3 = *((r8 + r3));
    0x00019948 ldr r3, [r3]                                  |     r3 = *(0x19ab4);
    0x0001994c add r0, r0, 1                                 |     r0++;
    0x00019950 blx r3                                        |     r0 = uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
    0x00019954 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb == r0) {
    0x00019958 beq 0x1966c                                   |         goto label_2;
                                                             |     }
    0x0001995c mov r2, 0                                     |     r2 = 0;
    0x00019960 mov r1, r5                                    |     r1 = r5;
    0x00019964 bl 0x17d88                                    |     strcpy_url ()
    0x00019968 cmp fp, 1                                     |     
                                                             |     if (fp == 1) {
    0x0001996c addne r3, r4, 0x4000                          |         r3 = r4 + 0x4000;
                                                             |     }
                                                             |     if (fp == 1) {
    0x00019970 movne r2, 0                                   |         r2 = 0;
                                                             |     }
                                                             |     if (fp != 1) {
    0x00019974 strbne r2, [r3, 0x82c]                        |         *((r3 + 0x82c)) = r2;
                                                             |         goto label_21;
                                                             |     }
                                                             |     if (fp == 1) {
                                                             | label_21:
    0x00019978 beq 0x19904                                   |         goto label_5;
                                                             |     }
                                                             | label_19:
    0x0001997c ldrb r3, [r4, 0x67c]                          |     r3 = *((r4 + 0x67c));
    0x00019980 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00019984 beq 0x1999c                                   |         
    0x00019988 ldr r3, [pc, 0x118]                           |         
    0x0001998c ldr r0, [r4, 0x678]                           |         r0 = *((r4 + 0x678));
    0x00019990 ldr r3, [r8, r3]                              |         r3 = *((r8 + r3));
    0x00019994 ldr r3, [r3]                                  |         r3 = $d;
    0x00019998 blx r3                                        |         uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
                                                             |     }
    0x0001999c ldr r1, [pc, 0x11c]                           |     r1 = *(0x19abc);
    0x000199a0 mov r5, 1                                     |     r5 = 1;
    0x000199a4 mov r2, sb                                    |     r2 = sb;
    0x000199a8 str sb, [r4, 0x678]                           |     *((r4 + 0x678)) = sb;
    0x000199ac strb r5, [r4, 0x67c]                          |     *((r4 + 0x67c)) = r5;
    0x000199b0 add r1, pc, r1                                |     r1 = pc + r1;
    0x000199b4 mov r0, r4                                    |     r0 = r4;
    0x000199b8 bl 0x104cc                                    |     Curl_infof ();
    0x000199bc add r3, r4, 0x4000                            |     r3 = r4 + 0x4000;
    0x000199c0 ldr r3, [r3, 0xa60]                           |     r3 = *((r3 + 0xa60));
    0x000199c4 ldr r2, [pc, 0xf8]                            |     r2 = *(0x19ac0);
    0x000199c8 cmp r3, r2                                    |     
                                                             |     if (r3 == r2) {
    0x000199cc beq 0x19a38                                   |         goto label_22;
                                                             |     }
    0x000199d0 add r2, r2, r5                                |     r2 += r5;
    0x000199d4 cmp r3, r2                                    |     
                                                             |     if (r3 == r2) {
    0x000199d8 beq 0x19a54                                   |         goto label_23;
                                                             |     }
    0x000199dc sub r2, r2, 2                                 |     r2 -= 2;
    0x000199e0 cmp r3, r2                                    |     
                                                             |     if (r3 != r2) {
    0x000199e4 bne 0x19a1c                                   |         goto label_7;
                                                             |     }
    0x000199e8 ldr r3, [r4, 0x3d0]                           |     r3 = *((r4 + 0x3d0));
    0x000199ec sub r3, r3, 2                                 |     r3 -= 2;
    0x000199f0 cmp r3, 2                                     |     
                                                             |     if (r3 > 2) {
    0x000199f4 bhi 0x19a1c                                   |         goto label_7;
                                                             |     }
    0x000199f8 ldr r3, [r4, 0x168]                           |     r3 = *((r4 + 0x168));
    0x000199fc tst r3, 1                                     |     
                                                             |     if ((r3 & 1) != 0) {
                                                             | label_6:
    0x00019a00 bne 0x19a1c                                   |         goto label_7;
                                                             |     }
    0x00019a04 ldr r1, [pc, 0xbc]                            |     r1 = *(0x19ac4);
    0x00019a08 mov r0, r4                                    |     r0 = r4;
    0x00019a0c add r1, pc, r1                                |     r1 = pc + r1;
    0x00019a10 bl 0x104cc                                    |     Curl_infof ();
    0x00019a14 mov r3, 1                                     |     r3 = 1;
    0x00019a18 str r3, [r4, 0x3d0]                           |     *((r4 + 0x3d0)) = r3;
                                                             |     do {
                                                             | label_7:
    0x00019a1c mov r1, 0xa                                   |         r1 = 0xa;
    0x00019a20 mov r0, r4                                    |         r0 = r4;
    0x00019a24 bl 0x7f7c                                     |         Curl_pgrsTime ();
    0x00019a28 mov r0, r4                                    |         r0 = r4;
    0x00019a2c bl 0x7f50                                     |         Curl_pgrsResetTransferSizes ();
    0x00019a30 mov r0, 0                                     |         r0 = 0;
    0x00019a34 b 0x19670                                     |         goto label_4;
                                                             | label_22:
    0x00019a38 ldr r3, [r4, 0x3d0]                           |         r3 = *((r4 + 0x3d0));
    0x00019a3c sub r3, r3, 2                                 |         r3 -= 2;
    0x00019a40 cmp r3, 2                                     |         
    0x00019a44 bhi 0x19a1c                                   |         
                                                             |     } while (r3 > 2);
    0x00019a48 ldr r3, [r4, 0x168]                           |     r3 = *((r4 + 0x168));
    0x00019a4c tst r3, 2                                     |     
    0x00019a50 b 0x19a00                                     |     goto label_6;
                                                             | label_23:
    0x00019a54 ldr r3, [r4, 0x3d0]                           |     r3 = *((r4 + 0x3d0));
    0x00019a58 cmp r3, 1                                     |     
                                                             |     if (r3 == 1) {
    0x00019a5c beq 0x19a1c                                   |         goto label_7;
                                                             |     }
    0x00019a60 ldr r3, [r4, 0x168]                           |     r3 = *((r4 + 0x168));
    0x00019a64 tst r3, 4                                     |     
                                                             |     if ((r3 & 4) != 0) {
    0x00019a68 bne 0x19a1c                                   |         goto label_7;
                                                             |     }
    0x00019a6c ldrb r3, [r4, 0x4d0]                          |     r3 = *((r4 + 0x4d0));
    0x00019a70 str r5, [r4, 0x3d0]                           |     *((r4 + 0x3d0)) = r5;
    0x00019a74 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00019a78 beq 0x19a98                                   |         goto label_24;
                                                             |     }
    0x00019a7c ldr r2, [pc, 0x48]                            |     r2 = *(0x19ac8);
    0x00019a80 add r2, pc, r2                                |     r2 = pc + r2;
                                                             |     do {
    0x00019a84 ldr r1, [pc, 0x44]                            |         r1 = *(0x19acc);
    0x00019a88 mov r0, r4                                    |         r0 = r4;
    0x00019a8c add r1, pc, r1                                |         r1 = pc + r1;
    0x00019a90 bl 0x104cc                                    |         Curl_infof ();
    0x00019a94 b 0x19a1c                                     |         goto label_7;
                                                             | label_24:
    0x00019a98 ldr r2, [pc, 0x34]                            |         r2 = *(0x19ad0);
    0x00019a9c add r2, pc, r2                                |         r2 = pc + r2;
    0x00019aa0 b 0x19a84                                     |         
                                                             |     } while (1);
                                                             | }

[*] Function strcpy used 3 times libcurl.so