[*] Binary protection state of libstdc++.so.6.0.24

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


[*] Function strcat tear down of libstdc++.so.6.0.24

    ; 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/libstdc++.so.6.0.24 @ 0x7a124 */
                                                                                                                         | #include <stdint.h>
                                                                                                                         |  
    ; (fcn) method.__cxxabiv1::__class_type_info.__do_upcast___cxxabiv1::__class_type_info_const__void__const ()         | void method_cxxabiv1::_class_type_info_do_upcast_cxxabiv1::_class_type_info_const_void_const (int32_t arg1) {
                                                                                                                         |     int32_t var_0h;
                                                                                                                         |     int32_t var_4h;
                                                                                                                         |     int32_t var_8h;
                                                                                                                         |     int32_t var_ch;
                                                                                                                         |     int32_t var_10h;
                                                                                                                         |     r0 = arg1;
                                                                                                                         |     /* __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) const */
    0x0007a124 push {r0, r1, r2, r3, r4, r5, r6, lr}                                                                     |     
    0x0007a128 mov r3, 0x10                                                                                              |     r3 = 0x10;
    0x0007a12c str r3, [sp, 8]                                                                                           |     var_8h = r3;
    0x0007a130 ldr r3, [r0]                                                                                              |     r3 = *(r0);
    0x0007a134 mov r4, 0                                                                                                 |     r4 = 0;
    0x0007a138 mov r5, r2                                                                                                |     r5 = r2;
    0x0007a13c ldr r6, [r3, 0x18]                                                                                        |     r6 = *((r3 + 0x18));
    0x0007a140 str r4, [sp]                                                                                              |     *(sp) = r4;
    0x0007a144 mov r3, sp                                                                                                |     r3 = sp;
    0x0007a148 str r4, [sp, 4]                                                                                           |     var_4h = r4;
    0x0007a14c str r4, [sp, 0xc]                                                                                         |     var_ch = r4;
    0x0007a150 ldr r2, [r2]                                                                                              |     r2 = *(r2);
    0x0007a154 blx r6                                                                                                    |     uint32_t (*r6)(uint32_t, uint32_t) (r2, r3);
    0x0007a158 ldr r3, [sp, 4]                                                                                           |     r3 = var_4h;
    0x0007a15c and r3, r3, 6                                                                                             |     r3 &= 6;
    0x0007a160 cmp r3, 6                                                                                                 |     
                                                                                                                         |     if (r3 != 6) {
    0x0007a164 ldreq r3, [sp]                                                                                            |         r3 = *(sp);
                                                                                                                         |     }
                                                                                                                         |     if (r3 != 6) {
    0x0007a168 moveq r0, 1                                                                                               |         r0 = 1;
                                                                                                                         |     }
                                                                                                                         |     if (r3 == 6) {
    0x0007a16c movne r0, r4                                                                                              |         r0 = r4;
                                                                                                                         |     }
                                                                                                                         |     if (r3 != 6) {
    0x0007a170 streq r3, [r5]                                                                                            |         *(r5) = r3;
                                                                                                                         |     }
    0x0007a174 add sp, sp, 0x10                                                                                          |     
    0x0007a178 pop {r4, r5, r6, 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/libstdc++.so.6.0.24 @ 0xd0c78 */
                                                                                             | #include <stdint.h>
                                                                                             |  
    ; (fcn) method.std::basic_streambuf_char__std::char_traits_char___.pubsync__ ()          | void method_std::basic_streambuf_char_std::char_traits_char_pubsync_ (int32_t arg1) {
                                                                                             |     r0 = arg1;
                                                                                             |     /* std::basic_streambuf<char, std::char_traits<char> >::pubsync() */
    0x000d0c78 ldr r3, [r0]                                                                  |     r3 = *(r0);
    0x000d0c7c ldr r3, [r3, 0x18]                                                            |     r3 = *((r3 + 0x18));
    0x000d0c80 bx r3                                                                         |     return uint32_t (*r3)() ();
                                                                                             | }
    ; 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/libstdc++.so.6.0.24 @ 0x8de9c */
                                                                                                     | #include <stdint.h>
                                                                                                     |  
    ; (fcn) method.std::moneypunct_char__false_._M_initialize_moneypunct_int__char_const_ ()         | void method_std::moneypunct_char_false_M_initialize_moneypunct_int_char_const_ (int32_t arg1) {
                                                                                                     |     void * s2;
                                                                                                     |     int32_t var_8h;
                                                                                                     |     r0 = arg1;
                                                                                                     |     /* std::moneypunct<char, false>::_M_initialize_moneypunct(int*, char const*) */
    0x0008de9c push {r0, r1, r4, r5, r6, lr}                                                         |     
    0x0008dea0 ldr r4, [r0, 8]                                                                       |     r4 = *((r0 + 8));
    0x0008dea4 ldr r6, [pc, 0x138]                                                                   |     r6 = *(0x8dfe0);
    0x0008dea8 cmp r4, 0                                                                             |     
    0x0008deac add r6, pc, r6                                                                        |     r6 = pc + r6;
    0x0008deb0 mov r5, r0                                                                            |     r5 = r0;
                                                                                                     |     if (r4 == 0) {
    0x0008deb4 bne 0x8df14                                                                           |         
    0x0008deb8 mov r0, 0x44                                                                          |         r0 = 0x44;
    0x0008debc bl 0x7504c                                                                            |         fcn_0007504c ();
    0x0008dec0 ldr r3, [pc, 0x120]                                                                   |         r3 = *(0x8dfe4);
    0x0008dec4 str r4, [r0, 4]                                                                       |         *((r0 + 4)) = r4;
    0x0008dec8 ldr r3, [r6, r3]                                                                      |         r3 = *((r6 + r3));
    0x0008decc str r4, [r0, 8]                                                                       |         *((r0 + 8)) = r4;
    0x0008ded0 add r3, r3, 8                                                                         |         r3 += 8;
    0x0008ded4 str r3, [r0]                                                                          |         *(r0) = r3;
    0x0008ded8 str r4, [r0, 0xc]                                                                     |         *((r0 + 0xc)) = r4;
    0x0008dedc strb r4, [r0, 0x10]                                                                   |         *((r0 + 0x10)) = r4;
    0x0008dee0 strb r4, [r0, 0x11]                                                                   |         *((r0 + 0x11)) = r4;
    0x0008dee4 strb r4, [r0, 0x12]                                                                   |         *((r0 + 0x12)) = r4;
    0x0008dee8 str r4, [r0, 0x14]                                                                    |         *((r0 + 0x14)) = r4;
    0x0008deec str r4, [r0, 0x18]                                                                    |         *((r0 + 0x18)) = r4;
    0x0008def0 str r4, [r0, 0x1c]                                                                    |         *((r0 + 0x1c)) = r4;
    0x0008def4 str r4, [r0, 0x20]                                                                    |         *((r0 + 0x20)) = r4;
    0x0008def8 str r4, [r0, 0x24]                                                                    |         *((r0 + 0x24)) = r4;
    0x0008defc str r4, [r0, 0x28]                                                                    |         *((r0 + 0x28)) = r4;
    0x0008df00 str r4, [r0, 0x2c]                                                                    |         *((r0 + 0x2c)) = r4;
    0x0008df04 str r4, [r0, 0x30]                                                                    |         *((r0 + 0x30)) = r4;
    0x0008df08 str r4, [r0, 0x34]                                                                    |         *((r0 + 0x34)) = r4;
    0x0008df0c strb r4, [r0, 0x43]                                                                   |         *((r0 + 0x43)) = r4;
    0x0008df10 str r0, [r5, 8]                                                                       |         *((r5 + 8)) = r0;
                                                                                                     |     }
    0x0008df14 ldr r3, [r5, 8]                                                                       |     r3 = *((r5 + 8));
    0x0008df18 mov r2, 0x2e                                                                          |     r2 = 0x2e;
    0x0008df1c strb r2, [r3, 0x11]                                                                   |     *((r3 + 0x11)) = r2;
    0x0008df20 ldr r3, [r5, 8]                                                                       |     r3 = *((r5 + 8));
    0x0008df24 mov r2, 0x2c                                                                          |     r2 = 0x2c;
    0x0008df28 strb r2, [r3, 0x12]                                                                   |     *((r3 + 0x12)) = r2;
    0x0008df2c ldr r3, [pc, 0xb8]                                                                    |     r3 = *(0x8dfe8);
    0x0008df30 ldr r2, [r5, 8]                                                                       |     r2 = *((r5 + 8));
    0x0008df34 add r3, pc, r3                                                                        |     r3 = pc + r3;
    0x0008df38 str r3, [r2, 8]                                                                       |     *((r2 + 8)) = r3;
    0x0008df3c ldr r2, [r5, 8]                                                                       |     r2 = *((r5 + 8));
    0x0008df40 mov r4, 0                                                                             |     r4 = 0;
    0x0008df44 str r4, [r2, 0xc]                                                                     |     *((r2 + 0xc)) = r4;
    0x0008df48 ldr r2, [r5, 8]                                                                       |     r2 = *((r5 + 8));
    0x0008df4c str r3, [r2, 0x14]                                                                    |     *((r2 + 0x14)) = r3;
    0x0008df50 ldr r2, [r5, 8]                                                                       |     r2 = *((r5 + 8));
    0x0008df54 str r4, [r2, 0x18]                                                                    |     *((r2 + 0x18)) = r4;
    0x0008df58 ldr r2, [r5, 8]                                                                       |     r2 = *((r5 + 8));
    0x0008df5c str r3, [r2, 0x1c]                                                                    |     *((r2 + 0x1c)) = r3;
    0x0008df60 ldr r2, [r5, 8]                                                                       |     r2 = *((r5 + 8));
    0x0008df64 str r4, [r2, 0x20]                                                                    |     *((r2 + 0x20)) = r4;
    0x0008df68 ldr r2, [r5, 8]                                                                       |     r2 = *((r5 + 8));
    0x0008df6c str r3, [r2, 0x24]                                                                    |     *((r2 + 0x24)) = r3;
    0x0008df70 ldr r3, [r5, 8]                                                                       |     r3 = *((r5 + 8));
    0x0008df74 mov r2, 4                                                                             |     r2 = 4;
    0x0008df78 str r4, [r3, 0x28]                                                                    |     *((r3 + 0x28)) = r4;
    0x0008df7c ldr r3, [r5, 8]                                                                       |     r3 = *((r5 + 8));
    0x0008df80 str r4, [r3, 0x2c]                                                                    |     *((r3 + 0x2c)) = r4;
    0x0008df84 ldr r3, [pc, 0x64]                                                                    |     r3 = "raitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs";
    0x0008df88 ldr r0, [r5, 8]                                                                       |     r0 = *((r5 + 8));
    0x0008df8c ldr r3, [r6, r3]                                                                      |     r3 = *((r6 + r3));
    0x0008df90 add r0, r0, 0x30                                                                      |     r0 += 0x30;
    0x0008df94 mov r1, r3                                                                            |     r1 = r3;
    0x0008df98 str r3, [sp, 4]                                                                       |     s2 = r3;
    0x0008df9c bl 0x74b9c                                                                            |     memcpy (r0, r1, r2);
    0x0008dfa0 ldr r0, [r5, 8]                                                                       |     r0 = *((r5 + 8));
    0x0008dfa4 ldr r1, [sp, 4]                                                                       |     r1 = s2;
    0x0008dfa8 mov r2, 4                                                                             |     r2 = 4;
    0x0008dfac add r0, r0, 0x34                                                                      |     r0 += 0x34;
    0x0008dfb0 bl 0x74b9c                                                                            |     memcpy (r0, r1, r2);
    0x0008dfb4 ldr r3, [pc, 0x38]                                                                    |     r3 = "N";
    0x0008dfb8 ldr r3, [r6, r3]                                                                      |     r3 = *((r6 + r3));
    0x0008dfbc ldr r1, [r3]                                                                          |     r1 = "N";
                                                                                                     |     do {
    0x0008dfc0 ldr r3, [r5, 8]                                                                       |         r3 = *((r5 + 8));
    0x0008dfc4 ldrb r2, [r1, r4]                                                                     |         r2 = *((r1 + r4));
    0x0008dfc8 add r3, r3, r4                                                                        |         r3 += r4;
    0x0008dfcc add r4, r4, 1                                                                         |         r4++;
    0x0008dfd0 cmp r4, 0xb                                                                           |         
    0x0008dfd4 strb r2, [r3, 0x38]                                                                   |         *((r3 + 0x38)) = r2;
    0x0008dfd8 bne 0x8dfc0                                                                           |         
                                                                                                     |     } while (r4 != 0xb);
    0x0008dfdc add sp, sp, 8                                                                         |     
    0x0008dfe0 pop {r4, r5, r6, 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/libstdc++.so.6.0.24 @ 0xc04a8 */
                                                                                                                                                                                                                         | #include <stdint.h>
                                                                                                                                                                                                                         |  
    ; (fcn) method.std::num_put_char__std::ostreambuf_iterator_char__std::char_traits_char_____.put_std::ostreambuf_iterator_char__std::char_traits_char_____std::ios_base__char__unsigned_long_long__const ()           | void method_std::num_put_char_std::ostreambuf_iterator_char_std::char_traits_char_put_std::ostreambuf_iterator_char_std::char_traits_char_std::ios_base_char_unsigned_long_long_const (int32_t arg_28h, int32_t arg_2ch, int32_t arg_30h, int32_t arg1, int32_t arg2) {
                                                                                                                                                                                                                         |     int32_t var_0h;
                                                                                                                                                                                                                         |     int32_t var_4h;
                                                                                                                                                                                                                         |     int32_t var_8h;
                                                                                                                                                                                                                         |     int32_t var_8h_2;
                                                                                                                                                                                                                         |     int32_t var_10h;
                                                                                                                                                                                                                         |     int32_t var_1ch;
                                                                                                                                                                                                                         |     r0 = arg1;
                                                                                                                                                                                                                         |     r1 = arg2;
                                                                                                                                                                                                                         |     /* std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, unsigned long long) const */
    0x000c04a8 push {r4, r5, lr}                                                                                                                                                                                         |     
    0x000c04ac ldr lr, [r1]                                                                                                                                                                                              |     
    0x000c04b0 sub sp, sp, 0x1c                                                                                                                                                                                          |     
    0x000c04b4 add ip, sp, 0x10                                                                                                                                                                                          |     
    0x000c04b8 stm ip, {r2, r3}                                                                                                                                                                                          |     *(ip) = r2;
                                                                                                                                                                                                                         |     *((ip + 4)) = r3;
    0x000c04bc ldrd r2, r3, [sp, 0x30]                                                                                                                                                                                   |     __asm ("ldrd r2, r3, [arg_30h]");
    0x000c04c0 mov r4, r0                                                                                                                                                                                                |     r4 = r0;
    0x000c04c4 strd r2, r3, [sp, 8]                                                                                                                                                                                      |     __asm ("strd r2, r3, [var_8h]");
    0x000c04c8 ldrb r3, [sp, 0x2c]                                                                                                                                                                                       |     r3 = *(arg_2ch);
    0x000c04cc str r3, [sp, 4]                                                                                                                                                                                           |     var_4h = r3;
    0x000c04d0 ldr r3, [sp, 0x28]                                                                                                                                                                                        |     r3 = *(arg_28h);
    0x000c04d4 str r3, [sp]                                                                                                                                                                                              |     *(sp) = r3;
    0x000c04d8 ldr r5, [lr, 0x18]                                                                                                                                                                                        |     r5 = *((lr + 0x18));
    0x000c04dc ldm ip, {r2, r3}                                                                                                                                                                                          |     r2 = *(ip);
                                                                                                                                                                                                                         |     r3 = *((ip + 4));
    0x000c04e0 blx r5                                                                                                                                                                                                    |     uint32_t (*r5)(uint32_t, uint32_t) (r2, r3);
    0x000c04e4 mov r0, r4                                                                                                                                                                                                |     r0 = r4;
    0x000c04e8 add sp, sp, 0x1c                                                                                                                                                                                          |     
    0x000c04ec pop {r4, r5, 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/libstdc++.so.6.0.24 @ 0xd52a4 */
                                                                                                                                                                                                                                         | #include <stdint.h>
                                                                                                                                                                                                                                         |  
    ; (fcn) method.std::num_put_wchar_t__std::ostreambuf_iterator_wchar_t__std::char_traits_wchar_t_____.put_std::ostreambuf_iterator_wchar_t__std::char_traits_wchar_t_____std::ios_base__wchar_t__unsigned_long_long__const ()         | void method_std::num_put_wchar_t_std::ostreambuf_iterator_wchar_t_std::char_traits_wchar_t_put_std::ostreambuf_iterator_wchar_t_std::char_traits_wchar_t_std::ios_base_wchar_t_unsigned_long_long_const (int32_t arg_28h, int32_t arg_2ch, int32_t arg_30h, int32_t arg1, int32_t arg2) {
                                                                                                                                                                                                                                         |     int32_t var_0h;
                                                                                                                                                                                                                                         |     int32_t var_4h;
                                                                                                                                                                                                                                         |     int32_t var_8h;
                                                                                                                                                                                                                                         |     int32_t var_8h_2;
                                                                                                                                                                                                                                         |     int32_t var_10h;
                                                                                                                                                                                                                                         |     int32_t var_1ch;
                                                                                                                                                                                                                                         |     r0 = arg1;
                                                                                                                                                                                                                                         |     r1 = arg2;
                                                                                                                                                                                                                                         |     /* std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, unsigned long long) const */
    0x000d52a4 push {r4, r5, lr}                                                                                                                                                                                                         |     
    0x000d52a8 ldr lr, [r1]                                                                                                                                                                                                              |     
    0x000d52ac sub sp, sp, 0x1c                                                                                                                                                                                                          |     
    0x000d52b0 add ip, sp, 0x10                                                                                                                                                                                                          |     
    0x000d52b4 stm ip, {r2, r3}                                                                                                                                                                                                          |     *(ip) = r2;
                                                                                                                                                                                                                                         |     *((ip + 4)) = r3;
    0x000d52b8 ldrd r2, r3, [sp, 0x30]                                                                                                                                                                                                   |     __asm ("ldrd r2, r3, [arg_30h]");
    0x000d52bc mov r4, r0                                                                                                                                                                                                                |     r4 = r0;
    0x000d52c0 strd r2, r3, [sp, 8]                                                                                                                                                                                                      |     __asm ("strd r2, r3, [var_8h]");
    0x000d52c4 ldr r3, [sp, 0x2c]                                                                                                                                                                                                        |     r3 = *(arg_2ch);
    0x000d52c8 str r3, [sp, 4]                                                                                                                                                                                                           |     var_4h = r3;
    0x000d52cc ldr r3, [sp, 0x28]                                                                                                                                                                                                        |     r3 = *(arg_28h);
    0x000d52d0 str r3, [sp]                                                                                                                                                                                                              |     *(sp) = r3;
    0x000d52d4 ldr r5, [lr, 0x18]                                                                                                                                                                                                        |     r5 = *((lr + 0x18));
    0x000d52d8 ldm ip, {r2, r3}                                                                                                                                                                                                          |     r2 = *(ip);
                                                                                                                                                                                                                                         |     r3 = *((ip + 4));
    0x000d52dc blx r5                                                                                                                                                                                                                    |     uint32_t (*r5)(uint32_t, uint32_t) (r2, r3);
    0x000d52e0 mov r0, r4                                                                                                                                                                                                                |     r0 = r4;
    0x000d52e4 add sp, sp, 0x1c                                                                                                                                                                                                          |     
    0x000d52e8 pop {r4, r5, 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/libstdc++.so.6.0.24 @ 0xc0c50 */
                                                                                                                                                                                                                                                                                     | #include <stdint.h>
                                                                                                                                                                                                                                                                                     |  
    ; (fcn) method.std::time_get_char__std::istreambuf_iterator_char__std::char_traits_char_____.get_monthname_std::istreambuf_iterator_char__std::char_traits_char_____std::istreambuf_iterator_char__std::char_traits_char_____std::ios_base__std::_Ios_Iostate__tm__ ()           | void method_std::time_get_char_std::istreambuf_iterator_char_std::char_traits_char_get_monthname_std::istreambuf_iterator_char_std::char_traits_char_std::istreambuf_iterator_char_std::char_traits_char_std::ios_base_std::_Ios_Iostate_tm_ (int32_t arg_38h, int32_t arg_3ch, int32_t arg_40h, int32_t arg1, int32_t arg2) {
                                                                                                                                                                                                                                                                                     |     int32_t var_8h;
                                                                                                                                                                                                                                                                                     |     int32_t var_ch;
                                                                                                                                                                                                                                                                                     |     int32_t var_10h;
                                                                                                                                                                                                                                                                                     |     int32_t var_18h;
                                                                                                                                                                                                                                                                                     |     int32_t var_24h;
                                                                                                                                                                                                                                                                                     |     int32_t var_2ch;
                                                                                                                                                                                                                                                                                     |     r0 = arg1;
                                                                                                                                                                                                                                                                                     |     r1 = arg2;
                                                                                                                                                                                                                                                                                     |     /* std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::get_monthname(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, tm*) const */
    0x000c0c50 push {r4, r5, lr}                                                                                                                                                                                                                                                     |     
    0x000c0c54 sub sp, sp, 0x24                                                                                                                                                                                                                                                      |     
    0x000c0c58 add ip, sp, 0x18                                                                                                                                                                                                                                                      |     
    0x000c0c5c stm ip, {r2, r3}                                                                                                                                                                                                                                                      |     *(ip) = r2;
                                                                                                                                                                                                                                                                                     |     *((ip + 4)) = r3;
    0x000c0c60 ldr r2, [sp, 0x40]                                                                                                                                                                                                                                                    |     r2 = *(arg_40h);
    0x000c0c64 ldr r3, [r1]                                                                                                                                                                                                                                                          |     r3 = *(r1);
    0x000c0c68 str r2, [sp, 0x10]                                                                                                                                                                                                                                                    |     var_10h = r2;
    0x000c0c6c ldr r2, [sp, 0x3c]                                                                                                                                                                                                                                                    |     r2 = *(arg_3ch);
    0x000c0c70 mov r4, r0                                                                                                                                                                                                                                                            |     r4 = r0;
    0x000c0c74 str r2, [sp, 0xc]                                                                                                                                                                                                                                                     |     var_ch = r2;
    0x000c0c78 ldr r2, [sp, 0x38]                                                                                                                                                                                                                                                    |     r2 = *(arg_38h);
    0x000c0c7c mov lr, r1                                                                                                                                                                                                                                                            |     lr = r1;
    0x000c0c80 str r2, [sp, 8]                                                                                                                                                                                                                                                       |     var_8h = r2;
    0x000c0c84 add r2, sp, 0x2c                                                                                                                                                                                                                                                      |     r2 += var_2ch;
    0x000c0c88 ldmib r2, {r0, r1}                                                                                                                                                                                                                                                    |     __asm ("ldmib r2, {r0, r1}");
    0x000c0c8c stm sp, {r0, r1}                                                                                                                                                                                                                                                      |     *(sp) = r0;
                                                                                                                                                                                                                                                                                     |     *((sp + 4)) = r1;
    0x000c0c90 ldr r5, [r3, 0x18]                                                                                                                                                                                                                                                    |     r5 = *((r3 + 0x18));
    0x000c0c94 mov r0, r4                                                                                                                                                                                                                                                            |     r0 = r4;
    0x000c0c98 ldm ip, {r2, r3}                                                                                                                                                                                                                                                      |     r2 = *(ip);
                                                                                                                                                                                                                                                                                     |     r3 = *((ip + 4));
    0x000c0c9c mov r1, lr                                                                                                                                                                                                                                                            |     r1 = lr;
    0x000c0ca0 blx r5                                                                                                                                                                                                                                                                |     uint32_t (*r5)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x000c0ca4 mov r0, r4                                                                                                                                                                                                                                                            |     r0 = r4;
    0x000c0ca8 add sp, sp, 0x24                                                                                                                                                                                                                                                      |     
    0x000c0cac pop {r4, r5, pc}                                                                                                                                                                                                                                                      |     
                                                                                                                                                                                                                                                                                     | }

[*] Function strcat used 1 times libstdc++.so.6.0.24