[*] Binary protection state of libhttp_auth.so
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function system tear down of libhttp_auth.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libhttp_auth.so @ 0x4bec */
| #include <stdint.h>
|
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) fcn.00004bec () | void fcn_00004bec (int16_t arg_148h, int16_t arg_14ch, int16_t arg1) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_ch;
| char * dest;
| int16_t var_74h;
| char * var_75h;
| int16_t var_adh;
| int16_t var_b0h;
| int16_t var_10ch;
| r0 = arg1;
0x00004bec blmi 0xfe197608 | __asm ("blmi 0xfe197608");
0x00004bf0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00004bf4 sub sp, 0x114 |
0x00004bf6 add r2, pc | r2 += pc;
0x00004bf8 ldr r4, [pc, 0x210] |
0x00004bfa mov r5, r0 | r5 = r0;
0x00004bfc ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00004bfe add r4, pc | r4 = 0x9a0e;
0x00004c00 ldr r3, [r3] | r3 = *(r3);
0x00004c02 str r3, [sp, 0x10c] | var_10ch = r3;
0x00004c04 mov.w r3, 0 | r3 = 0;
0x00004c08 blx 0x1730 | fcn_00001730 ();
0x00004c0c ldr r2, [pc, 0x200] | r2 = *(0x4e10);
0x00004c0e mov r6, r0 | r6 = r0;
0x00004c10 ldr.w sl, [r0] | sl = *(r0);
0x00004c14 mov r3, r4 | r3 = r4;
0x00004c16 ldr r7, [r4, r2] | r7 = *(0x9a0e);
0x00004c18 mov r0, r7 | r0 = r7;
0x00004c1a blx 0x154c | fcn_0000154c ();
0x00004c1e ldrb r3, [r5, 0x10] | r3 = *((r5 + 0x10));
0x00004c20 cmp r3, 0 |
| if (r3 == 0) {
0x00004c22 beq.w 0x4dbc | goto label_2;
| }
0x00004c26 ldrb.w r3, [r5, 0x69] | r3 = *((r5 + 0x69));
0x00004c2a cmp r3, 0 |
| if (r3 == 0) {
0x00004c2c beq.w 0x4dbc | goto label_2;
| }
0x00004c30 add.w sb, r5, 0x10 | sb = r5 + 0x10;
0x00004c34 add.w r8, r5, 0x69 | r8 = r5 + 0x69;
0x00004c36 lsrs r1, r5, 1 | r1 = r5 >> 1;
0x00004c38 mov r1, r8 | r1 = r8;
0x00004c3a mov r0, sb | r0 = sb;
0x00004c3c bl 0x4b14 | r0 = fcn_00004b14 (r0, r1);
0x00004c40 cmp r0, 0 |
0x00004c42 mov r0, r7 | r0 = r7;
| if (r0 >= 0) {
0x00004c44 bge.w 0x4dc8 | goto label_3;
| }
0x00004c48 blx 0x154c | fcn_0000154c ();
0x00004c4c ldr r3, [pc, 0x1c4] |
0x00004c4e add r3, pc | r3 = 0x9a66;
0x00004c50 ldr.w r0, [r3, 0x14c] | r0 = *(0x9bb2);
0x00004c54 cmp r0, 0 |
| if (r0 == 0) {
0x00004c56 beq 0x4d34 | goto label_4;
| }
0x00004c58 ldr.w r1, [r3, 0x148] | r1 = *((r3 + 0x148));
0x00004c5c movs r4, 0 | r4 = 0;
0x00004c5e mov r3, r4 | r3 = r4;
0x00004c60 adds r1, 0x10 | r1 += 0x10;
0x00004c62 b 0x4c6c |
| while (r2 != 0) {
0x00004c64 adds r3, 1 | r3++;
0x00004c66 adds r4, 0xa2 | r4 += 0xa2;
0x00004c68 cmp r3, r0 |
| if (r3 == r0) {
0x00004c6a beq 0x4d34 | goto label_4;
| }
0x00004c6c ldrb r2, [r1, r4] | r2 = *((r1 + r4));
0x00004c6e cmp r2, 0 |
0x00004c70 bne 0x4c64 |
| }
| label_0:
0x00004c72 mov r0, r7 | r0 = r7;
0x00004c74 blx 0x1524 | fcn_00001524 ();
0x00004c78 ldr r1, [pc, 0x19c] |
0x00004c7a mov r0, r8 | r0 = r8;
0x00004c7c add r1, pc | r1 = 0x9a98;
0x00004c7e blx 0x161c | r0 = fcn_0000161c ();
0x00004c82 mov fp, r0 |
0x00004c84 cmp r0, 0 |
| if (r0 == 0) {
0x00004c86 beq 0x4d18 | goto label_5;
| }
0x00004c88 mov r0, sb | r0 = sb;
0x00004c8a blx 0x1558 | strtoul (r0, r1, r2);
0x00004c8e mov r2, sb | r2 = sb;
0x00004c90 add.w sb, sp, 0xb0 | sb += var_b0h;
0x00004c94 mov r3, r0 | r3 = r0;
0x00004c96 movs r1, 0x59 | r1 = 0x59;
0x00004c98 mov r0, sb | r0 = sb;
0x00004c9a bl 0x3a68 | r0 = fcn_00003a68 (r0, r1, r2, r3);
0x00004c9e bic.w r3, r0, r0, asr 31 | r3 = BIT_MASK (r0, r0);
0x00004ca2 mov r1, sb | r1 = sb;
0x00004ca4 mov.w sb, 0 | sb = 0;
0x00004ca8 add.w r3, r3, 0x110 | r3 += 0x110;
0x00004cac movs r2, 0x58 | r2 = 0x58;
0x00004cae add r3, sp, r3 | r3 = sp + r3;
0x00004cb0 add r0, sp, 0x1c | r0 += dest;
0x00004cb2 strb sb, [r3, -0x60] | *((r3 - 0x60)) = sb;
0x00004cb6 blx 0x1408 | strncpy (r0, r1, r2);
0x00004cba mov r1, r8 | r1 = r8;
0x00004cbc movs r2, 0x38 | r2 = 0x38;
0x00004cbe add.w r0, sp, 0x75 | r0 += var_75h;
0x00004cc2 strb.w sb, [sp, 0x74] | var_74h = sb;
0x00004cc6 blx 0x1408 | strncpy (r0, r1, r2);
0x00004cca ldr r3, [pc, 0x150] |
0x00004ccc add.w ip, sp, 0xc |
0x00004cd0 ldr r0, [r5] | r0 = *(r5);
0x00004cd2 ldr r1, [r5, 4] | r1 = *((r5 + 4));
0x00004cd4 add r3, pc | r3 = 0x9af6;
0x00004cd6 ldr r2, [r5, 8] | r2 = *((r5 + 8));
0x00004cd8 ldr.w lr, [r3, 0x148] | lr = *(0x9c3e);
0x00004cdc ldr r3, [r5, 0xc] | r3 = *((r5 + 0xc));
0x00004cde mov r5, ip | r5 = ip;
0x00004ce0 strb.w sb, [sp, 0xad] | var_adh = sb;
0x00004ce4 stm r5!, {r0, r1, r2, r3} | *(r5!) = r0;
| *((r5! + 4)) = r1;
| *((r5! + 8)) = r2;
| *((r5! + 12)) = r3;
0x00004ce6 add.w r0, lr, r4 | r0 = lr + r4;
0x00004cea mov r1, ip | r1 = ip;
0x00004cec movs r2, 0xa2 | r2 = 0xa2;
0x00004cee blx 0x158c | fcn_0000158c ();
0x00004cf2 mov r0, r7 | r0 = r7;
0x00004cf4 blx 0x1524 | fcn_00001524 ();
0x00004cf8 mov r0, sb | r0 = sb;
| do {
| label_1:
0x00004cfa ldr r2, [pc, 0x124] |
0x00004cfc ldr r3, [pc, 0x108] | r3 = *(0x4e08);
0x00004cfe str.w sl, [r6] | __asm ("str.w sl, [r6]");
0x00004d02 add r2, pc | r2 = 0x9b28;
0x00004d04 ldr r3, [r2, r3] | r3 = *(0x9b28);
0x00004d06 ldr r2, [r3] | r2 = *(0x9b28);
0x00004d08 ldr r3, [sp, 0x10c] | r3 = var_10ch;
0x00004d0a eors r2, r3 | r2 ^= r3;
0x00004d0c mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00004d10 bne 0x4df0 | goto label_6;
| }
0x00004d12 add sp, 0x114 |
0x00004d14 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
0x00004d16 ldrh r0, [r6, 0x3e] | r0 = *((r6 + 0x3e));
| label_5:
0x00004d18 ldr r3, [pc, 0x108] |
0x00004d1a mov r1, r5 | r1 = r5;
0x00004d1c movs r2, 0xa2 | r2 = 0xa2;
0x00004d1e add r3, pc | r3 = 0x9b46;
0x00004d20 ldr.w r0, [r3, 0x148] | r0 = *(0x9c8e);
0x00004d24 add r0, r4 | r0 += r4;
0x00004d26 blx 0x158c | fcn_0000158c ();
0x00004d2a mov r0, r7 | r0 = r7;
0x00004d2c blx 0x1524 | fcn_00001524 ();
0x00004d30 mov r0, fp | r0 = fp;
0x00004d32 b 0x4cfa |
| } while (1);
| label_4:
0x00004d34 ldr.w fp, [pc, 0xf0] | fp = *(0x00004e28);
0x00004d38 movs r4, 0 | r4 = 0;
0x00004d3a mov r0, r7 | r0 = r7;
0x00004d3c blx 0x1524 | fcn_00001524 ();
0x00004d40 add fp, pc |
0x00004d42 mov r0, r7 | r0 = r7;
0x00004d44 str r4, [r6] | *(r6) = r4;
0x00004d46 blx 0x154c | fcn_0000154c ();
0x00004d4a ldr.w r3, [fp, 0x14c] | r3 = *(arg_14ch);
0x00004d4e mov r0, r3 | r0 = r3;
0x00004d50 str r3, [sp, 4] | var_4h = r3;
0x00004d52 bl 0x3e18 | fcn_00003e18 ();
0x00004d56 movs r2, 0xa2 | r2 = 0xa2;
0x00004d58 str r0, [sp] | *(sp) = r0;
0x00004d5a mul r1, r2, r0 | r1 = r2 * r0;
0x00004d5e str r4, [r6] | *(r6) = r4;
0x00004d60 ldr.w r0, [fp, 0x148] | r0 = *(arg_148h);
0x00004d64 blx 0x16f4 | fcn_000016f4 ();
0x00004d68 ldr r3, [sp, 4] | r3 = var_4h;
0x00004d6a movs r2, 0xa2 | r2 = 0xa2;
0x00004d6c str.w r0, [fp, 0x148] | __asm ("str.w r0, [arg_148h]");
| if (r0 == 0) {
0x00004d70 cbz r0, 0x4dd2 | goto label_7;
| }
0x00004d72 ldr r1, [sp] | r1 = *(sp);
0x00004d74 mla r0, r2, r3, r0 | __asm ("mla r0, r2, r3, r0");
0x00004d78 subs r3, r1, r3 | r3 = r1 - r3;
0x00004d7a str.w r1, [fp, 0x14c] | __asm ("str.w r1, [arg_14ch]");
0x00004d7e mul r2, r3, r2 | r2 = r3 * r2;
0x00004d82 mov r1, r4 | r1 = r4;
0x00004d84 blx 0x1498 | policykit_system_auth_user_basic ()
0x00004d88 mov r0, r7 | r0 = r7;
0x00004d8a blx 0x1524 | fcn_00001524 ();
0x00004d8e mov r0, r7 | r0 = r7;
0x00004d90 str r4, [r6] | *(r6) = r4;
0x00004d92 blx 0x154c | fcn_0000154c ();
0x00004d96 ldr.w r0, [fp, 0x14c] | r0 = *(arg_14ch);
| if (r0 == 0) {
0x00004d9a cbz r0, 0x4db6 | goto label_8;
| }
0x00004d9c ldr.w r1, [fp, 0x148] | r1 = *(arg_148h);
0x00004da0 mov r3, r4 | r3 = r4;
0x00004da2 adds r1, 0x10 | r1 += 0x10;
0x00004da4 b 0x4dae |
| while (r2 != 0) {
0x00004da6 adds r3, 1 | r3++;
0x00004da8 adds r4, 0xa2 | r4 += 0xa2;
0x00004daa cmp r3, r0 |
| if (r3 == r0) {
0x00004dac beq 0x4db6 | goto label_8;
| }
0x00004dae ldrb r2, [r1, r4] | r2 = *((r1 + r4));
0x00004db0 cmp r2, 0 |
0x00004db2 bne 0x4da6 |
| }
0x00004db4 b 0x4c72 | goto label_0;
| label_8:
0x00004db6 mvn r4, 0xa1 | r4 = ~0xa1;
0x00004dba b 0x4c72 | goto label_0;
| label_2:
0x00004dbc mov r0, r7 | r0 = r7;
0x00004dbe blx 0x1524 | fcn_00001524 ();
0x00004dc2 mvn r0, 0xbd | r0 = ~0xbd;
0x00004dc6 b 0x4cfa | goto label_1;
| label_3:
0x00004dc8 blx 0x1524 | fcn_00001524 ();
0x00004dcc mvn r0, 0xc1 | r0 = ~0xc1;
0x00004dd0 b 0x4cfa | goto label_1;
| label_7:
0x00004dd2 ldr r4, [r6] | r4 = *(r6);
0x00004dd4 str.w r0, [fp, 0x14c] | __asm ("str.w r0, [arg_14ch]");
0x00004dd8 mov r0, r7 | r0 = r7;
0x00004dda blx 0x1524 | fcn_00001524 ();
| if (r4 != 0) {
0x00004dde cbz r4, 0x4df4 |
0x00004de0 mov r0, r7 | r0 = r7;
0x00004de2 str r4, [r6] | *(r6) = r4;
0x00004de4 blx 0x1524 | fcn_00001524 ();
0x00004de8 mov sl, r4 | sl = r4;
0x00004dea mvn r0, 0xb7 | r0 = ~0xb7;
0x00004dee b 0x4cfa | goto label_1;
| label_6:
0x00004df0 blx 0x1658 | fcn_00001658 ();
| }
0x00004df4 mov r0, r7 | r0 = r7;
0x00004df6 str r4, [r6] | *(r6) = r4;
0x00004df8 blx 0x1524 | fcn_00001524 ();
0x00004dfc mvn r0, 0xb7 | r0 = ~0xb7;
0x00004e00 b 0x4cfa | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libhttp_auth.so @ 0x4e2c */
| #include <stdint.h>
|
; (fcn) fcn.00004e2c () | void fcn_00004e2c () {
0x00004e2c ldr r3, [pc, 0xbc] |
0x00004e2e ldr r2, [pc, 0xc0] | r2 = *(0x4ef2);
0x00004e30 push {r4, r5, r6, lr} |
0x00004e32 add r3, pc | r3 = 0x9d22;
0x00004e34 ldr r6, [pc, 0xbc] |
0x00004e36 ldr r5, [r3, r2] | r5 = *(0x9d22);
0x00004e38 add r6, pc | r6 = 0x9d30;
0x00004e3a mov r0, r5 | r0 = r5;
0x00004e3c blx 0x154c | fcn_0000154c ();
0x00004e40 ldr r1, [pc, 0xb4] |
0x00004e42 mov r0, r6 | r0 = r6;
0x00004e44 add r1, pc | r1 = 0x9d40;
0x00004e46 bl 0x42d4 | r0 = fcn_000042d4 (r0, r1);
0x00004e4a cmp r0, 0 |
| if (r0 == 0) {
0x00004e4c beq 0x4ed8 | goto label_2;
| }
0x00004e4e mov r4, r0 | r4 = r0;
0x00004e50 blx 0x139c | fileno (r0);
0x00004e54 movs r1, 2 | r1 = 2;
0x00004e56 mov r6, r0 | r6 = r0;
0x00004e58 bl 0x43e8 | r0 = fcn_000043e8 (r0, r1);
0x00004e5c cmp r0, 0 |
| if (r0 < 0) {
0x00004e5e bge 0x4e74 |
| label_0:
0x00004e60 mov r0, r4 | r0 = r4;
0x00004e62 bl 0x4318 | r0 = fcn_00004318 (r0);
0x00004e66 mov r4, r0 | r4 = r0;
| if (r0 != 0) {
0x00004e68 cbnz r0, 0x4ec2 | goto label_3;
| }
| label_1:
0x00004e6a mov r0, r5 | r0 = r5;
0x00004e6c blx 0x1524 | fcn_00001524 ();
0x00004e70 mov r0, r4 | r0 = r4;
0x00004e72 pop {r4, r5, r6, pc} |
| }
0x00004e74 mov r0, r5 | r0 = r5;
0x00004e76 blx 0x154c | fcn_0000154c ();
0x00004e7a ldr r3, [pc, 0x80] |
0x00004e7c movs r1, 0 | r1 = 0;
0x00004e7e add r3, pc | r3 = 0x9d80;
0x00004e80 ldrd r0, r2, [r3, 0x148] | __asm ("ldrd r0, r2, [r3, 0x148]");
0x00004e84 movs r3, 0xa2 | r3 = 0xa2;
0x00004e86 mul r2, r3, r2 | r2 = r3 * r2;
0x00004e8a blx 0x1498 | policykit_system_auth_user_basic ()
0x00004e8e mov r0, r5 | r0 = r5;
0x00004e90 blx 0x1524 | fcn_00001524 ();
0x00004e94 b 0x4e9a |
| while (r0 != 0) {
0x00004e96 bl 0x4bec | fcn_00004bec (r0, r1, r2);
0x00004e9a mov r0, r4 | r0 = r4;
0x00004e9c bl 0x491c | r0 = fcn_0000491c (r0);
0x00004ea0 cmp r0, 0 |
0x00004ea2 bne 0x4e96 |
| }
0x00004ea4 movs r1, 8 | r1 = 8;
0x00004ea6 mov r0, r6 | r0 = r6;
0x00004ea8 bl 0x43e8 | r0 = fcn_000043e8 (r0, r1);
0x00004eac cmp r0, 0 |
| if (r0 >= 0) {
0x00004eae bge 0x4e60 | goto label_0;
| }
0x00004eb0 ldr r3, [pc, 0x4c] |
0x00004eb2 movs r1, 1 | r1 = 1;
0x00004eb4 ldr r2, [pc, 0x4c] |
0x00004eb6 movs r0, 3 | r0 = 3;
0x00004eb8 add r3, pc | r3 = 0x9dbc;
0x00004eba add r2, pc | r2 = 0x9dc2;
0x00004ebc blx 0x1610 | fcn_00001610 ();
0x00004ec0 b 0x4e60 | goto label_0;
| label_3:
0x00004ec2 ldr r3, [pc, 0x44] |
0x00004ec4 movs r1, 1 | r1 = 1;
0x00004ec6 ldr r2, [pc, 0x44] |
0x00004ec8 movs r0, 3 | r0 = 3;
0x00004eca mov.w r4, -1 | r4 = -1;
0x00004ece add r3, pc | r3 = 0x9ddc;
0x00004ed0 add r2, pc | r2 = 0x9de2;
0x00004ed2 blx 0x1610 | fcn_00001610 ();
0x00004ed6 b 0x4e6a | goto label_1;
| label_2:
0x00004ed8 ldr r2, [pc, 0x34] |
0x00004eda mov r3, r6 | r3 = r6;
0x00004edc movs r1, 1 | r1 = 1;
0x00004ede movs r0, 3 | r0 = 3;
0x00004ee0 mov.w r4, -1 | r4 = -1;
0x00004ee4 add r2, pc | r2 = 0x9df8;
0x00004ee6 blx 0x1610 | fcn_00001610 ();
0x00004eea b 0x4e6a | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libhttp_auth.so @ 0x5010 */
| #include <stdint.h>
|
; (fcn) fcn.00005010 () | void fcn_00005010 (int16_t arg1, int16_t arg2) {
| r0 = arg1;
| r1 = arg2;
0x00005010 ldr r3, [pc, 0x40] |
0x00005012 ldr r2, [pc, 0x44] | r2 = *(0x505a);
0x00005014 push {r4, r5, r6, lr} |
0x00005016 mov r5, r1 | r5 = r1;
0x00005018 add r3, pc | r3 = 0xa070;
0x0000501a mov r4, r0 | r4 = r0;
0x0000501c ldr r6, [r3, r2] | r6 = *(0xa070);
0x0000501e mov r0, r6 | r0 = r6;
0x00005020 blx 0x154c | fcn_0000154c ();
0x00005024 mov r0, r5 | r0 = r5;
0x00005026 bl 0x28b8 | r0 = fcn_000028b8 (r0);
0x0000502a mov r1, r0 | r1 = r0;
0x0000502c mov r0, r4 | r0 = r4;
0x0000502e bl 0x4b14 | r0 = fcn_00004b14 (r0, r1);
0x00005032 cmp r0, 0 |
| if (r0 >= 0) {
0x00005034 blt 0x504a |
0x00005036 ldr r3, [pc, 0x24] |
0x00005038 movs r2, 0xa2 | r2 = 0xa2;
0x0000503a movs r1, 0 | r1 = 0;
0x0000503c add r3, pc |
0x0000503e ldr.w r3, [r3, 0x148] | r3 = *(0xa1e6);
0x00005042 mla r0, r2, r0, r3 | __asm ("mla r0, r2, r0, r3");
0x00005046 blx 0x1498 | policykit_system_auth_user_basic ()
| }
0x0000504a mov r0, r6 | r0 = r6;
0x0000504c blx 0x1524 | fcn_00001524 ();
0x00005050 movs r0, 0 | r0 = 0;
0x00005052 pop {r4, r5, r6, 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/libhttp_auth.so @ 0x5660 */
| #include <stdint.h>
|
; (fcn) fcn.00005660 () | void fcn_00005660 (int16_t arg_0h, char * arg1) {
| int16_t var_0h;
| int32_t var_4h_2;
| int32_t var_4h_3;
| int16_t var_ch;
| char * dest;
| int16_t var_14h;
| int16_t var_18h;
| int32_t var_4h;
| int16_t var_20h;
| int16_t var_78h;
| char * src;
| int16_t var_2f4h;
| int16_t var_304h;
| int16_t var_308h;
| int16_t var_314h;
| int16_t var_318h;
| int16_t var_33ch;
| int16_t var_344h;
| r0 = arg1;
0x00005660 svcmi 0xf0e92d | __asm ("svcmi 0xf0e92d");
0x00005664 sub.w sp, sp, 0x344 |
0x00005668 ldr r4, [pc, 0x2ac] |
0x0000566a ldr r1, [pc, 0x2b0] | r1 = *(0x591e);
0x0000566c add r4, pc | r4 = 0xaf88;
0x0000566e ldr r3, [pc, 0x2b0] |
0x00005670 ldr r2, [pc, 0x2b0] | r2 = *(0x5924);
0x00005672 ldr r1, [r4, r1] |
0x00005674 add r3, pc | r3 = 0xaf9a;
0x00005676 ldr r4, [pc, 0x2b0] |
0x00005678 ldr r1, [r1] | r1 = *(0xaf88);
0x0000567a str r1, [sp, 0x33c] | var_33ch = r1;
0x0000567c mov.w r1, 0 | r1 = 0;
0x00005680 ldr.w sb, [r3, r2] | sb = *(0xaf9a);
0x00005684 add r4, pc | r4 = 0xafb2;
0x00005686 str r0, [sp, 0x10] | dest = r0;
0x00005688 mov r0, sb | r0 = sb;
0x0000568a blx 0x154c | fcn_0000154c ();
0x0000568e ldr r3, [r4, 0x18] | r3 = *(0xafca);
0x00005690 cmp r3, 0 |
| if (r3 == 0) {
0x00005692 beq.w 0x5868 | goto label_5;
| }
| label_3:
0x00005696 add r7, sp, 0x78 | r7 += var_78h;
0x00005698 mov.w r2, 0x27c | r2 = 0x27c;
0x0000569c movs r1, 0 | r1 = 0;
0x0000569e mov r0, r7 | r0 = r7;
0x000056a0 add.w sl, sp, 0x18 | sl += var_18h;
0x000056a4 blx 0x1498 | policykit_system_auth_user_basic ()
0x000056a8 bl 0x55e4 | fcn_000055e4 ();
0x000056ac movs r1, 0 | r1 = 0;
0x000056ae mov r5, r0 | r5 = r0;
0x000056b0 mov r0, sl | r0 = sl;
0x000056b2 blx 0x1514 | fcn_00001514 ();
0x000056b6 bl 0x562c | r0 = fcn_0000562c ();
0x000056ba cmp r5, r0 |
0x000056bc mov r6, r0 | r6 = r0;
| if (r5 <= r0) {
0x000056be blo 0x5708 | goto label_1;
| }
0x000056c0 ldr r4, [pc, 0x268] |
0x000056c2 mov.w r8, 0x27c | r8 = 0x27c;
0x000056c6 add r4, pc | r4 = 0xaff6;
0x000056c8 ldr.w fp, [r4, 0x10] | fp = *(0xb006);
| do {
0x000056cc ldr r3, [r4, 8] | r3 = *((r4 + 8));
| if (r3 == 0) {
0x000056ce cbz r3, 0x56fe | goto label_6;
| }
| label_0:
0x000056d0 ldr r3, [r4] | r3 = *(r4);
0x000056d2 mul r3, r8, r3 | r3 = r8 * r3;
0x000056d6 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x000056da subs r3, r5, r3 | r3 = r5 - r3;
0x000056dc cmp r6, r3 |
| if (r6 >= r3) {
0x000056de bhs 0x56fe | goto label_6;
| }
0x000056e0 ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x000056e2 cmp r3, 0 |
0x000056e4 beq 0x56cc |
| } while (r3 == 0);
0x000056e6 ldr r0, [r4] | r0 = *(r4);
0x000056e8 ldr r1, [r4, 0xc] | r1 = *((r4 + 0xc));
0x000056ea adds r0, 1 | r0++;
0x000056ec bl 0x6414 | fcn_00006414 (r0);
0x000056f0 str r1, [r4] | *(r4) = r1;
0x000056f2 ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x000056f4 subs r3, 1 | r3--;
0x000056f6 str r3, [r4, 8] | *((r4 + 8)) = r3;
0x000056f8 ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x000056fa cmp r3, 0 |
| if (r3 != 0) {
0x000056fc bne 0x56d0 | goto label_0;
| }
| label_6:
0x000056fe ldr r4, [pc, 0x230] |
0x00005700 add r4, pc | r4 = 0xb036;
0x00005702 ldr r3, [r4, 0xc] | r3 = *(0xb042);
0x00005704 cmp r3, 0x32 |
0x00005706 bhi 0x57c8 |
| while (r3 < r2) {
| label_1:
0x00005708 ldr r4, [pc, 0x228] |
0x0000570a blx 0x13a8 | random ();
0x0000570e str r5, [sp, 0x304] | var_304h = r5;
0x00005710 mov r6, r0 | r6 = r0;
0x00005712 add r4, pc | r4 = 0xb04a;
0x00005714 add r3, sp, 0x308 | r3 += var_308h;
0x00005716 ldr r2, [r4, 0x18] |
0x00005718 ldr r0, [r2] | r0 = *(0xb062);
0x0000571a ldr r1, [r2, 4] | r1 = *(0xb066);
0x0000571c ldr r2, [r2, 8] | r2 = *(0xb06a);
0x0000571e stm r3!, {r0, r1, r2} | *(r3!) = r0;
| *((r3! + 4)) = r1;
| *((r3! + 8)) = r2;
0x00005720 str r6, [sp, 0x314] | var_314h = r6;
0x00005722 add r6, sp, 0x20 | r6 += var_20h;
0x00005724 mov r0, r6 | r0 = r6;
0x00005726 bl 0x5cd0 | fcn_00005cd0 (r0);
0x0000572a movs r2, 0x14 | r2 = 0x14;
0x0000572c mov r0, r6 | r0 = r6;
0x0000572e add r1, sp, 0x304 | r1 += var_304h;
0x00005730 bl 0x5d04 | fcn_00005d04 (r0, r1, r2);
0x00005734 mov r1, r6 | r1 = r6;
0x00005736 add r6, sp, 0x2f4 | r6 += var_2f4h;
0x00005738 mov r0, r6 | r0 = r6;
0x0000573a bl 0x5d08 | fcn_00005d08 (r0, r1);
0x0000573e mov r0, r6 | r0 = r6;
0x00005740 add r6, sp, 0x318 | r6 += var_318h;
0x00005742 mov r1, r6 | r1 = r6;
0x00005744 bl 0x5da4 | fcn_00005da4 (r0);
0x00005748 str r6, [sp, 0xc] | var_ch = r6;
0x0000574a add r6, sp, 0x280 | r6 += src;
0x0000574c ldr.w r3, [sl, 4] | r3 = var_4h;
0x00005750 movs r2, 1 | r2 = 1;
0x00005752 mov r0, r6 | r0 = r6;
0x00005754 strd r5, r3, [sp, 4] | __asm ("strd r5, r3, [var_4h_2]");
0x00005758 ldr r3, [pc, 0x1dc] |
0x0000575a add r3, pc | r3 = 0xb096;
0x0000575c str r3, [sp] | *(sp) = r3;
0x0000575e movs r3, 0x30 | r3 = 0x30;
0x00005760 mov r1, r3 | r1 = r3;
0x00005762 blx 0x15ec | fcn_000015ec ();
0x00005766 movs r2, 0x30 | r2 = 0x30;
0x00005768 ldr r0, [sp, 0x10] | r0 = dest;
0x0000576a mov r1, r6 | r1 = r6;
0x0000576c blx 0x1408 | strncpy (r0, r1, r2);
0x00005770 ldr r3, [r4, 8] | r3 = *(0xb052);
0x00005772 ldr r2, [r4, 0xc] | r2 = *(0xb056);
0x00005774 str r5, [r7] | *(r7) = r5;
0x00005776 adds r3, 1 | r3++;
0x00005778 cmp r3, r2 |
| if (r3 >= r2) {
0x0000577a bhs 0x5808 | goto label_7;
| }
| label_2:
0x0000577c ldr r4, [pc, 0x1bc] |
0x0000577e mov.w r2, 0x27c | r2 = 0x27c;
0x00005782 mov r1, r7 | r1 = r7;
0x00005784 add r4, pc | r4 = 0xb0c4;
0x00005786 ldr r3, [r4, 0x10] | r3 = *(0xb0d4);
0x00005788 ldr r0, [r4, 4] | r0 = *(0xb0c8);
0x0000578a mla r0, r2, r0, r3 | __asm ("mla r0, r2, r0, r3");
0x0000578e blx 0x158c | fcn_0000158c ();
0x00005792 ldr r0, [r4, 4] | r0 = *(0xb0c8);
0x00005794 ldr r1, [r4, 0xc] | r1 = *(0xb0d0);
0x00005796 adds r0, 1 | r0++;
0x00005798 bl 0x6414 | fcn_00006414 (r0);
0x0000579c str r1, [r4, 4] | *((r4 + 4)) = r1;
0x0000579e mov r0, sb | r0 = sb;
0x000057a0 ldr r3, [r4, 8] | r3 = *(0xb0cc);
0x000057a2 adds r3, 1 | r3++;
0x000057a4 str r3, [r4, 8] | *((r4 + 8)) = r3;
0x000057a6 blx 0x1524 | fcn_00001524 ();
0x000057aa ldr r2, [pc, 0x194] |
0x000057ac ldr r3, [pc, 0x16c] | r3 = *(0x591c);
0x000057ae add r2, pc | r2 = 0xb0f4;
0x000057b0 ldr r3, [r2, r3] | r3 = *(0xb0f4);
0x000057b2 ldr r2, [r3] | r2 = *(0xb0f4);
0x000057b4 ldr r3, [sp, 0x33c] | r3 = var_33ch;
0x000057b6 eors r2, r3 | r2 ^= r3;
0x000057b8 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000057bc bne.w 0x5904 | goto label_8;
| }
0x000057c0 add.w sp, sp, 0x344 |
0x000057c4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
0x000057c8 ldr r2, [r4, 8] | r2 = *((r4 + 8));
0x000057ca ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x000057cc cmp.w r3, r2, lsl 2 |
0x000057d0 bls 0x5708 |
| }
0x000057d2 ldr r2, [r4] | r2 = *(r4);
0x000057d4 ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x000057d6 cmp r2, r3 |
| if (r2 > r3) {
0x000057d8 bhi 0x5708 | goto label_1;
| }
0x000057da ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x000057dc cmp r3, 0 |
| if (r3 == 0) {
0x000057de beq 0x58a6 | goto label_9;
| }
0x000057e0 ldr r3, [r4] | r3 = *(r4);
0x000057e2 cmp r3, 0 |
| if (r3 != 0) {
0x000057e4 bne 0x58e0 | goto label_10;
| }
| label_4:
0x000057e6 ldr r6, [pc, 0x15c] |
0x000057e8 mov.w r1, 0x27c | r1 = 0x27c;
0x000057ec mov r0, fp | r0 = fp;
0x000057ee add r6, pc | r6 = 0xb138;
0x000057f0 ldr r4, [r6, 4] | r4 = *(0xb13c);
0x000057f2 adds r4, 0xa | r4 += 0xa;
0x000057f4 mul r1, r4, r1 | r1 = r4 * r1;
0x000057f8 blx 0x16f4 | r0 = fcn_000016f4 ();
0x000057fc cmp r0, 0 |
| if (r0 == 0) {
0x000057fe beq.w 0x5908 | goto label_11;
| }
0x00005802 str r0, [r6, 0x10] | *((r6 + 0x10)) = r0;
0x00005804 str r4, [r6, 0xc] | *((r6 + 0xc)) = r4;
0x00005806 b 0x5708 | goto label_1;
| label_7:
0x00005808 mov r0, sb | r0 = sb;
0x0000580a mov.w r8, 0x27c | r8 = 0x27c;
0x0000580e blx 0x154c | fcn_0000154c ();
0x00005812 ldr r6, [r4, 0xc] | r6 = *((r4 + 0xc));
0x00005814 ldr r0, [r4, 0xc] | r0 = *((r4 + 0xc));
0x00005816 bl 0x3e18 | r0 = fcn_00003e18 ();
0x0000581a mul r1, r8, r0 | r1 = r8 * r0;
0x0000581e mov r5, r0 | r5 = r0;
0x00005820 ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x00005822 blx 0x16f4 | r0 = fcn_000016f4 ();
0x00005826 mov r1, r0 | r1 = r0;
| if (r0 != 0) {
0x00005828 cbz r0, 0x5878 |
0x0000582a str r5, [r4, 0xc] | *((r4 + 0xc)) = r5;
0x0000582c ldr r2, [r4] | r2 = *(r4);
0x0000582e ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x00005830 str r0, [r4, 0x10] | *((r4 + 0x10)) = r0;
0x00005832 cmp r2, r3 |
| if (r2 >= r3) {
0x00005834 bls 0x5860 |
0x00005836 ldr r0, [r4] | r0 = *(r4);
0x00005838 subs r5, r5, r6 | r5 -= r6;
0x0000583a ldr r3, [r4] | r3 = *(r4);
0x0000583c add r0, r5 | r0 += r5;
0x0000583e mla r0, r8, r0, r1 | __asm ("mla r0, r8, r0, r1");
0x00005842 mla r1, r8, r3, r1 | __asm ("mla r1, r8, r3, r1");
0x00005846 ldr r3, [r4] | r3 = *(r4);
0x00005848 subs r6, r6, r3 | r6 -= r3;
0x0000584a mul r2, r8, r6 | r2 = r8 * r6;
0x0000584e blx 0x1694 | fcn_00001694 ();
0x00005852 ldr r3, [r4] | r3 = *(r4);
0x00005854 mov r0, sb | r0 = sb;
0x00005856 add r5, r3 | r5 += r3;
0x00005858 str r5, [r4] | *(r4) = r5;
0x0000585a blx 0x1524 | fcn_00001524 ();
0x0000585e b 0x577c | goto label_2;
| }
0x00005860 mov r0, sb | r0 = sb;
0x00005862 blx 0x1524 | fcn_00001524 ();
0x00005866 b 0x577c | goto label_2;
| label_5:
0x00005868 bl 0x288c | fcn_0000288c ();
0x0000586c str r0, [r4, 0x18] | *((r4 + 0x18)) = r0;
0x0000586e bl 0x4338 | fcn_00004338 ();
0x00005872 blx 0x1604 | fcn_00001604 ();
0x00005876 b 0x5696 | goto label_3;
| }
0x00005878 ldr r2, [pc, 0xcc] |
0x0000587a movs r1, 1 | r1 = 1;
0x0000587c movs r0, 3 | r0 = 3;
0x0000587e add r2, pc | r2 = 0xb1ca;
0x00005880 blx 0x1610 | fcn_00001610 ();
0x00005884 mov r0, sb | r0 = sb;
0x00005886 blx 0x1524 | fcn_00001524 ();
0x0000588a ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x0000588c cmp r3, 0 |
| if (r3 == 0) {
0x0000588e beq.w 0x577c | goto label_2;
| }
0x00005892 ldr r0, [r4] | r0 = *(r4);
0x00005894 ldr r1, [r4, 0xc] | r1 = *((r4 + 0xc));
0x00005896 adds r0, 1 | r0++;
0x00005898 bl 0x6414 | fcn_00006414 (r0);
0x0000589c str r1, [r4] | *(r4) = r1;
0x0000589e ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x000058a0 subs r3, 1 | r3--;
0x000058a2 str r3, [r4, 8] | *((r4 + 8)) = r3;
0x000058a4 b 0x577c | goto label_2;
| label_9:
0x000058a6 mov r0, sb | r0 = sb;
0x000058a8 str r3, [sp, 0x14] | var_14h = r3;
0x000058aa blx 0x154c | fcn_0000154c ();
0x000058ae mov r0, sb | r0 = sb;
0x000058b0 ldrb r6, [r4, 0x14] | r6 = *((r4 + 0x14));
0x000058b2 blx 0x154c | fcn_0000154c ();
0x000058b6 ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x000058b8 uxtb r6, r6 | r6 = (int8_t) r6;
| if (r0 != 0) {
0x000058ba cbz r0, 0x58c4 |
0x000058bc blx 0x14f0 | fcn_000014f0 ();
0x000058c0 ldr r3, [sp, 0x14] | r3 = var_14h;
0x000058c2 str r3, [r4, 0x10] | *((r4 + 0x10)) = r3;
| }
0x000058c4 ldr r4, [pc, 0x84] |
0x000058c6 movs r3, 0 | r3 = 0;
0x000058c8 mov r0, sb | r0 = sb;
0x000058ca add r4, pc | r4 = 0xb21a;
0x000058cc strb r3, [r4, 0x14] | *((r4 + 0x14)) = r3;
0x000058ce blx 0x1524 | fcn_00001524 ();
0x000058d2 bl 0x5504 | fcn_00005504 ();
0x000058d6 mov r0, sb | r0 = sb;
0x000058d8 strb r6, [r4, 0x14] | *((r4 + 0x14)) = r6;
0x000058da blx 0x1524 | fcn_00001524 ();
0x000058de b 0x5708 | goto label_1;
| label_10:
0x000058e0 ldr r1, [r4] | r1 = *(r4);
0x000058e2 mov r0, fp | r0 = fp;
0x000058e4 ldr r2, [r4, 4] | r2 = *((r4 + 4));
0x000058e6 ldr r3, [r4] | r3 = *(r4);
0x000058e8 subs r2, r2, r3 | r2 -= r3;
0x000058ea mov.w r3, 0x27c | r3 = 0x27c;
0x000058ee mul r2, r3, r2 | r2 = r3 * r2;
0x000058f2 mla r1, r3, r1, fp | __asm ("mla r1, r3, r1, fp");
0x000058f6 blx 0x1694 | fcn_00001694 ();
0x000058fa movs r3, 0 | r3 = 0;
0x000058fc str r3, [r4] | *(r4) = r3;
0x000058fe ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x00005900 str r3, [r4, 4] | *((r4 + 4)) = r3;
0x00005902 b 0x57e6 | goto label_4;
| label_8:
0x00005904 blx 0x1658 | fcn_00001658 ();
| label_11:
0x00005908 ldr r2, [pc, 0x44] |
0x0000590a movs r1, 1 | r1 = 1;
0x0000590c movs r0, 3 | r0 = 3;
0x0000590e add r2, pc | r2 = 0xb262;
0x00005910 blx 0x1610 | fcn_00001610 ();
0x00005914 b 0x5708 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libhttp_auth.so @ 0x5d08 */
| #include <stdint.h>
|
; (fcn) fcn.00005d08 () | void fcn_00005d08 (int16_t arg1, int16_t arg2) {
| int16_t var_4h;
| int16_t var_ch;
| int16_t var_4ch;
| r0 = arg1;
| r1 = arg2;
| do {
0x00001494 bx pc | return void (*pc)() ();
0x00005d08 push {r4, r5, r6, r7, lr} |
0x00005d0a mov r5, r0 | r5 = r0;
0x00005d0c ldr r0, [pc, 0x88] |
0x00005d0e sub sp, 0x54 |
0x00005d10 add r7, sp, 0xc | r7 += var_ch;
0x00005d12 mov r4, r1 | r4 = r1;
0x00005d14 ldr r3, [pc, 0x84] | r3 = *(0x5d9c);
0x00005d16 movs r1, 0 | r1 = 0;
0x00005d18 add r0, pc | r0 = 0xbab4;
0x00005d1a movs r2, 0x40 | r2 = 0x40;
0x00005d1c add r6, sp, 4 | r6 += var_4h;
0x00005d1e ldr r3, [r0, r3] |
0x00005d20 mov r0, r7 | r0 = r7;
0x00005d22 ldr r3, [r3] | r3 = *(0xbab4);
0x00005d24 str r3, [sp, 0x4c] | var_4ch = r3;
0x00005d26 mov.w r3, 0 | r3 = 0;
0x00005d2a blx 0x1498 | policykit_system_auth_user_basic ()
0x00005d2e ldr r2, [r4, 0x10] | r2 = *((r4 + 0x10));
0x00005d30 movs r3, 0x80 | r3 = 0x80;
0x00005d32 ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x00005d34 ldr r1, [r4, 0x14] | r1 = *((r4 + 0x14));
0x00005d36 ubfx r2, r2, 3, 6 | r2 = (r2 >> 3) & ((1 << 6) - 1);
0x00005d3a strb.w r3, [sp, 0xc] | var_ch = r3;
0x00005d3e cmp r2, 0x37 |
0x00005d40 mov r3, r6 | r3 = r6;
0x00005d42 stm r3!, {r0, r1} | *(r3!) = r0;
| *((r3! + 4)) = r1;
0x00005d44 ite ls |
| if (r2 <= 0x37) {
0x00005d46 rsbls r2, r2, 0x38 | __asm ("rsbls r2, r2, 0x38");
| }
| if (r2 > 0x37) {
0x00005d4a rsb.w r2, r2, 0x78 | r2 = 0x78 - r2;
| }
0x00005d4e mov r1, r7 | r1 = r7;
0x00005d50 mov r0, r4 | r0 = r4;
0x00005d52 bl 0x5c48 | fcn_00005c48 (r0, r1, r2);
0x00005d56 movs r2, 8 | r2 = 8;
0x00005d58 mov r1, r6 | r1 = r6;
0x00005d5a mov r0, r4 | r0 = r4;
0x00005d5c bl 0x5c48 | fcn_00005c48 (r0, r1, r2);
0x00005d60 ldr r2, [r4, 8] | r2 = *((r4 + 8));
0x00005d62 ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x00005d64 ldr r0, [r4] | r0 = *(r4);
0x00005d66 ldr r1, [r4, 4] | r1 = *((r4 + 4));
0x00005d68 str r2, [r5, 8] | *((r5 + 8)) = r2;
0x00005d6a ldr r2, [pc, 0x34] |
0x00005d6c str r3, [r5, 0xc] | *((r5 + 0xc)) = r3;
0x00005d6e ldr r3, [pc, 0x2c] | r3 = *(0x5d9e);
0x00005d70 add r2, pc | r2 = 0xbb16;
0x00005d72 str r0, [r5] | *(r5) = r0;
0x00005d74 str r1, [r5, 4] | *((r5 + 4)) = r1;
0x00005d76 ldr r3, [r2, r3] | r3 = *(0xbb16);
0x00005d78 ldr r2, [r3] | r2 = *(0xbb16);
0x00005d7a ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x00005d7c eors r2, r3 | r2 ^= r3;
0x00005d7e mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00005d82 bne 0x5d94 | goto label_0;
| }
0x00005d84 movs r2, 0x58 | r2 = 0x58;
0x00005d86 movs r1, 0 | r1 = 0;
0x00005d88 mov r0, r4 | r0 = r4;
0x00005d8a add sp, 0x54 |
0x00005d8c pop.w {r4, r5, r6, r7, lr} |
0x00005d90 b.w 0x1494 |
| } while (1);
| label_0:
0x00005d94 blx 0x1658 | fcn_00001658 ();
0x00005d98 movs r1, 0x78 | r1 = 0x78;
0x00005d9a movs r1, r0 | r1 = r0;
0x00005d9c lsls r4, r3, 5 | r4 = r3 << 5;
0x00005d9e movs r0, r0 |
0x00005da0 movs r1, 0x20 | r1 = 0x20;
0x00005da2 movs r1, r0 | r1 = r0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libhttp_auth.so @ 0x2630 */
| #include <stdint.h>
|
; (fcn) sym.http_auth_server_auth_user () | void http_auth_server_auth_user (int16_t arg_38h, int16_t arg_44h, int16_t arg_48h, int16_t arg_4ch, int16_t arg_50h, int16_t arg_54h, int16_t arg_58h, int16_t arg_5ch, int16_t arg_64h, int16_t arg_66h, int16_t arg_68h, int16_t arg_6ch, int16_t arg_70h, int16_t arg_74h, int16_t arg_78h, int16_t arg_7ch, int16_t arg_80h, int16_t arg_84h, int16_t arg_88h, int16_t arg_94h, int16_t arg_a0h, int16_t arg_ach, int16_t arg_b8h, int16_t arg_c4h, int16_t arg_d4h, int16_t arg_ech, int16_t arg_110h, int16_t arg_134h, int16_t arg_138h, int16_t arg_158h, int16_t arg_15ch, int16_t arg_17ch, int16_t arg_1ach, int16_t arg_218h, int16_t arg_25ch, int16_t arg_260h, int16_t arg_65ch, int16_t arg1, uint32_t arg2, int16_t arg3, uint32_t arg4) {
| char * var_0h;
| int16_t var_4h_2;
| int16_t var_8h;
| int16_t var_4h;
| int16_t var_10h_2;
| int16_t var_ch;
| int16_t var_10h;
| char * var_14h;
| char * str;
| int16_t var_24h;
| char * var_28h;
| int16_t var_2ch;
| char * var_30h;
| int16_t var_34h;
| int16_t var_38h;
| int16_t var_3ch;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
| label_11:
0x00001e14 svcmi 0xf0e92d | __asm ("svcmi 0xf0e92d");
0x00001e18 subw sp, sp, 0x664 | __asm ("subw sp, sp, 0x664");
0x00001e1c strd r2, r1, [sp, 0x3c] | __asm ("strd r2, r1, [sp, 0x3c]");
0x00001e20 add r6, sp, 0x25c | r6 += arg_25ch;
0x00001e22 movs r5, 0 | r5 = 0;
0x00001e24 mov r4, r0 | r4 = r0;
0x00001e26 ldr.w r2, [pc, 0x624] | r2 = *(0x0000244c);
0x00001e2a mov r1, r5 | r1 = r5;
0x00001e2c str r3, [sp, 0x48] | *(arg_48h) = r3;
0x00001e2e add r0, sp, 0x260 | r0 += arg_260h;
0x00001e30 ldr.w r3, [pc, 0x61c] |
0x00001e34 add r2, pc | r2 += pc;
0x00001e36 str r6, [sp, 0x28] | var_28h = r6;
0x00001e38 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00001e3a mov.w r2, 0x3fc | r2 = 0x3fc;
0x00001e3e ldr r3, [r3] | r3 = *(0x2450);
0x00001e40 str.w r3, [sp, 0x65c] | __asm ("str.w r3, [arg_65ch]");
0x00001e44 mov.w r3, 0 | r3 = 0;
0x00001e48 str r5, [sp, 0x25c] | *(arg_25ch) = r5;
0x00001e4a blx 0x1498 | policykit_system_auth_user_basic ()
0x00001e4e movw r3, 0x444d |
0x00001e52 add r0, sp, 0x70 | r0 += arg_70h;
0x00001e54 movt r3, 0x35 | r3 = 0x35444d;
0x00001e58 str r0, [sp, 0x30] | var_30h = r0;
0x00001e5a str r3, [sp, 0xb8] | *(arg_b8h) = r3;
0x00001e5c add r0, sp, 0xb8 | r0 += arg_b8h;
0x00001e5e add r3, sp, 0x7c | r3 += arg_7ch;
0x00001e60 mov r1, r5 | r1 = r5;
0x00001e62 str r0, [sp, 0x38] | var_38h = r0;
0x00001e64 movs r2, 0x1d | r2 = 0x1d;
0x00001e66 str r3, [sp, 0x20] | str = r3;
0x00001e68 add r0, sp, 0x138 | r0 += arg_138h;
0x00001e6a add r3, sp, 0x134 | r3 += arg_134h;
0x00001e6c str r5, [sp, 0x74] | *(arg_74h) = r5;
0x00001e6e strb.w r5, [sp, 0x78] | *(arg_78h) = r5;
0x00001e72 strd r5, r5, [sp, 0xbc] | __asm ("strd r5, r5, [sp, 0xbc]");
0x00001e76 str r5, [sp, 0x80] | *(arg_80h) = r5;
0x00001e78 strb.w r5, [sp, 0x84] | *(arg_84h) = r5;
0x00001e7c str r5, [sp, 0x70] | *(arg_70h) = r5;
0x00001e7e str r5, [sp, 0x7c] | *(arg_7ch) = r5;
0x00001e80 str r3, [sp, 0x2c] | var_2ch = r3;
0x00001e82 str r5, [sp, 0x134] | *(arg_134h) = r5;
0x00001e84 blx 0x1498 | policykit_system_auth_user_basic ()
0x00001e88 ldr.w r1, [pc, 0x5c8] |
0x00001e8c mov r0, r4 | r0 = r4;
0x00001e8e add r1, pc | r1 = 0x42e6;
0x00001e90 blx 0x1540 | r0 = strlen (r0);
0x00001e94 cmp r0, 0 |
| if (r0 == 0) {
0x00001e96 beq.w 0x2328 | goto label_20;
| }
0x00001e9a ldr.w r1, [pc, 0x5bc] |
0x00001e9e add.w sb, sp, 0x218 | sb += arg_218h;
0x00001ea2 movs r3, 0x41 | r3 = 0x41;
0x00001ea4 mov r2, sb | r2 = sb;
0x00001ea6 mov r6, r0 | r6 = r0;
0x00001ea8 add r1, pc | r1 = 0x4306;
0x00001eaa blx 0x1564 | r0 = g_variant_lookup ();
0x00001eae cmp r0, 0 |
| if (r0 != 0) {
0x00001eb0 bne.w 0x2328 | goto label_20;
| }
0x00001eb4 ldr.w r1, [pc, 0x5a4] |
0x00001eb8 add.w fp, sp, 0x1dc |
0x00001ebc movs r3, 0x39 | r3 = 0x39;
0x00001ebe mov r2, fp | r2 = fp;
0x00001ec0 mov r0, r6 | r0 = r6;
0x00001ec2 add r1, pc | r1 = 0x4322;
0x00001ec4 blx 0x1564 | r0 = g_variant_lookup ();
0x00001ec8 cmp r0, 0 |
| if (r0 != 0) {
0x00001eca bne.w 0x2328 | goto label_20;
| }
0x00001ece ldr.w r1, [pc, 0x590] |
0x00001ed2 add.w sl, sp, 0xec | sl += arg_ech;
0x00001ed6 movs r3, 0x21 | r3 = 0x21;
0x00001ed8 mov r2, sl | r2 = sl;
0x00001eda mov r0, r6 | r0 = r6;
0x00001edc add r1, pc | r1 = 0x4342;
0x00001ede blx 0x1564 | r0 = g_variant_lookup ();
0x00001ee2 cmp r0, 0 |
| if (r0 != 0) {
0x00001ee4 bne.w 0x2328 | goto label_20;
| }
0x00001ee8 mov r1, fp | r1 = fp;
0x00001eea mov r0, sb | r0 = sb;
0x00001eec bl 0x4b14 | r0 = fcn_00004b14 (r0, r1);
0x00001ef0 cmp r0, 0 |
| if (r0 < 0) {
0x00001ef2 blt.w 0x2328 | goto label_20;
| }
0x00001ef6 ldr.w r4, [pc, 0x56c] |
0x00001efa mov r0, r6 | r0 = r6;
0x00001efc add r4, pc | r4 = 0x4366;
0x00001efe mov r1, r4 | r1 = r4;
0x00001f00 blx 0x1540 | r0 = strlen (r0);
| if (r0 != 0) {
0x00001f04 cbz r0, 0x1f26 |
0x00001f06 ldr.w r3, [pc, 0x560] | r3 = *(0x00002468);
0x00001f0a add r3, pc | r3 += pc;
0x00001f0c ldrb r3, [r3] | r3 = *(r3);
0x00001f0e cmp r3, 0 |
| if (r3 == 0) {
0x00001f10 beq.w 0x2328 | goto label_20;
| }
0x00001f14 mov r1, r4 | r1 = r4;
0x00001f16 ldr r4, [sp, 0x20] | r4 = str;
0x00001f18 movs r3, 9 | r3 = 9;
0x00001f1a mov r2, r4 | r2 = r4;
0x00001f1c blx 0x14d8 | r0 = fcn_000014d8 ();
0x00001f20 cmp r0, 0 |
| if (r0 == 0) {
0x00001f22 beq.w 0x21d6 | goto label_21;
| }
| }
0x00001f26 movs r3, 0 | r3 = 0;
0x00001f28 str r3, [sp, 0x1c] | var_14h = r3;
| label_3:
0x00001f2a mov.w r0, 0x3e8 | r0 = 0x3e8;
0x00001f2e blx 0x164c | r0 = fcn_0000164c ();
0x00001f32 mov r4, r0 | r4 = r0;
0x00001f34 cmp r0, 0 |
| if (r0 == 0) {
0x00001f36 beq.w 0x2440 | goto label_22;
| }
0x00001f3a ldr.w r1, [pc, 0x530] |
0x00001f3e add r3, sp, 0x17c | r3 += arg_17ch;
0x00001f40 mov r2, r3 | r2 = r3;
0x00001f42 str r3, [sp, 0x24] | var_24h = r3;
0x00001f44 mov r0, r6 | r0 = r6;
0x00001f46 movs r3, 0x30 | r3 = 0x30;
0x00001f48 add r1, pc | r1 = 0x43ba;
0x00001f4a blx 0x1564 | r0 = g_variant_lookup ();
0x00001f4e mov r5, r0 | r5 = r0;
0x00001f50 cmp r0, 0 |
| if (r0 != 0) {
0x00001f52 bne.w 0x21cc | goto label_23;
| }
0x00001f56 ldr r3, [sp, 0x1c] | r3 = var_14h;
0x00001f58 cmp r3, 0 |
| if (r3 != 0) {
0x00001f5a bne.w 0x21a4 | goto label_24;
| }
| label_0:
0x00001f5e ldr.w r1, [pc, 0x510] |
0x00001f62 movs r3, 0x21 | r3 = 0x21;
0x00001f64 mov r2, sl | r2 = sl;
0x00001f66 mov r0, r6 | r0 = r6;
0x00001f68 add r1, pc | r1 = 0x43de;
0x00001f6a blx 0x1564 | r0 = g_variant_lookup ();
0x00001f6e mov r7, r0 | r7 = r0;
0x00001f70 cmp r0, 0 |
| if (r0 != 0) {
0x00001f72 bne.w 0x21cc | goto label_23;
| }
0x00001f76 ldr.w r1, [pc, 0x4fc] |
0x00001f7a mov.w r3, 0x3e8 | r3 = 0x3e8;
0x00001f7e mov r2, r4 | r2 = r4;
0x00001f80 mov r0, r6 | r0 = r6;
0x00001f82 add r1, pc | r1 = 0x43fc;
0x00001f84 blx 0x1564 | r0 = g_variant_lookup ();
0x00001f88 mov r5, r0 | r5 = r0;
0x00001f8a cmp r0, 0 |
| if (r0 == 0) {
0x00001f8c beq.w 0x21f0 | goto label_25;
| }
0x00001f90 cmp r0, 1 |
| if (r0 <= 1) {
0x00001f92 ble.w 0x240a | goto label_26;
| }
0x00001f96 ldr.w r7, [pc, 0x4e0] |
0x00001f9a add r7, pc | r7 = 0x4418;
0x00001f9c b 0x1fa0 |
| while (r0 > 1) {
0x00001f9e mov r5, r0 | r5 = r0;
0x00001fa0 mov r0, r4 | r0 = r4;
0x00001fa2 mov r1, r5 | r1 = r5;
0x00001fa4 mov r8, r4 | r8 = r4;
0x00001fa6 blx 0x16f4 | r0 = fcn_000016f4 ();
0x00001faa mov r4, r0 | r4 = r0;
0x00001fac cmp r0, 0 |
| if (r0 == 0) {
0x00001fae beq.w 0x241a | goto label_27;
| }
0x00001fb2 mov r2, r0 | r2 = r0;
0x00001fb4 mov r3, r5 | r3 = r5;
0x00001fb6 mov r1, r7 | r1 = r7;
0x00001fb8 mov r0, r6 | r0 = r6;
0x00001fba blx 0x1564 | r0 = g_variant_lookup ();
0x00001fbe cmp r0, 1 |
0x00001fc0 bgt 0x1f9e |
| }
0x00001fc2 cmp r0, 0 |
| if (r0 != 0) {
0x00001fc4 bne.w 0x21cc | goto label_23;
| }
| label_5:
0x00001fc8 ldr.w r1, [pc, 0x4b0] |
0x00001fcc mov.w r3, 0x400 | r3 = 0x400;
0x00001fd0 ldr r2, [sp, 0x28] | r2 = var_28h;
0x00001fd2 mov r0, r6 | r0 = r6;
0x00001fd4 add r1, pc | r1 = 0x4454;
0x00001fd6 blx 0x1564 | r0 = g_variant_lookup ();
0x00001fda mov r7, r0 | r7 = r0;
0x00001fdc cmp r0, 0 |
| if (r0 != 0) {
0x00001fde bne.w 0x21c4 | goto label_28;
| }
0x00001fe2 ldr.w r3, [pc, 0x49c] | r3 = *(0x00002480);
0x00001fe6 add r3, pc | r3 += pc;
0x00001fe8 ldrb r3, [r3] | r3 = *(r3);
0x00001fea and r2, r3, 0xff | r2 = r3 & 0xff;
0x00001fee cmp r3, 0 |
| if (r3 == 0) {
0x00001ff0 beq.w 0x2412 | goto label_29;
| }
0x00001ff4 mov r0, r6 | r0 = r6;
0x00001ff6 ldr.w r6, [pc, 0x48c] |
0x00001ffa add r6, pc | r6 = 0x4484;
0x00001ffc mov r1, r6 | r1 = r6;
0x00001ffe blx 0x1540 | r0 = strlen (r0);
| if (r0 != 0) {
0x00002002 cbz r0, 0x202c |
0x00002004 ldr.w r8, [sp, 0x38] | r8 = var_38h;
0x00002008 mov r1, r6 | r1 = r6;
0x0000200a movs r3, 0xc | r3 = 0xc;
0x0000200c mov r2, r8 | r2 = r8;
0x0000200e blx 0x14d8 | r0 = fcn_000014d8 ();
0x00002012 mov r6, r0 | r6 = r0;
0x00002014 cmp r0, 0 |
| if (r0 != 0) {
0x00002016 bne.w 0x240a | goto label_26;
| }
0x0000201a ldr.w r1, [pc, 0x46c] |
0x0000201e mov r0, r8 | r0 = r8;
0x00002020 add r1, pc | r1 = 0x44ae;
0x00002022 blx 0x1450 | r0 = strcasecmp (r0, r1);
0x00002026 cmp r0, 0 |
| if (r0 != 0) {
0x00002028 bne.w 0x2424 | goto label_30;
| }
| }
| label_2:
0x0000202c add r7, sp, 0xc4 | r7 += arg_c4h;
0x0000202e mov r1, fp | r1 = fp;
0x00002030 mov r2, r7 | r2 = r7;
0x00002032 mov r0, sb | r0 = sb;
0x00002034 bl 0x5060 | r0 = fcn_00005060 (r0, r1, r2);
0x00002038 mov r6, r0 | r6 = r0;
0x0000203a cmp r0, 0 |
| if (r0 != 0) {
0x0000203c bne.w 0x21cc | goto label_23;
| }
0x00002040 ldr.w fp, [sp, 0x28] | fp = var_28h;
0x00002044 add r3, sp, 0x110 | r3 += arg_110h;
0x00002046 ldr.w r8, [sp, 0x24] | r8 = var_24h;
0x0000204a ldr r0, [sp, 0x38] | r0 = var_38h;
0x0000204c mov r2, fp | r2 = fp;
0x0000204e str r3, [sp, 0x44] | *(arg_44h) = r3;
0x00002050 mov r1, r8 | r1 = r8;
0x00002052 str r3, [sp] | *(sp) = r3;
0x00002054 mov r3, r7 | r3 = r7;
0x00002056 bl 0x6010 | fcn_00006010 (r0, r1, r2, r3);
0x0000205a ldr r2, [sp, 0x2c] | r2 = var_2ch;
0x0000205c mov r1, r8 | r1 = r8;
0x0000205e ldr r0, [sp, 0x44] | r0 = *(arg_44h);
0x00002060 mov r3, fp | r3 = fp;
0x00002062 str r4, [sp, 8] | var_8h = r4;
0x00002064 strd r6, r2, [sp, 0xc] | __asm ("strd r6, r2, [sp, 0xc]");
0x00002068 ldr r2, [sp, 0x40] | r2 = *(arg_38h);
0x0000206a str r2, [sp, 4] | var_4h_2 = r2;
0x0000206c ldr r2, [sp, 0x20] | r2 = str;
0x0000206e str r2, [sp] | *(sp) = r2;
0x00002070 ldr r2, [sp, 0x30] | r2 = var_30h;
0x00002072 bl 0x6030 | fcn_00006030 (r0, r1, r2, r3, r4, r5, r6);
0x00002076 ldr r0, [sp, 0x2c] | r0 = var_2ch;
0x00002078 mov r1, sl | r1 = sl;
0x0000207a blx 0x1718 | r0 = fcn_00001718 ();
0x0000207e cmp r0, 0 |
| if (r0 != 0) {
0x00002080 bne.w 0x21f6 | goto label_31;
| }
0x00002084 str r0, [sp, 0x34] | var_34h = r0;
| label_6:
0x00002086 ldr r3, [sp, 0x1c] | r3 = var_14h;
0x00002088 cmp r3, 0 |
| if (r3 == 0) {
0x0000208a beq.w 0x21ec | goto label_32;
| }
0x0000208e ldr r2, [sp, 0x58] | r2 = *(arg_58h);
| label_4:
0x00002090 ldr r1, [sp, 0x24] | r1 = var_24h;
0x00002092 mov r0, sb | r0 = sb;
0x00002094 bl 0x5954 | r0 = fcn_00005954 (r0, r1, r2, r3, r4, r5, r6);
0x00002098 mov r5, r0 | r5 = r0;
0x0000209a cmp r0, 0 |
| if (r0 == 0) {
0x0000209c bne 0x2176 |
0x0000209e ldr r3, [pc, 0x3ec] |
0x000020a0 add r2, sp, 0xac | r2 += arg_ach;
0x000020a2 ldr r7, [pc, 0x3ec] |
0x000020a4 mov ip, r2 |
0x000020a6 str r2, [sp, 0x50] | *(arg_50h) = r2;
0x000020a8 add r2, sp, 0x88 | r2 += arg_88h;
0x000020aa add r3, pc |
0x000020ac mov sl, r2 | sl = r2;
0x000020ae ldr r3, [r3] | r3 = *(0x453c);
0x000020b0 add r0, sp, 0x94 | r0 += arg_94h;
0x000020b2 str r2, [sp, 0x40] | *(arg_38h) = r2;
0x000020b4 add r2, sp, 0x64 | r2 += arg_64h;
0x000020b6 str r2, [sp, 0x38] | var_38h = r2;
0x000020b8 add r7, pc | r7 = 0x454e;
0x000020ba strh.w r3, [sp, 0x64] | *(arg_64h) = r3;
0x000020be add r2, sp, 0x158 | r2 += arg_158h;
0x000020c0 lsrs r3, r3, 0x10 | r3 >>= 0x10;
0x000020c2 mov sb, r0 | sb = r0;
0x000020c4 str r0, [sp, 0x4c] | *(arg_4ch) = r0;
0x000020c6 add.w r8, sp, 0xd4 | r8 += arg_d4h;
0x000020ca strb.w r3, [sp, 0x66] | *(arg_66h) = r3;
0x000020ce add r3, sp, 0xa0 | r3 += arg_a0h;
0x000020d0 mov lr, r3 | lr = r3;
0x000020d2 str r3, [sp, 0x54] | *(arg_54h) = r3;
0x000020d4 add r3, sp, 0x68 | r3 += arg_68h;
0x000020d6 str r2, [sp, 0x1c] | var_14h = r2;
0x000020d8 str r3, [sp, 0x2c] | var_2ch = r3;
0x000020da mov r6, r8 | r6 = r8;
0x000020dc ldm r7!, {r0, r1, r2, r3} | r0 = *(r7!);
| r1 = *((r7! + 4));
| r2 = *((r7! + 8));
| r3 = *((r7! + 12));
0x000020de ldr.w fp, [pc, 0x3b4] |
0x000020e2 stm r6!, {r0, r1, r2, r3} | *(r6!) = r0;
| *((r6! + 4)) = r1;
| *((r6! + 8)) = r2;
| *((r6! + 12)) = r3;
0x000020e4 ldm.w r7, {r0, r1} | r0 = *(r7);
| r1 = *((r7 + 4));
0x000020e8 add fp, pc | fp = 0x4582;
0x000020ea ldr r3, [pc, 0x3ac] |
0x000020ec str r0, [r6], 4 | *(r6) = r0;
| r6 += 4;
0x000020f0 strh r1, [r6] | *(r6) = r1;
0x000020f2 ldm.w fp, {r0, r1, r2} | r0 = *(fp);
| r1 = *((fp + 4));
| r2 = *((fp + 8));
0x000020f6 add r3, pc | r3 = 0x4594;
0x000020f8 stm.w ip!, {r0, r1} | *(ip!) = r0;
| *((ip! + 4)) = r1;
0x000020fc strh r2, [ip], 2 | *(ip) = r2;
| ip += 2;
0x00002100 lsrs r2, r2, 0x10 | r2 >>= 0x10;
0x00002102 strb.w r2, [ip] | *(ip) = r2;
0x00002106 ldm.w r3, {r0, r1, r2} | r0 = *(r3);
| r1 = *((r3 + 4));
| r2 = *((r3 + 8));
0x0000210a ldr r3, [pc, 0x390] |
0x0000210c stm.w sl!, {r0, r1} | *(sl!) = r0;
| *((sl! + 4)) = r1;
0x00002110 add r3, pc | r3 = 0x45b2;
0x00002112 strb.w r2, [sl] | *(sl) = r2;
0x00002116 ldm.w r3, {r0, r1, r2} | r0 = *(r3);
| r1 = *((r3 + 4));
| r2 = *((r3 + 8));
0x0000211a ldr r3, [pc, 0x384] |
0x0000211c stm.w sb!, {r0, r1} | *(sb!) = r0;
| *((sb! + 4)) = r1;
0x00002120 strb.w r2, [sb] | *(sb) = r2;
0x00002124 add r3, pc | r3 = 0x45ca;
0x00002126 ldr r2, [sp, 0x1c] | r2 = var_14h;
0x00002128 str r5, [r2] | *(r2) = r5;
0x0000212a ldm.w r3, {r0, r1, r2} | r0 = *(r3);
| r1 = *((r3 + 4));
| r2 = *((r3 + 8));
0x0000212e ldr r3, [pc, 0x374] |
0x00002130 stm.w lr!, {r0, r1} | *(lr!) = r0;
| *((lr! + 4)) = r1;
0x00002134 add r3, pc | r3 = 0x45de;
0x00002136 strh.w r2, [lr] | *(lr) = r2;
0x0000213a ldm.w r3, {r0, r1} | r0 = *(r3);
| r1 = *((r3 + 4));
0x0000213e movs r2, 0x1d | r2 = 0x1d;
0x00002140 ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x00002142 strh.w r1, [sp, 0x6c] | *(arg_6ch) = r1;
0x00002146 mov r1, r5 | r1 = r5;
0x00002148 str r0, [r3] | *(r3) = r0;
0x0000214a add r0, sp, 0x15c | r0 += arg_15ch;
0x0000214c blx 0x1498 | policykit_system_auth_user_basic ()
0x00002150 ldr r0, [sp, 0x20] | r0 = str;
0x00002152 blx 0x1558 | strtoul (r0, r1, r2);
0x00002156 ldr r6, [sp, 0x3c] | r6 = var_3ch;
0x00002158 mov r2, r8 | r2 = r8;
0x0000215a ldr r1, [sp, 0x48] | r1 = *(arg_48h);
0x0000215c mov r7, r0 | r7 = r0;
0x0000215e movs r3, 0x16 | r3 = 0x16;
0x00002160 strb r5, [r6] | *(r6) = r5;
0x00002162 mov r0, r6 | r0 = r6;
0x00002164 bl 0x3ed0 | fcn_00003ed0 (r0, r1, r2, r3);
0x00002166 cdp2 p6, 0xb, c4, c4, c5, 0 | __asm ("cdp2 p6, 0xb, c4, c4, c5, 0");
0x0000216a cmp r0, 0 |
| if (r0 == 0) {
0x0000216c beq.w 0x229e | goto label_33;
| }
| label_7:
0x00002170 ldr r2, [sp, 0x3c] | r2 = var_3ch;
0x00002172 movs r3, 0 | r3 = 0;
0x00002174 strb r3, [r2] | *(r2) = r3;
| }
| label_1:
0x00002176 mov r0, r4 | r0 = r4;
0x00002178 blx 0x14f0 | fcn_000014f0 ();
0x0000217c ldr r0, [sp, 0x34] | r0 = var_34h;
0x0000217e blx 0x14f0 | fcn_000014f0 ();
0x00002182 ldr r2, [pc, 0x324] |
0x00002184 ldr r3, [pc, 0x2c8] | r3 = *(0x2450);
0x00002186 add r2, pc | r2 = 0x4634;
0x00002188 ldr r3, [r2, r3] | r3 = *(0x4634);
0x0000218a ldr r2, [r3] | r2 = *(0x4634);
0x0000218c ldr.w r3, [sp, 0x65c] | r3 = *(arg_65ch);
0x00002190 eors r2, r3 | r2 ^= r3;
0x00002192 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00002196 bne.w 0x2448 | goto label_34;
| }
0x0000219a mov r0, r5 | r0 = r5;
0x0000219c addw sp, sp, 0x664 | __asm ("addw sp, sp, 0x664");
0x000021a0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_24:
0x000021a4 ldr r1, [pc, 0x304] |
0x000021a6 add r3, sp, 0x58 | r3 += arg_58h;
0x000021a8 str r3, [sp] | *(sp) = r3;
0x000021aa mov r0, r6 | r0 = r6;
0x000021ac ldr r2, [sp, 0x30] | r2 = var_30h;
0x000021ae movs r3, 9 | r3 = 9;
0x000021b0 add r1, pc | r1 = 0x4660;
0x000021b2 bl 0x4274 | r0 = fcn_00004274 (r0, r1, r2, r3, r4);
0x000021b6 cmp r0, 0 |
| if (r0 == 0) {
0x000021b8 beq.w 0x1f5e | goto label_0;
| }
0x000021bc str r5, [sp, 0x34] | var_34h = r5;
0x000021be mvn r5, 0xbe | r5 = ~0xbe;
0x000021c2 b 0x2176 | goto label_1;
| label_28:
0x000021c4 ldr r3, [sp, 0x1c] | r3 = var_14h;
0x000021c6 cmp r3, 0 |
| if (r3 == 0) {
0x000021c8 beq.w 0x202c | goto label_2;
| }
| label_23:
0x000021cc movs r3, 0 | r3 = 0;
0x000021ce mvn r5, 0xbe | r5 = ~0xbe;
0x000021d0 lsls r6, r7, 0x16 | r6 = r7 << 0x16;
0x000021d2 str r3, [sp, 0x34] | var_34h = r3;
0x000021d4 b 0x2176 | goto label_1;
| label_21:
0x000021d6 ldr r1, [pc, 0x2d8] |
0x000021d8 mov r0, r4 | r0 = r4;
0x000021da add r1, pc | r1 = 0x4690;
0x000021dc blx 0x1450 | r0 = strcasecmp (r0, r1);
0x000021e0 cmp r0, 0 |
| if (r0 != 0) {
0x000021e2 bne.w 0x2328 | goto label_20;
| }
0x000021e6 movs r3, 1 | r3 = 1;
0x000021e8 str r3, [sp, 0x1c] | var_14h = r3;
0x000021ea b 0x1f2a | goto label_3;
| label_32:
0x000021ec ldr r2, [sp, 0x1c] | r2 = var_14h;
0x000021ee b 0x2090 | goto label_4;
| label_25:
0x000021f0 mov.w r5, 0x3e8 | r5 = 0x3e8;
0x000021f4 b 0x1fc8 | goto label_5;
| label_31:
0x000021f6 mov r0, r5 | r0 = r5;
0x000021f8 blx 0x164c | fcn_0000164c ();
0x000021fc str r0, [sp, 0x34] | var_34h = r0;
0x000021fe cmp r0, 0 |
| if (r0 == 0) {
0x00002200 beq.w 0x243a | goto label_35;
| }
0x00002204 ldr.w r8, [pc, 0x2ac] |
0x00002208 mov fp, r0 |
0x0000220a mov r1, r4 | r1 = r4;
0x0000220c blx 0x15bc | fcn_000015bc ();
0x00002210 add r8, pc | r8 = 0x46c8;
0x00002212 mov r0, fp | r0 = fp;
0x00002214 mov r1, r8 | r1 = r8;
0x00002216 blx 0x161c | r0 = fcn_0000161c ();
0x0000221a mov r5, r0 | r5 = r0;
| if (r0 == 0) {
0x0000221c cbz r0, 0x2240 | goto label_36;
| }
| do {
0x0000221e add.w fp, r0, 1 |
0x00002222 movs r6, 1 | r6 = 1;
0x00002224 blx 0x1558 | strtoul (r0, r1, r2);
0x00002228 mov r1, fp | r1 = fp;
0x0000222a mov r2, r0 | r2 = r0;
0x0000222c mov r0, r5 | r0 = r5;
0x0000222e blx 0x1694 | fcn_00001694 ();
0x00002230 bics.w r6, r2, r8, lsr 17 | __asm ("bics.w r6, r2, r8, lsr 17");
0x00002234 mov r1, r8 | r1 = r8;
0x00002236 blx 0x161c | r0 = fcn_0000161c ();
0x0000223a mov r5, r0 | r5 = r0;
0x0000223c cmp r0, 0 |
0x0000223e bne 0x221e |
| } while (r0 != 0);
| if (r6 == 0) {
| label_36:
0x00002240 cbz r6, 0x2284 | goto label_37;
| }
0x00002242 ldr r6, [sp, 0x44] | r6 = *(arg_44h);
0x00002244 mov r3, r7 | r3 = r7;
0x00002246 ldr.w r8, [sp, 0x28] | r8 = var_28h;
0x0000224a ldr r7, [sp, 0x24] | r7 = var_24h;
0x0000224c ldr r0, [sp, 0x38] | r0 = var_38h;
0x0000224e mov r2, r8 | r2 = r8;
0x00002250 str r6, [sp] | *(sp) = r6;
0x00002252 mov r1, r7 | r1 = r7;
0x00002254 bl 0x6010 | fcn_00006010 (r0, r1, r2, r3);
0x00002258 ldr r0, [sp, 0x40] | r0 = *(arg_38h);
0x0000225a mov r1, r7 | r1 = r7;
0x0000225c str r5, [sp, 0xc] | var_4h = r5;
0x0000225e mov r3, r8 | r3 = r8;
0x00002260 ldr r5, [sp, 0x2c] | r5 = var_2ch;
0x00002262 str r0, [sp, 4] | var_4h_2 = r0;
0x00002264 ldr r0, [sp, 0x34] | r0 = var_34h;
0x00002266 ldr r2, [sp, 0x30] | r2 = var_30h;
0x00002268 str r5, [sp, 0x10] | var_10h_2 = r5;
0x0000226a str r0, [sp, 8] | var_8h = r0;
0x0000226c ldr r0, [sp, 0x20] | r0 = str;
0x0000226e str r0, [sp] | *(sp) = r0;
0x00002270 mov r0, r6 | r0 = r6;
0x00002272 bl 0x6030 | fcn_00006030 (r0, r1, r2, r3, r4, r5, r6);
0x00002276 mov r1, sl | r1 = sl;
0x00002278 mov r0, r5 | r0 = r5;
0x0000227a blx 0x1718 | r0 = fcn_00001718 ();
0x0000227e cmp r0, 0 |
| if (r0 == 0) {
0x00002280 beq.w 0x2086 | goto label_6;
| }
| label_37:
0x00002284 mov.w r3, 0x2d00 | r3 = 0x2d00;
0x00002288 add r0, sp, 0x5c | r0 += arg_5ch;
0x0000228a movs r1, 0 | r1 = 0;
0x0000228c movt r3, 0x131 | r3 = (r3 & 0xFFFF) | 0x1310000;
0x00002290 str r1, [r0] | *(r0) = r1;
0x00002292 mvn r5, 0xbe | r5 = ~0xbe;
0x00002296 str r3, [r0, 4] | *((r0 + 4)) = r3;
0x00002298 blx 0x16e8 | fcn_000016e8 ();
0x0000229c b 0x2176 | goto label_1;
| label_33:
0x0000229e mov r1, r0 | r1 = r0;
0x000022a0 movs r2, 0x10 | r2 = 0x10;
0x000022a2 ldr r0, [sp, 0x24] | r0 = var_24h;
0x000022a4 blx 0x15b0 | r0 = fcn_000015b0 ();
0x000022a8 mov r5, r0 | r5 = r0;
0x000022aa bl 0x55e4 | r0 = fcn_000055e4 ();
0x000022ae subs r5, r0, r5 | r5 = r0 - r5;
0x000022b0 bl 0x562c | r0 = fcn_0000562c ();
0x000022b4 add.w r0, r0, r0, lsl 1 | r0 += (r0 << 1);
0x000022b8 cmp.w r5, r0, lsr 2 |
| if (r5 > r0) {
0x000022bc bgt 0x2334 | goto label_38;
| }
0x000022be cmp r7, 0 |
| if (r7 != 0) {
0x000022c0 bne 0x2380 | goto label_39;
| }
0x000022c2 mov r6, r7 | r6 = r7;
| label_8:
0x000022c4 ldr r3, [sp, 0x20] | r3 = str;
0x000022c6 ldr r1, [sp, 0x24] | r1 = var_24h;
0x000022c8 ldr r0, [sp, 0x44] | r0 = *(arg_44h);
0x000022ca str r3, [sp] | *(sp) = r3;
0x000022cc ldr r3, [sp, 0x1c] | r3 = var_14h;
0x000022ce ldr r2, [sp, 0x30] | r2 = var_30h;
0x000022d0 str r4, [sp, 8] | var_8h = r4;
0x000022d2 str r3, [sp, 0x10] | var_10h_2 = r3;
0x000022d4 ldr r3, [pc, 0x1e0] |
0x000022d6 add r3, pc | r3 = 0x4792;
0x000022d8 str r3, [sp, 4] | var_4h_2 = r3;
0x000022da movs r3, 0 | r3 = 0;
0x000022dc str r3, [sp, 0xc] | var_4h = r3;
0x000022de ldr r3, [sp, 0x28] | r3 = var_28h;
0x000022e0 bl 0x6030 | fcn_00006030 (r0, r1, r2, r3, r4, r5, r6);
0x000022e4 ldr.w sb, [sp, 0x48] | sb = *(arg_48h);
0x000022e8 movs r3, 9 | r3 = 9;
0x000022ea ldr.w r8, [sp, 0x3c] | r8 = var_3ch;
0x000022ee ldr r2, [sp, 0x4c] | r2 = *(arg_4ch);
0x000022f0 mov r1, sb | r1 = sb;
0x000022f2 mov r0, r8 | r0 = r8;
0x000022f4 bl 0x3ed0 | r0 = fcn_00003ed0 (r0, r1, r2, r3);
0x000022f8 mov r5, r0 | r5 = r0;
0x000022fa cmp r0, 0 |
| if (r0 != 0) {
0x000022fc bne.w 0x2170 | goto label_7;
| }
0x00002300 ldr r5, [sp, 0x1c] | r5 = var_14h;
0x00002302 mov r0, r5 | r0 = r5;
0x00002304 blx 0x1558 | strtoul (r0, r1, r2);
0x00002308 mov r2, r5 | r2 = r5;
0x0000230a mov r3, r0 | r3 = r0;
0x0000230c mov r1, sb | r1 = sb;
0x0000230e mov r0, r8 | r0 = r8;
0x00002310 bl 0x3ef8 | r0 = fcn_00003ef8 (r0, r1, r2, r3);
0x00002314 mov r5, r0 | r5 = r0;
0x00002316 cmp r0, 0 |
| if (r0 != 0) {
0x00002318 bne.w 0x2170 | goto label_7;
| }
0x0000231c cmp r7, 0 |
| if (r7 != 0) {
0x0000231e bne 0x23aa | goto label_40;
| }
| label_9:
0x00002320 cmp r6, 0 |
| if (r6 == 0) {
0x00002322 beq.w 0x2170 | goto label_7;
| }
0x00002326 b 0x2176 | goto label_1;
| label_20:
0x00002328 movs r3, 0 | r3 = 0;
0x0000232a mvn r5, 0xbe | r5 = ~0xbe;
0x0000232e mov r4, r3 | r4 = r3;
0x00002330 str r3, [sp, 0x34] | var_34h = r3;
0x00002332 b 0x2176 | goto label_1;
| label_38:
0x00002334 ldr.w r8, [sp, 0x48] | r8 = *(arg_48h);
0x00002338 movs r3, 0xb | r3 = 0xb;
0x0000233a ldr r6, [sp, 0x3c] | r6 = var_3ch;
0x0000233c ldr r2, [sp, 0x50] | r2 = *(arg_50h);
0x0000233e mov r1, r8 | r1 = r8;
0x00002340 mov r0, r6 | r0 = r6;
0x00002342 bl 0x3ed0 | r0 = fcn_00003ed0 (r0, r1, r2, r3);
0x00002346 mov r5, r0 | r5 = r0;
0x00002348 cmp r0, 0 |
| if (r0 != 0) {
0x0000234a bne.w 0x2170 | goto label_7;
| }
0x0000234e add r5, sp, 0x1ac | r5 += arg_1ach;
0x00002350 mov r0, r5 | r0 = r5;
0x00002352 bl 0x5660 | fcn_00005660 (r0, r1);
0x00002356 mov r2, r5 | r2 = r5;
0x00002358 movs r3, 0x30 | r3 = 0x30;
0x0000235a mov r1, r8 | r1 = r8;
0x0000235c mov r0, r6 | r0 = r6;
0x0000235e bl 0x3ef8 | r0 = fcn_00003ef8 (r0, r1, r2, r3);
0x00002362 mov r5, r0 | r5 = r0;
0x00002364 cmp r0, 0 |
| if (r0 != 0) {
0x00002366 bne.w 0x2170 | goto label_7;
| }
| if (r7 == 0) {
0x0000236a cbz r7, 0x2394 | goto label_41;
| }
0x0000236c ldr r2, [sp, 0x38] | r2 = var_38h;
0x0000236e movs r3, 3 | r3 = 3;
0x00002370 ldr r1, [sp, 0x48] | r1 = *(arg_48h);
0x00002372 ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x00002374 bl 0x3ed0 | r0 = fcn_00003ed0 (r0, r1, r2, r3);
0x00002378 mov r5, r0 | r5 = r0;
0x0000237a cmp r0, 0 |
| if (r0 != 0) {
0x0000237c bne.w 0x2170 | goto label_7;
| }
| label_39:
0x00002380 ldr r2, [sp, 0x40] | r2 = *(arg_38h);
0x00002382 movs r3, 9 | r3 = 9;
0x00002384 ldr r1, [sp, 0x48] | r1 = *(arg_48h);
0x00002386 ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x00002388 bl 0x3ed0 | r0 = fcn_00003ed0 (r0, r1, r2, r3);
0x0000238c mov r5, r0 | r5 = r0;
0x0000238e cmp r0, 0 |
| if (r0 != 0) {
0x00002390 bne.w 0x2170 | goto label_7;
| }
| label_41:
0x00002394 ldr r2, [sp, 0x38] | r2 = var_38h;
0x00002396 movs r3, 3 | r3 = 3;
0x00002398 ldr r1, [sp, 0x48] | r1 = *(arg_48h);
0x0000239a movs r6, 1 | r6 = 1;
0x0000239c ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x0000239e bl 0x3ed0 | r0 = fcn_00003ed0 (r0, r1, r2, r3);
0x000023a2 mov r5, r0 | r5 = r0;
0x000023a4 cmp r0, 0 |
| if (r0 == 0) {
0x000023a6 beq 0x22c4 | goto label_8;
| }
0x000023a8 b 0x2170 | goto label_7;
| label_40:
0x000023aa ldr.w r8, [sp, 0x48] | r8 = *(arg_48h);
0x000023ae movs r3, 0xa | r3 = 0xa;
0x000023b0 ldr r7, [sp, 0x3c] | r7 = var_3ch;
0x000023b2 ldr r2, [sp, 0x54] | r2 = *(arg_54h);
0x000023b4 mov r1, r8 | r1 = r8;
0x000023b6 mov r0, r7 | r0 = r7;
0x000023b8 bl 0x3ed0 | r0 = fcn_00003ed0 (r0, r1, r2, r3);
0x000023bc mov r3, r0 | r3 = r0;
| if (r0 != 0) {
0x000023be cbnz r0, 0x2406 | goto label_42;
| }
0x000023c0 ldr.w sb, [sp, 0x28] | sb = var_28h;
0x000023c4 mov r0, sb | r0 = sb;
0x000023c6 blx 0x1558 | strtoul (r0, r1, r2);
0x000023ca mov r2, sb | r2 = sb;
0x000023cc mov r3, r0 | r3 = r0;
0x000023ce mov r1, r8 | r1 = r8;
0x000023d0 mov r0, r7 | r0 = r7;
0x000023d2 bl 0x3ef8 | r0 = fcn_00003ef8 (r0, r1, r2, r3);
0x000023d6 mov r3, r0 | r3 = r0;
| if (r0 != 0) {
0x000023d8 cbnz r0, 0x2406 | goto label_42;
| }
0x000023da movs r3, 6 | r3 = 6;
0x000023dc ldr r2, [sp, 0x2c] | r2 = var_2ch;
0x000023de mov r1, r8 | r1 = r8;
0x000023e0 mov r0, r7 | r0 = r7;
0x000023e2 bl 0x3ed0 | r0 = fcn_00003ed0 (r0, r1, r2, r3);
0x000023e6 mov r3, r0 | r3 = r0;
| if (r0 != 0) {
0x000023e8 cbnz r0, 0x2406 | goto label_42;
| }
0x000023ea ldr.w sb, [sp, 0x30] | sb = var_30h;
0x000023ee mov r0, sb | r0 = sb;
0x000023f0 blx 0x1558 | strtoul (r0, r1, r2);
0x000023f4 mov r2, sb | r2 = sb;
0x000023f6 mov r3, r0 | r3 = r0;
0x000023f8 mov r1, r8 | r1 = r8;
0x000023fa mov r0, r7 | r0 = r7;
0x000023fc bl 0x3ed0 | r0 = fcn_00003ed0 (r0, r1, r2, r3);
0x00002400 mov r3, r0 | r3 = r0;
0x00002402 cmp r0, 0 |
| if (r0 == 0) {
0x00002404 beq 0x2320 | goto label_9;
| }
| label_42:
0x00002406 mov r5, r3 | r5 = r3;
0x00002408 b 0x2170 | goto label_7;
| label_26:
0x0000240a mvn r5, 0xbe | r5 = ~0xbe;
0x0000240e str r7, [sp, 0x34] | var_34h = r7;
0x00002410 b 0x2176 | goto label_1;
| label_29:
0x00002412 mvn r5, 0xbe | r5 = ~0xbe;
0x00002416 str r2, [sp, 0x34] | var_34h = r2;
0x00002418 b 0x2176 | goto label_1;
| label_27:
0x0000241a mvn r5, 0xb7 | r5 = ~0xb7;
0x0000241e mov r4, r8 | r4 = r8;
0x00002420 str r0, [sp, 0x34] | var_34h = r0;
0x00002422 b 0x2176 | goto label_1;
| label_30:
0x00002424 ldr r2, [pc, 0x94] |
0x00002426 movs r1, 1 | r1 = 1;
0x00002428 ldr r3, [sp, 0x38] | r3 = var_38h;
0x0000242a movs r0, 3 | r0 = 3;
0x0000242c str r6, [sp, 0x34] | var_34h = r6;
0x0000242e mvn r5, 0xbe | r5 = ~0xbe;
0x00002432 add r2, pc | r2 = 0x48f2;
0x00002434 blx 0x1610 | fcn_00001610 ();
0x00002438 b 0x2176 | goto label_1;
| label_35:
0x0000243a mvn r5, 0xb7 | r5 = ~0xb7;
0x0000243e b 0x2176 | goto label_1;
| label_22:
0x00002440 mvn r5, 0xb7 | r5 = ~0xb7;
0x00002444 str r0, [sp, 0x34] | var_34h = r0;
0x00002446 b 0x2176 | goto label_1;
| label_34:
0x00002448 blx 0x1658 | fcn_00001658 ();
0x0000244c str r4, [r3, 4] | *((r3 + 4)) = r4;
0x0000244e movs r1, r0 | r1 = r0;
0x00002450 lsls r4, r3, 5 | r4 = r3 << 5;
0x00002452 movs r0, r0 |
0x00002454 ldr r0, [pc, 8] | r0 = *(0x2460);
0x00002456 movs r0, r0 |
0x00002458 blx lr | r0 = lr (r0, r1);
0x0000245a movs r0, r0 |
0x0000245c invalid |
0x00002630 push.w {r4, r5, r6, r7, r8, sb, lr} |
0x00002634 sub sp, 0x1c |
0x00002636 ldr r5, [pc, 0x224] |
0x00002638 ldr r4, [pc, 0x224] | r4 = *(0x2860);
0x0000263a add r5, pc | r5 = 0x4e9c;
0x0000263c ldr.w ip, [pc, 0x224] | ip = *(0x00002864);
0x00002640 ldr.w r8, [sp, 0x38] | r8 = *(arg_38h);
0x00002644 ldr r4, [r5, r4] |
0x00002646 add ip, pc |
0x00002648 ldr r5, [pc, 0x21c] |
0x0000264a ldr r4, [r4] | r4 = *(0x4e9c);
0x0000264c str r4, [sp, 0x14] | var_14h = r4;
0x0000264e mov.w r4, 0 | r4 = 0;
0x00002652 mov r4, r0 | r4 = r0;
0x00002654 movs r0, 0 | r0 = 0;
0x00002656 add r5, pc | r5 = 0x4ec2;
0x00002658 strd r0, r0, [sp, 8] | __asm ("strd r0, r0, [var_10h_2]");
0x0000265c ldrb.w r0, [ip, 2] | r0 = *((ip + 2));
| if (r0 == 0) {
0x00002660 cbz r0, 0x2672 | goto label_43;
| }
0x00002662 cmp r4, 0 |
0x00002664 it ne |
| if (r4 != 0) {
0x00002666 cmpne r3, 0 | __asm ("cmpne r3, 0");
| }
0x00002668 mov r6, r3 | r6 = r3;
0x0000266a bne 0x2694 |
| while (r1 == 0) {
0x0000266c mvn r5, 0xc4 | r5 = ~0xc4;
0x00002670 b 0x2676 | goto label_10;
| label_43:
0x00002672 mvn r5, 0xc5 | r5 = ~0xc5;
| label_10:
0x00002676 ldr r2, [pc, 0x1f4] |
0x00002678 ldr r3, [pc, 0x1e4] | r3 = *(0x2860);
0x0000267a add r2, pc | r2 = 0x4eec;
0x0000267c ldr r3, [r2, r3] | r3 = *(0x4eec);
0x0000267e ldr r2, [r3] | r2 = *(0x4eec);
0x00002680 ldr r3, [sp, 0x14] | r3 = var_14h;
0x00002682 eors r2, r3 | r2 ^= r3;
0x00002684 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00002688 bne.w 0x2830 | goto label_44;
| }
0x0000268c mov r0, r5 | r0 = r5;
0x0000268e add sp, 0x1c |
0x00002690 pop.w {r4, r5, r6, r7, r8, sb, pc} |
0x00002694 ldrb r3, [r4] | r3 = *(r4);
0x00002696 mov r7, r1 | r7 = r1;
0x00002698 cmp r1, 0 |
0x0000269a it ne |
| if (r1 != 0) {
0x0000269c cmpne r3, 0 | __asm ("cmpne r3, 0");
| }
0x0000269e ite eq |
| if (r1 != 0) {
0x000026a0 moveq r3, 1 | r3 = 1;
| }
| if (r1 == 0) {
0x000026a2 movne r3, 0 | r3 = 0;
| }
0x000026a4 beq 0x266c |
| }
0x000026a6 ldrb.w r1, [ip, 4] | r1 = *((ip + 4));
| if (r1 != 0) {
0x000026aa cbnz r1, 0x2706 | goto label_45;
| }
| label_16:
0x000026ac ldr.w sb, [pc, 0x1c0] | sb = *(0x00002870);
0x000026b0 add sb, pc | sb += pc;
0x000026b2 ldrb.w r3, [sb, 5] | r3 = *((sb + 5));
0x000026b6 cmp r3, 0 |
| if (r3 != 0) {
0x000026b8 bne 0x272e | goto label_46;
| }
| label_12:
0x000026ba ldr r3, [pc, 0x1b8] |
0x000026bc mov.w sb, 0 | sb = 0;
0x000026c0 strb.w sb, [r6] | *(r6) = sb;
0x000026c4 add r3, pc | r3 = 0x4f3e;
0x000026c6 ldrb r3, [r3] | r3 = *(r3);
0x000026c8 cmp r3, 0 |
| if (r3 != 0) {
0x000026ca bne 0x2768 | goto label_47;
| }
0x000026cc cmp r2, 1 |
0x000026ce it ne |
| if (r2 == 1) {
0x000026d0 movne r5, 1 | r5 = 1;
| }
| if (r2 == 1) {
0x000026d2 beq 0x26de | goto label_13;
| }
| label_14:
0x000026d4 ldr r3, [pc, 0x1a0] |
0x000026d6 add r3, pc | r3 = 0x4f52;
0x000026d8 ldrb r3, [r3, 1] | r3 = *((r3 + 1));
0x000026da cmp r3, 0 |
| if (r3 == 0) {
0x000026dc beq 0x2676 | goto label_10;
| }
| label_13:
0x000026de ldr r2, [pc, 0x19c] |
0x000026e0 ldr r3, [pc, 0x17c] | r3 = *(0x2860);
0x000026e2 add r2, pc | r2 = 0x4f64;
0x000026e4 ldr r3, [r2, r3] | r3 = *(0x4f64);
0x000026e6 ldr r2, [r3] | r2 = *(0x4f64);
0x000026e8 ldr r3, [sp, 0x14] | r3 = var_14h;
0x000026ea eors r2, r3 | r2 ^= r3;
0x000026ec mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000026f0 bne.w 0x2830 | goto label_44;
| }
0x000026f4 mov r3, r8 | r3 = r8;
0x000026f6 mov r2, r6 | r2 = r6;
0x000026f8 mov r1, r7 | r1 = r7;
0x000026fa mov r0, r4 | r0 = r4;
0x000026fc add sp, 0x1c |
0x000026fe pop.w {r4, r5, r6, r7, r8, sb, lr} |
0x00002702 b.w 0x1e14 | goto label_11;
| label_45:
0x00002706 str r2, [sp, 4] | var_4h = r2;
0x00002708 strb.w r3, [ip, 4] | *((ip + 4)) = r3;
0x0000270c bl 0x44cc | fcn_000044cc ();
0x00002710 blx 0x14e4 | fcn_000014e4 ();
0x00002714 ldr r2, [sp, 4] | r2 = var_4h;
0x00002716 cmp r0, 0 |
| if (r0 != 0) {
0x00002718 bne 0x278c | goto label_48;
| }
0x0000271a bl 0x45c8 | fcn_000045c8 ();
0x0000271e ldr r2, [sp, 4] | r2 = var_4h;
| label_15:
0x00002720 cmp r0, 0 |
| if (r0 == 0) {
0x00002722 beq 0x2796 | goto label_49;
| }
| label_17:
0x00002724 mvn r5, 0xc6 | r5 = ~0xc6;
0x00002728 blx 0x1470 | fcn_00001470 ();
0x0000272c b 0x2676 | goto label_10;
| label_46:
0x0000272e movs r3, 0 | r3 = 0;
0x00002730 str r2, [sp, 4] | var_4h = r2;
0x00002732 strb.w r3, [sb, 5] | *((sb + 5)) = r3;
0x00002736 bl 0x1900 | fcn_00001900 ();
0x0000273a ldrb.w r3, [sb, 3] | r3 = *((sb + 3));
0x0000273e mov sb, r0 | sb = r0;
0x00002740 ldr r2, [sp, 4] | r2 = var_4h;
| if (r3 != 0) {
0x00002742 cbnz r3, 0x27a4 | goto label_50;
| }
0x00002744 ldr r3, [pc, 0x138] |
0x00002746 movs r1, 1 | r1 = 1;
0x00002748 add r3, pc | r3 = 0x4fcc;
0x0000274a strb r1, [r3] | *(r3) = r1;
| label_18:
0x0000274c cmp.w sb, 0 |
| if (sb == 0) {
0x00002750 beq 0x26ba | goto label_12;
| }
0x00002752 blx 0x1470 | fcn_00001470 ();
0x00002756 ldr r2, [pc, 0x12c] |
0x00002758 movs r1, 1 | r1 = 1;
0x0000275a movs r0, 3 | r0 = 3;
0x0000275c mvn r5, 0xc6 | r5 = ~0xc6;
0x00002760 add r2, pc | r2 = 0x4fea;
0x00002762 blx 0x1610 | fcn_00001610 ();
0x00002766 b 0x2676 | goto label_10;
| label_47:
0x00002768 cmp r2, 1 |
| if (r2 == 1) {
0x0000276a beq 0x26de | goto label_13;
| }
0x0000276c add r2, sp, 8 | r2 += var_10h_2;
0x0000276e add r1, sp, 0xc | r1 += var_ch;
0x00002770 mov r0, r4 | r0 = r4;
0x00002772 bl 0x1cfc | r0 = fcn_00001cfc (r0, r1, r2);
0x00002776 cmp r0, 0 |
| if (r0 >= 0) {
0x00002778 bge 0x27ae | goto label_51;
| }
0x0000277a ldr r0, [sp, 8] | r0 = var_10h_2;
0x0000277c mvn r5, 0xbe | r5 = ~0xbe;
0x00002780 blx 0x14f0 | fcn_000014f0 ();
0x00002782 cdp p8, 0xb, c9, c6, c3, 0 | __asm ("cdp p8, 0xb, c9, c6, c3, 0");
0x00002784 ldr r0, [sp, 0xc] | r0 = var_ch;
0x00002786 blx 0x14f0 | fcn_000014f0 ();
0x0000278a b 0x26d4 | goto label_14;
| label_48:
0x0000278c str r2, [sp, 4] | var_4h = r2;
0x0000278e bl 0x4810 | fcn_00004810 ();
0x00002792 ldr r2, [sp, 4] | r2 = var_4h;
0x00002794 b 0x2720 | goto label_15;
| label_49:
0x00002796 str r2, [sp, 4] | var_4h = r2;
0x00002798 bl 0x50c0 | r0 = fcn_000050c0 ();
0x0000279c cmp r0, 0 |
0x0000279e ldr r2, [sp, 4] | r2 = var_4h;
| if (r0 >= 0) {
0x000027a0 bge 0x26ac | goto label_16;
| }
0x000027a2 b 0x2724 | goto label_17;
| label_50:
0x000027a4 str r2, [sp, 4] | var_4h = r2;
0x000027a6 bl 0x1b98 | fcn_00001b98 ();
0x000027aa ldr r2, [sp, 4] | r2 = var_4h;
0x000027ac b 0x274c | goto label_18;
| label_51:
0x000027ae ldrd r7, r6, [sp, 8] | __asm ("ldrd r7, r6, [var_10h_2]");
0x000027b2 str.w sb, [sp, 0x10] | __asm ("str.w sb, [var_10h]");
0x000027b6 mov r0, r6 | r0 = r6;
0x000027b8 bl 0x4584 | r0 = fcn_00004584 (r0);
0x000027bc mov r4, r0 | r4 = r0;
| if (r0 == 0) {
0x000027be cbz r0, 0x2822 | goto label_52;
| }
0x000027c0 blx 0x14e4 | fcn_000014e4 ();
0x000027c4 invalid |
0x000027c6 invalid |
0x000027ca invalid |
0x000027ce ldrb r1, [r3, 1] | r1 = *((r3 + 1));
0x000027d0 cbnz r1, 0x27ee |
| while (r3 == 0) {
0x000027d2 ldr r0, [r4] | r0 = *(r4);
0x000027d4 add r2, sp, 0x10 | r2 += var_10h;
0x000027d6 mov r1, r7 | r1 = r7;
0x000027d8 movs r5, 0 | r5 = 0;
0x000027da blx 0x14a4 | r0 = g_dbus_connection_call_sync ();
| if (r0 == 0) {
0x000027de cbz r0, 0x2834 | goto label_53;
| }
| label_19:
0x000027e0 mov r0, r7 | r0 = r7;
0x000027e2 blx 0x14f0 | fcn_000014f0 ();
0x000027e6 mov r0, r6 | r0 = r6;
0x000027e8 blx 0x14f0 | fcn_000014f0 ();
0x000027ec b 0x2676 | goto label_10;
0x000027ee cmp r2, 0x21 |
| if (r2 != 0x21) {
0x000027f0 bne 0x27f8 | goto label_54;
| }
0x000027f2 ldrb r3, [r3, 1] | r3 = *((r3 + 1));
0x000027f4 cmp r3, 0 |
0x000027f6 beq 0x27d2 |
| }
| label_54:
0x000027f8 ldr r3, [pc, 0x8c] | r3 = *(0x2888);
0x000027fa ldr.w r8, [r5, r3] | r8 = *((r5 + r3));
0x000027fe mov r0, r8 | r0 = r8;
0x00002800 blx 0x154c | fcn_0000154c ();
0x00002804 ldr r1, [r4, 4] | r1 = *((r4 + 4));
0x00002806 mov r0, r7 | r0 = r7;
0x00002808 blx 0x14fc | fcn_000014fc ();
0x0000280c ldr r1, [r4, 4] | r1 = *((r4 + 4));
0x0000280e blx 0x1718 | r0 = fcn_00001718 ();
0x00002812 mov r5, r0 | r5 = r0;
| if (r0 != 0) {
0x00002814 cbz r0, 0x2828 |
0x00002816 mov r0, r8 | r0 = r8;
0x00002818 mvn r5, 0xbd | r5 = ~0xbd;
0x0000281c blx 0x1524 | fcn_00001524 ();
0x00002820 b 0x27e0 | goto label_19;
| label_52:
0x00002822 mvn r5, 0xbd | r5 = ~0xbd;
0x00002826 b 0x27e0 | goto label_19;
| }
0x00002828 mov r0, r8 | r0 = r8;
0x0000282a blx 0x1524 | fcn_00001524 ();
0x0000282e b 0x27e0 | goto label_19;
| label_44:
0x00002830 blx 0x1658 | fcn_00001658 ();
| label_53:
0x00002834 ldr r3, [sp, 0x10] | r3 = var_10h;
0x00002836 ldr r4, [r3] | r4 = *(r3);
0x00002838 blx 0x167c | r0 = fcn_0000167c ();
0x0000283c cmp r4, r0 |
0x0000283e ldr r0, [sp, 0x10] | r0 = var_10h;
0x00002840 beq 0x284c |
| while (r3 != 0x20) {
0x00002842 mvn r5, 0xbd | r5 = ~0xbd;
0x00002846 blx 0x16c4 | fcn_000016c4 ();
0x00002848 invalid |
0x0000284c ldr r3, [r0, 4] | r3 = *((r0 + 4));
0x0000284e cmp r3, 0x20 |
0x00002850 bne 0x2842 |
| }
0x00002852 mvn r5, 0xb8 | r5 = ~0xb8;
0x00002856 blx 0x16c4 | fcn_000016c4 ();
0x0000285a b 0x27e0 | goto label_19;
| }
[*] Function system used 9 times libhttp_auth.so