[*] Binary protection state of AJAJPost.dll

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


[*] Function strcpy tear down of AJAJPost.dll

    ; 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/root/AJAJPost.dll @ 0x12918 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.scgi_parse_input_SCGI_DESC_ ()       | void scgi_parse_input_SCGI_DESC_ (int32_t arg1) {
                                                     |     int32_t var_30h;
                                                     |     char * var_28h;
                                                     |     char * dest;
                                                     |     int32_t var_20h;
                                                     |     size_t nmeb;
                                                     |     size_t var_18h;
                                                     |     int32_t var_14h;
                                                     |     int32_t var_10h;
                                                     |     int32_t var_sp_28h;
                                                     |     int32_t var_sp_20h;
                                                     |     int32_t var_8h;
                                                     |     r0 = arg1;
                                                     |     /* scgi_parse_input(SCGI_DESC*) */
    0x00012918 push {r4, fp, lr}                     |     
    0x0001291c add fp, sp, 8                         |     
    0x00012920 sub sp, sp, 0x2c                      |     
    0x00012924 str r0, [fp, -0x30]                   |     var_30h = r0;
    0x00012928 ldr r3, [fp, -0x30]                   |     r3 = var_30h;
    0x0001292c ldr r3, [r3, 0x14]                    |     r3 = *((r3 + 0x14));
    0x00012930 ldr r2, [fp, -0x30]                   |     r2 = var_30h;
    0x00012934 ldr r2, [r2, 0x3c]                    |     r2 = *((r2 + 0x3c));
    0x00012938 add r3, r3, r2                        |     r3 += r2;
    0x0001293c str r3, [fp, -0x10]                   |     var_10h = r3;
    0x00012940 ldr r3, [fp, -0x30]                   |     r3 = var_30h;
    0x00012944 ldr r2, [r3, 0x3c]                    |     r2 = *((r3 + 0x3c));
    0x00012948 ldr r3, [fp, -0x30]                   |     r3 = var_30h;
    0x0001294c ldr r3, [r3, 0x1c]                    |     r3 = *((r3 + 0x1c));
    0x00012950 cmp r2, r3                            |     
                                                     |     if (r2 == r3) {
    0x00012954 beq 0x13040                           |         goto label_2;
                                                     |     }
    0x00012958 ldr r3, [fp, -0x30]                   |     r3 = var_30h;
    0x0001295c ldr r3, [r3, 0x3c]                    |     r3 = *((r3 + 0x3c));
    0x00012960 cmp r3, 0                             |     
                                                     |     if (r3 == 0) {
    0x00012964 bne 0x1299c                           |         
    0x00012968 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x0001296c ldr r3, [r3, 0x14]                    |         r3 = *((r3 + 0x14));
    0x00012970 ldrb r3, [r3]                         |         r3 = *(r3);
    0x00012974 cmp r3, 0x30                          |         
                                                     |         if (r3 != 0x30) {
    0x00012978 beq 0x12990                           |             
    0x0001297c ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012980 ldr r3, [r3, 0x14]                    |             r3 = *((r3 + 0x14));
    0x00012984 ldrb r3, [r3]                         |             r3 = *(r3);
    0x00012988 cmp r3, 0x3a                          |             
                                                     |             if (r3 != 0x3a) {
    0x0001298c bne 0x1299c                           |                 goto label_3;
                                                     |             }
                                                     |         }
    0x00012990 ldr r0, [fp, -0x30]                   |         r0 = var_30h;
    0x00012994 bl 0x11bb0                            |         scgi_kill_socket ();
    0x00012998 b 0x13054                             |         goto label_4;
                                                     |     }
                                                     | label_3:
    0x0001299c ldr r3, [fp, -0x30]                   |     r3 = var_30h;
    0x000129a0 ldr r3, [r3, 0x14]                    |     r3 = *((r3 + 0x14));
    0x000129a4 ldr r2, [fp, -0x30]                   |     r2 = var_30h;
    0x000129a8 ldr r2, [r2, 0x1c]                    |     r2 = *((r2 + 0x1c));
    0x000129ac add r3, r3, r2                        |     r3 += r2;
    0x000129b0 str r3, [fp, -0x14]                   |     var_14h = r3;
                                                     |     do {
                                                     | label_1:
    0x000129b4 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x000129b8 ldr r3, [r3, 0x4c]                    |         r3 = *((r3 + 0x4c));
    0x000129bc cmp r3, 3                             |         
                                                     |         if (r3 > 3) {
                                                     |             /* switch table (4 cases) at 0x129c8 */
    0x000129c0 ldrls pc, [pc, r3, lsl 2]             |             offset_0 = r3 << 2;
                                                     |             pc = *((pc + offset_0));
                                                     |         }
    0x000129c4 b 0x13048                             |         goto label_5;
                                                     | label_0:
    0x000129d8 ldr r2, [fp, -0x10]                   |         r2 = var_10h;
    0x000129dc ldr r3, [fp, -0x14]                   |         r3 = var_14h;
    0x000129e0 cmp r2, r3                            |         
                                                     |         if (r2 >= r3) {
    0x000129e4 bhs 0x13024                           |             goto label_6;
                                                     |         }
    0x000129e8 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x000129ec ldr r3, [r3, 0x3c]                    |         r3 = *((r3 + 0x3c));
    0x000129f0 add r2, r3, 1                         |         r2 = r3 + 1;
    0x000129f4 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x000129f8 str r2, [r3, 0x3c]                    |         *((r3 + 0x3c)) = r2;
    0x000129fc ldr r3, [fp, -0x10]                   |         r3 = var_10h;
    0x00012a00 ldrb r3, [r3]                         |         r3 = *(r3);
    0x00012a04 cmp r3, 0x3a                          |         
                                                     |         if (r3 != 0x3a) {
    0x00012a08 bne 0x12a90                           |             goto label_7;
                                                     |         }
    0x00012a0c ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012a10 mov r2, 1                             |         r2 = 1;
    0x00012a14 str r2, [r3, 0x4c]                    |         *((r3 + 0x4c)) = r2;
    0x00012a18 ldr r3, [fp, -0x10]                   |         r3 = var_10h;
    0x00012a1c mov r2, 0                             |         r2 = 0;
    0x00012a20 strb r2, [r3]                         |         *(r3) = r2;
    0x00012a24 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012a28 ldr r3, [r3, 0x14]                    |         r3 = *((r3 + 0x14));
    0x00012a2c mov r2, 0xa                           |         r2 = 0xa;
    0x00012a30 mov r1, 0                             |         r1 = 0;
    0x00012a34 mov r0, r3                            |         r0 = r3;
    0x00012a38 bl 0x10bdc                            |         r0 = strtoul (r0, r1, r2);
    0x00012a3c mov r4, r0                            |         r4 = r0;
    0x00012a40 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012a44 ldr r3, [r3, 0x14]                    |         r3 = *((r3 + 0x14));
    0x00012a48 mov r0, r3                            |         r0 = r3;
    0x00012a4c bl 0x10c0c                            |         r0 = strlen (r0);
    0x00012a50 mov r3, r0                            |         r3 = r0;
    0x00012a54 add r3, r4, r3                        |         r3 = r4 + r3;
    0x00012a58 add r3, r3, 2                         |         r3 += 2;
    0x00012a5c mov r2, r3                            |         r2 = r3;
    0x00012a60 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012a64 str r2, [r3, 0x44]                    |         *((r3 + 0x44)) = r2;
    0x00012a68 ldr r3, [fp, -0x10]                   |         r3 = var_10h;
    0x00012a6c mov r2, 0x3a                          |         r2 = 0x3a;
    0x00012a70 strb r2, [r3]                         |         *(r3) = r2;
    0x00012a74 ldr r3, [fp, -0x10]                   |         r3 = var_10h;
    0x00012a78 add r3, r3, 1                         |         r3++;
    0x00012a7c str r3, [fp, -0x10]                   |         var_10h = r3;
    0x00012a80 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012a84 ldr r2, [fp, -0x10]                   |         r2 = var_10h;
    0x00012a88 str r2, [r3, 0x40]                    |         *((r3 + 0x40)) = r2;
    0x00012a8c b 0x129b4                             |         
                                                     |     } while (1);
                                                     | label_7:
    0x00012a90 ldr r3, [fp, -0x10]                   |     r3 = var_10h;
    0x00012a94 ldrb r3, [r3]                         |     r3 = *(r3);
    0x00012a98 cmp r3, 0x2f                          |     
                                                     |     if (r3 >= 0x2f) {
    0x00012a9c bls 0x12ab0                           |         
    0x00012aa0 ldr r3, [fp, -0x10]                   |         r3 = var_10h;
    0x00012aa4 ldrb r3, [r3]                         |         r3 = *(r3);
    0x00012aa8 cmp r3, 0x39                          |         
                                                     |         if (r3 < 0x39) {
    0x00012aac bls 0x12abc                           |             goto label_8;
                                                     |         }
                                                     |     }
    0x00012ab0 ldr r0, [fp, -0x30]                   |     r0 = var_30h;
    0x00012ab4 bl 0x11bb0                            |     scgi_kill_socket ();
    0x00012ab8 b 0x13054                             |     goto label_4;
                                                     | label_8:
    0x00012abc ldr r3, [fp, -0x10]                   |     r3 = var_10h;
    0x00012ac0 add r3, r3, 1                         |     r3++;
    0x00012ac4 str r3, [fp, -0x10]                   |     var_10h = r3;
    0x00012ac8 b 0x129d8                             |     goto label_0;
                                                     |     do {
    0x00012acc ldr r2, [fp, -0x10]                   |         r2 = var_10h;
    0x00012ad0 ldr r3, [fp, -0x14]                   |         r3 = var_14h;
    0x00012ad4 cmp r2, r3                            |         
                                                     |         if (r2 >= r3) {
    0x00012ad8 bhs 0x1302c                           |             goto label_9;
                                                     |         }
    0x00012adc ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012ae0 ldr r3, [r3, 0x3c]                    |         r3 = *((r3 + 0x3c));
    0x00012ae4 add r2, r3, 1                         |         r2 = r3 + 1;
    0x00012ae8 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012aec str r2, [r3, 0x3c]                    |         *((r3 + 0x3c)) = r2;
    0x00012af0 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012af4 ldr r2, [r3, 0x3c]                    |         r2 = *((r3 + 0x3c));
    0x00012af8 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012afc ldr r3, [r3, 0x44]                    |         r3 = *((r3 + 0x44));
    0x00012b00 cmp r2, r3                            |         
                                                     |         if (r2 == r3) {
    0x00012b04 bne 0x12cd8                           |             
    0x00012b08 ldr r3, [fp, -0x10]                   |             r3 = var_10h;
    0x00012b0c ldrb r3, [r3]                         |             r3 = *(r3);
    0x00012b10 cmp r3, 0x2c                          |             
                                                     |             if (r3 == 0x2c) {
    0x00012b14 bne 0x12b2c                           |                 
    0x00012b18 ldr r3, [fp, -0x10]                   |                 r3 = var_10h;
    0x00012b1c sub r3, r3, 1                         |                 r3--;
    0x00012b20 ldrb r3, [r3]                         |                 r3 = *(r3);
    0x00012b24 cmp r3, 0                             |                 
                                                     |                 if (r3 == 0) {
    0x00012b28 beq 0x12b38                           |                     goto label_10;
                                                     |                 }
                                                     |             }
    0x00012b2c ldr r0, [fp, -0x30]                   |             r0 = var_30h;
    0x00012b30 bl 0x11bb0                            |             scgi_kill_socket ();
    0x00012b34 b 0x13054                             |             goto label_4;
                                                     | label_10:
    0x00012b38 ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012b3c ldr r3, [r3, 0xc]                     |             r3 = *((r3 + 0xc));
    0x00012b40 ldrb r3, [r3, 0x24]                   |             r3 = *((r3 + 0x24));
    0x00012b44 cmp r3, 0                             |             
                                                     |             if (r3 == 0) {
    0x00012b48 bne 0x12b58                           |                 
    0x00012b4c ldr r0, [fp, -0x30]                   |                 r0 = var_30h;
    0x00012b50 bl 0x11bb0                            |                 scgi_kill_socket ();
    0x00012b54 b 0x13054                             |                 goto label_4;
                                                     |             }
    0x00012b58 ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012b5c ldr r3, [r3, 0xc]                     |             r3 = *((r3 + 0xc));
    0x00012b60 ldr r3, [r3, 0x20]                    |             r3 = *((r3 + 0x20));
    0x00012b64 cmp r3, 0                             |             
                                                     |             if (r3 == 0) {
    0x00012b68 bne 0x12c70                           |                 
    0x00012b6c ldr r3, [fp, -0x30]                   |                 r3 = var_30h;
    0x00012b70 ldr r4, [r3, 0xc]                     |                 r4 = *((r3 + 0xc));
    0x00012b74 mov r1, 1                             |                 r1 = 1;
    0x00012b78 mov r0, 2                             |                 r0 = 2;
    0x00012b7c bl 0x10b64                            |                 r0 = calloc (r0, r1);
    0x00012b80 mov r3, r0                            |                 r3 = r0;
    0x00012b84 str r3, [r4, 0x1c]                    |                 *((r4 + 0x1c)) = r3;
    0x00012b88 ldr r3, [r4, 0x1c]                    |                 r3 = *((r4 + 0x1c));
    0x00012b8c cmp r3, 0                             |                 
                                                     |                 if (r3 != 0) {
    0x00012b90 moveq r3, 1                           |                     r3 = 1;
                                                     |                 }
                                                     |                 if (r3 == 0) {
    0x00012b94 movne r3, 0                           |                     r3 = 0;
                                                     |                 }
    0x00012b98 and r3, r3, 0xff                      |                 r3 &= 0xff;
    0x00012b9c cmp r3, 0                             |                 
                                                     |                 if (r3 != 0) {
    0x00012ba0 beq 0x12bb0                           |                     
    0x00012ba4 ldr r0, [pc, 0x4b0]                   |                     r0 = *(0x13058);
    0x00012ba8 bl 0x128dc                            |                     scgi_perror ();
    0x00012bac bl 0x10c78                            |                     abort ();
                                                     |                 }
    0x00012bb0 ldr r3, [fp, -0x30]                   |                 r3 = var_30h;
    0x00012bb4 ldr r3, [r3, 0xc]                     |                 r3 = *((r3 + 0xc));
    0x00012bb8 ldr r3, [r3, 0x1c]                    |                 r3 = *((r3 + 0x1c));
    0x00012bbc mov r2, 0                             |                 r2 = 0;
    0x00012bc0 strb r2, [r3]                         |                 *(r3) = r2;
    0x00012bc4 ldr r3, [pc, 0x494]                   |                 
    0x00012bc8 ldr r3, [r3]                          |                 r3 = "scgilib:_Out_of_RAM__Emergency_shutdown.";
    0x00012bcc cmp r3, 0                             |                 
                                                     |                 if (r3 == 0) {
    0x00012bd0 bne 0x12bf8                           |                     
    0x00012bd4 ldr r3, [fp, -0x30]                   |                     r3 = var_30h;
    0x00012bd8 ldr r3, [r3, 0xc]                     |                     r3 = *((r3 + 0xc));
    0x00012bdc ldr r2, [pc, 0x47c]                   |                     r2 = "scgilib:_Out_of_RAM__Emergency_shutdown.";
    0x00012be0 str r3, [r2]                          |                     *(r2) = r3;
    0x00012be4 ldr r3, [fp, -0x30]                   |                     r3 = var_30h;
    0x00012be8 ldr r3, [r3, 0xc]                     |                     r3 = *((r3 + 0xc));
    0x00012bec ldr r2, [pc, 0x470]                   |                     r2 = *(0x13060);
    0x00012bf0 str r3, [r2]                          |                     *(r2) = r3;
    0x00012bf4 b 0x12c0c                             |                     
                                                     |                 } else {
    0x00012bf8 ldr r3, [pc, 0x464]                   |                     
    0x00012bfc ldr r3, [r3]                          |                     r3 = *(0x13060);
    0x00012c00 ldr r2, [fp, -0x30]                   |                     r2 = var_30h;
    0x00012c04 ldr r2, [r2, 0xc]                     |                     r2 = *((r2 + 0xc));
    0x00012c08 str r2, [r3, 8]                       |                     *((r3 + 8)) = r2;
                                                     |                 }
    0x00012c0c ldr r3, [fp, -0x30]                   |                 r3 = var_30h;
    0x00012c10 ldr r3, [r3, 0xc]                     |                 r3 = *((r3 + 0xc));
    0x00012c14 mov r2, 0                             |                 r2 = 0;
    0x00012c18 str r2, [r3, 8]                       |                 *((r3 + 8)) = r2;
    0x00012c1c ldr r3, [fp, -0x30]                   |                 r3 = var_30h;
    0x00012c20 ldr r2, [r3, 0xc]                     |                 r2 = *((r3 + 0xc));
    0x00012c24 ldr r3, [pc, 0x434]                   |                 
    0x00012c28 ldr r3, [r3]                          |                 r3 = "scgilib:_Out_of_RAM__Emergency_shutdown.";
    0x00012c2c cmp r2, r3                            |                 
                                                     |                 if (r2 == r3) {
    0x00012c30 bne 0x12c48                           |                     
    0x00012c34 ldr r3, [fp, -0x30]                   |                     r3 = var_30h;
    0x00012c38 ldr r3, [r3, 0xc]                     |                     r3 = *((r3 + 0xc));
    0x00012c3c mov r2, 0                             |                     r2 = 0;
    0x00012c40 str r2, [r3, 0xc]                     |                     *((r3 + 0xc)) = r2;
    0x00012c44 b 0x12c5c                             |                     
                                                     |                 } else {
    0x00012c48 ldr r3, [fp, -0x30]                   |                     r3 = var_30h;
    0x00012c4c ldr r3, [r3, 0xc]                     |                     r3 = *((r3 + 0xc));
    0x00012c50 ldr r2, [pc, 0x40c]                   |                     
    0x00012c54 ldr r2, [r2]                          |                     r2 = *(0x13060);
    0x00012c58 str r2, [r3, 0xc]                     |                     *((r3 + 0xc)) = r2;
                                                     |                 }
    0x00012c5c ldr r3, [fp, -0x30]                   |                 r3 = var_30h;
    0x00012c60 ldr r3, [r3, 0xc]                     |                 r3 = *((r3 + 0xc));
    0x00012c64 ldr r2, [pc, 0x3f8]                   |                 r2 = *(0x13060);
    0x00012c68 str r3, [r2]                          |                 *(r2) = r3;
    0x00012c6c b 0x13054                             |                 goto label_4;
                                                     |             }
    0x00012c70 ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012c74 ldr r3, [r3, 0xc]                     |             r3 = *((r3 + 0xc));
    0x00012c78 ldr r3, [r3, 0x14]                    |             r3 = *((r3 + 0x14));
    0x00012c7c ldr r3, [r3, 0xc]                     |             r3 = *((r3 + 0xc));
    0x00012c80 mov r2, 0xa                           |             r2 = 0xa;
    0x00012c84 mov r1, 0                             |             r1 = 0;
    0x00012c88 mov r0, r3                            |             r0 = r3;
    0x00012c8c bl 0x10bdc                            |             r0 = strtoul (r0, r1, r2);
    0x00012c90 mov r3, r0                            |             r3 = r0;
    0x00012c94 str r3, [fp, -0x20]                   |             var_20h = r3;
    0x00012c98 ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012c9c ldr r2, [r3, 0x44]                    |             r2 = *((r3 + 0x44));
    0x00012ca0 ldr r3, [fp, -0x20]                   |             r3 = var_20h;
    0x00012ca4 add r2, r2, r3                        |             r2 += r3;
    0x00012ca8 ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012cac str r2, [r3, 0x48]                    |             *((r3 + 0x48)) = r2;
    0x00012cb0 ldr r3, [fp, -0x10]                   |             r3 = var_10h;
    0x00012cb4 add r3, r3, 1                         |             r3++;
    0x00012cb8 str r3, [fp, -0x10]                   |             var_10h = r3;
    0x00012cbc ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012cc0 ldr r2, [fp, -0x10]                   |             r2 = var_10h;
    0x00012cc4 str r2, [r3, 0x40]                    |             *((r3 + 0x40)) = r2;
    0x00012cc8 ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012ccc mov r2, 3                             |             r2 = 3;
    0x00012cd0 str r2, [r3, 0x4c]                    |             *((r3 + 0x4c)) = r2;
    0x00012cd4 b 0x129b4                             |             goto label_1;
                                                     |         }
    0x00012cd8 ldr r3, [fp, -0x10]                   |         r3 = var_10h;
    0x00012cdc ldrb r3, [r3]                         |         r3 = *(r3);
    0x00012ce0 cmp r3, 0                             |         
                                                     |         if (r3 == 0) {
    0x00012ce4 bne 0x12d24                           |             
    0x00012ce8 ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012cec ldr r3, [r3, 0x40]                    |             r3 = *((r3 + 0x40));
    0x00012cf0 ldr r2, [fp, -0x10]                   |             r2 = var_10h;
    0x00012cf4 cmp r2, r3                            |             
                                                     |             if (r2 == r3) {
    0x00012cf8 bne 0x12d08                           |                 
    0x00012cfc ldr r0, [fp, -0x30]                   |                 r0 = var_30h;
    0x00012d00 bl 0x11bb0                            |                 scgi_kill_socket ();
    0x00012d04 b 0x13054                             |                 goto label_4;
                                                     |             }
    0x00012d08 ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012d0c mov r2, 2                             |             r2 = 2;
    0x00012d10 str r2, [r3, 0x4c]                    |             *((r3 + 0x4c)) = r2;
    0x00012d14 ldr r3, [fp, -0x10]                   |             r3 = var_10h;
    0x00012d18 add r3, r3, 1                         |             r3++;
    0x00012d1c str r3, [fp, -0x10]                   |             var_10h = r3;
    0x00012d20 b 0x129b4                             |             goto label_1;
                                                     |         }
    0x00012d24 ldr r3, [fp, -0x10]                   |         r3 = var_10h;
    0x00012d28 add r3, r3, 1                         |         r3++;
    0x00012d2c str r3, [fp, -0x10]                   |         var_10h = r3;
    0x00012d30 b 0x12acc                             |         
                                                     |     } while (1);
                                                     |     do {
    0x00012d34 ldr r2, [fp, -0x10]                   |         r2 = var_10h;
    0x00012d38 ldr r3, [fp, -0x14]                   |         r3 = var_14h;
    0x00012d3c cmp r2, r3                            |         
                                                     |         if (r2 >= r3) {
    0x00012d40 bhs 0x13034                           |             goto label_11;
                                                     |         }
    0x00012d44 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012d48 ldr r3, [r3, 0x3c]                    |         r3 = *((r3 + 0x3c));
    0x00012d4c add r2, r3, 1                         |         r2 = r3 + 1;
    0x00012d50 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012d54 str r2, [r3, 0x3c]                    |         *((r3 + 0x3c)) = r2;
    0x00012d58 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012d5c ldr r2, [r3, 0x3c]                    |         r2 = *((r3 + 0x3c));
    0x00012d60 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012d64 ldr r3, [r3, 0x44]                    |         r3 = *((r3 + 0x44));
    0x00012d68 cmp r2, r3                            |         
                                                     |         if (r2 == r3) {
    0x00012d6c bne 0x12d7c                           |             
    0x00012d70 ldr r0, [fp, -0x30]                   |             r0 = var_30h;
    0x00012d74 bl 0x11bb0                            |             scgi_kill_socket ();
    0x00012d78 b 0x13054                             |             goto label_4;
                                                     |         }
    0x00012d7c ldr r3, [fp, -0x10]                   |         r3 = var_10h;
    0x00012d80 ldrb r3, [r3]                         |         r3 = *(r3);
    0x00012d84 cmp r3, 0                             |         
                                                     |         if (r3 == 0) {
    0x00012d88 bne 0x12ed8                           |             
    0x00012d8c ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012d90 ldr r3, [r3, 0x40]                    |             r3 = *((r3 + 0x40));
    0x00012d94 mov r0, r3                            |             r0 = r3;
    0x00012d98 bl 0x10c0c                            |             r0 = strlen (r0);
    0x00012d9c mov r3, r0                            |             r3 = r0;
    0x00012da0 str r3, [fp, -0x1c]                   |             nmeb = r3;
    0x00012da4 ldr r3, [fp, -0x1c]                   |             r3 = nmeb;
    0x00012da8 add r3, r3, 1                         |             r3++;
    0x00012dac mov r1, 1                             |             r1 = 1;
    0x00012db0 mov r0, r3                            |             r0 = r3;
    0x00012db4 bl 0x10b64                            |             r0 = calloc (r0, r1);
    0x00012db8 mov r3, r0                            |             r3 = r0;
    0x00012dbc str r3, [fp, -0x24]                   |             var_30h = r3;
    0x00012dc0 ldr r3, [fp, -0x24]                   |             r3 = var_30h;
    0x00012dc4 cmp r3, 0                             |             
                                                     |             if (r3 != 0) {
    0x00012dc8 moveq r3, 1                           |                 r3 = 1;
                                                     |             }
                                                     |             if (r3 == 0) {
    0x00012dcc movne r3, 0                           |                 r3 = 0;
                                                     |             }
    0x00012dd0 and r3, r3, 0xff                      |             r3 &= 0xff;
    0x00012dd4 cmp r3, 0                             |             
                                                     |             if (r3 != 0) {
    0x00012dd8 beq 0x12de8                           |                 
    0x00012ddc ldr r0, [pc, 0x278]                   |                 r0 = *(0x13058);
    0x00012de0 bl 0x128dc                            |                 scgi_perror ();
    0x00012de4 bl 0x10c78                            |                 abort ();
                                                     |             }
    0x00012de8 ldr r2, [fp, -0x24]                   |             r2 = var_30h;
    0x00012dec ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012df0 ldr r3, [r3, 0x40]                    |             r3 = *((r3 + 0x40));
    0x00012df4 mov r1, r3                            |             r1 = r3;
    0x00012df8 mov r0, r2                            |             r0 = r2;
    0x00012dfc bl 0x10d08                            |             strcpy (r0, r1)
    0x00012e00 ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012e04 ldr r2, [r3, 0x40]                    |             r2 = *((r3 + 0x40));
    0x00012e08 ldr r3, [fp, -0x1c]                   |             r3 = nmeb;
    0x00012e0c add r3, r3, 1                         |             r3++;
    0x00012e10 add r3, r2, r3                        |             r3 = r2 + r3;
    0x00012e14 mov r0, r3                            |             r0 = r3;
    0x00012e18 bl 0x10c0c                            |             r0 = strlen (r0);
    0x00012e1c mov r3, r0                            |             r3 = r0;
    0x00012e20 add r3, r3, 1                         |             r3++;
    0x00012e24 mov r1, 1                             |             r1 = 1;
    0x00012e28 mov r0, r3                            |             r0 = r3;
    0x00012e2c bl 0x10b64                            |             r0 = calloc (r0, r1);
    0x00012e30 mov r3, r0                            |             r3 = r0;
    0x00012e34 str r3, [fp, -0x28]                   |             var_28h = r3;
    0x00012e38 ldr r3, [fp, -0x28]                   |             r3 = var_28h;
    0x00012e3c cmp r3, 0                             |             
                                                     |             if (r3 != 0) {
    0x00012e40 moveq r3, 1                           |                 r3 = 1;
                                                     |             }
                                                     |             if (r3 == 0) {
    0x00012e44 movne r3, 0                           |                 r3 = 0;
                                                     |             }
    0x00012e48 and r3, r3, 0xff                      |             r3 &= 0xff;
    0x00012e4c cmp r3, 0                             |             
                                                     |             if (r3 != 0) {
    0x00012e50 beq 0x12e60                           |                 
    0x00012e54 ldr r0, [pc, 0x200]                   |                 r0 = *(0x13058);
    0x00012e58 bl 0x128dc                            |                 scgi_perror ();
    0x00012e5c bl 0x10c78                            |                 abort ();
                                                     |             }
    0x00012e60 ldr r0, [fp, -0x28]                   |             r0 = var_28h;
    0x00012e64 ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012e68 ldr r2, [r3, 0x40]                    |             r2 = *((r3 + 0x40));
    0x00012e6c ldr r3, [fp, -0x1c]                   |             r3 = nmeb;
    0x00012e70 add r3, r3, 1                         |             r3++;
    0x00012e74 add r3, r2, r3                        |             r3 = r2 + r3;
    0x00012e78 mov r1, r3                            |             r1 = r3;
    0x00012e7c bl 0x10d08                            |             strcpy (r0, r1)
    0x00012e80 ldr r3, [fp, -0x24]                   |             r3 = var_30h;
    0x00012e84 ldr r2, [fp, -0x28]                   |             r2 = var_28h;
    0x00012e88 mov r1, r3                            |             r1 = r3;
    0x00012e8c ldr r0, [fp, -0x30]                   |             r0 = var_30h;
    0x00012e90 bl 0x13068                            |             r0 = sym ();
    0x00012e94 mov r3, r0                            |             r3 = r0;
    0x00012e98 cmp r3, 0                             |             
                                                     |             if (r3 != 0) {
    0x00012e9c moveq r3, 1                           |                 r3 = 1;
                                                     |             }
                                                     |             if (r3 == 0) {
    0x00012ea0 movne r3, 0                           |                 r3 = 0;
                                                     |             }
    0x00012ea4 and r3, r3, 0xff                      |             r3 &= 0xff;
    0x00012ea8 cmp r3, 0                             |             
                                                     |             if (r3 != 0) {
    0x00012eac bne 0x13050                           |                 goto label_12;
                                                     |             }
    0x00012eb0 ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012eb4 mov r2, 1                             |             r2 = 1;
    0x00012eb8 str r2, [r3, 0x4c]                    |             *((r3 + 0x4c)) = r2;
    0x00012ebc ldr r3, [fp, -0x10]                   |             r3 = var_10h;
    0x00012ec0 add r3, r3, 1                         |             r3++;
    0x00012ec4 str r3, [fp, -0x10]                   |             var_10h = r3;
    0x00012ec8 ldr r3, [fp, -0x30]                   |             r3 = var_30h;
    0x00012ecc ldr r2, [fp, -0x10]                   |             r2 = var_10h;
    0x00012ed0 str r2, [r3, 0x40]                    |             *((r3 + 0x40)) = r2;
    0x00012ed4 b 0x129b4                             |             goto label_1;
                                                     |         }
    0x00012ed8 ldr r3, [fp, -0x10]                   |         r3 = var_10h;
    0x00012edc add r3, r3, 1                         |         r3++;
    0x00012ee0 str r3, [fp, -0x10]                   |         var_10h = r3;
    0x00012ee4 b 0x12d34                             |         
                                                     |     } while (1);
    0x00012ee8 mov r3, 0                             |     r3 = 0;
    0x00012eec str r3, [fp, -0x18]                   |     dest = r3;
    0x00012ef0 ldr r3, [fp, -0x30]                   |     r3 = var_30h;
    0x00012ef4 ldr r3, [r3, 0xc]                     |     r3 = *((r3 + 0xc));
    0x00012ef8 ldr r3, [r3, 0x20]                    |     r3 = *((r3 + 0x20));
    0x00012efc str r3, [fp, -0x18]                   |     dest = r3;
    0x00012f00 ldr r3, [fp, -0x18]                   |     r3 = dest;
    0x00012f04 add r3, r3, 1                         |     r3++;
    0x00012f08 mov r2, r3                            |     r2 = r3;
    0x00012f0c ldr r3, [fp, -0x30]                   |     r3 = var_30h;
    0x00012f10 ldr r4, [r3, 0xc]                     |     r4 = *((r3 + 0xc));
    0x00012f14 mov r1, 1                             |     r1 = 1;
    0x00012f18 mov r0, r2                            |     r0 = r2;
    0x00012f1c bl 0x10b64                            |     r0 = calloc (r0, r1);
    0x00012f20 mov r3, r0                            |     r3 = r0;
    0x00012f24 str r3, [r4, 0x1c]                    |     *((r4 + 0x1c)) = r3;
    0x00012f28 ldr r3, [r4, 0x1c]                    |     r3 = *((r4 + 0x1c));
    0x00012f2c cmp r3, 0                             |     
                                                     |     if (r3 != 0) {
    0x00012f30 moveq r3, 1                           |         r3 = 1;
                                                     |     }
                                                     |     if (r3 == 0) {
    0x00012f34 movne r3, 0                           |         r3 = 0;
                                                     |     }
    0x00012f38 and r3, r3, 0xff                      |     r3 &= 0xff;
    0x00012f3c cmp r3, 0                             |     
                                                     |     if (r3 != 0) {
    0x00012f40 beq 0x12f50                           |         
    0x00012f44 ldr r0, [pc, 0x110]                   |         r0 = *(0x13058);
    0x00012f48 bl 0x128dc                            |         scgi_perror ();
    0x00012f4c bl 0x10c78                            |         abort ();
                                                     |     }
    0x00012f50 ldr r3, [fp, -0x30]                   |     r3 = var_30h;
    0x00012f54 ldr r3, [r3, 0xc]                     |     r3 = *((r3 + 0xc));
    0x00012f58 ldr r0, [r3, 0x1c]                    |     r0 = *((r3 + 0x1c));
    0x00012f5c ldr r3, [fp, -0x30]                   |     r3 = var_30h;
    0x00012f60 ldr r3, [r3, 0x40]                    |     r3 = *((r3 + 0x40));
    0x00012f64 ldr r2, [fp, -0x18]                   |     r2 = dest;
    0x00012f68 mov r1, r3                            |     r1 = r3;
    0x00012f6c bl 0x10b94                            |     memcpy (r0, r1, r2);
    0x00012f70 ldr r3, [pc, 0xe8]                    |     
    0x00012f74 ldr r3, [r3]                          |     r3 = "scgilib:_Out_of_RAM__Emergency_shutdown.";
    0x00012f78 cmp r3, 0                             |     
                                                     |     if (r3 == 0) {
    0x00012f7c bne 0x12fa4                           |         
    0x00012f80 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012f84 ldr r3, [r3, 0xc]                     |         r3 = *((r3 + 0xc));
    0x00012f88 ldr r2, [pc, 0xd0]                    |         r2 = "scgilib:_Out_of_RAM__Emergency_shutdown.";
    0x00012f8c str r3, [r2]                          |         *(r2) = r3;
    0x00012f90 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012f94 ldr r3, [r3, 0xc]                     |         r3 = *((r3 + 0xc));
    0x00012f98 ldr r2, [pc, 0xc4]                    |         r2 = *(0x13060);
    0x00012f9c str r3, [r2]                          |         *(r2) = r3;
    0x00012fa0 b 0x12fb8                             |         
                                                     |     } else {
    0x00012fa4 ldr r3, [pc, 0xb8]                    |         
    0x00012fa8 ldr r3, [r3]                          |         r3 = *(0x13060);
    0x00012fac ldr r2, [fp, -0x30]                   |         r2 = var_30h;
    0x00012fb0 ldr r2, [r2, 0xc]                     |         r2 = *((r2 + 0xc));
    0x00012fb4 str r2, [r3, 8]                       |         *((r3 + 8)) = r2;
                                                     |     }
    0x00012fb8 ldr r3, [fp, -0x30]                   |     r3 = var_30h;
    0x00012fbc ldr r3, [r3, 0xc]                     |     r3 = *((r3 + 0xc));
    0x00012fc0 mov r2, 0                             |     r2 = 0;
    0x00012fc4 str r2, [r3, 8]                       |     *((r3 + 8)) = r2;
    0x00012fc8 ldr r3, [fp, -0x30]                   |     r3 = var_30h;
    0x00012fcc ldr r2, [r3, 0xc]                     |     r2 = *((r3 + 0xc));
    0x00012fd0 ldr r3, [pc, 0x88]                    |     
    0x00012fd4 ldr r3, [r3]                          |     r3 = "scgilib:_Out_of_RAM__Emergency_shutdown.";
    0x00012fd8 cmp r2, r3                            |     
                                                     |     if (r2 == r3) {
    0x00012fdc bne 0x12ff4                           |         
    0x00012fe0 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012fe4 ldr r3, [r3, 0xc]                     |         r3 = *((r3 + 0xc));
    0x00012fe8 mov r2, 0                             |         r2 = 0;
    0x00012fec str r2, [r3, 0xc]                     |         *((r3 + 0xc)) = r2;
    0x00012ff0 b 0x13008                             |         
                                                     |     } else {
    0x00012ff4 ldr r3, [fp, -0x30]                   |         r3 = var_30h;
    0x00012ff8 ldr r3, [r3, 0xc]                     |         r3 = *((r3 + 0xc));
    0x00012ffc ldr r2, [pc, 0x60]                    |         
    0x00013000 ldr r2, [r2]                          |         r2 = *(0x13060);
    0x00013004 str r2, [r3, 0xc]                     |         *((r3 + 0xc)) = r2;
                                                     |     }
    0x00013008 ldr r3, [fp, -0x30]                   |     r3 = var_30h;
    0x0001300c ldr r3, [r3, 0xc]                     |     r3 = *((r3 + 0xc));
    0x00013010 ldr r2, [pc, 0x4c]                    |     r2 = *(0x13060);
    0x00013014 str r3, [r2]                          |     *(r2) = r3;
    0x00013018 ldr r3, [fp, -0x14]                   |     r3 = var_14h;
    0x0001301c str r3, [fp, -0x10]                   |     var_10h = r3;
    0x00013020 b 0x13038                             |     goto label_13;
                                                     | label_6:
    0x00013024 mov r0, r0                            |     
    0x00013028 b 0x13038                             |     goto label_13;
                                                     | label_9:
    0x0001302c mov r0, r0                            |     
    0x00013030 b 0x13038                             |     goto label_13;
                                                     | label_11:
    0x00013034 mov r0, r0                            |     
                                                     | label_13:
    0x00013038 mov r0, r0                            |     
    0x0001303c b 0x13048                             |     goto label_5;
                                                     | label_2:
    0x00013040 mov r0, r0                            |     
    0x00013044 b 0x13054                             |     goto label_4;
                                                     | label_5:
    0x00013048 mov r0, r0                            |     
    0x0001304c b 0x13054                             |     goto label_4;
                                                     | label_12:
    0x00013050 mov r0, r0                            |     
                                                     | label_4:
    0x00013054 sub sp, fp, 8                         |     
    0x00013058 pop {r4, fp, pc}                      |     
                                                     | }

[*] Function strcpy used 3 times AJAJPost.dll