[*] Binary protection state of jitterentropy_rng.ko

  
  	No RELRO       No Canary found   NX disabled  REL          No RPATH     No RUNPATH   Symbols


[*] Function strcat tear down of jitterentropy_rng.ko

    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis8/kernel/crypto/jitterentropy_rng.ko @ 0x8000c64 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.jent_entropy_init ()                                 | void jent_entropy_init () {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_0h_2;
                                                                     |     int32_t var_8h;
                                                                     |     int32_t var_10h;
                                                                     |     int32_t var_10h_2;
                                                                     |     int32_t var_18h;
                                                                     |     int32_t var_18h_2;
                                                                     |     int32_t var_20h;
                                                                     |     int32_t var_30h;
                                                                     |     int32_t var_30h_2;
                                                                     |     int32_t var_48h;
                                                                     |     int32_t var_78h;
                                                                     |     int32_t var_7ch;
                                                                     |     int32_t var_80h;
                                                                     |     int32_t var_80h_2;
                                                                     |     int32_t var_88h;
                                                                     |     int32_t var_8ch;
                                                                     |     int32_t var_90h;
                                                                     |     int32_t var_94h;
                                                                     |     int32_t var_98h;
                                                                     |     int32_t var_98h_2;
                                                                     |     int32_t var_a0h;
                                                                     |     int32_t var_a0h_2;
                                                                     |     int32_t var_ach;
                                                                     |     int32_t var_b4h;
    0x08000c64 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}             |     
    0x08000c68 sub sp, sp, 0xb4                                      |     
    0x08000c6c mov r2, 0                                             |     r2 = 0;
    0x08000c70 mov r3, 0                                             |     r3 = 0;
    0x08000c74 strd r2, r3, [sp, 0xa0]                               |     __asm ("strd r2, r3, [var_a0h]");
    0x08000c78 mov r2, 0                                             |     r2 = 0;
    0x08000c7c mov r3, 0                                             |     r3 = 0;
    0x08000c80 strd r2, r3, [sp, 0x98]                               |     __asm ("strd r2, r3, [var_98h]");
    0x08000c84 mov r3, 0                                             |     r3 = 0;
    0x08000c88 str r3, [sp, 0x94]                                    |     var_94h = r3;
    0x08000c8c mov r3, 0                                             |     r3 = 0;
    0x08000c90 str r3, [sp, 0x90]                                    |     var_90h = r3;
    0x08000c94 mov r3, 0                                             |     r3 = 0;
    0x08000c98 str r3, [sp, 0x8c]                                    |     var_8ch = r3;
    0x08000c9c mov r3, 0                                             |     r3 = 0;
    0x08000ca0 str r3, [sp, 0x88]                                    |     var_88h = r3;
    0x08000ca4 add r3, sp, 0x20                                      |     r3 += var_20h;
    0x08000ca8 mov r2, 0x58                                          |     r2 = 0x58;
    0x08000cac mov r1, 0                                             |     r1 = 0;
    0x08000cb0 mov r0, r3                                            |     r0 = r3;
    0x08000cb4 stmdaeq r0, {r3, r4, r5, r6, r7, sb, sl, sp}          |     __asm ("stmdaeq r0, {r3, r4, r5, r6, r7, sb, sl, sp}");
    0x08000cb8 mov r3, 1                                             |     r3 = 1;
    0x08000cbc str r3, [sp, 0x48]                                    |     var_48h = r3;
    0x08000cc0 mov r3, 0                                             |     r3 = 0;
    0x08000cc4 str r3, [sp, 0xac]                                    |     var_ach = r3;
    0x08000cc8 b 0x8000f10                                           |     
                                                                     |     while (r3 <= r2) {
    0x08000ccc mov r2, 0                                             |         r2 = 0;
    0x08000cd0 mov r3, 0                                             |         r3 = 0;
    0x08000cd4 strd r2, r3, [sp, 0x18]                               |         __asm ("strd r2, r3, [var_18h]");
    0x08000cd8 mov r2, 0                                             |         r2 = 0;
    0x08000cdc mov r3, 0                                             |         r3 = 0;
    0x08000ce0 strd r2, r3, [sp, 0x10]                               |         __asm ("strd r2, r3, [var_10h]");
    0x08000ce4 mov r2, 0                                             |         r2 = 0;
    0x08000ce8 mov r3, 0                                             |         r3 = 0;
    0x08000cec strd r2, r3, [sp, 0x80]                               |         __asm ("strd r2, r3, [var_80h]");
    0x08000cf0 mov r3, 0                                             |         r3 = 0;
    0x08000cf4 str r3, [sp, 0x7c]                                    |         var_7ch = r3;
    0x08000cf8 add r3, sp, 0x18                                      |         r3 += var_18h;
    0x08000cfc mov r0, r3                                            |         r0 = r3;
    0x08000d00 stmdaeq r0, {r2, r4, r5, r8, ip}                      |         __asm ("stmdaeq r0, {r2, r4, r5, r8, ip}");
    0x08000d04 ldrd r2, r3, [sp, 0x18]                               |         __asm ("ldrd r2, r3, [var_18h]");
    0x08000d08 strd r2, r3, [sp, 0x30]                               |         __asm ("strd r2, r3, [var_30h]");
    0x08000d0c ldrd r2, r3, [sp, 0x18]                               |         __asm ("ldrd r2, r3, [var_18h]");
    0x08000d10 add ip, sp, 0x20                                      |         
    0x08000d14 mov r1, 0                                             |         r1 = 0;
    0x08000d18 str r1, [sp, 8]                                       |         var_8h = r1;
    0x08000d1c mov r0, 0                                             |         r0 = 0;
    0x08000d20 mov r1, 0                                             |         r1 = 0;
    0x08000d24 strd r0, r1, [sp]                                     |         __asm ("strd r0, r1, [sp]");
    0x08000d28 mov r0, ip                                            |         r0 = ip;
    0x08000d2c bl 0x80004e0                                          |         jent_lfsr_time ();
    0x08000d30 add r3, sp, 0x10                                      |         r3 += var_10h;
    0x08000d34 mov r0, r3                                            |         r0 = r3;
    0x08000d38 stmdaeq r0, {r2, r4, r5, r8, ip}                      |         __asm ("stmdaeq r0, {r2, r4, r5, r8, ip}");
    0x08000d3c ldrd r2, r3, [sp, 0x18]                               |         __asm ("ldrd r2, r3, [var_18h]");
    0x08000d40 orrs r3, r2, r3                                       |         r3 = r2 | r3;
                                                                     |         if (r3 != r2) {
    0x08000d44 beq 0x8000d54                                         |             
    0x08000d48 ldrd r2, r3, [sp, 0x10]                               |             __asm ("ldrd r2, r3, [var_10h]");
    0x08000d4c orrs r3, r2, r3                                       |             r3 = r2 | r3;
                                                                     |             if (r3 != r2) {
    0x08000d50 bne 0x8000d5c                                         |                 goto label_0;
                                                                     |             }
                                                                     |         }
    0x08000d54 mov r3, 1                                             |         r3 = 1;
    0x08000d58 b 0x8000f80                                           |         goto label_1;
                                                                     | label_0:
    0x08000d5c ldrd r0, r1, [sp, 0x18]                               |         __asm ("ldrd r0, r1, [var_18h]");
    0x08000d60 ldrd r2, r3, [sp, 0x10]                               |         __asm ("ldrd r2, r3, [var_10h]");
    0x08000d64 bl 0x8000244                                          |         jent_delta ();
    0x08000d68 strd r0, r1, [sp, 0x80]                               |         __asm ("strd r0, r1, [var_80h]");
    0x08000d6c ldrd r2, r3, [sp, 0x80]                               |         __asm ("ldrd r2, r3, [var_80h]");
    0x08000d70 orrs r3, r2, r3                                       |         r3 = r2 | r3;
                                                                     |         if (r3 == r2) {
    0x08000d74 bne 0x8000d80                                         |             
    0x08000d78 mov r3, 2                                             |             r3 = 2;
    0x08000d7c b 0x8000f80                                           |             goto label_1;
                                                                     |         }
    0x08000d80 add r1, sp, 0x20                                      |         r1 += var_20h;
    0x08000d84 ldrd r2, r3, [sp, 0x80]                               |         __asm ("ldrd r2, r3, [var_80h]");
    0x08000d88 mov r0, r1                                            |         r0 = r1;
    0x08000d8c bl 0x8000280                                          |         jent_stuck ();
    0x08000d90 str r0, [sp, 0x78]                                    |         var_78h = r0;
    0x08000d94 ldr r3, [sp, 0xac]                                    |         r3 = var_ach;
    0x08000d98 cmp r3, 0x63                                          |         
                                                                     |         if (r3 > 0x63) {
    0x08000d9c ble 0x8000f00                                         |             
    0x08000da0 ldr r3, [sp, 0x78]                                    |             r3 = var_78h;
    0x08000da4 cmp r3, 0                                             |             
                                                                     |             if (r3 != 0) {
    0x08000da8 beq 0x8000dbc                                         |                 
    0x08000dac ldr r3, [sp, 0x88]                                    |                 r3 = var_88h;
    0x08000db0 add r3, r3, 1                                         |                 r3++;
    0x08000db4 str r3, [sp, 0x88]                                    |                 var_88h = r3;
    0x08000db8 b 0x8000e10                                           |                 
                                                                     |             } else {
    0x08000dbc ldr r3, [sp, 0x94]                                    |                 r3 = var_94h;
    0x08000dc0 add r3, r3, 1                                         |                 r3++;
    0x08000dc4 str r3, [sp, 0x94]                                    |                 var_94h = r3;
    0x08000dc8 ldr r3, [sp, 0x94]                                    |                 r3 = var_94h;
    0x08000dcc ubfx r3, r3, 0, 9                                     |                 r3 = (r3 >> 0) & ((1 << 9) - 1);
    0x08000dd0 cmp r3, 0                                             |                 
                                                                     |                 if (r3 != 0) {
    0x08000dd4 bne 0x8000e10                                         |                     goto label_2;
                                                                     |                 }
    0x08000dd8 ldr r3, [sp, 0x80]                                    |                 r3 = var_80h;
    0x08000ddc and r2, r3, 0xf                                       |                 r2 = r3 & 0xf;
    0x08000de0 add r3, sp, 0x20                                      |                 r3 += var_20h;
    0x08000de4 mov r1, r2                                            |                 r1 = r2;
    0x08000de8 mov r0, r3                                            |                 r0 = r3;
    0x08000dec bl 0x8000070                                          |                 jent_apt_reset ();
    0x08000df0 add r3, sp, 0x20                                      |                 r3 += var_20h;
    0x08000df4 mov r0, r3                                            |                 r0 = r3;
    0x08000df8 bl 0x8000344                                          |                 r0 = jent_health_failure ();
    0x08000dfc mov r3, r0                                            |                 r3 = r0;
    0x08000e00 cmp r3, 0                                             |                 
                                                                     |                 if (r3 == 0) {
    0x08000e04 beq 0x8000e10                                         |                     goto label_2;
                                                                     |                 }
    0x08000e08 mov r3, 9                                             |                 r3 = 9;
    0x08000e0c b 0x8000f80                                           |                 goto label_1;
                                                                     |             }
                                                                     | label_2:
    0x08000e10 add r3, sp, 0x20                                      |             r3 += var_20h;
    0x08000e14 mov r0, r3                                            |             r0 = r3;
    0x08000e18 bl 0x8000214                                          |             r0 = jent_rct_failure ();
    0x08000e1c mov r3, r0                                            |             r3 = r0;
    0x08000e20 cmp r3, 0                                             |             
                                                                     |             if (r3 != 0) {
    0x08000e24 beq 0x8000e30                                         |                 
    0x08000e28 mov r3, 0xa                                           |                 r3 = 0xa;
    0x08000e2c b 0x8000f80                                           |                 goto label_1;
                                                                     |             }
    0x08000e30 ldrd r2, r3, [sp, 0x10]                               |             __asm ("ldrd r2, r3, [var_10h]");
    0x08000e34 ldrd r0, r1, [sp, 0x18]                               |             __asm ("ldrd r0, r1, [var_18h]");
    0x08000e38 cmp r0, r2                                            |             
    0x08000e3c sbcs r3, r1, r3                                       |             __asm ("sbcs r3, r1, r3");
                                                                     |             if (r0 > r2) {
    0x08000e40 blo 0x8000e50                                         |                 
    0x08000e44 ldr r3, [sp, 0x90]                                    |                 r3 = var_90h;
    0x08000e48 add r3, r3, 1                                         |                 r3++;
    0x08000e4c str r3, [sp, 0x90]                                    |                 var_90h = r3;
                                                                     |             }
    0x08000e50 ldrd r2, r3, [sp, 0x10]                               |             __asm ("ldrd r2, r3, [var_10h]");
    0x08000e54 mov r1, r2                                            |             r1 = r2;
    0x08000e58 ldrd r2, r3, [sp, 0x18]                               |             __asm ("ldrd r2, r3, [var_18h]");
    0x08000e5c mov r3, r2                                            |             r3 = r2;
    0x08000e60 sub r3, r1, r3                                        |             r3 = r1 - r3;
    0x08000e64 str r3, [sp, 0x7c]                                    |             var_7ch = r3;
    0x08000e68 ldr r2, [sp, 0x7c]                                    |             r2 = var_7ch;
    0x08000e6c movw r3, 0x851f                                       |             
                                                                     |             /* if there is a right shift of 5, then it's a division by 1/100 */
    0x08000e70 movt r3, 0x51eb                                       |             r3 = 0x51eb851f;
    0x08000e74 umull r1, r3, r3, r2                                  |             r1:r3 = r3 * r2;
    0x08000e78 lsr r3, r3, 5                                         |             r3 >>= 5;
    0x08000e7c mov r1, 0x64                                          |             r1 = 0x64;
    0x08000e80 mul r3, r1, r3                                        |             r3 = r1 * r3;
    0x08000e84 sub r3, r2, r3                                        |             r3 = r2 - r3;
    0x08000e88 cmp r3, 0                                             |             
                                                                     |             if (r3 == 0) {
    0x08000e8c bne 0x8000e9c                                         |                 
    0x08000e90 ldr r3, [sp, 0x8c]                                    |                 r3 = var_8ch;
    0x08000e94 add r3, r3, 1                                         |                 r3++;
    0x08000e98 str r3, [sp, 0x8c]                                    |                 var_8ch = r3;
                                                                     |             }
    0x08000e9c ldrd r2, r3, [sp, 0x80]                               |             __asm ("ldrd r2, r3, [var_80h]");
    0x08000ea0 ldrd r0, r1, [sp, 0x98]                               |             __asm ("ldrd r0, r1, [var_98h]");
    0x08000ea4 cmp r0, r2                                            |             
    0x08000ea8 sbcs r3, r1, r3                                       |             __asm ("sbcs r3, r1, r3");
                                                                     |             if (r0 < r2) {
    0x08000eac bhs 0x8000ed4                                         |                 
    0x08000eb0 ldrd r0, r1, [sp, 0x80]                               |                 __asm ("ldrd r0, r1, [var_80h]");
    0x08000eb4 ldrd r2, r3, [sp, 0x98]                               |                 __asm ("ldrd r2, r3, [var_98h]");
    0x08000eb8 subs r4, r0, r2                                       |                 r4 = r0 - r2;
    0x08000ebc sbc r5, r1, r3                                        |                 __asm ("sbc r5, r1, r3");
    0x08000ec0 ldrd r2, r3, [sp, 0xa0]                               |                 __asm ("ldrd r2, r3, [var_a0h]");
    0x08000ec4 adds r8, r2, r4                                       |                 r8 = r2 + r4;
    0x08000ec8 adc sb, r3, r5                                        |                 __asm ("adc sb, r3, r5");
    0x08000ecc strd r8, sb, [sp, 0xa0]                               |                 __asm ("strd r8, sb, [var_a0h]");
    0x08000ed0 b 0x8000ef4                                           |                 
                                                                     |             } else {
    0x08000ed4 ldrd r0, r1, [sp, 0x98]                               |                 __asm ("ldrd r0, r1, [var_98h]");
    0x08000ed8 ldrd r2, r3, [sp, 0x80]                               |                 __asm ("ldrd r2, r3, [var_80h]");
    0x08000edc subs r6, r0, r2                                       |                 r6 = r0 - r2;
    0x08000ee0 sbc r7, r1, r3                                        |                 __asm ("sbc r7, r1, r3");
    0x08000ee4 ldrd r2, r3, [sp, 0xa0]                               |                 __asm ("ldrd r2, r3, [var_a0h]");
    0x08000ee8 adds sl, r2, r6                                       |                 sl = r2 + r6;
    0x08000eec adc fp, r3, r7                                        |                 __asm ("adc fp, r3, r7");
    0x08000ef0 strd sl, fp, [sp, 0xa0]                               |                 __asm ("strd sl, fp, [var_a0h]");
                                                                     |             }
    0x08000ef4 ldrd r2, r3, [sp, 0x80]                               |             __asm ("ldrd r2, r3, [var_80h]");
    0x08000ef8 strd r2, r3, [sp, 0x98]                               |             __asm ("strd r2, r3, [var_98h]");
    0x08000efc b 0x8000f04                                           |             
                                                                     |         } else {
    0x08000f00 nop                                                   |             
                                                                     |         }
    0x08000f04 ldr r3, [sp, 0xac]                                    |         r3 = var_ach;
    0x08000f08 add r3, r3, 1                                         |         r3++;
    0x08000f0c str r3, [sp, 0xac]                                    |         var_ach = r3;
    0x08000f10 ldr r3, [sp, 0xac]                                    |         r3 = var_ach;
    0x08000f14 movw r2, 0x463                                        |         r2 = 0x463;
    0x08000f18 cmp r3, r2                                            |         
    0x08000f1c ble 0x8000ccc                                         |         
                                                                     |     }
    0x08000f20 ldr r3, [sp, 0x90]                                    |     r3 = var_90h;
    0x08000f24 cmp r3, 3                                             |     
                                                                     |     if (r3 > 3) {
    0x08000f28 ble 0x8000f34                                         |         
    0x08000f2c mov r3, 3                                             |         r3 = 3;
    0x08000f30 b 0x8000f80                                           |         
                                                                     |     } else {
    0x08000f34 ldrd r2, r3, [sp, 0xa0]                               |         __asm ("ldrd r2, r3, [var_a0h]");
    0x08000f38 cmp r2, 2                                             |         
    0x08000f3c sbcs r3, r3, 0                                        |         __asm ("sbcs r3, r3, 0");
                                                                     |         if (r2 < 2) {
    0x08000f40 bhs 0x8000f4c                                         |             
    0x08000f44 mov r3, 5                                             |             r3 = 5;
    0x08000f48 b 0x8000f80                                           |             
                                                                     |         } else {
    0x08000f4c ldr r3, [sp, 0x8c]                                    |             r3 = var_8ch;
    0x08000f50 movw r2, 0x396                                        |             r2 = 0x396;
    0x08000f54 cmp r3, r2                                            |             
                                                                     |             if (r3 > r2) {
    0x08000f58 ble 0x8000f64                                         |                 
    0x08000f5c mov r3, 2                                             |                 r3 = 2;
    0x08000f60 b 0x8000f80                                           |                 
                                                                     |             } else {
    0x08000f64 ldr r3, [sp, 0x88]                                    |                 r3 = var_88h;
    0x08000f68 movw r2, 0x396                                        |                 r2 = 0x396;
    0x08000f6c cmp r3, r2                                            |                 
                                                                     |                 if (r3 > r2) {
    0x08000f70 ble 0x8000f7c                                         |                     
    0x08000f74 mov r3, 8                                             |                     r3 = 8;
    0x08000f78 b 0x8000f80                                           |                     
                                                                     |                 } else {
    0x08000f7c mov r3, 0                                             |                     r3 = 0;
                                                                     |                 }
                                                                     |             }
                                                                     |         }
                                                                     |     }
                                                                     | label_1:
    0x08000f80 mov r0, r3                                            |     r0 = r3;
    0x08000f84 add sp, sp, 0xb4                                      |     
    0x08000f88 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}              |     
                                                                     | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis8/kernel/crypto/jitterentropy_rng.ko @ 0x8000a1c */
                                                         | #include <stdint.h>
                                                         |  
                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                         |  
    ; (fcn) sym.jent_read_entropy ()                     | void jent_read_entropy (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_4h_2;
                                                         |     int32_t var_4h;
                                                         |     int32_t var_8h;
                                                         |     int32_t var_ch;
                                                         |     int32_t var_14h_2;
                                                         |     int32_t var_14h;
                                                         |     int32_t var_18h;
                                                         |     int32_t var_1ch;
                                                         |     int32_t var_24h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x08000a1c str lr, [sp, -4]!                         |     
    0x08000a20 sub sp, sp, 0x24                          |     
    0x08000a24 str r0, [sp, 0xc]                         |     var_ch = r0;
    0x08000a28 str r1, [sp, 8]                           |     var_8h = r1;
    0x08000a2c str r2, [sp, 4]                           |     var_4h = r2;
    0x08000a30 ldr r3, [sp, 8]                           |     r3 = var_8h;
    0x08000a34 str r3, [sp, 0x1c]                        |     var_1ch = r3;
    0x08000a38 ldr r3, [sp, 0xc]                         |     r3 = var_ch;
    0x08000a3c cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x08000a40 bne 0x8000b3c                             |         goto label_0;
                                                         |     }
    0x08000a44 mvn r3, 0                                 |     r3 = ~0;
    0x08000a48 b 0x8000b4c                               |     goto label_1;
                                                         |     do {
    0x08000a4c ldr r0, [sp, 0xc]                         |         r0 = var_ch;
    0x08000a50 bl 0x80009ac                              |         jent_gen_entropy ();
    0x08000a54 ldr r0, [sp, 0xc]                         |         r0 = var_ch;
    0x08000a58 bl 0x8000344                              |         r0 = jent_health_failure ();
    0x08000a5c mov r3, r0                                |         r3 = r0;
    0x08000a60 cmp r3, 0                                 |         
                                                         |         if (r3 != 0) {
    0x08000a64 beq 0x8000ae8                             |             
    0x08000a68 ldr r0, [sp, 0xc]                         |             r0 = var_ch;
    0x08000a6c bl 0x8000214                              |             r0 = jent_rct_failure ();
    0x08000a70 mov r3, r0                                |             r3 = r0;
    0x08000a74 cmp r3, 0                                 |             
                                                         |             if (r3 != 0) {
    0x08000a78 beq 0x8000a88                             |                 
    0x08000a7c mvn r3, 1                                 |                 r3 = ~1;
    0x08000a80 str r3, [sp, 0x14]                        |                 var_14h = r3;
    0x08000a84 b 0x8000a90                               |                 
                                                         |             } else {
    0x08000a88 mvn r3, 2                                 |                 r3 = ~2;
    0x08000a8c str r3, [sp, 0x14]                        |                 var_14h = r3;
                                                         |             }
    0x08000a90 stmdaeq r0, {r2, r5, r6, sl, fp}          |             __asm ("stmdaeq r0, {r2, r5, r6, sl, fp}");
    0x08000a94 mov r3, r0                                |             r3 = r0;
    0x08000a98 cmp r3, 0                                 |             
                                                         |             if (r3 != 0) {
    0x08000a9c beq 0x8000aa8                             |                 
    0x08000aa0 ldr r3, [sp, 0x14]                        |                 r3 = var_14h;
    0x08000aa4 b 0x8000b4c                               |                 goto label_1;
                                                         |             }
    0x08000aa8 mov r1, 0                                 |             r1 = 0;
    0x08000aac ldr r0, [sp, 0xc]                         |             r0 = var_ch;
    0x08000ab0 bl 0x8000070                              |             jent_apt_reset ();
    0x08000ab4 ldr r2, [sp, 0xc]                         |             r2 = var_ch;
    0x08000ab8 ldrb r3, [r2, 0x50]                       |             r3 = *((r2 + 0x50));
    0x08000abc bfc r3, 0, 1                              |             value_0 = BIT_MASK (1, );
                                                         |             value_0 = ~value_0;
                                                         |             r3 &= value_0;
    0x08000ac0 strb r3, [r2, 0x50]                       |             *((r2 + 0x50)) = r3;
    0x08000ac4 ldr r3, [sp, 0xc]                         |             r3 = var_ch;
    0x08000ac8 mov r2, 0                                 |             r2 = 0;
    0x08000acc str r2, [r3, 0x40]                        |             *((r3 + 0x40)) = r2;
    0x08000ad0 ldr r2, [sp, 0xc]                         |             r2 = var_ch;
    0x08000ad4 ldrb r3, [r2, 0x50]                       |             r3 = *((r2 + 0x50));
    0x08000ad8 bfc r3, 1, 1                              |             value_1 = BIT_MASK (1, );
                                                         |             value_1 = ~value_1;
                                                         |             r3 &= value_1;
    0x08000adc strb r3, [r2, 0x50]                       |             *((r2 + 0x50)) = r3;
    0x08000ae0 ldr r3, [sp, 0x14]                        |             r3 = var_14h;
    0x08000ae4 b 0x8000b4c                               |             goto label_1;
                                                         |         }
    0x08000ae8 ldr r3, [sp, 4]                           |         r3 = var_4h;
    0x08000aec cmp r3, 8                                 |         
                                                         |         if (r3 >= 8) {
    0x08000af0 bls 0x8000b00                             |             
    0x08000af4 mov r3, 8                                 |             r3 = 8;
    0x08000af8 str r3, [sp, 0x18]                        |             var_18h = r3;
    0x08000afc b 0x8000b08                               |             
                                                         |         } else {
    0x08000b00 ldr r3, [sp, 4]                           |             r3 = var_4h;
    0x08000b04 str r3, [sp, 0x18]                        |             var_18h = r3;
                                                         |         }
    0x08000b08 ldr r3, [sp, 0xc]                         |         r3 = var_ch;
    0x08000b0c ldr r2, [sp, 0x18]                        |         r2 = var_18h;
    0x08000b10 mov r1, r3                                |         r1 = r3;
    0x08000b14 ldr r0, [sp, 0x1c]                        |         r0 = var_1ch;
    0x08000b18 stmdaeq r0, {r4, r5, r8, ip}              |         __asm ("stmdaeq r0, {r4, r5, r8, ip}");
    0x08000b1c ldr r2, [sp, 4]                           |         r2 = var_4h;
    0x08000b20 ldr r3, [sp, 0x18]                        |         r3 = var_18h;
    0x08000b24 sub r3, r2, r3                            |         r3 = r2 - r3;
    0x08000b28 str r3, [sp, 4]                           |         var_4h = r3;
    0x08000b2c ldr r2, [sp, 0x1c]                        |         r2 = var_1ch;
    0x08000b30 ldr r3, [sp, 0x18]                        |         r3 = var_18h;
    0x08000b34 add r3, r2, r3                            |         r3 = r2 + r3;
    0x08000b38 str r3, [sp, 0x1c]                        |         var_1ch = r3;
                                                         | label_0:
    0x08000b3c ldr r3, [sp, 4]                           |         r3 = var_4h;
    0x08000b40 cmp r3, 0                                 |         
    0x08000b44 bne 0x8000a4c                             |         
                                                         |     } while (r3 != 0);
    0x08000b48 mov r3, 0                                 |     r3 = 0;
                                                         | label_1:
    0x08000b4c mov r0, r3                                |     r0 = r3;
    0x08000b50 add sp, sp, 0x24                          |     
    0x08000b54 pop {pc}                                  |     
                                                         | }

[*] Function strcat used 1 times jitterentropy_rng.ko