[*] Binary protection state of KT-1

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


[*] Function strcpy tear down of KT-1

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/windows/KT-1 @ 0x3a12c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0003a12c ()                  | void fcn_0003a12c (int32_t arg2) {
                                             |     char * dest;
                                             |     int32_t var_10h;
                                             |     int32_t var_20h;
                                             |     r1 = arg2;
    0x0003a12c push {r4, r5, r6, lr}         |     
    0x0003a130 mov r6, r1                    |     r6 = r1;
    0x0003a134 mov r1, 2                     |     r1 = 2;
    0x0003a138 sub sp, sp, 0x20              |     
    0x0003a13c mov r2, 0                     |     r2 = 0;
    0x0003a140 mov r0, r1                    |     r0 = r1;
    0x0003a144 bl 0x183b0                    |     socket (r0, r1, r2);
    0x0003a148 mov r4, sp                    |     r4 = sp;
    0x0003a14c mov r3, 0x20                  |     r3 = 0x20;
    0x0003a150 mov r2, 0                     |     r2 = 0;
    0x0003a154 mov r1, r3                    |     r1 = r3;
    0x0003a158 mov r5, r0                    |     r5 = r0;
    0x0003a15c mov r0, r4                    |     r0 = r4;
    0x0003a160 bl 0xb9f54                    |     fcn_000b9f54 (r0, r1);
    0x0003a164 mov r0, r6                    |     r0 = r6;
    0x0003a168 bl 0x1772c                    |     r0 = strlen (r0);
    0x0003a16c cmp r0, 0xf                   |     
                                             |     if (r0 <= 0xf) {
    0x0003a170 movhi r0, 0                   |         r0 = 0;
                                             |     }
                                             |     if (r0 <= 0xf) {
    0x0003a174 bhi 0x3a1a8                   |         
    0x0003a178 mov r1, r6                    |         r1 = r6;
    0x0003a17c mov r0, r4                    |         r0 = r4;
    0x0003a180 bl 0x17e4c                    |         strcpy (r0, r1)
    0x0003a184 mov r2, r4                    |         r2 = r4;
    0x0003a188 ldr r1, [pc, 0x20]            |         r1 = *(0x3a1ac);
    0x0003a18c mov r0, r5                    |         r0 = r5;
    0x0003a190 bl 0x17a8c                    |         ioctl (r0, r1);
    0x0003a194 mov r0, r5                    |         r0 = r5;
    0x0003a198 bl 0x184c4                    |         close (r0);
    0x0003a19c ldrh r0, [sp, 0x10]           |         r0 = var_10h;
    0x0003a1a0 lsr r0, r0, 6                 |         r0 >>= 6;
    0x0003a1a4 and r0, r0, 1                 |         r0 &= 1;
                                             |     }
    0x0003a1a8 add sp, sp, 0x20              |     
    0x0003a1ac 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/windows/KT-1 @ 0x4f8a4 */
                                                     | #include <stdint.h>
                                                     |  
                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                     |  
    ; (fcn) fcn.0004f8a4 ()                          | void fcn_0004f8a4 (int32_t arg1) {
                                                     |     char * src;
                                                     |     int32_t var_20h;
                                                     |     r0 = arg1;
    0x0004f8a4 push {r4, r5, r6, r7, r8, lr}         |     
    0x0004f8a8 mov r4, r0                            |     r4 = r0;
    0x0004f8ac ldr r0, [pc, 0x218]                   |     r0 = *(0x4fac8);
    0x0004f8b0 sub sp, sp, 0x20                      |     
    0x0004f8b4 add r0, pc, r0                        |     r0 = pc + r0;
    0x0004f8b8 bl 0x183e0                            |     basename (r0);
    0x0004f8bc ldr r1, [pc, 0x20c]                   |     
    0x0004f8c0 ldr r3, [pc, 0x20c]                   |     r3 = *(0x4fad0);
    0x0004f8c4 add r1, pc, r1                        |     r1 = pc + r1;
    0x0004f8c8 add r3, pc, r3                        |     r3 = pc + r3;
    0x0004f8cc mov r2, 5                             |     r2 = 5;
    0x0004f8d0 add r1, r1, 0x1a                      |     r1 = 0x4fae6;
    0x0004f8d4 bl 0xc3f94                            |     fcn_000c3f94 (r0, r1, r2, r3);
    0x0004f8d8 ldr r3, [pc, 0x1f8]                   |     r3 = *(0x4fad4);
    0x0004f8dc mov r2, 0                             |     r2 = 0;
    0x0004f8e0 mov r1, r3                            |     r1 = r3;
    0x0004f8e4 add r0, r4, 0x18                      |     r0 = r4 + 0x18;
    0x0004f8e8 bl 0xb9f54                            |     fcn_000b9f54 (r0, r1);
    0x0004f8ec ldrb r3, [r4, 0x56]                   |     r3 = *((r4 + 0x56));
    0x0004f8f0 add r5, sp, 4                         |     r5 += src;
    0x0004f8f4 bic r3, r3, 0xe                       |     r3 = BIT_MASK (r3, 0xe);
    0x0004f8f8 orr r3, r3, 1                         |     r3 |= 1;
    0x0004f8fc mov r0, r5                            |     r0 = r5;
    0x0004f900 strb r3, [r4, 0x56]                   |     *((r4 + 0x56)) = r3;
    0x0004f904 bl 0x3a8cc                            |     fcn_0003a8cc (r0);
    0x0004f908 mov r0, r5                            |     r0 = r5;
    0x0004f90c bl 0x1bb20                            |     fcn_0001bb20 (r0);
    0x0004f910 add r6, r4, 0x6b                      |     r6 = r4 + 0x6b;
    0x0004f914 mov r1, r0                            |     r1 = r0;
    0x0004f918 mov r0, r6                            |     r0 = r6;
    0x0004f91c bl 0x17e4c                            |     strcpy (r0, r1)
    0x0004f920 mov r0, r5                            |     r0 = r5;
    0x0004f924 bl 0x1bcc4                            |     fcn_0001bcc4 (r0);
    0x0004f928 mov r0, r5                            |     r0 = r5;
    0x0004f92c bl 0x3a90c                            |     fcn_0003a90c (r0);
    0x0004f930 mov r0, r5                            |     r0 = r5;
    0x0004f934 add r6, r4, 0x5b                      |     r6 = r4 + 0x5b;
    0x0004f938 bl 0x1bb20                            |     r0 = fcn_0001bb20 (r0);
    0x0004f93c mov r1, r0                            |     r1 = r0;
    0x0004f940 mov r0, r6                            |     r0 = r6;
    0x0004f944 bl 0x17e4c                            |     strcpy (r0, r1)
    0x0004f948 mov r0, r5                            |     r0 = r5;
    0x0004f94c bl 0x1bcc4                            |     fcn_0001bcc4 (r0);
    0x0004f950 ldr r3, [pc, 0x184]                   |     r3 = *(0x4fad8);
    0x0004f954 mov r2, 0                             |     r2 = 0;
    0x0004f958 strh r3, [r4, 0x22]                   |     *((r4 + 0x22)) = r3;
    0x0004f95c ldr r3, [pc, 0x174]                   |     r3 = *(0x4fad4);
    0x0004f960 add r0, r4, 0x1a                      |     r0 = r4 + 0x1a;
    0x0004f964 strh r3, [r4, 0x18]                   |     *((r4 + 0x18)) = r3;
    0x0004f968 mov r3, 4                             |     r3 = 4;
    0x0004f96c mov r1, r3                            |     r1 = r3;
    0x0004f970 bl 0xb9f54                            |     fcn_000b9f54 (r0, r1);
    0x0004f974 mvn r3, 0x3f                          |     r3 = ~0x3f;
    0x0004f978 strb r3, [r4, 0x7b]                   |     *((r4 + 0x7b)) = r3;
    0x0004f97c ldr r1, [pc, 0x15c]                   |     r1 = *(0x4fadc);
    0x0004f980 mvn r3, 0x57                          |     r3 = ~0x57;
    0x0004f984 strb r3, [r4, 0x7c]                   |     *((r4 + 0x7c)) = r3;
    0x0004f988 mov r3, 2                             |     r3 = 2;
    0x0004f98c mov r5, 0                             |     r5 = 0;
    0x0004f990 mov r6, 1                             |     r6 = 1;
    0x0004f994 strb r3, [r4, 0x7e]                   |     *((r4 + 0x7e)) = r3;
    0x0004f998 mvn r3, 0                             |     r3 = ~0;
    0x0004f99c strb r6, [r4, 0x7d]                   |     *((r4 + 0x7d)) = r6;
    0x0004f9a0 strb r3, [r4, 0x7f]                   |     *((r4 + 0x7f)) = r3;
    0x0004f9a4 strb r3, [r4, 0x80]                   |     *((r4 + 0x80)) = r3;
    0x0004f9a8 strb r3, [r4, 0x81]                   |     *((r4 + 0x81)) = r3;
    0x0004f9ac strb r6, [r4, 0x8f]                   |     *((r4 + 0x8f)) = r6;
    0x0004f9b0 add r1, pc, r1                        |     r1 = pc + r1;
    0x0004f9b4 strb r5, [r4, 0x82]                   |     *((r4 + 0x82)) = r5;
    0x0004f9b8 strb r5, [r4, 0x83]                   |     *((r4 + 0x83)) = r5;
    0x0004f9bc strb r5, [r4, 0x84]                   |     *((r4 + 0x84)) = r5;
    0x0004f9c0 strb r5, [r4, 0x85]                   |     *((r4 + 0x85)) = r5;
    0x0004f9c4 strb r5, [r4, 0x86]                   |     *((r4 + 0x86)) = r5;
    0x0004f9c8 add r0, r4, 0xab                      |     r0 = r4 + 0xab;
    0x0004f9cc bl 0x17e4c                            |     strcpy (r0, r1)
    0x0004f9d0 ldr r2, [pc, 0x10c]                   |     r2 = *(0x4fae0);
    0x0004f9d4 mov r3, 0x10                          |     r3 = 0x10;
    0x0004f9d8 add r2, pc, r2                        |     r2 = pc + r2;
    0x0004f9dc mov r1, r3                            |     r1 = r3;
    0x0004f9e0 add r0, r4, 0x93                      |     r0 = r4 + 0x93;
    0x0004f9e4 bl 0xb9ec8                            |     fcn_000b9ec8 (r0, r1);
    0x0004f9e8 ldr r3, [pc, 0xf8]                    |     r3 = *(0x4fae4);
    0x0004f9ec mov r2, 0x3c                          |     r2 = 0x3c;
    0x0004f9f0 strh r3, [r4, 0x90]                   |     *((r4 + 0x90)) = r3;
    0x0004f9f4 mvn r3, 0x51                          |     r3 = ~0x51;
    0x0004f9f8 strb r3, [r4, 0xa3]                   |     *((r4 + 0xa3)) = r3;
    0x0004f9fc strb r2, [r4, 0xdf]                   |     *((r4 + 0xdf)) = r2;
    0x0004fa00 mov r3, 0x14                          |     r3 = 0x14;
    0x0004fa04 mov r2, 6                             |     r2 = 6;
    0x0004fa08 strb r6, [r4, 0x92]                   |     *((r4 + 0x92)) = r6;
    0x0004fa0c strb r3, [r4, 0xa5]                   |     *((r4 + 0xa5)) = r3;
    0x0004fa10 strb r2, [r4, 0xe1]                   |     *((r4 + 0xe1)) = r2;
    0x0004fa14 strb r3, [r4, 0xa7]                   |     *((r4 + 0xa7)) = r3;
    0x0004fa18 mov r2, 4                             |     r2 = 4;
    0x0004fa1c mov r3, 0x78                          |     r3 = 0x78;
    0x0004fa20 add r6, r4, 0xe6                      |     r6 = r4 + 0xe6;
    0x0004fa24 mov r8, 0x7f                          |     r8 = 0x7f;
    0x0004fa28 mov r7, r5                            |     r7 = r5;
    0x0004fa2c strb r5, [r4, 0x87]                   |     *((r4 + 0x87)) = r5;
    0x0004fa30 strb r5, [r4, 0x88]                   |     *((r4 + 0x88)) = r5;
    0x0004fa34 strb r5, [r4, 0x89]                   |     *((r4 + 0x89)) = r5;
    0x0004fa38 strb r5, [r4, 0x8a]                   |     *((r4 + 0x8a)) = r5;
    0x0004fa3c strb r5, [r4, 0x8b]                   |     *((r4 + 0x8b)) = r5;
    0x0004fa40 strb r5, [r4, 0x8c]                   |     *((r4 + 0x8c)) = r5;
    0x0004fa44 strb r5, [r4, 0x8d]                   |     *((r4 + 0x8d)) = r5;
    0x0004fa48 strb r5, [r4, 0x8e]                   |     *((r4 + 0x8e)) = r5;
    0x0004fa4c strb r5, [r4, 0xa6]                   |     *((r4 + 0xa6)) = r5;
    0x0004fa50 strb r5, [r4, 0xe0]                   |     *((r4 + 0xe0)) = r5;
    0x0004fa54 strb r5, [r4, 0xe2]                   |     *((r4 + 0xe2)) = r5;
    0x0004fa58 strb r2, [r4, 0xa4]                   |     *((r4 + 0xa4)) = r2;
    0x0004fa5c strb r5, [r4, 0xa8]                   |     *((r4 + 0xa8)) = r5;
    0x0004fa60 strb r3, [r4, 0xa9]                   |     *((r4 + 0xa9)) = r3;
    0x0004fa64 strb r5, [r4, 0xaa]                   |     *((r4 + 0xaa)) = r5;
    0x0004fa68 strb r5, [r4, 0x57]                   |     *((r4 + 0x57)) = r5;
    0x0004fa6c strb r5, [r4, 0x58]                   |     *((r4 + 0x58)) = r5;
    0x0004fa70 strb r5, [r4, 0x59]                   |     *((r4 + 0x59)) = r5;
    0x0004fa74 strb r5, [r4, 0x5a]                   |     *((r4 + 0x5a)) = r5;
                                                     |     do {
    0x0004fa78 strb r8, [r6, -1]                     |         *((r6 - 1)) = r8;
    0x0004fa7c strb r7, [r6, 4]                      |         *((r6 + 4)) = r7;
    0x0004fa80 ldr r3, [r4, 0x1a8]                   |         r3 = *((r4 + 0x1a8));
    0x0004fa84 mov r0, r6                            |         r0 = r6;
    0x0004fa88 add r3, r3, r5                        |         r3 += r5;
    0x0004fa8c strb r7, [r3, 0x391]                  |         *((r3 + 0x391)) = r7;
    0x0004fa90 mov r3, 4                             |         r3 = 4;
    0x0004fa94 mov r2, 0                             |         r2 = 0;
    0x0004fa98 mov r1, r3                            |         r1 = r3;
    0x0004fa9c add r5, r5, 1                         |         r5++;
    0x0004faa0 bl 0xb9f54                            |         fcn_000b9f54 (r0, r1);
    0x0004faa4 cmp r5, 0x20                          |         
    0x0004faa8 add r6, r6, 6                         |         r6 += 6;
    0x0004faac bne 0x4fa78                           |         
                                                     |     } while (r5 != 0x20);
    0x0004fab0 strb r7, [r4, 0x1ac]                  |     *((r4 + 0x1ac)) = r7;
    0x0004fab4 add sp, sp, 0x20                      |     
    0x0004fab8 pop {r4, r5, r6, r7, r8, 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/windows/KT-1 @ 0x52b58 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) fcn.00052b58 ()                                  | void fcn_00052b58 (void * in, int32_t arg_204h, int32_t arg1, int32_t arg2) {
                                                             |     char * var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_2h;
                                                             |     char * src;
                                                             |     char * dest;
                                                             |     int32_t var_3ah;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_77h;
                                                             |     int32_t var_78h;
                                                             |     char * var_43h;
                                                             |     char * var_53h;
                                                             |     void * s1;
                                                             |     int8_t var_d2h;
                                                             |     int32_t var_1cch;
                                                             |     int32_t var_1f4h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00052b58 sub sp, sp, 8                                 |     
    0x00052b5c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00052b60 ldrb ip, [r2, 1]                              |     ip = *((r2 + 1));
    0x00052b64 sub sp, sp, 0x1cc                             |     
    0x00052b68 str r3, [sp, 0x1f4]                           |     var_1f4h = r3;
    0x00052b6c ldrb r3, [r2]                                 |     r3 = *(r2);
    0x00052b70 ldr r8, [pc, 0xaa4]                           |     r8 = *(0x53618);
    0x00052b74 orr r3, r3, ip, lsl 8                         |     r3 |= (ip << 8);
    0x00052b78 ldr ip, [pc, 0xaa0]                           |     ip = *(0x00053620);
    0x00052b7c add r8, pc, r8                                |     r8 = pc + r8;
    0x00052b80 cmp r3, ip                                    |     
    0x00052b84 ldrb r7, [sp, 0x204]                          |     r7 = *(arg_204h);
                                                             |     if (r3 != ip) {
    0x00052b88 beq 0x52b98                                   |         
    0x00052b8c ldr ip, [pc, 0xa90]                           |         ip = *(0x00053624);
    0x00052b90 cmp r3, ip                                    |         
                                                             |         if (r3 != ip) {
    0x00052b94 bne 0x52bd4                                   |             goto label_0;
                                                             |         }
                                                             |     }
    0x00052b98 mov sl, r1                                    |     sl = r1;
    0x00052b9c ldrb r1, [r2, 0xe]                            |     r1 = *((r2 + 0xe));
    0x00052ba0 mov r5, r2                                    |     r5 = r2;
    0x00052ba4 cmp r1, 0x65                                  |     
    0x00052ba8 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r1 == 0x65) {
    0x00052bac beq 0x52fd8                                   |         goto label_9;
                                                             |     }
                                                             |     if (r1 > 0x65) {
    0x00052bb0 bhi 0x52c90                                   |         goto label_10;
                                                             |     }
    0x00052bb4 cmp r1, 0x5f                                  |     
                                                             |     if (r1 == 0x5f) {
    0x00052bb8 beq 0x52fd8                                   |         goto label_9;
                                                             |     }
                                                             |     if (r1 > 0x5f) {
    0x00052bbc bhi 0x52c6c                                   |         goto label_11;
                                                             |     }
    0x00052bc0 cmp r1, 6                                     |     
                                                             |     if (r1 == 6) {
    0x00052bc4 beq 0x533f0                                   |         goto label_12;
                                                             |     }
                                                             |     if (r1 > 6) {
    0x00052bc8 bhi 0x52bdc                                   |         goto label_13;
                                                             |     }
    0x00052bcc cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x00052bd0 beq 0x52d84                                   |         goto label_14;
                                                             |     }
                                                             |     do {
                                                             | label_0:
    0x00052bd4 mov r6, 0                                     |         r6 = 0;
    0x00052bd8 b 0x52c58                                     |         goto label_1;
                                                             | label_13:
    0x00052bdc cmp r1, 0x58                                  |         
                                                             |         if (r1 == 0x58) {
    0x00052be0 beq 0x53580                                   |             goto label_15;
                                                             |         }
    0x00052be4 cmp r1, 0x5e                                  |         
                                                             | label_3:
    0x00052be8 bne 0x52bd4                                   |         
                                                             |     } while (r1 != 0x5e);
    0x00052bec ldrb r2, [r5, 0xb]                            |     r2 = *((r5 + 0xb));
    0x00052bf0 ldrb r3, [r5, 0xa]                            |     r3 = *((r5 + 0xa));
    0x00052bf4 ldrb r0, [r5, 0xd]                            |     r0 = *((r5 + 0xd));
    0x00052bf8 orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x00052bfc ldrb r2, [r5, 0xc]                            |     r2 = *((r5 + 0xc));
    0x00052c00 mov r6, 1                                     |     r6 = 1;
    0x00052c04 orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x00052c08 add r2, sp, 0x1f4                             |     r2 += var_1f4h;
    0x00052c0c str r2, [sp, 8]                               |     var_8h = r2;
    0x00052c10 ldr r2, [pc, 0xa10]                           |     r2 = *(0x53624);
    0x00052c14 orr r3, r3, r0, lsl 24                        |     r3 |= (r0 << 24);
    0x00052c18 add r2, pc, r2                                |     r2 = pc + r2;
    0x00052c1c str r2, [sp, 4]                               |     var_4h = r2;
    0x00052c20 mov r2, 0                                     |     r2 = 0;
    0x00052c24 str r2, [sp]                                  |     *(sp) = r2;
    0x00052c28 mov r0, r4                                    |     r0 = r4;
    0x00052c2c str r7, [sp, 0x10]                            |     var_10h = r7;
    0x00052c30 str r6, [sp, 0xc]                             |     var_ch = r6;
    0x00052c34 bl 0x50398                                    |     fcn_00050398 (r0, r1, r2, r3, r4, r5);
    0x00052c38 ldr r3, [pc, 0x9ec]                           |     
    0x00052c3c mov r2, 0xff00                                |     r2 = 0xff00;
    0x00052c40 ldr r3, [r8, r3]                              |     r3 = *((r8 + r3));
    0x00052c44 ldr r1, [pc, 0x9e4]                           |     r1 = *(0x5362c);
    0x00052c48 ldr r3, [r3]                                  |     
    0x00052c4c add r3, r3, 0x42000                           |     r3 = 0x95628;
    0x00052c50 ldr r0, [r3, 0xf38]                           |     r0 = *(0x96560);
    0x00052c54 bl 0x88e7c                                    |     fcn_00088e7c (r0, r1);
                                                             | label_1:
    0x00052c58 mov r0, r6                                    |     r0 = r6;
    0x00052c5c add sp, sp, 0x1cc                             |     
    0x00052c60 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}      |     
    0x00052c64 add sp, sp, 8                                 |     
    0x00052c68 bx lr                                         |     return;
                                                             | label_11:
    0x00052c6c cmp r1, 0x61                                  |     
                                                             |     if (r1 == 0x61) {
    0x00052c70 beq 0x52fd0                                   |         goto label_16;
                                                             |     }
                                                             |     if (r1 <= 0x61) {
    0x00052c74 blo 0x52e8c                                   |         goto label_17;
                                                             |     }
    0x00052c78 cmp r1, 0x63                                  |     
                                                             |     if (r1 == 0x63) {
    0x00052c7c beq 0x52e8c                                   |         goto label_17;
                                                             |     }
    0x00052c80 cmp r1, 0x64                                  |     
                                                             |     if (r1 != 0x64) {
    0x00052c84 bne 0x52bd4                                   |         goto label_0;
                                                             |     }
                                                             | label_2:
    0x00052c88 mov r6, 1                                     |     r6 = 1;
    0x00052c8c b 0x52c58                                     |     goto label_1;
                                                             | label_10:
    0x00052c90 cmp r1, 0x6c                                  |     
                                                             |     if (r1 > 0x6c) {
    0x00052c94 bhi 0x52d70                                   |         goto label_18;
                                                             |     }
    0x00052c98 cmp r1, 0x6b                                  |     
                                                             |     if (r1 >= 0x6b) {
    0x00052c9c bhs 0x53378                                   |         goto label_19;
                                                             |     }
    0x00052ca0 cmp r1, 0x68                                  |     
                                                             |     if (r1 == 0x68) {
    0x00052ca4 beq 0x531f0                                   |         goto label_20;
                                                             |     }
                                                             |     if (r1 > 0x68) {
    0x00052ca8 bhi 0x52cf8                                   |         goto label_21;
                                                             |     }
    0x00052cac cmp r1, 0x66                                  |     
                                                             |     if (r1 != 0x66) {
    0x00052cb0 bne 0x52bd4                                   |         goto label_0;
                                                             |     }
    0x00052cb4 ldrb r3, [r2, 0xa]                            |     r3 = *((r2 + 0xa));
    0x00052cb8 ldrb r2, [r2, 0xb]                            |     r2 = *((r2 + 0xb));
    0x00052cbc ldrb r0, [r5, 0xd]                            |     r0 = *((r5 + 0xd));
    0x00052cc0 orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x00052cc4 ldrb r2, [r5, 0xc]                            |     r2 = *((r5 + 0xc));
    0x00052cc8 add ip, sp, 0x1f4                             |     
    0x00052ccc orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x00052cd0 str ip, [sp, 8]                               |     var_8h = ip;
    0x00052cd4 mov r2, 0                                     |     r2 = 0;
    0x00052cd8 add ip, r4, 0x93                              |     
    0x00052cdc orr r3, r3, r0, lsl 24                        |     r3 |= (r0 << 24);
    0x00052ce0 str r7, [sp, 0x10]                            |     var_10h = r7;
    0x00052ce4 str r2, [sp, 0xc]                             |     var_ch = r2;
    0x00052ce8 stm sp, {r2, ip}                              |     *(sp) = r2;
                                                             |     *((sp + 4)) = ip;
                                                             | label_7:
    0x00052cec mov r0, r4                                    |     r0 = r4;
    0x00052cf0 bl 0x50398                                    |     fcn_00050398 (r0, r1, r2, r3, r4, r5);
    0x00052cf4 b 0x52c88                                     |     goto label_2;
                                                             | label_21:
    0x00052cf8 cmp r1, 0x69                                  |     
                                                             |     if (r1 == 0x69) {
    0x00052cfc beq 0x53278                                   |         goto label_22;
                                                             |     }
    0x00052d00 cmp r1, 0x6a                                  |     
                                                             |     if (r1 != 0x6a) {
    0x00052d04 bne 0x52bd4                                   |         goto label_0;
                                                             |     }
    0x00052d08 ldrb r3, [r2, 0xa]                            |     r3 = *((r2 + 0xa));
    0x00052d0c ldrb r2, [r2, 0xb]                            |     r2 = *((r2 + 0xb));
    0x00052d10 ldrb r1, [r5, 0xd]                            |     r1 = *((r5 + 0xd));
    0x00052d14 orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x00052d18 ldrb r2, [r5, 0xc]                            |     r2 = *((r5 + 0xc));
    0x00052d1c add r0, r0, 0x1b8                             |     r0 += 0x1b8;
    0x00052d20 str r0, [sp, 8]                               |     var_8h = r0;
    0x00052d24 orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x00052d28 add r0, r4, 0x93                              |     r0 = r4 + 0x93;
    0x00052d2c mov r2, 0                                     |     r2 = 0;
    0x00052d30 orr r3, r3, r1, lsl 24                        |     r3 |= (r1 << 24);
    0x00052d34 str r2, [sp, 0xc]                             |     var_ch = r2;
    0x00052d38 mov r1, 6                                     |     r1 = 6;
    0x00052d3c str r0, [sp, 4]                               |     var_4h = r0;
    0x00052d40 str r2, [sp]                                  |     *(sp) = r2;
    0x00052d44 mov r0, r4                                    |     r0 = r4;
    0x00052d48 add r2, r5, 8                                 |     r2 = r5 + 8;
    0x00052d4c str r7, [sp, 0x10]                            |     var_10h = r7;
    0x00052d50 bl 0x50398                                    |     fcn_00050398 (r0, r1, r2, r3, r4, r5);
    0x00052d54 mov r0, 1                                     |     r0 = 1;
    0x00052d58 bl 0xc45f0                                    |     fcn_000c45f0 (r0);
    0x00052d5c mov r0, r4                                    |     r0 = r4;
    0x00052d60 bl 0x4f8a4                                    |     fcn_0004f8a4 (r0);
    0x00052d64 mov r0, r4                                    |     r0 = r4;
    0x00052d68 bl 0x526c4                                    |     fcn_000526c4 (r0);
    0x00052d6c b 0x532cc                                     |     goto label_23;
                                                             | label_18:
    0x00052d70 cmp r1, 0x6e                                  |     
                                                             |     if (r1 == 0x6e) {
    0x00052d74 beq 0x533c0                                   |         goto label_24;
                                                             |     }
                                                             |     if (r1 <= 0x6e) {
    0x00052d78 blo 0x532f4                                   |         goto label_25;
                                                             |     }
    0x00052d7c cmp r1, 0x6f                                  |     
    0x00052d80 b 0x52be8                                     |     goto label_3;
                                                             | label_14:
    0x00052d84 ldr r0, [r0, 0x1a8]                           |     r0 = *((r0 + 0x1a8));
    0x00052d88 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00052d8c bne 0x52db0                                   |         goto label_26;
                                                             |     }
                                                             | label_4:
    0x00052d90 ldrb r1, [r4, 5]                              |     r1 = *((r4 + 5));
    0x00052d94 cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x00052d98 bne 0x52c88                                   |         goto label_2;
                                                             |     }
    0x00052d9c ldr r0, [r4, 0x1a8]                           |     r0 = *((r4 + 0x1a8));
    0x00052da0 bl 0x6caac                                    |     r0 = fcn_0006caac (r0, r1);
    0x00052da4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00052da8 bne 0x52dbc                                   |         goto label_27;
                                                             |     }
    0x00052dac b 0x52c88                                     |     goto label_2;
                                                             | label_26:
    0x00052db0 bl 0x6a62c                                    |     r0 = fcn_0006a62c (r0);
    0x00052db4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00052db8 beq 0x52d90                                   |         goto label_4;
                                                             |     }
                                                             | label_27:
    0x00052dbc ldrb r1, [r5, 9]                              |     r1 = *((r5 + 9));
    0x00052dc0 ldrb r3, [r5, 8]                              |     r3 = *((r5 + 8));
    0x00052dc4 ldr r2, [r4, 0x2fc]                           |     r2 = *((r4 + 0x2fc));
    0x00052dc8 orr r3, r3, r1, lsl 8                         |     r3 |= (r1 << 8);
    0x00052dcc add r2, sl, r2                                |     r2 = sl + r2;
    0x00052dd0 mov r1, 0                                     |     r1 = 0;
    0x00052dd4 mov r0, r4                                    |     r0 = r4;
    0x00052dd8 bl 0x5002c                                    |     r0 = fcn_0005002c (r0, r1);
    0x00052ddc subs r2, r0, 0                                |     r2 = r0 - 0;
    0x00052de0 mov r6, r0                                    |     r6 = r0;
                                                             |     if (r2 != r0) {
    0x00052de4 beq 0x52e28                                   |         
                                                             | label_8:
    0x00052de8 ldrb r2, [r5, 0xb]                            |         r2 = *((r5 + 0xb));
    0x00052dec ldrb r3, [r5, 0xa]                            |         r3 = *((r5 + 0xa));
    0x00052df0 ldrb r1, [r5, 0xd]                            |         r1 = *((r5 + 0xd));
    0x00052df4 orr r3, r3, r2, lsl 8                         |         r3 |= (r2 << 8);
    0x00052df8 ldrb r2, [r5, 0xc]                            |         r2 = *((r5 + 0xc));
    0x00052dfc add r0, r4, 0x1b8                             |         r0 = r4 + 0x1b8;
    0x00052e00 orr r3, r3, r2, lsl 16                        |         r3 |= (r2 << 16);
    0x00052e04 str r0, [sp, 8]                               |         var_8h = r0;
    0x00052e08 mov r2, 0                                     |         r2 = 0;
    0x00052e0c add r0, r4, 0x93                              |         r0 = r4 + 0x93;
    0x00052e10 str r7, [sp, 0x10]                            |         var_10h = r7;
    0x00052e14 str r2, [sp, 0xc]                             |         var_ch = r2;
    0x00052e18 str r0, [sp, 4]                               |         var_4h = r0;
    0x00052e1c str r2, [sp]                                  |         *(sp) = r2;
    0x00052e20 orr r3, r3, r1, lsl 24                        |         r3 |= (r1 << 24);
    0x00052e24 b 0x5336c                                     |         goto label_28;
                                                             |     }
    0x00052e28 ldr r3, [pc, 0x7fc]                           |     
    0x00052e2c ldr r3, [r8, r3]                              |     r3 = *((r8 + r3));
    0x00052e30 ldr r3, [r3]                                  |     r3 = *(0x53628);
    0x00052e34 ldrb r6, [r3, 0x148]                          |     r6 = *((r3 + 0x148));
    0x00052e38 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00052e3c beq 0x52c88                                   |         goto label_2;
                                                             |     }
    0x00052e40 ldrb r1, [r5, 0xb]                            |     r1 = *((r5 + 0xb));
    0x00052e44 ldrb r3, [r5, 0xa]                            |     r3 = *((r5 + 0xa));
    0x00052e48 add r0, r4, 0x1b8                             |     r0 = r4 + 0x1b8;
    0x00052e4c orr r3, r3, r1, lsl 8                         |     r3 |= (r1 << 8);
    0x00052e50 ldrb r1, [r5, 0xc]                            |     r1 = *((r5 + 0xc));
    0x00052e54 orr r3, r3, r1, lsl 16                        |     r3 |= (r1 << 16);
    0x00052e58 ldrb r1, [r5, 0xd]                            |     r1 = *((r5 + 0xd));
    0x00052e5c str r2, [sp, 0xc]                             |     var_ch = r2;
    0x00052e60 str r0, [sp, 8]                               |     var_8h = r0;
    0x00052e64 str r2, [sp]                                  |     *(sp) = r2;
    0x00052e68 add r0, r4, 0x93                              |     r0 = r4 + 0x93;
    0x00052e6c orr r3, r3, r1, lsl 24                        |     r3 |= (r1 << 24);
    0x00052e70 add r2, r5, 8                                 |     r2 = r5 + 8;
    0x00052e74 mov r1, 2                                     |     r1 = 2;
    0x00052e78 str r7, [sp, 0x10]                            |     var_10h = r7;
    0x00052e7c str r0, [sp, 4]                               |     var_4h = r0;
                                                             | label_5:
    0x00052e80 mov r0, r4                                    |     r0 = r4;
    0x00052e84 bl 0x50398                                    |     fcn_00050398 (r0, r1, r2, r3, r4, r5);
    0x00052e88 b 0x52c58                                     |     goto label_1;
                                                             | label_17:
    0x00052e8c ldr r3, [pc, 0x798]                           |     r3 = *(0x53628);
    0x00052e90 ldr r8, [r8, r3]                              |     r8 = *((r8 + r3));
    0x00052e94 ldr r3, [r8]                                  |     r3 = *(r8);
    0x00052e98 ldrsb r3, [r3, 0x12]                          |     r3 = *((r3 + 0x12));
    0x00052e9c cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x00052ea0 blt 0x52f00                                   |         goto label_29;
                                                             |     }
    0x00052ea4 ldrb r6, [r4, 0x1ac]                          |     r6 = *((r4 + 0x1ac));
    0x00052ea8 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00052eac beq 0x52f00                                   |         goto label_29;
                                                             |     }
    0x00052eb0 ldrb r3, [r4, 0xa3]                           |     r3 = *((r4 + 0xa3));
    0x00052eb4 cmp r3, 0x51                                  |     
                                                             |     if (r3 == 0x51) {
    0x00052eb8 beq 0x52c88                                   |         goto label_2;
                                                             |     }
    0x00052ebc ldr r0, [sp, 0x1f8]                           |     r0 = *(in);
    0x00052ec0 bl 0x17d38                                    |     r0 = inet_ntoa (r0);
    0x00052ec4 mov r1, r0                                    |     r1 = r0;
    0x00052ec8 add r0, sp, 0x38                              |     r0 += dest;
    0x00052ecc bl 0x17e4c                                    |     strcpy (r0, r1)
    0x00052ed0 mov r3, 1                                     |     r3 = 1;
    0x00052ed4 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00052ed8 add r3, sp, 0x1f4                             |     r3 += var_1f4h;
    0x00052edc str r3, [sp, 8]                               |     var_8h = r3;
    0x00052ee0 add r3, r4, 0x93                              |     r3 = r4 + 0x93;
    0x00052ee4 str r3, [sp, 4]                               |     var_4h = r3;
    0x00052ee8 mov r3, 0                                     |     r3 = 0;
    0x00052eec str r7, [sp, 0x10]                            |     var_10h = r7;
    0x00052ef0 str r3, [sp]                                  |     *(sp) = r3;
    0x00052ef4 mov r2, r3                                    |     r2 = r3;
    0x00052ef8 mov r1, 0x72                                  |     r1 = 0x72;
    0x00052efc b 0x52e80                                     |     goto label_5;
                                                             | label_29:
    0x00052f00 ldrb r3, [r4, 0x57]                           |     r3 = *((r4 + 0x57));
    0x00052f04 ldr r2, [r4, 0x58]                            |     r2 = *((r4 + 0x58));
    0x00052f08 orrs r3, r3, r2, lsl 8                        |     r3 |= (r2 << 8);
                                                             |     if (r3 != r3) {
    0x00052f0c beq 0x52f1c                                   |         
    0x00052f10 ldrb r3, [r4, 0x1ac]                          |         r3 = *((r4 + 0x1ac));
    0x00052f14 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00052f18 bne 0x52f90                                   |             goto label_30;
                                                             |         }
                                                             |     }
    0x00052f1c ldrb r2, [r5, 0xb]                            |     r2 = *((r5 + 0xb));
    0x00052f20 ldrb r3, [r5, 0xa]                            |     r3 = *((r5 + 0xa));
    0x00052f24 ldrb r1, [r5, 0xd]                            |     r1 = *((r5 + 0xd));
    0x00052f28 orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x00052f2c ldrb r2, [r5, 0xc]                            |     r2 = *((r5 + 0xc));
    0x00052f30 str r7, [sp, 0x10]                            |     var_10h = r7;
    0x00052f34 orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x00052f38 mov r2, 1                                     |     r2 = 1;
    0x00052f3c str r2, [sp, 0xc]                             |     var_ch = r2;
    0x00052f40 add r2, sp, 0x1f4                             |     r2 += var_1f4h;
    0x00052f44 str r2, [sp, 8]                               |     var_8h = r2;
    0x00052f48 ldr r2, [pc, 0x6e4]                           |     r2 = *(0x53630);
    0x00052f4c add r2, pc, r2                                |     r2 = pc + r2;
                                                             | label_6:
    0x00052f50 str r2, [sp, 4]                               |     var_4h = r2;
    0x00052f54 mov r2, 0                                     |     r2 = 0;
    0x00052f58 orr r3, r3, r1, lsl 24                        |     r3 |= (r1 << 24);
    0x00052f5c str r2, [sp]                                  |     *(sp) = r2;
    0x00052f60 mov r1, 0x63                                  |     r1 = 0x63;
    0x00052f64 mov r0, r4                                    |     r0 = r4;
    0x00052f68 bl 0x50398                                    |     fcn_00050398 (r0, r1, r2, r3, r4, r5);
                                                             |     do {
    0x00052f6c ldr r0, [sp, 0x1f8]                           |         r0 = *(in);
    0x00052f70 bl 0x17d38                                    |         inet_ntoa (r0);
    0x00052f74 ldr r3, [r8]                                  |         r3 = *(r8);
    0x00052f78 mov r2, 0xff00                                |         r2 = 0xff00;
    0x00052f7c add r3, r3, 0x42000                           |         r3 += 0x42000;
    0x00052f80 ldr r1, [pc, 0x6a8]                           |         r1 = *(0x5362c);
    0x00052f84 ldr r0, [r3, 0xf38]                           |         r0 = *((r3 + 0xf38));
    0x00052f88 bl 0x88e7c                                    |         fcn_00088e7c (r0, r1);
    0x00052f8c b 0x52c88                                     |         goto label_2;
                                                             | label_30:
    0x00052f90 ldrb r3, [r4, 0xa3]                           |         r3 = *((r4 + 0xa3));
    0x00052f94 cmp r3, 0x51                                  |         
    0x00052f98 beq 0x52f6c                                   |         
                                                             |     } while (r3 == 0x51);
    0x00052f9c ldrb r2, [r5, 0xb]                            |     r2 = *((r5 + 0xb));
    0x00052fa0 ldrb r3, [r5, 0xa]                            |     r3 = *((r5 + 0xa));
    0x00052fa4 ldrb r1, [r5, 0xd]                            |     r1 = *((r5 + 0xd));
    0x00052fa8 orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x00052fac ldrb r2, [r5, 0xc]                            |     r2 = *((r5 + 0xc));
    0x00052fb0 str r7, [sp, 0x10]                            |     var_10h = r7;
    0x00052fb4 orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x00052fb8 mov r2, 1                                     |     r2 = 1;
    0x00052fbc str r2, [sp, 0xc]                             |     var_ch = r2;
    0x00052fc0 add r2, sp, 0x1f4                             |     r2 += var_1f4h;
    0x00052fc4 str r2, [sp, 8]                               |     var_8h = r2;
    0x00052fc8 add r2, r4, 0x93                              |     r2 = r4 + 0x93;
    0x00052fcc b 0x52f50                                     |     goto label_6;
                                                             | label_16:
    0x00052fd0 mov r3, 0                                     |     r3 = 0;
    0x00052fd4 strb r3, [r0, 0x1ac]                          |     *((r0 + 0x1ac)) = r3;
                                                             | label_9:
    0x00052fd8 ldr r2, [r4, 0x2fc]                           |     r2 = *((r4 + 0x2fc));
    0x00052fdc add r6, sp, 0x1c                              |     r6 += src;
    0x00052fe0 mov r3, 2                                     |     r3 = 2;
    0x00052fe4 mov r1, r3                                    |     r1 = r3;
    0x00052fe8 add r2, sl, r2                                |     r2 = sl + r2;
    0x00052fec sub r0, r6, 2                                 |     r0 -= var_2h;
    0x00052ff0 bl 0xb9ec8                                    |     fcn_000b9ec8 (r0, r1);
    0x00052ff4 ldr r3, [pc, 0x63c]                           |     r3 = *(0x53634);
    0x00052ff8 add sb, sp, 0x38                              |     sb += dest;
    0x00052ffc mov r1, r3                                    |     r1 = r3;
    0x00053000 mov r2, 0                                     |     r2 = 0;
    0x00053004 mov r0, sb                                    |     r0 = sb;
    0x00053008 bl 0xb9f54                                    |     fcn_000b9f54 (r0, r1);
    0x0005300c ldrh r1, [r6, -2]                             |     r1 = var_2h;
    0x00053010 ldr r3, [pc, 0x620]                           |     r3 = *(0x53634);
    0x00053014 ldr r2, [r4, 0x2fc]                           |     r2 = *((r4 + 0x2fc));
    0x00053018 cmp r1, r3                                    |     
                                                             |     if (r1 > r3) {
    0x0005301c movls r3, r1                                  |         r3 = r1;
                                                             |     }
                                                             |     if (r1 > r3) {
    0x00053020 addls r2, sl, r2                              |         r2 = sl + r2;
                                                             |     }
                                                             |     if (r1 <= r3) {
    0x00053024 addhi r2, sl, r2                              |         r2 = sl + r2;
                                                             |     }
                                                             |     if (r1 <= r3) {
    0x00053028 movhi r1, r3                                  |         r1 = r3;
                                                             |     }
    0x0005302c mov r0, sb                                    |     r0 = sb;
    0x00053030 bl 0xb9ec8                                    |     fcn_000b9ec8 (r0, r1);
    0x00053034 mov r0, r6                                    |     r0 = r6;
    0x00053038 bl 0x3a90c                                    |     fcn_0003a90c (r0);
    0x0005303c mov r0, r6                                    |     r0 = r6;
    0x00053040 bl 0x1bb20                                    |     r0 = fcn_0001bb20 (r0);
    0x00053044 mov r1, r0                                    |     r1 = r0;
    0x00053048 add r0, sb, 0x43                              |     r0 += var_43h;
    0x0005304c bl 0x17e4c                                    |     strcpy (r0, r1)
    0x00053050 mov r0, r6                                    |     r0 = r6;
    0x00053054 bl 0x1bcc4                                    |     fcn_0001bcc4 (r0);
    0x00053058 mov r0, r6                                    |     r0 = r6;
    0x0005305c bl 0x3a8cc                                    |     fcn_0003a8cc (r0);
    0x00053060 mov r0, r6                                    |     r0 = r6;
    0x00053064 bl 0x1bb20                                    |     r0 = fcn_0001bb20 (r0);
    0x00053068 mov r1, r0                                    |     r1 = r0;
    0x0005306c add r0, sb, 0x53                              |     r0 += var_53h;
    0x00053070 bl 0x17e4c                                    |     strcpy (r0, r1)
    0x00053074 mov r0, r6                                    |     r0 = r6;
    0x00053078 bl 0x1bcc4                                    |     fcn_0001bcc4 (r0);
    0x0005307c mov r1, sb                                    |     r1 = sb;
    0x00053080 mov r0, r4                                    |     r0 = r4;
    0x00053084 bl 0x500a8                                    |     r0 = fcn_000500a8 (r0, r1);
    0x00053088 cmp r0, 0                                     |     
    0x0005308c strb r0, [r4, 0x422]                          |     *((r4 + 0x422)) = r0;
                                                             |     if (r0 != 0) {
    0x00053090 beq 0x530c0                                   |         
    0x00053094 ldr r3, [pc, 0x590]                           |         r3 = *(0x53628);
    0x00053098 ldr r6, [r8, r3]                              |         r6 = *((r8 + r3));
    0x0005309c ldr r0, [r6]                                  |         r0 = *(r6);
    0x000530a0 bl 0x3c6d0                                    |         r0 = fcn_0003c6d0 (r0);
    0x000530a4 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000530a8 beq 0x530c0                                   |             goto label_31;
                                                             |         }
    0x000530ac ldr r0, [r6]                                  |         r0 = *(r6);
    0x000530b0 ldrb r1, [r0, 0x14]                           |         r1 = *((r0 + 0x14));
    0x000530b4 ands r1, r1, 0x10                             |         r1 &= 0x10;
                                                             |         if (r1 != r1) {
    0x000530b8 bne 0x530c0                                   |             goto label_31;
                                                             |         }
    0x000530bc bl 0x3c7ec                                    |         fcn_0003c7ec (r0, r1);
                                                             |     }
                                                             | label_31:
    0x000530c0 ldrb r3, [sp, 0x77]                           |     r3 = var_77h;
    0x000530c4 ldr r1, [sp, 0x78]                            |     r1 = var_78h;
    0x000530c8 ldr r0, [r4, 0x1a8]                           |     r0 = *((r4 + 0x1a8));
    0x000530cc orr r1, r3, r1, lsl 8                         |     r1 = r3 | (r1 << 8);
    0x000530d0 bl 0x6ab78                                    |     fcn_0006ab78 (r0, r1);
    0x000530d4 add r6, r4, 0x93                              |     r6 = r4 + 0x93;
    0x000530d8 add fp, sb, 0x7b                              |     
    0x000530dc mov r2, 0x10                                  |     r2 = 0x10;
    0x000530e0 mov r1, r6                                    |     r1 = r6;
    0x000530e4 add r8, r4, 0x1b8                             |     r8 = r4 + 0x1b8;
    0x000530e8 mov sl, r0                                    |     sl = r0;
    0x000530ec mov r0, fp                                    |     r0 = fp;
    0x000530f0 bl 0x17f00                                    |     r0 = memcmp (r0, r1, r2);
    0x000530f4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000530f8 beq 0x53138                                   |         
    0x000530fc ldrb r2, [r5, 0xb]                            |         r2 = *((r5 + 0xb));
    0x00053100 ldrb r3, [r5, 0xa]                            |         r3 = *((r5 + 0xa));
    0x00053104 mov r1, 0                                     |         r1 = 0;
    0x00053108 orr r3, r3, r2, lsl 8                         |         r3 |= (r2 << 8);
    0x0005310c ldrb r2, [r5, 0xc]                            |         r2 = *((r5 + 0xc));
    0x00053110 mov r0, r4                                    |         r0 = r4;
    0x00053114 orr r3, r3, r2, lsl 16                        |         r3 |= (r2 << 16);
    0x00053118 ldrb r2, [r5, 0xd]                            |         r2 = *((r5 + 0xd));
    0x0005311c str r1, [sp]                                  |         *(sp) = r1;
    0x00053120 orr r3, r3, r2, lsl 24                        |         r3 |= (r2 << 24);
    0x00053124 str r7, [sp, 0x10]                            |         var_10h = r7;
    0x00053128 stmib sp, {r6, r8, sl}                        |         __asm ("stmib sp, {r6, r8, sl}");
    0x0005312c mov r2, fp                                    |         r2 = fp;
    0x00053130 mov r1, 0x73                                  |         r1 = 0x73;
    0x00053134 bl 0x50398                                    |         fcn_00050398 (r0, r1, r2, r3, r4, r5);
                                                             |     }
    0x00053138 add fp, r4, 0x3a0                             |     
    0x0005313c mov r0, fp                                    |     r0 = fp;
    0x00053140 bl 0x17edc                                    |     pthread_mutex_lock ();
    0x00053144 ldr r0, [r4, 0x1a8]                           |     r0 = *((r4 + 0x1a8));
    0x00053148 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0005314c beq 0x53194                                   |         goto label_32;
                                                             |     }
    0x00053150 bl 0x6a62c                                    |     r0 = fcn_0006a62c (r0);
    0x00053154 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00053158 beq 0x53194                                   |         goto label_32;
                                                             |     }
    0x0005315c mov r3, 0                                     |     r3 = 0;
    0x00053160 mov r1, 6                                     |     r1 = 6;
    0x00053164 mov r0, 0x63                                  |     r0 = 0x63;
    0x00053168 mov ip, r3                                    |     
                                                             |     do {
    0x0005316c mla r2, r1, r3, sb                            |         __asm ("mla r2, r1, r3, sb");
    0x00053170 ldrb lr, [r2, 0xd2]                           |         lr = var_d2h;
    0x00053174 cmp lr, 0                                     |         
                                                             |         if (lr == 0) {
    0x00053178 strbne r0, [r2, 0xd2]                         |             *((r2 + 0xd2)) = r0;
                                                             |         }
                                                             |         if (lr == 0) {
    0x0005317c ldrne r2, [r4, 0x1a8]                         |             r2 = *((r4 + 0x1a8));
                                                             |         }
                                                             |         if (lr == 0) {
    0x00053180 addne r2, r2, r3                              |             r2 += r3;
                                                             |         }
    0x00053184 add r3, r3, 1                                 |         r3++;
                                                             |         if (lr == 0) {
    0x00053188 strbne ip, [r2, 0x391]                        |             *((r2 + 0x391)) = ip;
                                                             |         }
    0x0005318c cmp r3, 0x20                                  |         
    0x00053190 bne 0x5316c                                   |         
                                                             |     } while (r3 != 0x20);
                                                             | label_32:
    0x00053194 mov r0, fp                                    |     r0 = fp;
    0x00053198 bl 0x17c9c                                    |     pthread_mutex_unlock ();
    0x0005319c mov r1, sb                                    |     r1 = sb;
    0x000531a0 mov r0, r4                                    |     r0 = r4;
    0x000531a4 bl 0x502a4                                    |     fcn_000502a4 (r0, r1);
    0x000531a8 ldrb r2, [r5, 0xb]                            |     r2 = *((r5 + 0xb));
    0x000531ac ldrb r3, [r5, 0xa]                            |     r3 = *((r5 + 0xa));
    0x000531b0 mov r1, 0                                     |     r1 = 0;
    0x000531b4 orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x000531b8 ldrb r2, [r5, 0xc]                            |     r2 = *((r5 + 0xc));
    0x000531bc mov r0, r4                                    |     r0 = r4;
    0x000531c0 orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x000531c4 ldrb r2, [r5, 0xd]                            |     r2 = *((r5 + 0xd));
    0x000531c8 str r1, [sp]                                  |     *(sp) = r1;
    0x000531cc orr r3, r3, r2, lsl 24                        |     r3 |= (r2 << 24);
    0x000531d0 str r7, [sp, 0x10]                            |     var_10h = r7;
    0x000531d4 stmib sp, {r6, r8, sl}                        |     __asm ("stmib sp, {r6, r8, sl}");
    0x000531d8 add r2, r5, 8                                 |     r2 = r5 + 8;
    0x000531dc mov r1, 6                                     |     r1 = 6;
    0x000531e0 bl 0x50398                                    |     fcn_00050398 (r0, r1, r2, r3, r4, r5);
    0x000531e4 ldr r0, [r4, 0x1a8]                           |     r0 = *((r4 + 0x1a8));
    0x000531e8 bl 0x6aec0                                    |     fcn_0006aec0 (r0);
    0x000531ec b 0x52c88                                     |     goto label_2;
                                                             | label_20:
    0x000531f0 ldrb r3, [r2, 0xa]                            |     r3 = *((r2 + 0xa));
    0x000531f4 ldrb r2, [r2, 0xb]                            |     r2 = *((r2 + 0xb));
    0x000531f8 ldrb r1, [r5, 0xd]                            |     r1 = *((r5 + 0xd));
    0x000531fc orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x00053200 ldrb r2, [r5, 0xc]                            |     r2 = *((r5 + 0xc));
    0x00053204 add r0, r0, 0x1b8                             |     r0 += 0x1b8;
    0x00053208 orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x0005320c str r0, [sp, 8]                               |     var_8h = r0;
    0x00053210 mov r2, 0                                     |     r2 = 0;
    0x00053214 add r0, r4, 0x93                              |     r0 = r4 + 0x93;
    0x00053218 orr r3, r3, r1, lsl 24                        |     r3 |= (r1 << 24);
    0x0005321c str r2, [sp, 0xc]                             |     var_ch = r2;
    0x00053220 mov r1, 6                                     |     r1 = 6;
    0x00053224 str r0, [sp, 4]                               |     var_4h = r0;
    0x00053228 str r2, [sp]                                  |     *(sp) = r2;
    0x0005322c mov r0, r4                                    |     r0 = r4;
    0x00053230 add r2, r5, 8                                 |     r2 = r5 + 8;
    0x00053234 str r7, [sp, 0x10]                            |     var_10h = r7;
    0x00053238 bl 0x50398                                    |     fcn_00050398 (r0, r1, r2, r3, r4, r5);
    0x0005323c mov r0, 1                                     |     r0 = 1;
    0x00053240 bl 0xc45f0                                    |     fcn_000c45f0 (r0);
    0x00053244 add r2, r4, 0x1000                            |     r2 = r4 + 0x1000;
    0x00053248 ldr r2, [r2, 0x118]                           |     r2 = *((r2 + 0x118));
    0x0005324c ldr r3, [pc, 0x3d8]                           |     r3 = *(0x53628);
    0x00053250 add r4, r4, 0x1100                            |     r4 += 0x1100;
    0x00053254 ldr r3, [r8, r3]                              |     r3 = *((r8 + r3));
    0x00053258 str r2, [sp, 8]                               |     var_8h = r2;
    0x0005325c ldrd r0, r1, [r4, 0x20]                       |     __asm ("ldrd r0, r1, [r4, 0x20]");
    0x00053260 mov r2, 4                                     |     r2 = 4;
    0x00053264 strd r0, r1, [sp]                             |     __asm ("strd r0, r1, [sp]");
                                                             |     do {
    0x00053268 ldr r0, [r3]                                  |         r0 = *(r3);
    0x0005326c mov r1, 0x19                                  |         r1 = 0x19;
    0x00053270 bl 0x3b718                                    |         fcn_0003b718 (r0, r1, r2, r3);
    0x00053274 b 0x52c88                                     |         goto label_2;
                                                             | label_22:
    0x00053278 ldrb r3, [r2, 0xa]                            |         r3 = *((r2 + 0xa));
    0x0005327c ldrb r2, [r2, 0xb]                            |         r2 = *((r2 + 0xb));
    0x00053280 ldrb r1, [r5, 0xd]                            |         r1 = *((r5 + 0xd));
    0x00053284 orr r3, r3, r2, lsl 8                         |         r3 |= (r2 << 8);
    0x00053288 ldrb r2, [r5, 0xc]                            |         r2 = *((r5 + 0xc));
    0x0005328c add r0, r0, 0x1b8                             |         r0 += 0x1b8;
    0x00053290 orr r3, r3, r2, lsl 16                        |         r3 |= (r2 << 16);
    0x00053294 str r0, [sp, 8]                               |         var_8h = r0;
    0x00053298 mov r2, 0                                     |         r2 = 0;
    0x0005329c add r0, r4, 0x93                              |         r0 = r4 + 0x93;
    0x000532a0 str r2, [sp, 0xc]                             |         var_ch = r2;
    0x000532a4 str r0, [sp, 4]                               |         var_4h = r0;
    0x000532a8 str r2, [sp]                                  |         *(sp) = r2;
    0x000532ac orr r3, r3, r1, lsl 24                        |         r3 |= (r1 << 24);
    0x000532b0 mov r0, r4                                    |         r0 = r4;
    0x000532b4 str r7, [sp, 0x10]                            |         var_10h = r7;
    0x000532b8 add r2, r5, 8                                 |         r2 = r5 + 8;
    0x000532bc mov r1, 6                                     |         r1 = 6;
    0x000532c0 bl 0x50398                                    |         fcn_00050398 (r0, r1, r2, r3, r4, r5);
    0x000532c4 mov r0, 1                                     |         r0 = 1;
    0x000532c8 bl 0xc45f0                                    |         fcn_000c45f0 (r0);
                                                             | label_23:
    0x000532cc add r2, r4, 0x1000                            |         r2 = r4 + 0x1000;
    0x000532d0 ldr r2, [r2, 0x118]                           |         r2 = *((r2 + 0x118));
    0x000532d4 ldr r3, [pc, 0x350]                           |         r3 = *(0x53628);
    0x000532d8 add r4, r4, 0x1100                            |         r4 += 0x1100;
    0x000532dc ldr r3, [r8, r3]                              |         r3 = *((r8 + r3));
    0x000532e0 str r2, [sp, 8]                               |         var_8h = r2;
    0x000532e4 ldrd r0, r1, [r4, 0x20]                       |         __asm ("ldrd r0, r1, [r4, 0x20]");
    0x000532e8 mov r2, 2                                     |         r2 = 2;
    0x000532ec strd r0, r1, [sp]                             |         __asm ("strd r0, r1, [sp]");
    0x000532f0 b 0x53268                                     |         
                                                             |     } while (1);
                                                             | label_25:
    0x000532f4 ldr r3, [pc, 0x330]                           |     
    0x000532f8 ldr r3, [r8, r3]                              |     r3 = *((r8 + r3));
    0x000532fc ldr r3, [r3]                                  |     r3 = *(0x53628);
    0x00053300 ldrsb r3, [r3, 0x12]                          |     r3 = *((r3 + 0x12));
    0x00053304 cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x00053308 blt 0x52c88                                   |         goto label_2;
                                                             |     }
    0x0005330c ldr r0, [r0, 0x1a8]                           |     r0 = *((r0 + 0x1a8));
    0x00053310 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00053314 beq 0x53378                                   |         goto label_19;
                                                             |     }
    0x00053318 ldrb r8, [r0, 0x38f]                          |     r8 = *((r0 + 0x38f));
    0x0005331c cmp r8, 0                                     |     
                                                             |     if (r8 != 0) {
    0x00053320 bne 0x53378                                   |         goto label_19;
                                                             |     }
    0x00053324 mov r1, r8                                    |     r1 = r8;
    0x00053328 bl 0x6caac                                    |     r0 = fcn_0006caac (r0, r1);
    0x0005332c subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 == r0) {
    0x00053330 beq 0x52c88                                   |         goto label_2;
                                                             |     }
    0x00053334 ldrb r2, [r5, 0xb]                            |     r2 = *((r5 + 0xb));
    0x00053338 ldrb r3, [r5, 0xa]                            |     r3 = *((r5 + 0xa));
    0x0005333c add r1, r4, 0x1b8                             |     r1 = r4 + 0x1b8;
    0x00053340 orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x00053344 ldrb r2, [r5, 0xc]                            |     r2 = *((r5 + 0xc));
    0x00053348 orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x0005334c ldrb r2, [r5, 0xd]                            |     r2 = *((r5 + 0xd));
    0x00053350 str r1, [sp, 8]                               |     var_8h = r1;
    0x00053354 orr r3, r3, r2, lsl 24                        |     r3 |= (r2 << 24);
    0x00053358 add r1, r4, 0x93                              |     r1 = r4 + 0x93;
    0x0005335c str r7, [sp, 0x10]                            |     var_10h = r7;
    0x00053360 str r8, [sp, 0xc]                             |     var_ch = r8;
    0x00053364 str r1, [sp, 4]                               |     var_4h = r1;
    0x00053368 str r8, [sp]                                  |     *(sp) = r8;
                                                             | label_28:
    0x0005336c add r2, r5, 8                                 |     r2 = r5 + 8;
    0x00053370 mov r1, 6                                     |     r1 = 6;
    0x00053374 b 0x52e80                                     |     goto label_5;
                                                             | label_19:
    0x00053378 ldrb r2, [r5, 0xb]                            |     r2 = *((r5 + 0xb));
    0x0005337c ldrb r3, [r5, 0xa]                            |     r3 = *((r5 + 0xa));
    0x00053380 ldrb r1, [r5, 0xd]                            |     r1 = *((r5 + 0xd));
    0x00053384 orr r3, r3, r2, lsl 8                         |     r3 |= (r2 << 8);
    0x00053388 ldrb r2, [r5, 0xc]                            |     r2 = *((r5 + 0xc));
    0x0005338c add r0, r4, 0x1b8                             |     r0 = r4 + 0x1b8;
    0x00053390 orr r3, r3, r2, lsl 16                        |     r3 |= (r2 << 16);
    0x00053394 str r0, [sp, 8]                               |     var_8h = r0;
    0x00053398 mov r2, 0                                     |     r2 = 0;
    0x0005339c add r0, r4, 0x93                              |     r0 = r4 + 0x93;
    0x000533a0 str r2, [sp, 0xc]                             |     var_ch = r2;
    0x000533a4 str r2, [sp]                                  |     *(sp) = r2;
    0x000533a8 orr r3, r3, r1, lsl 24                        |     r3 |= (r1 << 24);
    0x000533ac str r7, [sp, 0x10]                            |     var_10h = r7;
    0x000533b0 str r0, [sp, 4]                               |     var_4h = r0;
    0x000533b4 add r2, r5, 8                                 |     r2 = r5 + 8;
    0x000533b8 mov r1, 6                                     |     r1 = 6;
    0x000533bc b 0x52cec                                     |     goto label_7;
                                                             | label_24:
    0x000533c0 ldr r3, [pc, 0x264]                           |     
    0x000533c4 ldr r3, [r8, r3]                              |     r3 = *((r8 + r3));
    0x000533c8 ldr r3, [r3]                                  |     r3 = *(0x53628);
    0x000533cc ldrsb r3, [r3, 0x12]                          |     r3 = *((r3 + 0x12));
    0x000533d0 cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x000533d4 blt 0x52c88                                   |         goto label_2;
                                                             |     }
    0x000533d8 mov r1, 0                                     |     r1 = 0;
    0x000533dc ldr r0, [r0, 0x1a8]                           |     r0 = *((r0 + 0x1a8));
    0x000533e0 bl 0x6c914                                    |     r0 = fcn_0006c914 (r0, r1);
    0x000533e4 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 == r0) {
    0x000533e8 beq 0x52c88                                   |         goto label_2;
                                                             |     }
    0x000533ec b 0x52de8                                     |     goto label_8;
                                                             | label_12:
    0x000533f0 ldr r2, [r0, 0x2fc]                           |     r2 = *((r0 + 0x2fc));
    0x000533f4 mov r3, 2                                     |     r3 = 2;
    0x000533f8 add r5, sp, 0x1c                              |     r5 += src;
    0x000533fc mov r1, r3                                    |     r1 = r3;
    0x00053400 add r2, sl, r2                                |     r2 = sl + r2;
    0x00053404 mov r0, r5                                    |     r0 = r5;
    0x00053408 bl 0xb9ec8                                    |     fcn_000b9ec8 (r0, r1);
    0x0005340c ldrh r1, [r5]                                 |     r1 = *(r5);
    0x00053410 ldr r0, [r4, 0x14]                            |     r0 = *((r4 + 0x14));
    0x00053414 bl 0x7cbb8                                    |     r0 = fcn_0007cbb8 (r0, r1);
    0x00053418 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0005341c beq 0x5349c                                   |         
    0x00053420 ldrh r1, [r5]                                 |         r1 = *(r5);
    0x00053424 ldr r0, [r4, 0x14]                            |         r0 = *((r4 + 0x14));
    0x00053428 bl 0x7cd24                                    |         fcn_0007cd24 (r0, r1);
    0x0005342c ldr r3, [pc, 0x1f8]                           |         r3 = *(0x53628);
    0x00053430 ldr r6, [r8, r3]                              |         r6 = *((r8 + r3));
    0x00053434 ldr r3, [r6]                                  |         r3 = *(r6);
    0x00053438 ldrb r3, [r3, 0x12]                           |         r3 = *((r3 + 0x12));
    0x0005343c tst r3, 0x20                                  |         
                                                             |         if ((r3 & 0x20) == 0) {
    0x00053440 beq 0x5349c                                   |             goto label_33;
                                                             |         }
    0x00053444 mov r3, 8                                     |         r3 = 8;
    0x00053448 add r5, sp, 0x38                              |         r5 += dest;
    0x0005344c mov r1, r3                                    |         r1 = r3;
    0x00053450 mov r2, 0                                     |         r2 = 0;
    0x00053454 mov r0, r5                                    |         r0 = r5;
    0x00053458 bl 0xb9f54                                    |         fcn_000b9f54 (r0, r1);
    0x0005345c ldr r0, [r6]                                  |         r0 = *(r6);
    0x00053460 mov r1, 0x18                                  |         r1 = 0x18;
    0x00053464 ldrb r3, [r0, 0x12]                           |         r3 = *((r0 + 0x12));
    0x00053468 bic r3, r3, 0x20                              |         r3 = BIT_MASK (r3, 0x20);
    0x0005346c strb r3, [r0, 0x12]                           |         *((r0 + 0x12)) = r3;
    0x00053470 ldrb r3, [sp, 0x3a]                           |         r3 = var_3ah;
    0x00053474 orr r3, r3, 0x20                              |         r3 |= 0x20;
    0x00053478 strb r3, [sp, 0x3a]                           |         var_3ah = r3;
    0x0005347c add r3, r4, 0x1000                            |         r3 = r4 + 0x1000;
    0x00053480 add r2, r3, 0x128                             |         r2 = r3 + 0x128;
    0x00053484 ldr r3, [r3, 0x118]                           |         r3 = *((r3 + 0x118));
    0x00053488 ldrh r2, [r2]                                 |         r2 = *(r2);
    0x0005348c str r3, [sp, 8]                               |         var_8h = r3;
    0x00053490 ldrd r6, r7, [r5]                             |         __asm ("ldrd r6, r7, [r5]");
    0x00053494 strd r6, r7, [sp]                             |         __asm ("strd r6, r7, [sp]");
    0x00053498 bl 0x3b718                                    |         fcn_0003b718 (r0, r1, r2, r3);
                                                             |     }
                                                             | label_33:
    0x0005349c ldrb r3, [r4, 5]                              |     r3 = *((r4 + 5));
    0x000534a0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000534a4 beq 0x53518                                   |         
    0x000534a8 mov r3, 0                                     |         r3 = 0;
    0x000534ac strb r3, [r4, 5]                              |         *((r4 + 5)) = r3;
    0x000534b0 ldrb r3, [r4, 7]                              |         r3 = *((r4 + 7));
    0x000534b4 add r1, r4, 0x83                              |         r1 = r4 + 0x83;
    0x000534b8 bic r3, r3, 1                                 |         r3 = BIT_MASK (r3, 1);
    0x000534bc strb r3, [r4, 7]                              |         *((r4 + 7)) = r3;
    0x000534c0 mov r0, r4                                    |         r0 = r4;
    0x000534c4 bl 0x51bd8                                    |         fcn_00051bd8 (r0);
    0x000534c8 mov r7, r1                                    |         r7 = r1;
    0x000534cc add r1, r4, 0x2f0                             |         r1 = r4 + 0x2f0;
    0x000534d0 ldrd r2, r3, [r1]                             |         __asm ("ldrd r2, r3, [r1]");
    0x000534d4 mov r6, r0                                    |         r6 = r0;
    0x000534d8 cmp r3, r7                                    |         
    0x000534dc cmpeq r2, r6                                  |         __asm ("cmpeq r2, r6");
                                                             |         if (r3 == r7) {
    0x000534e0 beq 0x53518                                   |             goto label_34;
                                                             |         }
    0x000534e4 ldr r3, [pc, 0x140]                           |         
    0x000534e8 strd r6, r7, [r1]                             |         __asm ("strd r6, r7, [r1]");
    0x000534ec ldr r0, [r8, r3]                              |         r0 = *((r8 + r3));
    0x000534f0 add r3, r4, 0x1000                            |         r3 = r4 + 0x1000;
    0x000534f4 ldr r3, [r3, 0x118]                           |         r3 = *(0x53740);
    0x000534f8 mov r1, 0x1a                                  |         r1 = 0x1a;
    0x000534fc str r3, [sp, 8]                               |         var_8h = r3;
    0x00053500 add r3, r4, 0x1100                            |         r3 = r4 + 0x1100;
    0x00053504 ldrd r2, r3, [r3, 0x20]                       |         __asm ("ldrd r2, r3, [r3, 0x20]");
    0x00053508 strd r2, r3, [sp]                             |         __asm ("strd r2, r3, [sp]");
    0x0005350c ldr r0, [r0]                                  |         r0 = *(r0);
    0x00053510 mov r2, 4                                     |         r2 = 4;
    0x00053514 bl 0x3b718                                    |         fcn_0003b718 (r0, r1, r2, r3);
                                                             |     }
                                                             | label_34:
    0x00053518 ldrb r3, [r4, 0x423]                          |     r3 = *((r4 + 0x423));
    0x0005351c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00053520 beq 0x53538                                   |         
    0x00053524 mov r0, r4                                    |         r0 = r4;
    0x00053528 bl 0x4f5ac                                    |         fcn_0004f5ac (r0);
    0x0005352c mov r1, 0                                     |         r1 = 0;
    0x00053530 mov r0, r4                                    |         r0 = r4;
    0x00053534 bl 0x4f3d0                                    |         fcn_0004f3d0 (r0, r1);
                                                             |     }
    0x00053538 ldrb r3, [r4, 0x1ac]                          |     r3 = *((r4 + 0x1ac));
    0x0005353c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00053540 bne 0x52c88                                   |         goto label_2;
                                                             |     }
    0x00053544 mov r6, 1                                     |     r6 = 1;
    0x00053548 add r2, r4, 0x1000                            |     r2 = r4 + 0x1000;
    0x0005354c strb r6, [r4, 0x1ac]                          |     *((r4 + 0x1ac)) = r6;
    0x00053550 ldr r3, [pc, 0xd4]                            |     r3 = *(0x53628);
    0x00053554 ldr r2, [r2, 0x118]                           |     r2 = *((r2 + 0x118));
    0x00053558 add r4, r4, 0x1100                            |     r4 += 0x1100;
    0x0005355c ldr r3, [r8, r3]                              |     r3 = *((r8 + r3));
    0x00053560 str r2, [sp, 8]                               |     var_8h = r2;
    0x00053564 ldrd r0, r1, [r4, 0x20]                       |     __asm ("ldrd r0, r1, [r4, 0x20]");
    0x00053568 mov r2, 4                                     |     r2 = 4;
    0x0005356c strd r0, r1, [sp]                             |     __asm ("strd r0, r1, [sp]");
    0x00053570 ldr r0, [r3]                                  |     r0 = *(0x53628);
    0x00053574 mov r1, 0x1a                                  |     r1 = 0x1a;
    0x00053578 bl 0x3b718                                    |     fcn_0003b718 (r0, r1, r2, r3);
    0x0005357c b 0x52c58                                     |     goto label_1;
                                                             | label_15:
    0x00053580 ldr r0, [r0, 0x1a8]                           |     r0 = *((r0 + 0x1a8));
    0x00053584 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00053588 beq 0x535a8                                   |         
    0x0005358c ldr r2, [r4, 0x2fc]                           |         r2 = *((r4 + 0x2fc));
    0x00053590 mov r3, 0x80                                  |         r3 = 0x80;
    0x00053594 add r0, r0, 0x3b0                             |         r0 += 0x3b0;
    0x00053598 add r2, sl, r2                                |         r2 = sl + r2;
    0x0005359c mov r1, r3                                    |         r1 = r3;
    0x000535a0 add r0, r0, 1                                 |         r0++;
    0x000535a4 bl 0xb9ec8                                    |         fcn_000b9ec8 (r0, r1);
                                                             |     }
    0x000535a8 ldr r3, [pc, 0x7c]                            |     r3 = *(0x53628);
    0x000535ac ldr r5, [r8, r3]                              |     r5 = *((r8 + r3));
    0x000535b0 ldr r0, [r5]                                  |     r0 = *(r5);
    0x000535b4 bl 0x3c6d0                                    |     r0 = fcn_0003c6d0 (r0);
    0x000535b8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000535bc beq 0x52c88                                   |         goto label_2;
                                                             |     }
    0x000535c0 ldr r3, [pc, 0x74]                            |     r3 = *(0x53638);
    0x000535c4 ldr r3, [r8, r3]                              |     r3 = *((r8 + r3));
    0x000535c8 ldr r1, [r3]                                  |     r1 = *(0x53638);
    0x000535cc cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x000535d0 beq 0x52c88                                   |         goto label_2;
                                                             |     }
    0x000535d4 ldr r2, [r4, 0x1a8]                           |     r2 = *((r4 + 0x1a8));
    0x000535d8 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000535dc beq 0x52c88                                   |         goto label_2;
                                                             |     }
    0x000535e0 ldrb r3, [r2, 0x3b8]                          |     r3 = *((r2 + 0x3b8));
    0x000535e4 ldr r0, [r2, 0x3b4]                           |     r0 = *((r2 + 0x3b4));
    0x000535e8 ldr r2, [r1, 0x5c]                            |     r2 = *((r1 + 0x5c));
    0x000535ec lsl r3, r3, 0x18                              |     r3 <<= 0x18;
    0x000535f0 orr r3, r3, r0, lsr 8                         |     r3 |= (r0 >> 8);
    0x000535f4 cmp r3, r2                                    |     
                                                             |     if (r3 != r2) {
    0x000535f8 bne 0x52c88                                   |         goto label_2;
                                                             |     }
    0x000535fc mov r1, 1                                     |     r1 = 1;
    0x00053600 ldr r0, [r5]                                  |     r0 = *(r5);
    0x00053604 bl 0x3c7ec                                    |     fcn_0003c7ec (r0, r1);
    0x00053608 b 0x52c88                                     |     goto label_2;
                                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/windows/KT-1 @ 0x66f48 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00066f48 ()              | void fcn_00066f48 (char * arg1, int32_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00066f48 mov r3, 0                 |     r3 = 0;
    0x00066f4c str lr, [sp, -4]!         |     
    0x00066f50 strb r3, [r0]             |     *(r0) = r3;
    0x00066f54 mov r3, r1                |     r3 = r1;
                                         |     do {
    0x00066f58 cmp r2, 1                 |         
    0x00066f5c sub lr, r3, r1            |         lr = r3 - r1;
    0x00066f60 ldrb ip, [r3], 1          |         ip = *(r3);
                                         |         r3++;
                                         |         if (r2 == 1) {
    0x00066f64 bne 0x66f90               |             
    0x00066f68 add r1, r1, lr            |             r1 += lr;
    0x00066f6c mov r3, r0                |             r3 = r0;
                                         | label_1:
    0x00066f70 ldrb r2, [r1], 1          |             r2 = *(r1);
                                         |             r1++;
    0x00066f74 cmp r2, 0x2f              |             
                                         |             if (r2 > 0x2f) {
    0x00066f78 bhi 0x66fb4               |                 goto label_2;
                                         |             }
                                         | label_0:
    0x00066f7c mov r2, 0                 |             r2 = 0;
    0x00066f80 cmp r0, r3                |             
    0x00066f84 strb r2, [r3]             |             *(r3) = r2;
    0x00066f88 popne {pc}                |             
    0x00066f8c b 0x66f98                 |             
                                         |         } else {
    0x00066f90 cmp ip, 0                 |             
                                         |             if (ip != 0) {
    0x00066f94 bne 0x66fa8               |                 goto label_3;
                                         |             }
                                         |         }
    0x00066f98 ldr r1, [pc, 0x24]        |         r1 = *(0x66fc0);
    0x00066f9c pop {lr}                  |         
    0x00066fa0 add r1, pc, r1            |         r1 = pc + r1;
    0x00066fa4 b 0x17e4c                 |         void (*0x17e4c)() ();
                                         | label_3:
    0x00066fa8 cmp ip, 0x2e              |         
                                         |         if (ip != 0x2e) {
    0x00066fac subeq r2, r2, 1           |             r2--;
                                         |         }
    0x00066fb0 b 0x66f58                 |         
                                         |     } while (1);
                                         | label_2:
    0x00066fb4 cmp r2, 0x39              |     
                                         |     if (r2 > 0x39) {
    0x00066fb8 bhi 0x66f7c               |         goto label_0;
                                         |     }
    0x00066fbc strb r2, [r3], 1          |     *(r3) = r2;
                                         |     r3++;
    0x00066fc0 b 0x66f70                 |     goto label_1;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/windows/KT-1 @ 0x67594 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00067594 ()              | void fcn_00067594 () {
                                         |     char * s2;
                                         |     int32_t var_4h;
                                         |     int32_t var_1ch;
                                         |     int32_t var_20h;
                                         |     char * string;
                                         |     int32_t var_58h;
    0x00067594 push {r4, r5, r6, lr}     |     
    0x00067598 sub sp, sp, 0x58          |     
    0x0006759c mov r5, sp                |     r5 = sp;
    0x000675a0 mov r0, r5                |     r0 = r5;
    0x000675a4 bl 0x1bae8                |     fcn_0001bae8 (r0);
    0x000675a8 add r4, sp, 0x38          |     r4 += string;
    0x000675ac mov r3, 0x20              |     r3 = 0x20;
    0x000675b0 mov r2, 0                 |     r2 = 0;
    0x000675b4 mov r1, r3                |     r1 = r3;
    0x000675b8 mov r0, r4                |     r0 = r4;
    0x000675bc bl 0xb9f54                |     fcn_000b9f54 (r0, r1);
    0x000675c0 ldr r1, [pc, 0xc0]        |     r1 = *(0x67684);
    0x000675c4 mov r0, r4                |     r0 = r4;
    0x000675c8 add r1, pc, r1            |     r1 = pc + r1;
    0x000675cc bl 0x17e4c                |     strcpy (r0, r1)
    0x000675d0 mov r0, r4                |     r0 = r4;
    0x000675d4 bl 0x18680                |     system (r0);
    0x000675d8 mov r3, 0x20              |     r3 = 0x20;
    0x000675dc mov r2, 0                 |     r2 = 0;
    0x000675e0 mov r1, r3                |     r1 = r3;
    0x000675e4 mov r0, r4                |     r0 = r4;
    0x000675e8 bl 0xb9f54                |     fcn_000b9f54 (r0, r1);
    0x000675ec add r6, sp, 0x1c          |     r6 += var_1ch;
    0x000675f0 mov r0, r6                |     r0 = r6;
    0x000675f4 bl 0x67478                |     fcn_00067478 (r0);
    0x000675f8 add r1, sp, 0x20          |     r1 += var_20h;
    0x000675fc add r0, sp, 4             |     r0 += var_4h;
    0x00067600 bl 0x1d84c                |     method (r0, r1);
    0x00067604 mov r0, r6                |     r0 = r6;
    0x00067608 bl 0x1bcc4                |     fcn_0001bcc4 (r0);
    0x0006760c ldr r1, [pc, 0x78]        |     r1 = *(0x67688);
    0x00067610 mov r0, r4                |     r0 = r4;
    0x00067614 add r1, pc, r1            |     r1 = pc + r1;
    0x00067618 bl 0x17e4c                |     strcpy (r0, r1)
    0x0006761c ldr r1, [pc, 0x6c]        |     r1 = *(0x6768c);
    0x00067620 mov r0, r4                |     r0 = r4;
    0x00067624 add r1, pc, r1            |     r1 = pc + r1;
    0x00067628 bl 0x1868c                |     strcat (r0, r1);
    0x0006762c mov r0, r5                |     r0 = r5;
    0x00067630 bl 0x1bb20                |     r0 = fcn_0001bb20 (r0);
    0x00067634 mov r1, r0                |     r1 = r0;
    0x00067638 mov r0, r4                |     r0 = r4;
    0x0006763c bl 0x1868c                |     strcat (r0, r1);
    0x00067640 mov r0, r4                |     r0 = r4;
    0x00067644 bl 0x18680                |     r0 = system (r0);
    0x00067648 cmp r0, 0                 |     
                                         |     if (r0 == 0) {
    0x0006764c beq 0x67664               |         goto label_0;
                                         |     }
    0x00067650 bl 0xc4668                |     fcn_000c4668 ();
                                         |     do {
    0x00067654 mov r0, r5                |         r0 = r5;
    0x00067658 bl 0x1bcc4                |         fcn_0001bcc4 (r0);
    0x0006765c add sp, sp, 0x58          |         
    0x00067660 pop {r4, r5, r6, pc}      |         
                                         | label_0:
    0x00067664 mov r0, r5                |         r0 = r5;
    0x00067668 bl 0x1bb20                |         fcn_0001bb20 (r0);
    0x0006766c b 0x67654                 |         
                                         |     } while (1);
                                         | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/windows/KT-1 @ 0xba0d4 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.000ba0d4 ()                          | void fcn_000ba0d4 (int32_t arg_60h, int32_t arg1, int32_t arg2) {
                                                     |     void * s;
                                                     |     int32_t var_8h;
                                                     |     int32_t var_16h;
                                                     |     char * dest;
                                                     |     int32_t var_48h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x000ba0d4 push {r4, r5, r6, r7, r8, lr}         |     
    0x000ba0d8 sub sp, sp, 0x48                      |     
    0x000ba0dc add r4, sp, 4                         |     r4 += s;
    0x000ba0e0 mov r7, r1                            |     r7 = r1;
    0x000ba0e4 mov r8, r2                            |     r8 = r2;
    0x000ba0e8 mov r5, r0                            |     r5 = r0;
    0x000ba0ec mov r2, 0x44                          |     r2 = 0x44;
    0x000ba0f0 mov r1, 0                             |     r1 = 0;
    0x000ba0f4 mov r0, r4                            |     r0 = r4;
    0x000ba0f8 mov r6, r3                            |     r6 = r3;
    0x000ba0fc bl 0x17d98                            |     memset (r0, r1, r2);
    0x000ba100 ldr r1, [r7]                          |     r1 = *(r7);
    0x000ba104 mov r3, 2                             |     r3 = 2;
    0x000ba108 add r0, sp, 0x38                      |     r0 += dest;
    0x000ba10c strh r3, [sp, 4]                      |     s = r3;
    0x000ba110 str r8, [sp, 8]                       |     var_8h = r8;
    0x000ba114 bl 0x17e4c                            |     strcpy (r0, r1)
    0x000ba118 ldr r5, [r5, 0x2c]                    |     r5 = *((r5 + 0x2c));
    0x000ba11c ldr r3, [r5]                          |     r3 = *(r5);
    0x000ba120 mov r0, r5                            |     r0 = r5;
    0x000ba124 ldr r7, [r3, 8]                       |     r7 = *((r3 + 8));
    0x000ba128 bl 0x1d5c4                            |     fcn_0001d5c4 ();
    0x000ba12c mov r2, r4                            |     r2 = r4;
    0x000ba130 mov r1, r0                            |     r1 = r0;
    0x000ba134 mov r0, r5                            |     r0 = r5;
    0x000ba138 blx r7                                |     uint32_t (*r7)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x000ba13c ldr r3, [sp, 0x60]                    |     r3 = *(arg_60h);
    0x000ba140 add r2, sp, 0x16                      |     r2 += var_16h;
    0x000ba144 mov r1, r3                            |     r1 = r3;
    0x000ba148 mov r4, r0                            |     r4 = r0;
    0x000ba14c mov r0, r6                            |     r0 = r6;
    0x000ba150 bl 0xb9ec8                            |     fcn_000b9ec8 (r0, r1);
    0x000ba154 mov r0, r4                            |     r0 = r4;
    0x000ba158 add sp, sp, 0x48                      |     
    0x000ba15c pop {r4, r5, r6, r7, r8, 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/windows/KT-1 @ 0xc64d4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.000c64d4 ()                                      | void fcn_000c64d4 (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_1ch;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_24h;
                                                                 |     int32_t var_2ch;
                                                                 |     int32_t var_0h_3;
                                                                 |     int32_t var_40h;
                                                                 |     int32_t var_6ch;
                                                                 |     int32_t var_0h_2;
                                                                 |     int32_t var_74h;
                                                                 |     int32_t var_440h;
                                                                 |     char * s;
                                                                 |     int32_t var_470h;
                                                                 |     char * var_2h_2;
                                                                 |     int32_t var_480h;
                                                                 |     char * var_2h;
                                                                 |     int32_t var_620h;
                                                                 |     int32_t var_4h_2;
                                                                 |     r0 = arg1;
    0x000c64d4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x000c64d8 ldr r7, [pc, 0x5c8]                               |     r7 = *(0xc6aa4);
    0x000c64dc mov r5, r0                                        |     r5 = r0;
    0x000c64e0 add r7, pc, r7                                    |     r7 = pc + r7;
    0x000c64e4 add lr, r7, 0x2a0                                 |     lr = r7 + 0x2a0;
    0x000c64e8 ldm lr!, {r0, r1, r2, r3}                         |     r0 = *(lr!);
                                                                 |     r1 = *((lr! + 4));
                                                                 |     r2 = *((lr! + 8));
                                                                 |     r3 = *((lr! + 12));
    0x000c64ec ldr r6, [pc, 0x5b8]                               |     r6 = *(0xc6aa8);
    0x000c64f0 sub sp, sp, 0x620                                 |     
    0x000c64f4 sub sp, sp, 4                                     |     
    0x000c64f8 add ip, sp, 0x40                                  |     
    0x000c64fc stm ip!, {r0, r1, r2, r3}                         |     *(ip!) = r0;
                                                                 |     *((ip! + 4)) = r1;
                                                                 |     *((ip! + 8)) = r2;
                                                                 |     *((ip! + 12)) = r3;
    0x000c6500 ldm lr!, {r0, r1, r2, r3}                         |     r0 = *(lr!);
                                                                 |     r1 = *((lr! + 4));
                                                                 |     r2 = *((lr! + 8));
                                                                 |     r3 = *((lr! + 12));
    0x000c6504 add r6, pc, r6                                    |     r6 = pc + r6;
    0x000c6508 stm ip!, {r0, r1, r2, r3}                         |     *(ip!) = r0;
                                                                 |     *((ip! + 4)) = r1;
                                                                 |     *((ip! + 8)) = r2;
                                                                 |     *((ip! + 12)) = r3;
    0x000c650c ldm lr!, {r0, r1, r2, r3}                         |     r0 = *(lr!);
                                                                 |     r1 = *((lr! + 4));
                                                                 |     r2 = *((lr! + 8));
                                                                 |     r3 = *((lr! + 12));
    0x000c6510 mov fp, 1                                         |     
    0x000c6514 stm ip!, {r0, r1, r2, r3}                         |     *(ip!) = r0;
                                                                 |     *((ip! + 4)) = r1;
                                                                 |     *((ip! + 8)) = r2;
                                                                 |     *((ip! + 12)) = r3;
    0x000c6518 ldr r3, [lr]                                      |     r3 = *(lr);
    0x000c651c add lr, r7, 0x2d4                                 |     lr = r7 + 0x2d4;
    0x000c6520 str r3, [ip]                                      |     *(ip) = r3;
    0x000c6524 ldm lr!, {r0, r1, r2, r3}                         |     r0 = *(lr!);
                                                                 |     r1 = *((lr! + 4));
                                                                 |     r2 = *((lr! + 8));
                                                                 |     r3 = *((lr! + 12));
    0x000c6528 add ip, sp, 0x1c                                  |     
    0x000c652c stm ip!, {r0, r1, r2, r3}                         |     *(ip!) = r0;
                                                                 |     *((ip! + 4)) = r1;
                                                                 |     *((ip! + 8)) = r2;
                                                                 |     *((ip! + 12)) = r3;
    0x000c6530 ldm lr!, {r0, r1, r2, r3}                         |     r0 = *(lr!);
                                                                 |     r1 = *((lr! + 4));
                                                                 |     r2 = *((lr! + 8));
                                                                 |     r3 = *((lr! + 12));
    0x000c6534 mov sl, 5                                         |     sl = 5;
    0x000c6538 stm ip!, {r0, r1, r2, r3}                         |     *(ip!) = r0;
                                                                 |     *((ip! + 4)) = r1;
                                                                 |     *((ip! + 8)) = r2;
                                                                 |     *((ip! + 12)) = r3;
    0x000c653c ldr r3, [lr]                                      |     r3 = *(lr);
    0x000c6540 str fp, [sp, 0x24]                                |     var_24h = fp;
    0x000c6544 str r3, [ip]                                      |     *(ip) = r3;
    0x000c6548 ldr r3, [pc, 0x560]                               |     r3 = *(0xc6aac);
    0x000c654c str sl, [sp, 0x2c]                                |     var_2ch = sl;
    0x000c6550 ldr r4, [r6, r3]                                  |     r4 = *(0xc6aa8);
    0x000c6554 mov r2, 0x14                                      |     r2 = 0x14;
    0x000c6558 str r2, [r4, 0x174]                               |     *((r4 + 0x174)) = r2;
    0x000c655c ldr r2, [pc, 0x550]                               |     r2 = *(0xc6ab0);
    0x000c6560 mov r3, 0                                         |     r3 = 0;
    0x000c6564 str fp, [r4, 0x104]                               |     *((r4 + 0x104)) = fp;
    0x000c6568 str r3, [r4, 0x318]                               |     *((r4 + 0x318)) = r3;
    0x000c656c str r3, [sp, 0x14]                                |     var_14h = r3;
    0x000c6570 str sl, [r4]                                      |     *(r4) = sl;
    0x000c6574 ldr r2, [r6, r2]                                  |     r2 = *(0xc6aa8);
    0x000c6578 add r8, sp, 0x20                                  |     r8 += var_20h;
    0x000c657c str r2, [r4, 0x334]                               |     *((r4 + 0x334)) = r2;
    0x000c6580 ldr r2, [pc, 0x530]                               |     r2 = *(0xc6ab4);
    0x000c6584 add sb, r5, 0x18                                  |     sb = r5 + 0x18;
    0x000c6588 ldr r2, [r6, r2]                                  |     r2 = *(0xc6aa8);
    0x000c658c sub r8, r8, 4                                     |     r8 -= var_1ch;
    0x000c6590 str r2, [r4, 0x338]                               |     *((r4 + 0x338)) = r2;
    0x000c6594 ldr r2, [pc, 0x520]                               |     r2 = *(0xc6ab8);
    0x000c6598 ldr r2, [r6, r2]                                  |     r2 = *(0xc6aa8);
    0x000c659c str r2, [sp, 0x6c]                                |     var_6ch = r2;
    0x000c65a0 ldr r2, [pc, 0x518]                               |     r2 = *(0xc6abc);
    0x000c65a4 ldr r3, [r6, r2]                                  |     r3 = *(0xc6aa8);
    0x000c65a8 mov r0, r3                                        |     r0 = r3;
    0x000c65ac str r3, [sp, 0x10]                                |     var_10h = r3;
    0x000c65b0 bl 0x181b8                                        |     MQTTAsync_setTraceCallback ();
    0x000c65b4 mov r0, 6                                         |     r0 = 6;
    0x000c65b8 bl 0x1796c                                        |     MQTTAsync_setTraceLevel ();
    0x000c65bc ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x000c65c0 str r8, [sp, 4]                                   |     var_4h = r8;
    0x000c65c4 str r3, [sp]                                      |     *(sp) = r3;
    0x000c65c8 add r2, r4, 0x298                                 |     r2 = r4 + 0x298;
    0x000c65cc mov r3, fp                                        |     r3 = fp;
    0x000c65d0 add r1, r4, 0x248                                 |     r1 = r4 + 0x248;
    0x000c65d4 mov r0, sb                                        |     r0 = sb;
    0x000c65d8 bl 0x17b4c                                        |     r0 = MQTTAsync_createWithOptions ();
    0x000c65dc subs fp, r0, 0                                    |     
                                                                 |     if (fp != r0) {
    0x000c65e0 beq 0xc6618                                       |         
    0x000c65e4 ldr r0, [pc, 0x4d8]                               |         r0 = *(0xc6ac0);
    0x000c65e8 add r0, pc, r0                                    |         r0 = pc + r0;
    0x000c65ec bl 0x183e0                                        |         r0 = basename (r0);
    0x000c65f0 mov r8, r0                                        |         r8 = r0;
    0x000c65f4 mov r0, fp                                        |         r0 = fp;
    0x000c65f8 bl 0x18044                                        |         MQTTAsync_strerror ();
    0x000c65fc ldr r3, [pc, 0x4c4]                               |         r3 = *(0xc6ac4);
    0x000c6600 mov r2, sl                                        |         r2 = sl;
    0x000c6604 add r3, pc, r3                                    |         r3 = pc + r3;
    0x000c6608 add r1, r7, 0x2f8                                 |         r1 = r7 + 0x2f8;
    0x000c660c str r0, [sp]                                      |         *(sp) = r0;
    0x000c6610 mov r0, r8                                        |         r0 = r8;
    0x000c6614 bl 0xc3f94                                        |         fcn_000c3f94 (r0, r1, r2, r3);
                                                                 |     }
    0x000c6618 ldr r3, [pc, 0x4ac]                               |     r3 = *(0xc6ac8);
    0x000c661c ldr r1, [r5, 0x18]                                |     r1 = *((r5 + 0x18));
    0x000c6620 ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x000c6624 mov r0, r1                                        |     r0 = r1;
    0x000c6628 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x000c662c ldr r3, [pc, 0x49c]                               |     r3 = *(0xc6acc);
    0x000c6630 ldr r3, [r6, r3]                                  |     r3 = *((r6 + r3));
    0x000c6634 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x000c6638 mov r3, 0                                         |     r3 = 0;
    0x000c663c str r3, [sp]                                      |     *(sp) = r3;
    0x000c6640 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x000c6644 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x000c6648 bl 0x17f30                                        |     r0 = MQTTAsync_setCallbacks ();
    0x000c664c subs r8, r0, 0                                    |     r8 = r0 - 0;
                                                                 |     if (r8 != r0) {
    0x000c6650 beq 0xc6690                                       |         
    0x000c6654 ldr r0, [pc, 0x478]                               |         r0 = *(0xc6ad0);
    0x000c6658 add r0, pc, r0                                    |         r0 = pc + r0;
    0x000c665c bl 0x183e0                                        |         r0 = basename (r0);
    0x000c6660 mov r7, r0                                        |         r7 = r0;
    0x000c6664 mov r0, r8                                        |         r0 = r8;
    0x000c6668 bl 0x18044                                        |         MQTTAsync_strerror ();
    0x000c666c ldr r1, [pc, 0x464]                               |         
    0x000c6670 ldr r3, [pc, 0x464]                               |         r3 = *(0xc6ad8);
    0x000c6674 add r1, pc, r1                                    |         r1 = pc + r1;
    0x000c6678 add r3, pc, r3                                    |         r3 = pc + r3;
    0x000c667c mov r2, 5                                         |         r2 = 5;
    0x000c6680 add r1, r1, 0x2f8                                 |         r1 = 0xc6dcc;
    0x000c6684 str r0, [sp]                                      |         *(sp) = r0;
    0x000c6688 mov r0, r7                                        |         r0 = r7;
    0x000c668c bl 0xc3f94                                        |         fcn_000c3f94 (r0, r1, r2, r3);
                                                                 |     }
    0x000c6690 add r7, r4, 0x10c                                 |     r7 = r4 + 0x10c;
    0x000c6694 mov r0, r7                                        |     r0 = r7;
    0x000c6698 bl 0x1772c                                        |     strlen (r0);
    0x000c669c add r8, r4, 0x14c                                 |     r8 = r4 + 0x14c;
    0x000c66a0 mov r2, 0                                         |     r2 = 0;
    0x000c66a4 add sl, r4, 0xc4                                  |     sl = r4 + 0xc4;
    0x000c66a8 mov r3, r0                                        |     r3 = r0;
    0x000c66ac mov r1, r0                                        |     r1 = r0;
    0x000c66b0 mov r0, r7                                        |     r0 = r7;
    0x000c66b4 bl 0xb9f54                                        |     fcn_000b9f54 (r0, r1);
    0x000c66b8 mov r0, r8                                        |     r0 = r8;
    0x000c66bc bl 0x1772c                                        |     strlen (r0);
    0x000c66c0 mov r2, 0                                         |     r2 = 0;
    0x000c66c4 mov r3, r0                                        |     r3 = r0;
    0x000c66c8 mov r1, r0                                        |     r1 = r0;
    0x000c66cc mov r0, r8                                        |     r0 = r8;
    0x000c66d0 bl 0xb9f54                                        |     fcn_000b9f54 (r0, r1);
    0x000c66d4 ldr r3, [r5, 8]                                   |     r3 = *((r5 + 8));
    0x000c66d8 mov r2, 0                                         |     r2 = 0;
    0x000c66dc mov r1, r3                                        |     r1 = r3;
    0x000c66e0 ldr r0, [r5]                                      |     r0 = *(r5);
    0x000c66e4 bl 0xb9f54                                        |     fcn_000b9f54 (r0, r1);
    0x000c66e8 mov r0, sl                                        |     r0 = sl;
    0x000c66ec bl 0x1772c                                        |     strlen (r0);
    0x000c66f0 mov r2, 0                                         |     r2 = 0;
    0x000c66f4 mov r3, r0                                        |     r3 = r0;
    0x000c66f8 mov r1, r0                                        |     r1 = r0;
    0x000c66fc mov r0, sl                                        |     r0 = sl;
    0x000c6700 add sl, r4, 0x178                                 |     sl = r4 + 0x178;
    0x000c6704 bl 0xb9f54                                        |     fcn_000b9f54 (r0, r1);
    0x000c6708 mov r0, sl                                        |     r0 = sl;
    0x000c670c bl 0x1772c                                        |     strlen (r0);
    0x000c6710 mov r2, 0                                         |     r2 = 0;
    0x000c6714 mov r3, r0                                        |     r3 = r0;
    0x000c6718 mov r1, r0                                        |     r1 = r0;
    0x000c671c mov r0, sl                                        |     r0 = sl;
    0x000c6720 bl 0xb9f54                                        |     fcn_000b9f54 (r0, r1);
    0x000c6724 mov r0, r5                                        |     r0 = r5;
    0x000c6728 bl 0xc5a5c                                        |     r0 = fcn_000c5a5c ();
    0x000c672c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000c6730 bne 0xc681c                                       |         goto label_2;
                                                                 |     }
    0x000c6734 ldr r2, [pc, 0x3a4]                               |     r2 = *(0xc6adc);
    0x000c6738 mov r3, 0x1f                                      |     r3 = 0x1f;
    0x000c673c mov r1, r3                                        |     r1 = r3;
    0x000c6740 add r2, pc, r2                                    |     r2 = pc + r2;
    0x000c6744 add sl, r4, 0x298                                 |     sl = r4 + 0x298;
    0x000c6748 mov r0, r7                                        |     r0 = r7;
    0x000c674c bl 0xb9ec8                                        |     fcn_000b9ec8 (r0, r1);
    0x000c6750 mov r0, sl                                        |     r0 = sl;
    0x000c6754 bl 0x1772c                                        |     strlen (r0);
    0x000c6758 mov r2, sl                                        |     r2 = sl;
    0x000c675c mov r3, r0                                        |     r3 = r0;
    0x000c6760 mov r1, r0                                        |     r1 = r0;
    0x000c6764 mov r0, r8                                        |     r0 = r8;
    0x000c6768 bl 0xb9ec8                                        |     fcn_000b9ec8 (r0, r1);
    0x000c676c ldr r0, [pc, 0x370]                               |     r0 = *(0xc6ae0);
    0x000c6770 add r0, pc, r0                                    |     r0 = pc + r0;
    0x000c6774 bl 0x183e0                                        |     basename (r0);
    0x000c6778 add r3, r4, 0x248                                 |     r3 = r4 + 0x248;
    0x000c677c ldr r1, [pc, 0x364]                               |     
    0x000c6780 str r3, [sp]                                      |     *(sp) = r3;
    0x000c6784 ldr r3, [pc, 0x360]                               |     r3 = *(0xc6ae8);
    0x000c6788 add r1, pc, r1                                    |     r1 = pc + r1;
    0x000c678c stmib sp, {r7, r8}                                |     __asm ("stmib sp, {r7, r8}");
    0x000c6790 add r3, pc, r3                                    |     r3 = pc + r3;
    0x000c6794 mov r2, 5                                         |     r2 = 5;
    0x000c6798 add r1, r1, 0x2f8                                 |     r1 = 0xc6ddc;
    0x000c679c bl 0xc3f94                                        |     fcn_000c3f94 (r0, r1, r2, r3);
    0x000c67a0 ldr r0, [r5, 0x18]                                |     r0 = *((r5 + 0x18));
    0x000c67a4 bl 0xc5fec                                        |     fcn_000c5fec (r0);
                                                                 |     do {
    0x000c67a8 ldr r3, [r4, 0x318]                               |         r3 = *((r4 + 0x318));
    0x000c67ac cmp r3, 1                                         |         
                                                                 |         if (r3 == 1) {
    0x000c67b0 beq 0xc67c0                                       |             goto label_3;
                                                                 |         }
    0x000c67b4 mov r0, 0x32                                      |         r0 = 0x32;
    0x000c67b8 bl 0xc45f0                                        |         fcn_000c45f0 (r0);
    0x000c67bc b 0xc67a8                                         |         
                                                                 |     } while (1);
                                                                 | label_3:
    0x000c67c0 add r1, sp, 0x40                                  |     r1 += var_40h;
    0x000c67c4 ldr r0, [r5, 0x18]                                |     r0 = *((r5 + 0x18));
    0x000c67c8 bl 0x180b0                                        |     r0 = MQTTAsync_disconnect ();
    0x000c67cc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000c67d0 beq 0xc67fc                                       |         goto label_4;
                                                                 |     }
    0x000c67d4 ldr r0, [pc, 0x314]                               |     r0 = *(0xc6aec);
    0x000c67d8 add r0, pc, r0                                    |     r0 = pc + r0;
    0x000c67dc bl 0x183e0                                        |     basename (r0);
    0x000c67e0 ldr r1, [pc, 0x30c]                               |     
    0x000c67e4 ldr r3, [pc, 0x30c]                               |     r3 = *(0xc6af4);
    0x000c67e8 add r1, pc, r1                                    |     r1 = pc + r1;
    0x000c67ec add r3, pc, r3                                    |     r3 = pc + r3;
    0x000c67f0 mov r2, 5                                         |     r2 = 5;
    0x000c67f4 add r1, r1, 0x2f8                                 |     r1 = 0xc6de8;
    0x000c67f8 bl 0xc3f94                                        |     fcn_000c3f94 (r0, r1, r2, r3);
                                                                 |     do {
                                                                 | label_4:
    0x000c67fc ldr r3, [r4, 0x318]                               |         r3 = *((r4 + 0x318));
    0x000c6800 cmp r3, 1                                         |         
                                                                 |         if (r3 != 1) {
    0x000c6804 bne 0xc6814                                       |             goto label_5;
                                                                 |         }
    0x000c6808 mov r0, 0x32                                      |         r0 = 0x32;
    0x000c680c bl 0xc45f0                                        |         fcn_000c45f0 (r0);
    0x000c6810 b 0xc67fc                                         |         
                                                                 |     } while (1);
                                                                 | label_5:
    0x000c6814 mov r0, r5                                        |     r0 = r5;
    0x000c6818 bl 0xc5810                                        |     fcn_000c5810 ();
                                                                 | label_2:
    0x000c681c mov r0, r5                                        |     r0 = r5;
    0x000c6820 bl 0xc5a5c                                        |     r0 = fcn_000c5a5c ();
    0x000c6824 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000c6828 beq 0xc6a94                                       |         goto label_6;
                                                                 |     }
    0x000c682c ldr r3, [pc, 0x2c8]                               |     
    0x000c6830 add r8, r4, 0x14c                                 |     r8 = r4 + 0x14c;
    0x000c6834 ldr r7, [r6, r3]                                  |     r7 = *((r6 + r3));
    0x000c6838 add r6, sp, 0x74                                  |     r6 += var_74h;
    0x000c683c ldr r3, [r7]                                      |     r3 = *(r7);
    0x000c6840 add sb, r6, 0x440                                 |     sb += var_440h;
    0x000c6844 add r3, r3, 0x43000                               |     r3 = 0x109af8;
    0x000c6848 mov r1, r6                                        |     r1 = r6;
    0x000c684c ldr r0, [r3, 0x900]                               |     r0 = *(0x10a3f8);
    0x000c6850 bl 0x66cf0                                        |     fcn_00066cf0 (r0, r1);
    0x000c6854 add sb, sb, 0xa                                   |     sb += s;
    0x000c6858 mov r0, sb                                        |     r0 = sb;
    0x000c685c bl 0x1772c                                        |     strlen (r0);
    0x000c6860 add sl, r6, 0x480                                 |     sl += var_480h;
    0x000c6864 mov r2, sb                                        |     r2 = sb;
    0x000c6868 add sl, sl, 2                                     |     sl += var_2h;
    0x000c686c add sb, r4, 0x238                                 |     sb = r4 + 0x238;
    0x000c6870 add r6, r6, 0x470                                 |     r6 += var_470h;
    0x000c6874 add r6, r6, 2                                     |     r6 += var_2h_2;
    0x000c6878 add fp, r4, 0x10c                                 |     
    0x000c687c mov r3, r0                                        |     r3 = r0;
    0x000c6880 mov r1, r0                                        |     r1 = r0;
    0x000c6884 mov r0, r8                                        |     r0 = r8;
    0x000c6888 bl 0xb9ec8                                        |     fcn_000b9ec8 (r0, r1);
    0x000c688c mov r0, sl                                        |     r0 = sl;
    0x000c6890 bl 0x1772c                                        |     strlen (r0);
    0x000c6894 mov r2, sl                                        |     r2 = sl;
    0x000c6898 ldr sl, [pc, 0x260]                               |     sl = *(0xc6afc);
    0x000c689c add sl, pc, sl                                    |     sl = pc + sl;
    0x000c68a0 mov r3, r0                                        |     r3 = r0;
    0x000c68a4 mov r1, r0                                        |     r1 = r0;
    0x000c68a8 mov r0, sb                                        |     r0 = sb;
    0x000c68ac bl 0xb9ec8                                        |     fcn_000b9ec8 (r0, r1);
    0x000c68b0 mov r0, r6                                        |     r0 = r6;
    0x000c68b4 bl 0x1772c                                        |     strlen (r0);
    0x000c68b8 add ip, r4, 0x240                                 |     
    0x000c68bc mov r2, r6                                        |     r2 = r6;
    0x000c68c0 mov r6, ip                                        |     r6 = ip;
    0x000c68c4 mov r3, r0                                        |     r3 = r0;
    0x000c68c8 mov r1, r0                                        |     r1 = r0;
    0x000c68cc mov r0, ip                                        |     r0 = ip;
    0x000c68d0 bl 0xb9ec8                                        |     fcn_000b9ec8 (r0, r1);
    0x000c68d4 mov r0, fp                                        |     r0 = fp;
    0x000c68d8 bl 0x1772c                                        |     strlen (r0);
    0x000c68dc mov r2, 0                                         |     r2 = 0;
    0x000c68e0 mov r3, r0                                        |     r3 = r0;
    0x000c68e4 mov r1, r0                                        |     r1 = r0;
    0x000c68e8 mov r0, fp                                        |     r0 = fp;
    0x000c68ec bl 0xb9f54                                        |     fcn_000b9f54 (r0, r1);
    0x000c68f0 ldr r3, [pc, 0x20c]                               |     r3 = *(0xc6b00);
    0x000c68f4 mov r2, sl                                        |     r2 = sl;
    0x000c68f8 add r3, pc, r3                                    |     r3 = pc + r3;
    0x000c68fc mov r1, 0x40                                      |     r1 = 0x40;
    0x000c6900 str r6, [sp]                                      |     *(sp) = r6;
    0x000c6904 add r0, r4, 0xc4                                  |     r0 = r4 + 0xc4;
    0x000c6908 bl 0x17b1c                                        |     snprintf (r0, r1, r2, r3);
    0x000c690c ldr r3, [pc, 0x1f4]                               |     r3 = *(0xc6b04);
    0x000c6910 mov r2, sl                                        |     r2 = sl;
    0x000c6914 add r3, pc, r3                                    |     r3 = pc + r3;
    0x000c6918 mov r1, 0x40                                      |     r1 = 0x40;
    0x000c691c str r6, [sp]                                      |     *(sp) = r6;
    0x000c6920 add r0, r4, 0x178                                 |     r0 = r4 + 0x178;
    0x000c6924 bl 0x17b1c                                        |     snprintf (r0, r1, r2, r3);
    0x000c6928 ldr r1, [pc, 0x1dc]                               |     r1 = *(0xc6b08);
    0x000c692c add r0, r4, 0x1b8                                 |     r0 = r4 + 0x1b8;
    0x000c6930 add r1, pc, r1                                    |     r1 = pc + r1;
    0x000c6934 bl 0x17e4c                                        |     strcpy (r0, r1)
    0x000c6938 ldr r2, [pc, 0x1d0]                               |     r2 = *(0xc6b0c);
    0x000c693c mov r3, sb                                        |     r3 = sb;
    0x000c6940 add r2, pc, r2                                    |     r2 = pc + r2;
    0x000c6944 mov r1, 0x40                                      |     r1 = 0x40;
    0x000c6948 str r6, [sp]                                      |     *(sp) = r6;
    0x000c694c mov r0, fp                                        |     r0 = fp;
    0x000c6950 bl 0x17b1c                                        |     snprintf (r0, r1, r2, r3);
    0x000c6954 ldr r3, [pc, 0x1b8]                               |     r3 = *(0xc6b10);
    0x000c6958 mov r2, sl                                        |     r2 = sl;
    0x000c695c add r3, pc, r3                                    |     r3 = pc + r3;
    0x000c6960 mov r1, 0x40                                      |     r1 = 0x40;
    0x000c6964 str r6, [sp]                                      |     *(sp) = r6;
    0x000c6968 add r0, r4, 0x84                                  |     r0 = r4 + 0x84;
    0x000c696c bl 0x17b1c                                        |     snprintf (r0, r1, r2, r3);
    0x000c6970 ldr r3, [pc, 0x1a0]                               |     r3 = *(0xc6b14);
    0x000c6974 mov r2, sl                                        |     r2 = sl;
    0x000c6978 add r3, pc, r3                                    |     r3 = pc + r3;
    0x000c697c mov r1, 0x40                                      |     r1 = 0x40;
    0x000c6980 str r6, [sp]                                      |     *(sp) = r6;
    0x000c6984 add r0, r4, 4                                     |     r0 = r4 + 4;
    0x000c6988 bl 0x17b1c                                        |     snprintf (r0, r1, r2, r3);
    0x000c698c ldr r3, [pc, 0x188]                               |     r3 = *(0xc6b18);
    0x000c6990 mov r2, sl                                        |     r2 = sl;
    0x000c6994 add r3, pc, r3                                    |     r3 = pc + r3;
    0x000c6998 mov r1, 0x40                                      |     r1 = 0x40;
    0x000c699c str r6, [sp]                                      |     *(sp) = r6;
    0x000c69a0 add r0, r4, 0x44                                  |     r0 = r4 + 0x44;
    0x000c69a4 bl 0x17b1c                                        |     snprintf (r0, r1, r2, r3);
    0x000c69a8 ldr r0, [pc, 0x170]                               |     r0 = *(0xc6b1c);
    0x000c69ac add r0, pc, r0                                    |     r0 = pc + r0;
    0x000c69b0 bl 0x183e0                                        |     basename (r0);
    0x000c69b4 add r3, r4, 0x248                                 |     r3 = r4 + 0x248;
    0x000c69b8 ldr r1, [pc, 0x164]                               |     
    0x000c69bc str r3, [sp]                                      |     *(sp) = r3;
    0x000c69c0 ldr r3, [pc, 0x160]                               |     r3 = *(0xc6b24);
    0x000c69c4 add r1, pc, r1                                    |     r1 = pc + r1;
    0x000c69c8 str r8, [sp, 8]                                   |     var_8h = r8;
    0x000c69cc str fp, [sp, 4]                                   |     var_4h = fp;
    0x000c69d0 add r3, pc, r3                                    |     r3 = pc + r3;
    0x000c69d4 mov r2, 5                                         |     r2 = 5;
    0x000c69d8 add r1, r1, 0x2f8                                 |     r1 = 0xc6e18;
    0x000c69dc bl 0xc3f94                                        |     fcn_000c3f94 (r0, r1, r2, r3);
    0x000c69e0 ldr r0, [r5, 0x18]                                |     r0 = *((r5 + 0x18));
    0x000c69e4 bl 0xc5fec                                        |     fcn_000c5fec (r0);
                                                                 |     do {
    0x000c69e8 ldr r3, [r4, 0x318]                               |         r3 = *((r4 + 0x318));
    0x000c69ec cmp r3, 1                                         |         
                                                                 |         if (r3 == 1) {
    0x000c69f0 beq 0xc6a48                                       |             goto label_7;
                                                                 |         }
    0x000c69f4 mov r0, 0x32                                      |         r0 = 0x32;
    0x000c69f8 bl 0xc45f0                                        |         fcn_000c45f0 (r0);
    0x000c69fc b 0xc69e8                                         |         
                                                                 |     } while (1);
                                                                 |     do {
    0x000c6a00 ldr r3, [r7]                                      |         r3 = *(r7);
    0x000c6a04 ldrb r2, [r3, 0x2c]                               |         r2 = *((r3 + 0x2c));
    0x000c6a08 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x000c6a0c beq 0xc6a74                                       |             goto label_8;
                                                                 |         }
    0x000c6a10 add r3, r3, 0x42000                               |         r3 += 0x42000;
    0x000c6a14 ldr r2, [r5, 8]                                   |         r2 = *((r5 + 8));
    0x000c6a18 ldr r1, [r5]                                      |         r1 = *(r5);
    0x000c6a1c ldr r0, [r3, 0xf4c]                               |         r0 = *((r3 + 0xf4c));
    0x000c6a20 bl 0x5def0                                        |         r0 = fcn_0005def0 (r0, r1);
    0x000c6a24 subs r2, r0, 0                                    |         r2 = r0 - 0;
                                                                 |         if (r2 != r0) {
    0x000c6a28 bne 0xc6a68                                       |             goto label_1;
                                                                 |         }
    0x000c6a2c ldr r0, [r7]                                      |         r0 = *(r7);
    0x000c6a30 mov r3, 0x14                                      |         r3 = 0x14;
    0x000c6a34 mov r1, r3                                        |         r1 = r3;
    0x000c6a38 add r0, r0, 0x2c                                  |         r0 += 0x2c;
    0x000c6a3c bl 0xb9f54                                        |         fcn_000b9f54 (r0, r1);
                                                                 | label_0:
    0x000c6a40 mov r0, 0x32                                      |         r0 = 0x32;
    0x000c6a44 bl 0xc45f0                                        |         fcn_000c45f0 (r0);
                                                                 | label_7:
    0x000c6a48 ldr r3, [r7]                                      |         r3 = *(r7);
    0x000c6a4c ldr r2, [r5, 8]                                   |         r2 = *((r5 + 8));
    0x000c6a50 add r3, r3, 0x42000                               |         r3 += 0x42000;
    0x000c6a54 ldr r1, [r5]                                      |         r1 = *(r5);
    0x000c6a58 ldr r0, [r3, 0xf4c]                               |         r0 = *((r3 + 0xf4c));
    0x000c6a5c bl 0x5d694                                        |         r0 = fcn_0005d694 (r0, r1);
    0x000c6a60 cmp r0, 0                                         |         
    0x000c6a64 beq 0xc6a00                                       |         
                                                                 |     } while (r0 == 0);
                                                                 | label_1:
    0x000c6a68 mov r0, r5                                        |     r0 = r5;
    0x000c6a6c bl 0xc55dc                                        |     fcn_000c55dc (r0, r1);
    0x000c6a70 b 0xc6a40                                         |     goto label_0;
                                                                 | label_8:
    0x000c6a74 ldrb r2, [r3, 0x1c]                               |     r2 = *((r3 + 0x1c));
    0x000c6a78 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x000c6a7c beq 0xc6a40                                       |         goto label_0;
                                                                 |     }
    0x000c6a80 add r3, r3, 0x42000                               |     r3 += 0x42000;
    0x000c6a84 ldr r1, [r5]                                      |     r1 = *(r5);
    0x000c6a88 ldr r0, [r3, 0xf4c]                               |     r0 = *((r3 + 0xf4c));
    0x000c6a8c bl 0x55b90                                        |     fcn_00055b90 (r0);
    0x000c6a90 b 0xc6a68                                         |     goto label_1;
                                                                 | label_6:
    0x000c6a94 mov r0, sb                                        |     r0 = sb;
    0x000c6a98 bl 0x18698                                        |     MQTTAsync_destroy ();
    0x000c6a9c add sp, sp, 0x620                                 |     
    0x000c6aa0 add sp, sp, 4                                     |     
    0x000c6aa4 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |     
                                                                 | }

[*] Function strcpy used 12 times KT-1