[*] Binary protection state of userdbctl
Full RELRO Canary found NX enabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function printf tear down of userdbctl
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/userdbctl @ 0x201c */
| #include <stdint.h>
|
; (fcn) fcn.0000201c () | void fcn_0000201c (uint32_t arg1, uint32_t arg2) {
| int16_t var_0h_2;
| int16_t var_4h_2;
| int16_t var_8h_2;
| int16_t var_ch_3;
| int16_t var_10h_2;
| int16_t var_14h_2;
| int16_t var_18h_2;
| int16_t var_1ch_2;
| r0 = arg1;
| r1 = arg2;
0x0000201c push.w {r4, r5, r6, r7, r8, sb, lr} |
0x00002020 sub sp, 0x24 |
0x00002022 ldr r6, [pc, 0x198] |
0x00002024 add r6, pc | r6 = 0x41e6;
0x00002026 cmp r0, 0 |
| if (var_0h_2 == ) {
0x00002028 beq.w 0x2146 | goto label_3;
| }
0x0000202c ldr r3, [pc, 0x190] |
0x0000202e mov r4, r0 | r4 = r0;
0x00002030 add r3, pc | r3 = 0x41f4;
0x00002032 ldr r5, [r3] | r5 = *(0x41f4);
0x00002034 cmp r5, 3 |
| if (r5 > 3) {
0x00002036 bhi.w 0x21a6 | goto label_4;
| }
| /* switch table (4 cases) at 0x203e */
0x0000203a tbb [pc, r5] | __asm ("tbb [0x00002040]");
0x00002042 movs r3, 0 | r3 = 0;
0x00002044 ldr r0, [r0, 0x3c] | r0 = *(var_0h_2x3c);
0x00002046 mov r2, r3 | r2 = r3;
0x00002048 movs r1, 0x12 | r1 = 0x12;
0x0000204a mov r5, r3 | r5 = r3;
0x0000204c blx 0x1670 | json_variant_dump ();
| label_0:
0x00002050 mov r0, r5 | r0 = r5;
0x00002052 add sp, 0x24 |
0x00002054 pop.w {r4, r5, r6, r7, r8, sb, pc} |
0x00002058 movs r1, 1 | r1 = 1;
0x0000205a blx 0x170c | group_record_show ();
0x0000205e ldrb r3, [r4, 8] | r3 = *((r4 + 8));
0x00002060 cmp r3, 0 |
| if (r3 != 0) {
0x00002062 bne 0x2112 | goto label_5;
| }
| do {
| label_1:
0x00002064 movs r5, 0 | r5 = 0;
0x00002066 mov r0, r5 | r0 = r5;
0x00002068 add sp, 0x24 |
0x0000206a pop.w {r4, r5, r6, r7, r8, sb, pc} |
0x0000206e mov r7, r1 | r7 = r1;
0x00002070 cmp r1, 0 |
| if (r1 == 0) {
0x00002072 beq.w 0x217a | goto label_6;
| }
0x00002076 ldr r6, [r0, 0xc] | r6 = *(var_0h_2xc);
0x00002078 blx 0x15f8 | group_record_disposition ();
0x0000207c blx 0x1538 | user_disposition_to_string ();
0x00002080 ldr.w sb, [r4, 0x28] | sb = *((r4 + 0x28));
0x00002084 mov r5, r0 | r5 = r0;
0x00002086 ldr.w r8, [r4, 0x18] | r8 = *((r4 + 0x18));
0x00002088 strh r0, [r3] | *(r3) = r0;
0x0000208a mov r0, r4 | r0 = r4;
0x0000208c movs r4, 0x21 | r4 = 0x21;
0x0000208e blx 0x15f8 | group_record_disposition ();
0x00002092 movs r3, 1 | r3 = 1;
0x00002094 movs r1, 0x1e | r1 = 0x1e;
0x00002096 str r4, [sp, 0x1c] | var_1ch_2 = r4;
0x00002098 movs r4, 0xd | r4 = 0xd;
0x0000209a str r0, [sp, 0x18] | var_18h_2 = r0;
0x0000209c mov r2, r6 | r2 = r6;
0x0000209e str r1, [sp, 4] | var_4h_2 = r1;
0x000020a0 mov r0, r7 | r0 = r7;
0x000020a2 str r4, [sp, 0x14] | var_14h_2 = r4;
0x000020a4 mov r1, r3 | r1 = r3;
0x000020a6 str.w sb, [sp, 8] | __asm ("str.w sb, [var_8h_2]");
0x000020aa str.w r8, [sp, 0x10] | __asm ("str.w r8, [var_10h_2]");
0x000020ae str r3, [sp, 0xc] | var_ch_3 = r3;
0x000020b0 str r5, [sp] | *(sp) = r5;
0x000020b2 blx 0x161c | r0 = table_add_many_internal ();
0x000020b6 subs r4, r0, 0 | r4 = r0 - 0;
0x000020b8 bge 0x2064 |
| } while (r4 >= r0);
0x000020ba blx 0x14a8 | r0 = log_get_max_level ();
0x000020be cmp r0, 2 |
0x000020c0 ittt le |
| if (r0 <= 2) {
0x000020c2 rsble r5, r4, 0 | __asm ("rsble r5, r4, 0");
| }
| if (r0 <= 2) {
0x000020c4 uxtble r5, r5 | __asm ("uxtble r5, r5");
| }
| if (r0 <= 2) {
0x000020c6 rsble r5, r5, 0 | __asm ("rsble r5, r5, 0");
| }
| if (r0 > 2) {
0x000020c8 bgt 0x215a | goto label_7;
| }
| label_2:
0x000020ca cmp r5, 0 |
0x000020cc it ge |
| if (r5 < 0) {
0x000020ce mvnge r5, 0x55 | r5 = ~0x55;
| }
0x000020d2 b 0x2050 | goto label_0;
0x000020d4 ldr r0, [r0, 0x28] | r0 = *(var_0h_2x28);
0x000020d6 blx 0x1580 | r0 = uid_is_valid ();
| if (r0 == 0) {
0x000020da cbz r0, 0x210e | goto label_8;
| }
0x000020dc ldr r1, [pc, 0xe4] |
0x000020de movs r3, 0 | r3 = 0;
0x000020e0 ldr r0, [r4, 0x2c] | r0 = *((r4 + 0x2c));
0x000020e2 mov r2, r3 | r2 = r3;
0x000020e4 add r1, pc | r1 = 0x42ac;
0x000020e6 blx 0x143c | r0 = strv_join_full ();
0x000020ea mov r6, r0 | r6 = r0;
0x000020ec cmp r0, 0 |
| if (r0 == 0) {
0x000020ee beq 0x218e | goto label_9;
| }
0x000020f0 ldr r1, [pc, 0xd4] |
0x000020f2 ldr r3, [r4, 0x28] | r3 = *((r4 + 0x28));
0x000020f4 ldr r2, [r4, 0xc] | r2 = *((r4 + 0xc));
0x000020f6 add r1, pc | r1 = 0x42c2;
0x000020f8 str r0, [sp] | *(sp) = r0;
0x000020fa movs r0, 1 | r0 = 1;
0x000020fc blx 0x14d8 | printf_chk ()
| do {
0x00002100 mov r0, r6 | r0 = r6;
0x00002102 blx 0x1544 | free (r0);
0x00002106 mov r0, r5 | r0 = r5;
0x00002108 add sp, 0x24 |
0x0000210a pop.w {r4, r5, r6, r7, r8, sb, pc} |
| label_8:
0x0000210e mov r6, r0 | r6 = r0;
0x00002110 b 0x2100 |
| } while (1);
| label_5:
0x00002112 ldr r3, [pc, 0xb8] | r3 = *(0x21ce);
0x00002114 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00002116 ldr r0, [r3] | r0 = *(0x21ce);
0x00002118 blx 0x1574 | r0 = fflush (r0);
0x0000211c blx 0x14a8 | r0 = log_get_max_level ();
0x00002120 cmp r0, 3 |
| if (r0 <= 3) {
0x00002122 ble 0x2064 | goto label_1;
| }
0x00002124 ldr r0, [r4, 0xc] | r0 = *((r4 + 0xc));
0x00002126 movs r3, 0xde | r3 = 0xde;
0x00002128 ldr r2, [pc, 0xa4] |
0x0000212a ldr r1, [pc, 0xa8] |
0x0000212c ldr r4, [pc, 0xa8] |
0x0000212e add r2, pc | r2 = 0x4302;
0x00002130 add r1, pc | r1 = 0x430a;
0x00002132 adds r2, 7 | r2 += 7;
0x00002134 add r4, pc | r4 = 0x4310;
0x00002136 strd r1, r0, [sp, 4] | __asm ("strd r1, r0, [sp, 4]");
0x0000213a str r4, [sp] | *(sp) = r4;
0x0000213c movs r1, 0 | r1 = 0;
0x0000213e movs r0, 4 | r0 = 4;
0x00002140 blx 0x16ac | log_internal ();
0x00002144 b 0x2064 | goto label_1;
| label_3:
0x00002146 ldr r1, [pc, 0x94] |
0x00002148 movs r2, 0xc0 | r2 = 0xc0;
0x0000214a ldr r3, [pc, 0x94] |
0x0000214c ldr r0, [pc, 0x94] |
0x0000214e add r1, pc | r1 = "\e[0";
0x00002150 add r3, pc | r3 = 0x4336;
0x00002152 adds r1, 7 | r1 += 7;
0x00002154 add r0, pc | r0 = "\e[0";
0x00002156 blx 0x15a4 | log_assert_failed ();
| label_7:
0x0000215a ldr r2, [pc, 0x8c] |
0x0000215c movs r3, 0xee | r3 = 0xee;
0x0000215e ldr r5, [pc, 0x8c] |
0x00002160 mov r1, r4 | r1 = r4;
0x00002162 ldr r0, [pc, 0x8c] |
0x00002164 add r2, pc | r2 = 0x4352;
0x00002166 add r5, pc | r5 = 0x4358;
0x00002168 adds r2, 7 | r2 += 7;
0x0000216a add r0, pc | r0 = "No services.";
0x0000216c strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x00002170 movs r0, 3 | r0 = 3;
0x00002172 blx 0x16ac | r0 = log_internal ();
0x00002176 mov r5, r0 | r5 = r0;
0x00002178 b 0x20ca | goto label_2;
| label_6:
0x0000217a ldr r1, [pc, 0x78] |
0x0000217c movs r2, 0xe4 | r2 = 0xe4;
0x0000217e ldr r3, [pc, 0x78] |
0x00002180 ldr r0, [pc, 0x78] |
0x00002182 add r1, pc | r1 = 0x437c;
0x00002184 add r3, pc | r3 = 0x4382;
0x00002186 adds r1, 7 | r1 += 7;
0x00002188 add r0, pc | r0 = 0x4388;
0x0000218a blx 0x15a4 | log_assert_failed ();
| label_9:
0x0000218e ldr r1, [pc, 0x70] |
0x00002190 movs r2, 0xcc | r2 = 0xcc;
0x00002192 ldr r3, [pc, 0x70] |
0x00002194 movs r0, 3 | r0 = 3;
0x00002196 add r1, pc | r1 = 0x439c;
0x00002198 add r3, pc | r3 = 0x43a2;
0x0000219a adds r1, 7 | r1 += 7;
0x0000219c add sp, 0x24 |
0x0000219e pop.w {r4, r5, r6, r7, r8, sb, lr} |
0x000021a2 b.w 0x17cc | void (*0x17cc)() ();
| label_4:
0x000021a6 ldr r1, [pc, 0x60] |
0x000021a8 movs r2, 0xf3 | r2 = 0xf3;
0x000021aa ldr r3, [pc, 0x60] |
0x000021ac ldr r0, [pc, 0x60] |
0x000021ae add r1, pc | r1 = 0x43bc;
0x000021b0 add r3, pc | r3 = 0x43c2;
0x000021b2 adds r1, 7 | r1 += 7;
0x000021b4 add r0, pc | r0 = 0x43c8;
0x000021b6 blx 0x1760 | log_assert_failed_unreachable ();
0x000021ba nop |
0x000021bc cmp r6, 0x38 |
0x000021be movs r1, r0 | r1 = r0;
0x000021c0 cmp r7, 0xd0 |
0x000021c2 movs r1, r0 | r1 = r0;
0x000021c4 movs r0, 0xb8 | r0 = 0xb8;
0x000021c6 movs r0, r0 |
0x000021c8 movs r0, 0xaa | r0 = 0xaa;
0x000021ca movs r0, r0 |
0x000021cc lsls r4, r1, 6 | r4 = r1 << 6;
0x000021ce movs r0, r0 |
0x000021d0 subs r2, r0, r5 | r2 = r0 - r5;
0x000021d2 movs r0, r0 |
0x000021d4 movs r0, 0x7c | r0 = 0x7c;
0x000021d6 movs r0, r0 |
0x000021d8 cmp r0, 0xb0 |
0x000021da movs r0, r0 |
0x000021dc subs r2, r4, r4 | r2 = r4 - r4;
0x000021de movs r0, r0 |
0x000021e0 cmp r0, 8 |
0x000021e2 movs r0, r0 |
0x000021e4 movs r0, 0x44 | r0 = 0x44;
0x000021e6 movs r0, r0 |
0x000021e8 subs r4, r1, r4 | r4 = r1 - r4;
0x000021ea movs r0, r0 |
0x000021ec movs r0, 0xb2 | r0 = 0xb2;
0x000021ee movs r0, r0 |
0x000021f0 cmp r0, 0x7a |
0x000021f2 movs r0, r0 |
0x000021f4 subs r6, r5, r3 | r6 = r5 - r3;
0x000021f6 movs r0, r0 |
0x000021f8 movs r7, 0xd4 | r7 = 0xd4;
0x000021fa movs r0, r0 |
0x000021fc movs r0, 0x88 | r0 = 0x88;
0x000021fe movs r0, r0 |
0x00002200 subs r2, r3, r3 | r2 = r3 - r3;
0x00002202 movs r0, r0 |
0x00002204 cmp r0, 0x4c |
0x00002206 movs r0, r0 |
0x00002208 subs r2, r0, r3 | r2 = r0 - r3;
0x0000220a movs r0, r0 |
0x0000220c movs r7, 0xa8 | r7 = 0xa8;
0x0000220e movs r0, r0 |
0x00002210 movs r0, 0x88 | r0 = 0x88;
0x00002212 movs r0, r0 |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/userdbctl @ 0x2214 */
| #include <stdint.h>
|
; (fcn) fcn.00002214 () | void fcn_00002214 (uint32_t arg1, uint32_t arg2) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_ch_2;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_18h;
| int16_t var_1ch;
| int16_t var_20h;
| int16_t var_24h;
| int16_t var_28h;
| int16_t var_2ch;
| int16_t var_30h;
| int16_t var_34h;
| r0 = arg1;
| r1 = arg2;
0x00002214 svcmi 0xf0e92d | __asm ("svcmi 0xf0e92d");
0x00002218 sub sp, 0x3c |
0x0000221a ldr r6, [pc, 0x1cc] |
0x0000221c add r6, pc | r6 = 0x460a;
0x0000221e cmp r0, 0 |
| if (var_0h == ) {
0x00002220 beq.w 0x2386 | goto label_4;
| }
0x00002224 ldr r3, [pc, 0x1c4] |
0x00002226 mov r4, r0 | r4 = r0;
0x00002228 add r3, pc | r3 = 0x4618;
0x0000222a ldr r5, [r3] | r5 = *(0x4618);
0x0000222c cmp r5, 3 |
| if (r5 > 3) {
0x0000222e bhi.w 0x23d4 | goto label_5;
| }
| /* switch table (4 cases) at 0x2236 */
0x00002232 tbb [pc, r5] | __asm ("tbb [0x00002238]");
0x0000223a movs r3, 0 | r3 = 0;
0x0000223c ldr.w r0, [r0, 0x288] | r0 = *(var_0hx288);
0x00002240 mov r2, r3 | r2 = r3;
0x00002242 movs r1, 0x12 | r1 = 0x12;
0x00002244 mov r5, r3 | r5 = r3;
0x00002246 blx 0x1670 | json_variant_dump ();
| label_0:
0x0000224a mov r0, r5 | r0 = r5;
0x0000224c add sp, 0x3c |
0x0000224e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
0x00002252 movs r1, 1 | r1 = 1;
0x00002254 blx 0x1478 | user_record_show ();
0x00002258 ldrb r3, [r4, 8] | r3 = *((r4 + 8));
0x0000225a cmp r3, 0 |
| if (r3 != 0) {
0x0000225c bne 0x2350 | goto label_6;
| }
| do {
| label_1:
0x0000225e movs r5, 0 | r5 = 0;
0x00002260 mov r0, r5 | r0 = r5;
0x00002262 add sp, 0x3c |
0x00002264 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
0x00002268 mov r7, r1 | r7 = r1;
0x0000226a cmp r1, 0 |
| if (r1 == 0) {
0x0000226c beq.w 0x23ba | goto label_7;
| }
0x00002270 ldr.w fp, [r0, 0xc] | fp = *(var_0hxc);
0x00002274 blx 0x1664 | user_record_disposition ();
0x00002278 blx 0x1538 | r0 = user_disposition_to_string ();
0x0000227c mov r6, r0 | r6 = r0;
0x0000227e mov r0, r4 | r0 = r4;
0x00002280 ldr.w sl, [r4, 0x128] | sl = *((r4 + 0x128));
0x00002284 blx 0x152c | user_record_gid ();
0x00002288 ldr r5, [r4, 0x18] | r5 = *((r4 + 0x18));
0x0000228a mov r8, r0 | r8 = r0;
| if (r5 != 0) {
0x0000228c cbz r5, 0x2296 |
0x0000228e ldrb r3, [r5] | r3 = *(r5);
0x00002290 cmp r3, 0 |
0x00002292 it eq |
| if (r3 == 0) {
0x00002294 moveq r5, 0 | r5 = 0;
| goto label_8;
| }
| }
| label_8:
0x00002296 mov r0, r4 | r0 = r4;
0x00002298 blx 0x17a8 | r0 = user_record_home_directory ();
0x0000229c mov sb, r0 | sb = r0;
0x0000229e mov r0, r4 | r0 = r4;
0x000022a0 blx 0x1694 | r0 = user_record_shell ();
0x000022a4 mov r3, r0 | r3 = r0;
0x000022a6 mov r0, r4 | r0 = r4;
0x000022a8 mov r4, r3 | r4 = r3;
0x000022aa blx 0x1664 | user_record_disposition ();
0x000022ae movs r3, 0x1e | r3 = 0x1e;
0x000022b0 str r4, [sp, 0x28] | var_28h = r4;
0x000022b2 str r3, [sp, 0xc] | var_ch_2 = r3;
0x000022b4 movs r4, 0x21 | r4 = 0x21;
0x000022b6 movs r3, 0x1d | r3 = 0x1d;
0x000022b8 str r4, [sp, 0x34] | var_34h = r4;
0x000022ba strd r3, sl, [sp, 4] | __asm ("strd r3, sl, [sp, 4]");
0x000022be movs r4, 0xd | r4 = 0xd;
0x000022c0 movs r3, 1 | r3 = 1;
0x000022c2 str r0, [sp, 0x30] | var_30h = r0;
0x000022c4 str r4, [sp, 0x2c] | var_2ch = r4;
0x000022c6 mov r2, fp | r2 = fp;
0x000022c8 mov r0, r7 | r0 = r7;
0x000022ca mov r1, r3 | r1 = r3;
0x000022cc str.w sb, [sp, 0x20] | __asm ("str.w sb, [var_20h]");
0x000022d0 str r5, [sp, 0x18] | var_18h = r5;
0x000022d2 str.w r8, [sp, 0x10] | __asm ("str.w r8, [var_10h]");
0x000022d6 str r6, [sp] | *(sp) = r6;
0x000022d8 str r3, [sp, 0x24] | var_24h = r3;
0x000022da str r3, [sp, 0x1c] | var_1ch = r3;
0x000022dc str r3, [sp, 0x14] | var_14h = r3;
0x000022de blx 0x161c | r0 = table_add_many_internal ();
0x000022e2 subs r4, r0, 0 | r4 = r0 - 0;
0x000022e4 bge 0x225e |
| } while (r4 >= r0);
0x000022e6 blx 0x14a8 | r0 = log_get_max_level ();
0x000022ea cmp r0, 2 |
0x000022ec ittt le |
| if (r0 <= 2) {
0x000022ee rsble r5, r4, 0 | __asm ("rsble r5, r4, 0");
| }
| if (r0 <= 2) {
0x000022f0 uxtble r5, r5 | __asm ("uxtble r5, r5");
| }
| if (r0 <= 2) {
0x000022f2 rsble r5, r5, 0 | __asm ("rsble r5, r5, 0");
| }
| if (r0 > 2) {
0x000022f4 bgt 0x239a | goto label_9;
| }
| label_2:
0x000022f6 cmp r5, 0 |
0x000022f8 it ge |
| if (r5 < 0) {
0x000022fa mvnge r5, 0x55 | r5 = ~0x55;
| }
0x000022fe b 0x224a | goto label_0;
0x00002300 ldr.w r0, [r0, 0x128] | r0 = *(var_0hx128);
0x00002304 blx 0x1580 | r0 = uid_is_valid ();
0x00002308 cmp r0, 0 |
| if (r0 == 0) {
0x0000230a beq 0x225e | goto label_1;
| }
0x0000230c mov r0, r4 | r0 = r4;
0x0000230e ldr.w r8, [r4, 0xc] | r8 = *((r4 + 0xc));
0x00002312 ldr.w sb, [r4, 0x128] | sb = *((r4 + 0x128));
0x00002316 blx 0x152c | r0 = user_record_gid ();
0x0000231a mov r7, r0 | r7 = r0;
0x0000231c mov r0, r4 | r0 = r4;
0x0000231e blx 0x1688 | r0 = user_record_real_name ();
0x00002322 mov r6, r0 | r6 = r0;
0x00002324 cmp r0, 0 |
| if (r0 == 0) {
0x00002326 beq 0x23ce | goto label_10;
| }
| label_3:
0x00002328 mov r0, r4 | r0 = r4;
0x0000232a blx 0x17a8 | r0 = user_record_home_directory ();
0x0000232e mov r3, r0 | r3 = r0;
0x00002330 mov r0, r4 | r0 = r4;
0x00002332 mov r4, r3 | r4 = r3;
0x00002334 blx 0x1694 | user_record_shell ();
0x00002338 ldr r1, [pc, 0xb4] |
0x0000233a mov r3, sb | r3 = sb;
0x0000233c strd r4, r0, [sp, 8] | __asm ("strd r4, r0, [sp, 8]");
0x00002340 mov r2, r8 | r2 = r8;
0x00002342 str r6, [sp, 4] | var_4h = r6;
0x00002344 movs r0, 1 | r0 = 1;
0x00002346 add r1, pc | r1 = 0x473a;
0x00002348 str r7, [sp] | *(sp) = r7;
0x0000234a blx 0x14d8 | printf_chk ()
0x0000234e b 0x224a | goto label_0;
| label_6:
0x00002350 ldr r3, [pc, 0xa0] | r3 = *(0x23f4);
0x00002352 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00002354 ldr r0, [r3] | r0 = *(0x23f4);
0x00002356 blx 0x1574 | r0 = fflush (r0);
0x0000235a blx 0x14a8 | r0 = log_get_max_level ();
0x0000235e cmp r0, 3 |
| if (r0 <= 3) {
0x00002360 ble.w 0x225e | goto label_1;
| }
0x00002364 ldr r0, [r4, 0xc] | r0 = *((r4 + 0xc));
0x00002366 movs r3, 0x45 | r3 = 0x45;
0x00002368 ldr r2, [pc, 0x8c] |
0x0000236a ldr r1, [pc, 0x90] |
0x0000236c ldr r4, [pc, 0x90] |
0x0000236e add r2, pc | r2 = 0x476a;
0x00002370 add r1, pc | r1 = 0x4772;
0x00002372 adds r2, 7 | r2 += 7;
0x00002374 add r4, pc | r4 = 0x4778;
0x00002376 strd r1, r0, [sp, 4] | __asm ("strd r1, r0, [sp, 4]");
0x0000237a str r4, [sp] | *(sp) = r4;
0x0000237c movs r1, 0 | r1 = 0;
0x0000237e movs r0, 4 | r0 = 4;
0x00002380 blx 0x16ac | log_internal ();
0x00002384 b 0x225e | goto label_1;
| label_4:
0x00002386 ldr r1, [pc, 0x7c] |
0x00002388 movs r2, 0x2a | r2 = 0x2a;
0x0000238a ldr r3, [pc, 0x7c] |
0x0000238c ldr r0, [pc, 0x7c] |
0x0000238e add r1, pc | r1 = 0x4798;
0x00002390 add r3, pc | r3 = 0x479e;
0x00002392 adds r1, 7 | r1 += 7;
0x00002394 add r0, pc | r0 = "classic";
0x00002396 blx 0x15a4 | log_assert_failed ();
| label_9:
0x0000239a ldr r2, [pc, 0x74] |
0x0000239c movs r3, 0x58 | r3 = 0x58;
0x0000239e ldr r5, [pc, 0x74] |
0x000023a0 mov r1, r4 | r1 = r4;
0x000023a2 ldr r0, [pc, 0x74] |
0x000023a4 add r2, pc | r2 = 0x47ba;
0x000023a6 add r5, pc | r5 = "help";
0x000023a8 adds r2, 7 | r2 += 7;
0x000023aa add r0, pc | r0 = "classic\nfriendly\njson\ntable";
0x000023ac strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x000023b0 movs r0, 3 | r0 = 3;
0x000023b2 blx 0x16ac | r0 = log_internal ();
0x000023b6 mov r5, r0 | r5 = r0;
0x000023b8 b 0x22f6 | goto label_2;
| label_7:
0x000023ba ldr r1, [pc, 0x60] |
0x000023bc movs r2, 0x4b | r2 = 0x4b;
0x000023be ldr r3, [pc, 0x60] |
0x000023c0 ldr r0, [pc, 0x60] |
0x000023c2 add r1, pc | r1 = "Invalid --output= mode: %s";
0x000023c4 add r3, pc | r3 = 0x47ea;
0x000023c6 adds r1, 7 | r1 += 7;
0x000023c8 add r0, pc | r0 = 0x47f0;
0x000023ca blx 0x15a4 | log_assert_failed ();
| label_10:
0x000023ce ldr r6, [pc, 0x58] |
0x000023d0 add r6, pc | r6 = 0x47fe;
0x000023d2 b 0x2328 | goto label_3;
| label_5:
0x000023d4 ldr r1, [pc, 0x54] |
0x000023d6 movs r2, 0x5d | r2 = 0x5d;
0x000023d8 ldr r3, [pc, 0x54] |
0x000023da ldr r0, [pc, 0x58] |
0x000023dc add r1, pc | r1 = "--with-dropin=";
0x000023de add r3, pc | r3 = 0x4812;
0x000023e0 adds r1, 7 | r1 += 7;
0x000023e2 add r0, pc |
0x000023e4 blx 0x1760 | log_assert_failed_unreachable ();
0x000023e8 cmp r4, 0x40 |
0x000023ea movs r1, r0 | r1 = r0;
0x000023ec cmp r5, 0xd8 |
0x000023ee movs r1, r0 | r1 = r0;
0x000023f0 subs r2, r2, 4 | r2 -= 4;
0x000023f2 movs r0, r0 |
0x000023f4 lsls r4, r1, 6 | r4 = r1 << 6;
0x000023f6 movs r0, r0 |
0x000023f8 adds r2, r0, r4 | r2 = r0 + r4;
0x000023fa movs r0, r0 |
0x000023fc subs r0, r0, 4 | r0 -= 4;
0x000023fe movs r0, r0 |
0x00002400 movs r6, 0x14 | r6 = 0x14;
0x00002402 movs r0, r0 |
0x00002404 adds r2, r4, r3 | r2 = r4 + r3;
0x00002406 movs r0, r0 |
0x00002408 movs r5, 0xac | r5 = 0xac;
0x0000240a movs r0, r0 |
0x0000240c subs r0, r0, 3 | r0 -= 3;
0x0000240e movs r0, r0 |
0x00002410 adds r4, r1, r3 | r4 = r1 + r3;
0x00002412 movs r0, r0 |
0x00002414 subs r2, r6, 1 | r2 = r6 - 1;
0x00002416 movs r0, r0 |
0x00002418 movs r5, 0xde | r5 = 0xde;
0x0000241a movs r0, r0 |
0x0000241c adds r6, r5, r2 | r6 = r5 + r2;
0x0000241e movs r0, r0 |
0x00002420 movs r5, 0x78 | r5 = 0x78;
0x00002422 movs r0, r0 |
0x00002424 subs r0, r1, 1 | r0 = r1 - 1;
0x00002426 movs r0, r0 |
0x00002428 subs r4, r3, 2 | r4 = r3 - 2;
0x0000242a movs r0, r0 |
0x0000242c adds r4, r2, r2 | r4 = r2 + r2;
0x0000242e movs r0, r0 |
0x00002430 movs r5, 0x5e | r5 = 0x5e;
0x00002432 movs r0, r0 |
0x00002434 subs r6, r5, 3 | r6 = r5 - 3;
0x00002436 movs r0, r0 |
0x00002438 push {r4, lr} |
0x0000243a mov r4, r0 | r4 = r0;
0x0000243c ldr r0, [r0] | r0 = "--with-varlink=";
| if (r0 != 0) {
0x0000243e cbz r0, 0x2446 |
0x00002440 blx 0x1598 | strv_free ();
0x00002444 str r0, [r4] | *(r4) = r0;
| }
0x00002446 pop {r4, pc} |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/userdbctl @ 0x2448 */
| #include <stdint.h>
|
; (fcn) fcn.00002448 () | void fcn_00002448 (void * arg1, void * arg2, int16_t arg3) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h_2;
| int16_t var_18h;
| int16_t var_1ch_2;
| int16_t var_20h;
| int16_t var_24h_2;
| int16_t var_2ch_2;
| int16_t var_30h;
| int16_t var_34h;
| int16_t var_0h_2;
| int16_t var_4h_2;
| int16_t var_8h_2;
| int16_t var_10h_3;
| int16_t var_14h_2;
| int16_t var_18h_2;
| int16_t var_1ch_3;
| int16_t var_24h_3;
| int16_t var_28h;
| int16_t var_2ch;
| int32_t var_0h_6;
| int32_t var_0h_7;
| int16_t var_8h_3;
| int16_t var_ch_2;
| int16_t var_10h_4;
| void * var_14h_3;
| void * ptr;
| int16_t var_1ch;
| int16_t var_0h_3;
| int32_t var_4h_5;
| int16_t var_8h_4;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_0h_4;
| int16_t var_4h_3;
| int16_t var_8h_5;
| int16_t var_ch_3;
| int16_t var_14h_4;
| int16_t var_18h_4;
| int16_t var_1ch_4;
| size_t addrlen;
| int16_t var_a4h;
| int16_t var_0h_5;
| void * var_4h_4;
| int32_t var_4h_6;
| int32_t var_ch_4;
| int32_t var_ch_5;
| int16_t var_14h_5;
| int16_t var_18h_5;
| int16_t var_20h_2;
| int16_t var_24h;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
0x00002448 ssub16mi fp, r5, r0 | __asm ("ssub16mi fp, r5, r0");
0x0000244c ldr r2, [pc, 0x1a4] |
0x0000244e sub sp, 0x28 |
0x00002450 ldr r3, [pc, 0x1a4] | r3 = *(0x25f8);
0x00002452 add r2, pc | r2 = 0x4a4a;
0x00002454 ldr r3, [r2, r3] |
0x00002456 ldr r3, [r3] | r3 = *(0x4a4a);
0x00002458 str r3, [sp, 0x24] | var_24h = r3;
0x0000245a mov.w r3, 0 | r3 = 0;
0x0000245e cmp r0, 0 |
| if (r0 == 0) {
0x00002460 beq 0x2538 | goto label_70;
| }
0x00002462 mov r6, r1 | r6 = r1;
0x00002464 cmp r1, 0 |
| if (r1 == 0) {
0x00002466 beq 0x254e | goto label_71;
| }
0x00002468 ldr r3, [pc, 0x190] |
0x0000246a add r3, pc | r3 = 0x4a6a;
0x0000246c ldr r4, [r3] | r4 = *(0x4a6a);
0x0000246e cmp r4, 3 |
| if (r4 > 3) {
0x00002470 bhi.w 0x25dc | goto label_72;
| }
| /* switch table (4 cases) at 0x2478 */
0x00002474 tbb [pc, r4] | __asm ("tbb [0x0000247c]");
0x0000247c ldr r3, [pc, 0x180] |
0x0000247e movs r5, 0 | r5 = 0;
0x00002480 movs r1, 8 | r1 = 8;
0x00002482 movs r2, 9 | r2 = 9;
0x00002484 str r1, [sp, 0x18] | var_18h_5 = r1;
0x00002486 movs r1, 7 | r1 = 7;
0x00002488 add r3, pc | r3 = 0x4a8c;
0x0000248a strd r0, r2, [sp, 4] | __asm ("strd r0, r2, [var_4h_4]");
0x0000248e strd r3, r5, [sp, 0xc] | __asm ("strd r3, r5, [var_ch_4]");
0x00002492 add r0, sp, 0x20 | r0 += var_20h_2;
0x00002494 ldr r3, [pc, 0x16c] |
0x00002496 str r6, [sp, 0x14] | var_14h_5 = r6;
0x00002498 str r5, [sp] | *(sp) = r5;
0x0000249a add r3, pc | r3 = 0x4aa2;
0x0000249c str r5, [sp, 0x20] | var_20h_2 = r5;
0x0000249e blx 0x164c | json_build ();
0x000024a2 subs r4, r0, 0 | r4 -= var_20h_2;
| if (r4 < var_20h_2) {
0x000024a4 blt 0x2514 | goto label_73;
| }
0x000024a6 ldr r0, [sp, 0x20] | r0 = var_20h_2;
0x000024a8 mov r3, r5 | r3 = r5;
0x000024aa mov r2, r5 | r2 = r5;
0x000024ac movs r1, 0x12 | r1 = 0x12;
0x000024ae blx 0x1670 | json_variant_dump ();
0x000024b2 ldr r0, [sp, 0x20] | r0 = var_20h_2;
| if (r0 == 0) {
0x000024b4 cbz r0, 0x2500 | goto label_74;
| }
0x000024b6 blx 0x1748 | json_variant_unref ();
0x000024ba b 0x2500 | goto label_74;
0x000024bc ldr r1, [pc, 0x148] |
0x000024be mov r3, r0 | r3 = r0;
0x000024c0 mov r2, r6 | r2 = r6;
0x000024c2 movs r0, 1 | r0 = 1;
0x000024c4 movs r4, 0 | r4 = 0;
0x000024c6 add r1, pc | r1 = 0x4ad2;
0x000024c8 blx 0x14d8 | printf_chk ()
| do {
| label_0:
0x000024cc ldr r2, [pc, 0x13c] |
0x000024ce ldr r3, [pc, 0x128] | r3 = *(0x25fa);
0x000024d0 add r2, pc | r2 = 0x4ae0;
0x000024d2 ldr r3, [r2, r3] | r3 = *(0x4ae0);
0x000024d4 ldr r2, [r3] | r2 = *(0x4ae0);
0x000024d6 ldr r3, [sp, 0x24] | r3 = var_24h;
0x000024d8 eors r2, r3 | r2 ^= r3;
0x000024da mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000024de bne 0x25d8 | goto label_75;
| }
0x000024e0 mov r0, r4 | r0 = r4;
0x000024e2 add sp, 0x28 |
0x000024e4 pop {r4, r5, r6, pc} |
0x000024e6 cmp r5, 0 |
| if (r5 == 0) {
0x000024e8 beq 0x2564 | goto label_76;
| }
0x000024ea movs r3, 1 | r3 = 1;
0x000024ec movs r1, 0x21 | r1 = 0x21;
0x000024ee mov r2, r0 | r2 = r0;
0x000024f0 str r1, [sp, 4] | var_4h_4 = r1;
0x000024f2 mov r0, r5 | r0 = r5;
0x000024f4 mov r1, r3 | r1 = r3;
0x000024f6 str r6, [sp] | *(sp) = r6;
0x000024f8 blx 0x161c | r0 = table_add_many_internal ();
0x000024fc subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x000024fe blt 0x257a | goto label_77;
| }
| label_74:
0x00002500 movs r4, 0 | r4 = 0;
0x00002502 b 0x24cc |
| } while (1);
0x00002504 ldr r1, [pc, 0x108] |
0x00002506 mov r2, r0 | r2 = r0;
0x00002508 mov r3, r6 | r3 = r6;
0x0000250a movs r0, 1 | r0 = 1;
0x0000250c add r1, pc | r1 = 0x4b20;
0x0000250e blx 0x14d8 | printf_chk ()
0x00002512 b 0x24cc | goto label_0;
| label_73:
0x00002514 blx 0x14a8 | r0 = log_get_max_level ();
0x00002518 cmp r0, 2 |
0x0000251a ittt le |
| if (r0 <= 2) {
0x0000251c rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 <= 2) {
0x0000251e uxtble r4, r4 | __asm ("uxtble r4, r4");
| }
| if (r0 <= 2) {
0x00002520 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 > 2) {
0x00002522 bgt 0x2594 | goto label_78;
| }
| label_1:
0x00002524 ldr r0, [sp, 0x20] | r0 = var_20h_2;
0x00002526 cmp r4, 0 |
0x00002528 it ge |
| if (r4 < 0) {
0x0000252a mvnge r4, 0x55 | r4 = ~0x55;
| }
0x0000252e cmp r0, 0 |
| if (r0 == 0) {
0x00002530 beq 0x24cc | goto label_0;
| }
0x00002532 blx 0x1748 | json_variant_unref ();
0x00002536 b 0x24cc | goto label_0;
| label_70:
0x00002538 ldr r1, [pc, 0xd8] |
0x0000253a mov.w r2, 0x158 | r2 = 0x158;
0x0000253e ldr r3, [pc, 0xd8] |
0x00002540 ldr r0, [pc, 0xd8] |
0x00002542 add r1, pc | r1 = 0x4b5a;
0x00002544 add r3, pc | r3 = 0x4b62;
0x00002546 adds r1, 7 | r1 += 7;
0x00002548 add r0, pc | r0 = 0x4b68;
0x0000254a blx 0x15a4 | log_assert_failed ();
| label_71:
0x0000254e ldr r1, [pc, 0xd0] |
0x00002550 movw r2, 0x159 | r2 = 0x159;
0x00002554 ldr r3, [pc, 0xcc] |
0x00002556 ldr r0, [pc, 0xd0] |
0x00002558 add r1, pc | r1 = 0x4b7e;
0x0000255a add r3, pc | r3 = 0x4b82;
0x0000255c adds r1, 7 | r1 += 7;
0x0000255e add r0, pc | r0 = 0x4b8c;
0x00002560 blx 0x15a4 | log_assert_failed ();
| label_76:
0x00002564 ldr r1, [pc, 0xc4] |
0x00002566 movw r2, 0x177 | r2 = 0x177;
0x0000256a ldr r3, [pc, 0xc4] |
0x0000256c ldr r0, [pc, 0xc4] |
0x0000256e add r1, pc | r1 = 0x4b9e;
0x00002570 add r3, pc | r3 = 0x4ba6;
0x00002572 adds r1, 7 | r1 += 7;
0x00002574 add r0, pc | r0 = 0x4bac;
0x00002576 blx 0x15a4 | log_assert_failed ();
0x00002578 invalid |
| label_77:
0x0000257a blx 0x14a8 | r0 = log_get_max_level ();
0x0000257e cmp r0, 2 |
0x00002580 ittt le |
| if (r0 <= 2) {
0x00002582 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 <= 2) {
0x00002584 uxtble r4, r4 | __asm ("uxtble r4, r4");
| }
| if (r0 <= 2) {
0x00002586 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
0x00002588 bgt 0x25b6 |
| while (1) {
0x0000258a cmp r4, 0 |
0x0000258c it ge |
| if (r4 < 0) {
0x0000258e mvnge r4, 0x55 | r4 = ~0x55;
| }
0x00002592 b 0x24cc | goto label_0;
| label_78:
0x00002594 ldr r2, [pc, 0xa0] |
0x00002596 mov r1, r4 | r1 = r4;
0x00002598 ldr r5, [pc, 0xa0] |
0x0000259a movw r3, 0x16b | r3 = 0x16b;
0x0000259e ldr r0, [pc, 0xa0] |
0x000025a0 add r2, pc | r2 = 0x4bdc;
0x000025a2 add r5, pc | r5 = 0x4be2;
0x000025a4 adds r2, 7 | r2 += 7;
0x000025a6 add r0, pc | r0 = 0x4bec;
0x000025a8 strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x000025ac movs r0, 3 | r0 = 3;
0x000025ae blx 0x16ac | r0 = log_internal ();
0x000025b2 mov r4, r0 | r4 = r0;
0x000025b4 b 0x2524 | goto label_1;
0x000025b6 ldr r2, [pc, 0x8c] |
0x000025b8 mov r1, r4 | r1 = r4;
0x000025ba ldr r5, [pc, 0x8c] |
0x000025bc mov.w r3, 0x17e | r3 = 0x17e;
0x000025c0 ldr r0, [pc, 0x88] |
0x000025c2 add r2, pc | r2 = 0x4c0c;
0x000025c4 add r5, pc | r5 = 0x4c12;
0x000025c6 adds r2, 7 | r2 += 7;
0x000025c8 add r0, pc | r0 = 0x4c18;
0x000025ca strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x000025ce movs r0, 3 | r0 = 3;
0x000025d0 blx 0x16ac | r0 = log_internal ();
0x000025d4 mov r4, r0 | r4 = r0;
0x000025d6 b 0x258a |
| }
| label_75:
0x000025d8 blx 0x16a0 | stack_chk_fail ();
| label_72:
0x000025dc ldr r1, [pc, 0x70] |
0x000025de movw r2, 0x183 | r2 = 0x183;
0x000025e2 ldr r3, [pc, 0x70] |
0x000025e4 ldr r0, [pc, 0x70] |
0x000025e6 add r1, pc | r1 = 0x4c3a;
0x000025e8 add r3, pc | r3 = 0x4c42;
0x000025ea adds r1, 7 | r1 += 7;
0x000025ec add r0, pc | r0 = 0x4c48;
0x000025ee blx 0x1760 | log_assert_failed_unreachable ();
0x000025f2 nop |
0x000025f4 cmp r2, 0xa |
0x000025f6 movs r1, r0 | r1 = r0;
0x000025f8 lsls r4, r7, 5 | r4 = r7 << 5;
0x000025fa movs r0, r0 |
0x000025fc cmp r3, 0x96 |
0x000025fe movs r1, r0 | r1 = r0;
0x00002600 subs r0, r5, 1 | r0 = r5 - 1;
0x00002602 movs r0, r0 |
0x00002604 subs r6, r1, 1 | r6 = r1 - 1;
0x00002606 movs r0, r0 |
0x00002608 subs r2, r3, 1 | r2 = r3 - 1;
0x0000260a movs r0, r0 |
0x0000260c cmp r1, 0x8c |
0x0000260e movs r1, r0 | r1 = r0;
0x00002610 adds r4, r5, 7 | r4 = r5 + 7;
0x00002612 movs r0, r0 |
0x00002614 asrs r6, r5, 0x1c | r6 = r5 >> 0x1c;
0x00002616 movs r0, r0 |
0x00002618 movs r4, 0x20 | r4 = 0x20;
0x0000261a movs r0, r0 |
0x0000261c adds r0, r4, 6 | r0 = r4 + 6;
0x0000261e movs r0, r0 |
0x00002620 asrs r0, r3, 0x1c | r0 = r3 >> 0x1c;
0x00002622 movs r0, r0 |
0x00002624 movs r4, 0xa | r4 = 0xa;
0x00002626 movs r0, r0 |
0x00002628 adds r2, r2, 6 | r2 += 6;
0x0000262a movs r0, r0 |
0x0000262c asrs r2, r0, 0x1c | r2 = r0 >> 0x1c;
0x0000262e movs r0, r0 |
0x00002630 movs r3, 0xf4 | r3 = 0xf4;
0x00002632 movs r0, r0 |
0x00002634 adds r4, r3, 2 | r4 = r3 + 2;
0x00002636 movs r0, r0 |
0x00002638 asrs r0, r2, 0x1b | r0 = r2 >> 0x1b;
0x0000263a movs r0, r0 |
0x0000263c adds r6, r3, 5 | r6 = r3 + 5;
0x0000263e movs r0, r0 |
0x00002640 movs r4, 0x5a | r4 = 0x5a;
0x00002642 movs r0, r0 |
0x00002644 asrs r6, r5, 0x1a | r6 = r5 >> 0x1a;
0x00002646 movs r0, r0 |
0x00002648 adds r4, r2, 1 | r4 = r2 + 1;
0x0000264a movs r0, r0 |
0x0000264c movs r4, 0x38 | r4 = 0x38;
0x0000264e movs r0, r0 |
0x00002650 asrs r2, r1, 0x1a | r2 = r1 >> 0x1a;
0x00002652 movs r0, r0 |
0x00002654 movs r3, 0x7c | r3 = 0x7c;
0x00002656 movs r0, r0 |
0x00002658 adds r4, r4, 3 | r4 += 3;
0x0000265a movs r0, r0 |
0x0000265c ldr r2, [pc, 0x378] |
0x0000265e ldr r3, [pc, 0x37c] | r3 = *(0x29de);
0x00002660 ldr r0, [pc, 0x37c] |
0x00002662 add r2, pc | r2 = 0x503e;
0x00002664 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00002668 ldr r3, [r2, r3] |
0x0000266a sub sp, 0xac |
0x0000266c add r0, pc | r0 = 0x5050;
0x0000266e ldr r3, [r3] | r3 = *(0x503e);
0x00002670 str r3, [sp, 0xa4] | var_a4h = r3;
0x00002672 mov.w r3, 0 | r3 = 0;
0x00002676 blx 0x1448 | r0 = opendir ();
0x0000267a mov sb, r0 | sb = r0;
0x0000267c cmp r0, 0 |
| if (r0 == 0) {
0x0000267e beq.w 0x27a8 | goto label_79;
| }
0x00002682 ldr r1, [pc, 0x360] |
0x00002684 movs r2, 0 | r2 = 0;
0x00002686 ldr r0, [pc, 0x360] |
0x00002688 add r1, pc | r1 = 0x5072;
0x0000268a add r0, pc | r0 = 0x5078;
0x0000268c blx 0x16b8 | table_new_internal ();
0x00002690 str r0, [sp, 0x14] | var_14h_4 = r0;
0x00002692 cmp r0, 0 |
| if (r0 == 0) {
0x00002694 beq.w 0x27ea | goto label_80;
| }
0x00002698 mov.w r2, -1 | r2 = -1;
0x0000269c movs r1, 0 | r1 = 0;
0x0000269e blx 0x14fc | table_set_sort_internal ();
0x000026a2 mov r0, sb | r0 = sb;
0x000026a4 blx 0x179c | r0 = readdir_ensure_type ();
0x000026a8 cmp r0, 0 |
| if (r0 == 0) {
0x000026aa beq.w 0x2832 | goto label_81;
| }
0x000026ae ldr r3, [pc, 0x33c] |
0x000026b0 movw fp, 0x801 |
0x000026b4 movt fp, 8 | fp = 0x80801;
0x000026b8 add r3, pc | r3 = 0x50aa;
0x000026ba str r3, [sp, 0x18] | var_18h_4 = r3;
0x000026bc ldr r3, [pc, 0x330] |
0x000026be add r3, pc | r3 = 0x50b2;
0x000026c0 str r3, [sp, 0x1c] | var_1ch_4 = r3;
0x000026c2 b 0x2708 | goto label_82;
| label_2:
0x000026c4 ldr r6, [pc, 0x32c] |
0x000026c6 ldr r3, [pc, 0x330] |
0x000026c8 add r6, pc | r6 = 0x50c0;
0x000026ca add r3, pc | r3 = 0x50c8;
| label_3:
0x000026cc str r3, [sp, 8] | var_8h_5 = r3;
0x000026ce movs r3, 0x27 | r3 = 0x27;
0x000026d0 movs r1, 0x21 | r1 = 0x21;
0x000026d2 str r3, [sp, 4] | var_4h_3 = r3;
0x000026d4 movs r3, 1 | r3 = 1;
0x000026d6 str r1, [sp, 0xc] | var_ch_3 = r1;
0x000026d8 ldr r0, [sp, 0x14] | r0 = var_14h_4;
0x000026da mov r2, r4 | r2 = r4;
0x000026dc mov r1, r3 | r1 = r3;
0x000026de str r6, [sp] | *(sp) = r6;
0x000026e0 blx 0x161c | r0 = table_add_many_internal ();
0x000026e4 cmp r0, 0 |
| if (r0 < 0) {
0x000026e6 blt.w 0x28da | goto label_83;
| }
0x000026ea mov r0, r8 | r0 = r8;
0x000026ec blx 0x1514 | safe_close ();
0x000026f0 mov r0, r5 | r0 = r5;
0x000026f2 blx 0x1544 | free (r0);
0x000026f6 mov r0, r7 | r0 = r7;
0x000026f8 blx 0x1544 | free (r0);
| do {
0x000026fc mov r0, sb | r0 = sb;
0x000026fe blx 0x179c | r0 = readdir_ensure_type ();
0x00002702 cmp r0, 0 |
| if (r0 == 0) {
0x00002704 beq.w 0x2832 | goto label_81;
| }
| label_82:
0x00002708 add.w r4, r0, 0x13 | r4 = r0 + 0x13;
0x0000270c mov r0, r4 | r0 = r4;
0x0000270e blx 0x14c0 | r0 = hidden_or_backup_file ();
0x00002712 mov r6, r0 | r6 = r0;
0x00002714 cmp r0, 0 |
0x00002716 bne 0x26fc |
| } while (r0 != 0);
0x00002718 ldr r1, [sp, 0x18] | r1 = var_18h_4;
0x0000271a mov.w r3, -1 | r3 = -1;
0x0000271e mov r2, r4 | r2 = r4;
0x00002720 blx 0x15d4 | r0 = path_extend_internal ();
0x00002724 mov r7, r0 | r7 = r0;
0x00002726 cmp r0, 0 |
| if (r0 == 0) {
0x00002728 beq.w 0x2870 | goto label_84;
| }
0x0000272c add.w sl, sp, 0x24 | sl += addrlen;
0x00002730 mov r1, r0 | r1 = r0;
0x00002732 mov r0, sl | r0 = sl;
0x00002734 blx 0x1718 | sockaddr_un_set_path ();
0x00002738 subs r5, r0, 0 | r5 -= addrlen;
| if (r5 < addrlen) {
0x0000273a blt.w 0x28a0 | goto label_85;
| }
0x0000273e mov r2, r6 | r2 = r6;
0x00002740 mov r1, fp | r1 = fp;
0x00002742 movs r0, 1 | r0 = 1;
0x00002744 blx 0x1568 | r0 = socket (r0, r1, r2);
0x00002748 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x0000274c blt.w 0x28c2 | goto label_86;
| }
0x00002750 mov r2, r5 | r2 = r5;
0x00002752 mov r1, sl | r1 = sl;
0x00002754 blx 0x1430 | r0 = connect (r0, r1, r2);
0x00002758 cmp r0, 0 |
| if (r0 < 0) {
0x0000275a blt 0x2770 | goto label_87;
| }
0x0000275c blx 0x15e0 | r0 = get_color_mode ();
0x00002760 mov r5, r0 | r5 = r0;
0x00002762 cmp r0, 0 |
| if (r0 == 0) {
0x00002764 beq 0x26c4 | goto label_2;
| }
0x00002766 ldr r3, [pc, 0x294] |
0x00002768 mov r5, r6 | r5 = r6;
0x0000276a ldr r6, [sp, 0x1c] | r6 = var_1ch_4;
0x0000276c add r3, pc | r3 = 0x516e;
0x0000276e b 0x26cc | goto label_3;
| label_87:
0x00002770 blx 0x17c0 | r0 = errno_location ();
0x00002774 ldr r0, [r0] | r0 = *(r0);
0x00002776 blx 0x1754 | errno_to_name ();
0x0000277a ldr r2, [pc, 0x284] |
0x0000277c mov r1, r0 | r1 = r0;
0x0000277e ldr r0, [pc, 0x284] |
0x00002780 mov r3, r6 | r3 = r6;
0x00002782 add r2, pc | r2 = 0x5188;
0x00002784 add r0, pc | r0 = 0x518e;
0x00002786 blx 0x1508 | r0 = strjoin_real ();
0x0000278a mov r6, r0 | r6 = r0;
0x0000278c cmp r0, 0 |
| if (r0 == 0) {
0x0000278e beq.w 0x29aa | goto label_88;
| }
0x00002792 blx 0x15e0 | r0 = get_color_mode ();
| if (r0 == 0) {
0x00002796 cbnz r0, 0x27a0 |
0x00002798 ldr r3, [pc, 0x26c] |
0x0000279a mov r5, r6 | r5 = r6;
0x0000279c add r3, pc | r3 = 0x51a8;
0x0000279e b 0x26cc | goto label_3;
| }
0x000027a0 ldr r3, [pc, 0x268] |
0x000027a2 mov r5, r6 | r5 = r6;
0x000027a4 add r3, pc | r3 = 0x51b4;
0x000027a6 b 0x26cc | goto label_3;
| label_79:
0x000027a8 blx 0x17c0 | r0 = errno_location ();
0x000027ac ldr r4, [r0] | r4 = *(r0);
0x000027ae blx 0x14a8 | log_get_max_level ();
0x000027b2 cmp r4, 2 |
| if (r4 == 2) {
0x000027b4 beq 0x2808 | goto label_89;
| }
0x000027b6 cmp r0, 2 |
| if (r0 > 2) {
0x000027b8 bgt 0x284e | goto label_90;
| }
0x000027ba cmp r4, 0 |
0x000027bc it lt |
| if (r4 < 0) {
0x000027be rsblt r4, r4, 0 | __asm ("rsblt r4, r4, 0");
| }
0x000027c0 uxtb r4, r4 | r4 = (int8_t) r4;
0x000027c2 rsbs r4, r4, 0 | r4 -= ;
| label_5:
0x000027c4 cmp r4, 0 |
0x000027c6 it ge |
0x000027c8 mvnge r4, 0x55 | r4 = ~0x55;
| while (1) {
| label_4:
0x000027cc ldr r2, [pc, 0x240] |
0x000027ce ldr r3, [pc, 0x20c] | r3 = *(0x29de);
0x000027d0 add r2, pc | r2 = 0x51e4;
0x000027d2 ldr r3, [r2, r3] | r3 = *(0x51e4);
0x000027d4 ldr r2, [r3] | r2 = *(0x51e4);
0x000027d6 ldr r3, [sp, 0xa4] | r3 = var_a4h;
0x000027d8 eors r2, r3 | r2 ^= r3;
0x000027da mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000027de bne.w 0x29d2 | goto label_91;
| }
0x000027e2 mov r0, r4 | r0 = r4;
0x000027e4 add sp, 0xac |
0x000027e6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_80:
0x000027ea ldr r1, [pc, 0x228] |
0x000027ec mov.w r2, 0x1ec | r2 = 0x1ec;
0x000027f0 ldr r3, [pc, 0x224] |
0x000027f2 movs r0, 3 | r0 = 3;
0x000027f4 add r1, pc | r1 = 0x520e;
0x000027f6 add r3, pc | r3 = 0x5212;
0x000027f8 adds r1, 7 | r1 += 7;
0x000027fa blx 0x17d0 | r0 = fcn_000017d0 ();
0x000027fe mov r4, r0 | r4 = r0;
0x00002800 mov r0, sb | r0 = sb;
0x00002802 blx 0x1658 | closedir ();
0x00002806 b 0x27cc |
| }
| label_89:
0x00002808 cmp r0, 5 |
0x0000280a it le |
| if (r0 <= 5) {
0x0000280c movle r4, sb | r4 = sb;
| goto label_92;
| }
| if (r0 <= 5) {
| label_92:
0x0000280e ble 0x27cc | goto label_4;
| }
0x00002810 ldr r2, [pc, 0x208] |
0x00002812 movw r3, 0x1e3 | r3 = 0x1e3;
0x00002816 ldr r0, [pc, 0x208] |
0x00002818 mov r4, sb | r4 = sb;
0x0000281a ldr r1, [pc, 0x208] |
0x0000281c add r2, pc | r2 = 0x523c;
0x0000281e add r0, pc | r0 = 0x5244;
0x00002820 adds r2, 7 | r2 += 7;
0x00002822 add r1, pc | r1 = 0x524c;
0x00002824 strd r1, r0, [sp] | __asm ("strd r1, r0, [sp]");
0x00002828 mov r1, sb | r1 = sb;
0x0000282a movs r0, 6 | r0 = 6;
0x0000282c blx 0x16ac | log_internal ();
0x00002830 b 0x27cc | goto label_4;
| label_81:
0x00002832 blx 0x17c0 | r0 = errno_location ();
0x00002836 ldr r4, [r0] | r4 = *(r0);
0x00002838 cmp r4, 0 |
0x0000283a it gt |
| if (r4 > 0) {
0x0000283c rsbgt r4, r4, 0 | __asm ("rsbgt r4, r4, 0");
| }
| if (r4 <= 0) {
0x0000283e ble 0x28f6 | goto label_93;
| }
| do {
| label_7:
0x00002840 mov r0, sb | r0 = sb;
0x00002842 blx 0x1658 | closedir ();
0x00002846 ldr r0, [sp, 0x14] | r0 = var_14h_4;
0x00002848 blx 0x1520 | table_unref ();
0x0000284c b 0x27cc | goto label_4;
| label_90:
0x0000284e ldr r2, [pc, 0x1d8] |
0x00002850 mov r1, r4 | r1 = r4;
0x00002852 ldr r5, [pc, 0x1d8] |
0x00002854 movw r3, 0x1e7 | r3 = 0x1e7;
0x00002858 ldr r0, [pc, 0x1d4] |
0x0000285a add r2, pc | r2 = 0x5288;
0x0000285c add r5, pc | r5 = 0x528e;
0x0000285e adds r2, 7 | r2 += 7;
0x00002860 add r0, pc | r0 = 0x5294;
0x00002862 strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x00002866 movs r0, 3 | r0 = 3;
0x00002868 blx 0x16ac | r0 = log_internal ();
0x0000286c mov r4, r0 | r4 = r0;
0x0000286e b 0x27c4 | goto label_5;
| label_84:
0x00002870 ldr r1, [pc, 0x1c0] |
0x00002872 mov.w r2, 0x1f8 | r2 = 0x1f8;
0x00002876 ldr r3, [pc, 0x1c0] |
0x00002878 movs r0, 3 | r0 = 3;
0x0000287a mov r5, r7 | r5 = r7;
0x0000287c mov.w r8, -1 | r8 = -1;
0x00002880 add r1, pc | r1 = 0x52b8;
0x00002882 add r3, pc | r3 = 0x52c0;
0x00002884 adds r1, 7 | r1 += 7;
0x00002886 blx 0x17d0 | r0 = fcn_000017d0 ();
0x0000288a mov r4, r0 | r4 = r0;
| label_6:
0x0000288c mov r0, r8 | r0 = r8;
0x0000288e blx 0x1514 | safe_close ();
0x00002892 mov r0, r5 | r0 = r5;
0x00002894 blx 0x1544 | free (r0);
0x00002898 mov r0, r7 | r0 = r7;
0x0000289a blx 0x1544 | free (r0);
0x0000289e b 0x2840 |
| } while (1);
| label_85:
0x000028a0 blx 0x14a8 | r0 = log_get_max_level ();
0x000028a4 cmp r0, 2 |
0x000028a6 ittt le |
| if (r0 <= 2) {
0x000028a8 rsble r4, r5, 0 | __asm ("rsble r4, r5, 0");
| }
| if (r0 <= 2) {
0x000028aa uxtble r4, r4 | __asm ("uxtble r4, r4");
| }
| if (r0 <= 2) {
0x000028ac rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 > 2) {
0x000028ae bgt 0x2918 | goto label_94;
| }
| label_8:
0x000028b0 cmp r4, 0 |
0x000028b2 mov.w r8, -1 | r8 = -1;
0x000028b6 mov.w r5, 0 | r5 = 0;
| if (r4 < 0) {
0x000028ba blt 0x288c | goto label_6;
| }
| do {
0x000028bc mvn r4, 0x55 | r4 = ~0x55;
0x000028c0 b 0x288c | goto label_6;
| label_86:
0x000028c2 blx 0x14a8 | r0 = log_get_max_level ();
0x000028c6 cmp r0, 2 |
0x000028c8 itt le |
| if (r0 <= 2) {
0x000028ca uxtble r4, r5 | __asm ("uxtble r4, r5");
| }
| if (r0 <= 2) {
0x000028cc rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 > 2) {
0x000028ce bgt 0x293c | goto label_95;
| }
| label_9:
0x000028d0 cmp r4, 0 |
0x000028d2 mov.w r5, 0 | r5 = 0;
0x000028d6 bge 0x28bc |
| } while (r4 >= 0);
0x000028d8 b 0x288c | goto label_6;
| label_83:
0x000028da mov r4, r0 | r4 = r0;
0x000028dc blx 0x14a8 | r0 = log_get_max_level ();
0x000028e0 cmp r0, 2 |
0x000028e2 ittt le |
| if (r0 <= 2) {
0x000028e4 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 <= 2) {
0x000028e6 uxtble r4, r4 | __asm ("uxtble r4, r4");
| }
| if (r0 <= 2) {
0x000028e8 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
0x000028ea bgt 0x295e |
| while (1) {
0x000028ec cmp r4, 0 |
0x000028ee it ge |
| if (r4 < 0) {
0x000028f0 mvnge r4, 0x55 | r4 = ~0x55;
| }
0x000028f4 b 0x288c | goto label_6;
| label_93:
0x000028f6 ldr r0, [sp, 0x14] | r0 = var_14h_4;
0x000028f8 blx 0x1400 | r0 = table_get_rows ();
0x000028fc mov r4, r0 | r4 = r0;
0x000028fe cmp r0, 0 |
| if (r0 == 0) {
0x00002900 beq 0x2980 | goto label_96;
| }
0x00002902 ldr r3, [pc, 0x138] |
0x00002904 add r3, pc |
0x00002906 ldr r3, [r3] | r3 = *(0x5346);
0x00002908 cmp r3, 3 |
| if (r3 == 3) {
0x0000290a beq 0x29c4 | goto label_97;
| }
0x0000290c movs r1, 0 | r1 = 0;
0x0000290e ldr r0, [sp, 0x14] | r0 = var_14h_4;
0x00002910 mov r4, r1 | r4 = r1;
0x00002912 blx 0x1454 | table_print ();
0x00002916 b 0x2840 | goto label_7;
| label_94:
0x00002918 ldr r3, [pc, 0x124] |
0x0000291a mov r1, r5 | r1 = r5;
0x0000291c ldr r2, [pc, 0x124] |
0x0000291e movs r0, 3 | r0 = 3;
0x00002920 str r7, [sp, 8] | var_8h_5 = r7;
0x00002922 add r3, pc | r3 = 0x5366;
0x00002924 str r3, [sp, 4] | var_4h_3 = r3;
0x00002926 add r2, pc | r2 = 0x536e;
0x00002928 ldr r3, [pc, 0x11c] |
0x0000292a adds r2, 7 | r2 += 7;
0x0000292c add r3, pc | r3 = 0x5378;
0x0000292e str r3, [sp] | *(sp) = r3;
0x00002930 mov.w r3, 0x1fc | r3 = 0x1fc;
0x00002934 blx 0x16ac | r0 = log_internal ();
0x00002938 mov r4, r0 | r4 = r0;
0x0000293a b 0x28b0 | goto label_8;
| label_95:
0x0000293c ldr r3, [pc, 0x10c] |
0x0000293e mov r1, r5 | r1 = r5;
0x00002940 ldr r2, [pc, 0x10c] |
0x00002942 movs r0, 3 | r0 = 3;
0x00002944 add r3, pc | r3 = 0x5394;
0x00002946 str r3, [sp, 4] | var_4h_3 = r3;
0x00002948 add r2, pc | r2 = 0x539c;
0x0000294a ldr r3, [pc, 0x108] |
0x0000294c adds r2, 7 | r2 += 7;
0x0000294e add r3, pc | r3 = 0x53a8;
0x00002950 str r3, [sp] | *(sp) = r3;
0x00002952 movw r3, 0x201 | r3 = 0x201;
0x00002956 blx 0x16ac | r0 = log_internal ();
0x0000295a mov r4, r0 | r4 = r0;
0x0000295c b 0x28d0 | goto label_9;
0x0000295e ldr r3, [pc, 0xf8] |
0x00002960 mov r1, r4 | r1 = r4;
0x00002962 ldr r2, [pc, 0xf8] |
0x00002964 movs r0, 3 | r0 = 3;
0x00002966 add r3, pc | r3 = 0x53c4;
0x00002968 str r3, [sp, 4] | var_4h_3 = r3;
0x0000296a add r2, pc | r2 = 0x53cc;
0x0000296c ldr r3, [pc, 0xf0] |
0x0000296e adds r2, 7 | r2 += 7;
0x00002970 add r3, pc | r3 = 0x53d4;
0x00002972 str r3, [sp] | *(sp) = r3;
0x00002974 movw r3, 0x20e | r3 = 0x20e;
0x00002978 blx 0x16ac | r0 = log_internal ();
0x0000297c mov r4, r0 | r4 = r0;
0x0000297e b 0x28ec |
| }
| label_96:
0x00002980 blx 0x14a8 | r0 = log_get_max_level ();
0x00002984 cmp r0, 5 |
| if (r0 <= 5) {
0x00002986 ble.w 0x2840 | goto label_7;
| }
0x0000298a ldr r3, [pc, 0xd8] |
0x0000298c mov r1, r4 | r1 = r4;
0x0000298e ldr r2, [pc, 0xd8] |
0x00002990 movs r0, 6 | r0 = 6;
0x00002992 add r3, pc | r3 = 0x53fc;
0x00002994 str r3, [sp, 4] | var_4h_3 = r3;
0x00002996 add r2, pc | r2 = 0x5404;
0x00002998 ldr r3, [pc, 0xd0] |
0x0000299a adds r2, 7 | r2 += 7;
0x0000299c add r3, pc | r3 = 0x540c;
0x0000299e str r3, [sp] | *(sp) = r3;
0x000029a0 movw r3, 0x212 | r3 = 0x212;
0x000029a4 blx 0x16ac | log_internal ();
0x000029a8 b 0x2840 | goto label_7;
| label_88:
0x000029aa ldr r1, [pc, 0xc4] |
0x000029ac mov r5, r0 | r5 = r0;
0x000029ae ldr r3, [pc, 0xc4] |
0x000029b0 movw r2, 0x206 | r2 = 0x206;
0x000029b4 movs r0, 3 | r0 = 3;
0x000029b6 add r1, pc | r1 = 0x542c;
0x000029b8 adds r1, 7 | r1 += 7;
0x000029ba add r3, pc | r3 = 0x5434;
0x000029bc blx 0x17d0 | r0 = fcn_000017d0 ();
0x000029c0 mov r4, r0 | r4 = r0;
0x000029c2 b 0x288c | goto label_6;
| label_97:
0x000029c4 ldr r0, [sp, 0x14] | r0 = var_14h_4;
0x000029c6 movs r2, 0x12 | r2 = 0x12;
0x000029c8 movs r1, 0 | r1 = 0;
0x000029ca movs r4, 0 | r4 = 0;
0x000029cc blx 0x1490 | table_print_json ();
0x000029d0 b 0x2840 | goto label_7;
| label_91:
0x000029d2 blx 0x16a0 | stack_chk_fail ();
0x000029d6 nop |
0x000029d8 movs r7, 0xfa | r7 = 0xfa;
0x000029da movs r1, r0 | r1 = r0;
0x000029dc lsls r4, r7, 5 | r4 = r7 << 5;
0x000029de movs r0, r0 |
0x000029e0 adds r0, r3, 3 | r0 = r3 + 3;
0x000029e2 movs r0, r0 |
0x000029e4 adds r4, r1, 4 | r4 = r1 + 4;
0x000029e6 movs r0, r0 |
0x000029e8 adds r6, r2, 4 | r6 = r2 + 4;
0x000029ea movs r0, r0 |
0x000029ec adds r4, r1, 2 | r4 = r1 + 2;
0x000029ee movs r0, r0 |
0x000029f0 adds r2, r5, 1 | r2 = r5 + 1;
0x000029f2 movs r0, r0 |
0x000029f4 adds r0, r4, 1 | r0 = r4 + 1;
0x000029f6 movs r0, r0 |
0x000029f8 subs r2, r4, r6 | r2 = r4 - r6;
0x000029fa movs r0, r0 |
0x000029fc subs r0, r0, r7 | r0 -= r7;
0x000029fe movs r0, r0 |
0x00002a00 adds r6, r1, 2 | r6 = r1 + 2;
0x00002a02 movs r0, r0 |
0x00002a04 adds r0, r2, 2 | r0 = r2 + 2;
0x00002a06 movs r0, r0 |
0x00002a08 subs r0, r2, r3 | r0 = r2 - r3;
0x00002a0a movs r0, r0 |
0x00002a0c subs r4, r2, r6 | r4 = r2 - r6;
0x00002a0e movs r0, r0 |
0x00002a10 movs r6, 0x8c | r6 = 0x8c;
0x00002a12 movs r1, r0 | r1 = r0;
0x00002a14 asrs r4, r7, 0x11 | r4 = r7 >> 0x11;
0x00002a16 movs r0, r0 |
0x00002a18 movs r1, 0x9e | r1 = 0x9e;
0x00002a1a movs r0, r0 |
0x00002a1c asrs r4, r2, 0x11 | r4 = r2 >> 0x11;
0x00002a1e movs r0, r0 |
0x00002a20 subs r6, r7, r4 | r6 = r7 - r4;
0x00002a22 movs r0, r0 |
0x00002a24 movs r1, 0x72 | r1 = 0x72;
0x00002a26 movs r0, r0 |
0x00002a28 asrs r6, r2, 0x10 | r6 = r2 >> 0x10;
0x00002a2a movs r0, r0 |
0x00002a2c subs r0, r2, r4 | r0 = r2 - r4;
0x00002a2e movs r0, r0 |
0x00002a30 movs r1, 0x34 | r1 = 0x34;
0x00002a32 movs r0, r0 |
0x00002a34 asrs r0, r6, 0xf | r0 = r6 >> 0xf;
0x00002a36 movs r0, r0 |
0x00002a38 movs r1, 0x12 | r1 = 0x12;
0x00002a3a movs r0, r0 |
0x00002a3c movs r6, 0xfc | r6 = 0xfc;
0x00002a3e movs r1, r0 | r1 = r0;
0x00002a40 subs r6, r0, r2 | r6 = r0 - r2;
0x00002a42 movs r0, r0 |
0x00002a44 asrs r2, r1, 0xd | r2 = r1 >> 0xd;
0x00002a46 movs r0, r0 |
0x00002a48 movs r0, 0x68 | r0 = 0x68;
0x00002a4a movs r0, r0 |
0x00002a4c subs r0, r3, r2 | r0 = r3 - r2;
0x00002a4e movs r0, r0 |
0x00002a50 asrs r0, r5, 0xc | r0 = r5 >> 0xc;
0x00002a52 movs r0, r0 |
0x00002a54 movs r0, 0x46 | r0 = 0x46;
0x00002a56 movs r0, r0 |
0x00002a58 adds r2, r6, r2 | r2 = r6 + r2;
0x00002a5a movs r0, r0 |
0x00002a5c asrs r6, r0, 0xc | r6 = r0 >> 0xc;
0x00002a5e movs r0, r0 |
0x00002a60 movs r0, 0x24 | r0 = 0x24;
0x00002a62 movs r0, r0 |
0x00002a64 adds r2, r1, r7 | r2 = r1 + r7;
0x00002a66 movs r0, r0 |
0x00002a68 asrs r2, r3, 0xb | r2 = r3 >> 0xb;
0x00002a6a movs r0, r0 |
0x00002a6c subs r0, r7, 7 | r0 = r7 - 7;
0x00002a6e movs r0, r0 |
0x00002a70 asrs r2, r7, 0xa | r2 = r7 >> 0xa;
0x00002a72 movs r0, r0 |
0x00002a74 subs r2, r3, 7 | r2 = r3 - 7;
0x00002a76 movs r0, r0 |
0x00002a78 ldr r3, [pc, 0x1c0] |
0x00002a7a push {r4, r5, r6, r7, lr} |
0x00002a7c mov r6, r1 | r6 = r1;
0x00002a7e ldr r5, [pc, 0x1c0] |
0x00002a80 sub sp, 0x1c |
0x00002a82 add r3, pc | r3 = 0x56c2;
0x00002a84 movs r4, 0 | r4 = 0;
0x00002a86 ldr r0, [r1, 4] | r0 = *((r1 + 4));
0x00002a88 add r2, sp, 0x10 | r2 += var_10h;
0x00002a8a ldr r1, [r3] | r1 = *(0x56c2);
0x00002a8c add r5, pc | r5 = 0x56d2;
0x00002a8e ldr r3, [pc, 0x1b4] | r3 = *(0x2c46);
0x00002a90 ldr r7, [pc, 0x1b4] |
0x00002a92 ldr r3, [r5, r3] |
0x00002a94 add r7, pc | r7 = 0x56e0;
0x00002a96 ldr r3, [r3] | r3 = *(0x56d2);
0x00002a98 str r3, [sp, 0x14] | var_14h = r3;
0x00002a9a mov.w r3, 0 | r3 = 0;
0x00002a9e str r4, [sp, 0x10] | var_10h = r4;
0x00002aa0 blx 0x1730 | r0 = userdb_by_name ();
0x00002aa4 mov r4, r0 | r4 = r0;
0x00002aa6 adds r0, 3 | r0 += 3;
| if (r0 == 3) {
0x00002aa8 beq 0x2b16 | goto label_98;
| }
0x00002aaa cmn.w r4, 0x70 |
| if (r4 == 0x70) {
0x00002aae beq 0x2ba8 | goto label_99;
| }
0x00002ab0 cmn.w r4, 0x16 |
| if (r4 == 0x16) {
0x00002ab4 beq 0x2b56 | goto label_100;
| }
0x00002ab6 cmp r4, 0 |
| if (r4 < 0) {
0x00002ab8 blt.w 0x2bd4 | goto label_101;
| }
0x00002abc ldr r5, [sp, 0x10] | r5 = var_10h;
0x00002abe ldr.w r4, [r5, 0x100] | r4 = *((r5 + 0x100));
0x00002ac2 cmp r4, 0 |
| if (r4 == 0) {
0x00002ac4 beq 0x2b7a | goto label_102;
| }
0x00002ac6 ldr r0, [r4] | r0 = *(r4);
0x00002ac8 cmp r0, 0 |
| if (r0 == 0) {
0x00002aca beq 0x2b7a | goto label_102;
| }
| do {
0x00002acc blx 0x16d0 | puts (r0);
0x00002ad0 ldr r0, [r4, 4]! | r0 = *((r4 += 4));
0x00002ad4 cmp r0, 0 |
0x00002ad6 bne 0x2acc |
| } while (r0 != 0);
0x00002ad8 ldr r5, [sp, 0x10] | r5 = var_10h;
| label_13:
0x00002ada ldrb r4, [r5, 8] | r4 = *((r5 + 8));
0x00002adc cmp r4, 0 |
| if (r4 == 0) {
0x00002ade beq 0x2b4e | goto label_103;
| }
0x00002ae0 ldr r3, [pc, 0x168] | r3 = *(0x2c4c);
0x00002ae2 ldr r3, [r7, r3] | r3 = *((r7 + r3));
0x00002ae4 ldr r0, [r3] | r0 = *(0x2c4c);
0x00002ae6 blx 0x1574 | r0 = fflush (r0);
0x00002aea blx 0x14a8 | r0 = log_get_max_level ();
0x00002aee cmp r0, 3 |
0x00002af0 it le |
| if (r0 > 3) {
0x00002af2 movle r4, 0 | r4 = 0;
| }
| if (r0 > 3) {
0x00002af4 bgt 0x2bea | goto label_104;
| }
| do {
| label_10:
0x00002af6 ldr r5, [sp, 0x10] | r5 = var_10h;
| if (r5 != 0) {
0x00002af8 cbnz r5, 0x2b4e | goto label_103;
| }
| label_11:
0x00002afa ldr r2, [pc, 0x154] |
0x00002afc ldr r3, [pc, 0x144] | r3 = *(0x2c44);
0x00002afe add r2, pc | r2 = 0x5754;
0x00002b00 ldr r3, [r2, r3] | r3 = *(0x5754);
0x00002b02 ldr r2, [r3] | r2 = *(0x5754);
0x00002b04 ldr r3, [sp, 0x14] | r3 = var_14h;
0x00002b06 eors r2, r3 | r2 ^= r3;
0x00002b08 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00002b0c bne.w 0x2c38 | goto label_105;
| }
0x00002b10 mov r0, r4 | r0 = r4;
0x00002b12 add sp, 0x1c |
0x00002b14 pop {r4, r5, r6, r7, pc} |
| label_98:
0x00002b16 blx 0x14a8 | r0 = log_get_max_level ();
0x00002b1a cmp r0, 2 |
0x00002b1c ble 0x2af6 |
| } while (r0 <= 2);
0x00002b1e ldr r2, [pc, 0x134] |
0x00002b20 mov r1, r4 | r1 = r4;
0x00002b22 ldr r3, [pc, 0x134] |
0x00002b24 ldr r0, [r6, 4] | r0 = *((r6 + 4));
0x00002b26 ldr r5, [pc, 0x134] |
0x00002b28 add r2, pc | r2 = 0x5782;
0x00002b2a add r3, pc | r3 = 0x5788;
0x00002b2c adds r2, 7 | r2 += 7;
0x00002b2e strd r3, r0, [sp, 4] | __asm ("strd r3, r0, [var_8h_4]");
0x00002b32 mov.w r3, 0x224 | r3 = 0x224;
0x00002b36 add r5, pc | r5 = 0x5798;
| label_12:
0x00002b38 movs r0, 3 | r0 = 3;
0x00002b3a str r5, [sp] | *(sp) = r5;
0x00002b3c blx 0x16ac | r0 = log_internal ();
0x00002b40 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00002b42 blt 0x2af6 | goto label_10;
| }
| label_14:
0x00002b44 ldr r5, [sp, 0x10] | r5 = var_10h;
0x00002b46 mvn r4, 0x55 | r4 = ~0x55;
0x00002b4a cmp r5, 0 |
| if (r5 == 0) {
0x00002b4c beq 0x2afa | goto label_11;
| }
| label_103:
0x00002b4e mov r0, r5 | r0 = r5;
0x00002b50 blx 0x167c | user_record_unref ();
0x00002b54 b 0x2afa | goto label_11;
| label_100:
0x00002b56 blx 0x14a8 | r0 = log_get_max_level ();
0x00002b5a cmp r0, 2 |
| if (r0 <= 2) {
0x00002b5c ble 0x2af6 | goto label_10;
| }
0x00002b5e ldr r2, [pc, 0x100] |
0x00002b60 mov r1, r4 | r1 = r4;
0x00002b62 ldr r3, [pc, 0x100] |
0x00002b64 ldr r0, [r6, 4] | r0 = *((r6 + 4));
0x00002b66 ldr r5, [pc, 0x100] |
0x00002b68 add r2, pc | r2 = 0x57ce;
0x00002b6a add r3, pc | r3 = 0x57d4;
0x00002b6c adds r2, 7 | r2 += 7;
0x00002b6e strd r3, r0, [sp, 4] | __asm ("strd r3, r0, [var_8h_4]");
0x00002b72 mov.w r3, 0x228 | r3 = 0x228;
0x00002b76 add r5, pc | r5 = 0x57e4;
0x00002b78 b 0x2b38 | goto label_12;
| label_102:
0x00002b7a blx 0x14a8 | r0 = log_get_max_level ();
0x00002b7e cmp r0, 6 |
| if (r0 <= 6) {
0x00002b80 ble 0x2ada | goto label_13;
| }
0x00002b82 ldr r2, [pc, 0xe8] |
0x00002b84 ldr r3, [pc, 0xe8] |
0x00002b86 ldr r0, [pc, 0xec] |
0x00002b88 ldr r1, [r6, 4] | r1 = *((r6 + 4));
0x00002b8a add r2, pc | r2 = 0x57fc;
0x00002b8c add r3, pc | r3 = 0x5800;
0x00002b8e adds r2, 7 | r2 += 7;
0x00002b90 add r0, pc | r0 = 0x580a;
0x00002b92 strd r3, r1, [sp, 4] | __asm ("strd r3, r1, [var_8h_4]");
0x00002b96 movw r3, 0x22d | r3 = 0x22d;
0x00002b9a str r0, [sp] | *(sp) = r0;
0x00002b9c movs r1, 0 | r1 = 0;
0x00002b9e movs r0, 7 | r0 = 7;
0x00002ba0 blx 0x16ac | log_internal ();
0x00002ba4 ldr r5, [sp, 0x10] | r5 = var_10h;
0x00002ba6 b 0x2ada | goto label_13;
| label_99:
0x00002ba8 blx 0x14a8 | r0 = log_get_max_level ();
0x00002bac cmp r0, 2 |
| if (r0 <= 2) {
0x00002bae ble 0x2af6 | goto label_10;
| }
0x00002bb0 ldr r2, [pc, 0xc4] |
0x00002bb2 mov r1, r4 | r1 = r4;
0x00002bb4 ldr r5, [pc, 0xc4] |
0x00002bb6 movw r3, 0x226 | r3 = 0x226;
0x00002bba ldr r0, [pc, 0xc4] |
0x00002bbc add r2, pc | r2 = 0x5838;
0x00002bbe add r5, pc | r5 = 0x583e;
0x00002bc0 adds r2, 7 | r2 += 7;
0x00002bc2 add r0, pc | r0 = 0x5848;
0x00002bc4 strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x00002bc8 movs r0, 3 | r0 = 3;
0x00002bca blx 0x16ac | r0 = log_internal ();
0x00002bce subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 >= r0) {
0x00002bd0 bge 0x2b44 | goto label_14;
| }
0x00002bd2 b 0x2af6 | goto label_10;
| label_101:
0x00002bd4 blx 0x14a8 | r0 = log_get_max_level ();
0x00002bd8 cmp r0, 2 |
0x00002bda ittt le |
| if (r0 <= 2) {
0x00002bdc rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 <= 2) {
0x00002bde uxtble r4, r4 | __asm ("uxtble r4, r4");
| }
| if (r0 <= 2) {
0x00002be0 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 > 2) {
0x00002be2 bgt 0x2c12 | goto label_106;
| }
| label_15:
0x00002be4 cmp r4, 0 |
| if (r4 >= 0) {
0x00002be6 bge 0x2b44 | goto label_14;
| }
0x00002be8 b 0x2af6 | goto label_10;
| label_104:
0x00002bea ldr r4, [sp, 0x10] | r4 = var_10h;
0x00002bec movw r3, 0x237 | r3 = 0x237;
0x00002bf0 ldr r2, [pc, 0x90] |
0x00002bf2 ldr r0, [pc, 0x94] |
0x00002bf4 ldr r1, [pc, 0x94] |
0x00002bf6 ldr r4, [r4, 0xc] | r4 = *((r4 + 0xc));
0x00002bf8 add r2, pc | r2 = 0x5880;
0x00002bfa add r0, pc | r0 = 0x5888;
0x00002bfc adds r2, 7 | r2 += 7;
0x00002bfe add r1, pc | r1 = 0x588e;
0x00002c00 strd r1, r0, [sp] | __asm ("strd r1, r0, [sp]");
0x00002c04 movs r1, 0 | r1 = 0;
0x00002c06 str r4, [sp, 8] | var_8h_4 = r4;
0x00002c08 movs r0, 4 | r0 = 4;
0x00002c0a movs r4, 0 | r4 = 0;
0x00002c0c blx 0x16ac | log_internal ();
0x00002c10 b 0x2af6 | goto label_10;
| label_106:
0x00002c12 ldr r2, [pc, 0x7c] |
0x00002c14 mov r1, r4 | r1 = r4;
0x00002c16 ldr r3, [pc, 0x7c] |
0x00002c18 ldr r5, [pc, 0x7c] |
0x00002c1a ldr r0, [r6, 4] | r0 = *((r6 + 4));
0x00002c1c add r2, pc | r2 = 0x58b2;
0x00002c1e add r3, pc | r3 = 0x58b8;
0x00002c20 adds r2, 7 | r2 += 7;
0x00002c22 add r5, pc | r5 = 0x58be;
0x00002c24 strd r3, r0, [sp, 4] | __asm ("strd r3, r0, [var_8h_4]");
0x00002c28 movw r3, 0x22a | r3 = 0x22a;
0x00002c2c movs r0, 3 | r0 = 3;
0x00002c2e str r5, [sp] | *(sp) = r5;
0x00002c30 blx 0x16ac | r0 = log_internal ();
0x00002c34 mov r4, r0 | r4 = r0;
0x00002c36 b 0x2be4 | goto label_15;
| label_105:
0x00002c38 blx 0x16a0 | stack_chk_fail ();
0x00002c3c movs r5, 0x96 | r5 = 0x96;
0x00002c3e movs r1, r0 | r1 = r0;
0x00002c40 movs r3, 0xd0 | r3 = 0xd0;
0x00002c42 movs r1, r0 | r1 = r0;
0x00002c44 lsls r4, r7, 5 | r4 = r7 << 5;
0x00002c46 movs r0, r0 |
0x00002c48 movs r3, 0xc8 | r3 = 0xc8;
0x00002c4a movs r1, r0 | r1 = r0;
0x00002c4c lsls r4, r1, 6 | r4 = r1 << 6;
0x00002c4e movs r0, r0 |
0x00002c50 movs r3, 0x5e | r3 = 0x5e;
0x00002c52 movs r1, r0 | r1 = r0;
0x00002c54 asrs r0, r1, 5 | r0 = r1 >> 5;
0x00002c56 movs r0, r0 |
0x00002c58 adds r2, r6, r3 | r2 = r6 + r3;
0x00002c5a movs r0, r0 |
0x00002c5c subs r2, r6, 1 | r2 = r6 - 1;
0x00002c5e movs r0, r0 |
0x00002c60 asrs r0, r1, 4 | r0 = r1 >> 4;
0x00002c62 movs r0, r0 |
0x00002c64 adds r6, r1, r4 | r6 = r1 + r4;
0x00002c66 movs r0, r0 |
0x00002c68 subs r2, r6, 0 | r2 = r6 - 0;
0x00002c6a movs r0, r0 |
0x00002c6c asrs r6, r4, 3 | r6 = r4 >> 3;
0x00002c6e movs r0, r0 |
0x00002c70 adds r0, r7, r4 | r0 = r7 + r4;
0x00002c72 movs r0, r0 |
0x00002c74 subs r0, r3, 0 | r0 = r3 - 0;
0x00002c76 movs r0, r0 |
0x00002c78 asrs r4, r6, 2 | r4 = r6 >> 2;
0x00002c7a movs r0, r0 |
0x00002c7c adds r6, r6, r1 | r6 += r1;
0x00002c7e movs r0, r0 |
0x00002c80 adds r6, r4, 7 | r6 = r4 + 7;
0x00002c82 movs r0, r0 |
0x00002c84 asrs r0, r7, 1 | r0 = r7 >> 1;
0x00002c86 movs r0, r0 |
0x00002c88 asrs r6, r6, 0x19 | r6 >>= 0x19;
0x00002c8a movs r0, r0 |
0x00002c8c adds r2, r5, 6 | r2 = r5 + 6;
0x00002c8e movs r0, r0 |
0x00002c90 asrs r4, r2, 1 | r4 = r2 >> 1;
0x00002c92 movs r0, r0 |
0x00002c94 adds r2, r1, r2 | r2 = r1 + r2;
0x00002c96 movs r0, r0 |
0x00002c98 adds r6, r0, 6 | r6 = r0 + 6;
0x00002c9a movs r0, r0 |
0x00002c9c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00002ca0 sub sp, 0x24 |
0x00002ca2 ldr.w r4, [pc, 0x414] | r4 = *(0x000030b8);
0x00002ca6 mov r8, r1 | r8 = r1;
0x00002ca8 ldr.w r3, [pc, 0x410] |
0x00002cac add r4, pc | r4 += pc;
0x00002cae ldr.w r2, [pc, 0x410] | r2 = *(0x000030c0);
0x00002cb2 ldr r3, [r4, r3] | r3 = *((r4 + r3));
0x00002cb4 mov r4, r0 | r4 = r0;
0x00002cb6 add r2, pc | r2 += pc;
0x00002cb8 ldr r3, [r3] | r3 = *(0x30bc);
0x00002cba str r3, [sp, 0x1c] | var_1ch = r3;
0x00002cbc mov.w r3, 0 | r3 = 0;
0x00002cc0 ldr r3, [r2] | r3 = *(r2);
0x00002cc2 cmp r3, 0 |
0x00002cc4 itt lt |
| if (r3 >= 0) {
0x00002cc6 movlt r3, 1 | r3 = 1;
| }
| if (r3 >= 0) {
0x00002cc8 strlt r3, [r2] | *(r2) = r3;
| }
| if (r3 < 0) {
0x00002cca blt.w 0x2f04 | goto label_107;
| }
0x00002cce cmp r3, 1 |
| if (r3 == 1) {
0x00002cd0 beq.w 0x2f04 | goto label_107;
| }
0x00002cd4 cmp r0, 1 |
| if (r0 <= 1) {
0x00002cd6 ble.w 0x2e88 | goto label_108;
| }
0x00002cda ldr r6, [r1, 4] | r6 = *((r1 + 4));
0x00002cdc adds r3, r1, 4 | r3 = r1 + 4;
0x00002cde movs r5, 0 | r5 = 0;
0x00002ce0 str r3, [sp, 0xc] | var_ch_2 = r3;
0x00002ce2 cmp r6, 0 |
| if (r6 == 0) {
0x00002ce4 beq.w 0x2fca | goto label_109;
| }
| label_26:
0x00002ce8 ldr.w sb, [pc, 0x3d8] |
0x00002cec ldr.w fp, [pc, 0x3d8] |
0x00002cf0 ldr r3, [pc, 0x3d8] |
0x00002cf2 add sb, pc | sb = 0x5dba;
0x00002cf4 add fp, pc | fp = 0x5dc0;
0x00002cf6 add r3, pc | r3 = 0x5dc6;
0x00002cf8 str r3, [sp, 8] | var_8h_3 = r3;
| label_16:
0x00002cfa ldr.w r4, [r8] | r4 = *(r8);
0x00002cfe movs r3, 0 | r3 = 0;
0x00002d00 mov r1, sb | r1 = sb;
0x00002d02 str r3, [sp, 0x10] | var_10h_4 = r3;
0x00002d04 mov r0, r4 | r0 = r4;
0x00002d06 blx 0x1784 | r0 = strcmp (r0, r1);
0x00002d0a cmp r0, 0 |
| if (r0 == 0) {
0x00002d0c beq.w 0x2e28 | goto label_110;
| }
0x00002d10 mov r0, r4 | r0 = r4;
0x00002d12 mov r1, fp | r1 = fp;
0x00002d14 blx 0x1784 | strcmp (r0, r1);
0x00002d16 ldc p8, c2, [r6, -0]! | __asm ("ldc p8, c2, [r6, -0]!");
| if (r0 != 0) {
0x00002d1a bne.w 0x30a2 | goto label_111;
| }
0x00002d1e ldr r3, [sp, 8] | r3 = var_8h_3;
0x00002d20 mov r0, r6 | r0 = r6;
0x00002d22 add r2, sp, 0x10 | r2 += var_10h_4;
0x00002d24 ldr r1, [r3] | r1 = *(r3);
0x00002d26 blx 0x14f0 | r0 = membershipdb_by_user ();
0x00002d2a subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00002d2c blt.w 0x302e | goto label_112;
| }
| label_18:
0x00002d30 add r7, sp, 0x18 | r7 += ptr;
0x00002d32 add r6, sp, 0x14 | r6 += var_14h_3;
0x00002d34 movs r4, 0 | r4 = 0;
0x00002d36 b 0x2d60 |
| while (r3 != r0) {
0x00002d38 cmn.w r0, 0x70 |
| if (r0 == 0x70) {
0x00002d3c beq.w 0x2e5a | goto label_113;
| }
0x00002d40 cmp r0, 0 |
| if (r0 < 0) {
0x00002d42 blt 0x2df0 | goto label_114;
| }
0x00002d44 ldrd r0, r1, [sp, 0x14] | __asm ("ldrd r0, r1, [ptr]");
0x00002d48 mov r2, r5 | r2 = r5;
0x00002d4a bl 0x2448 | fcn_00002448 (r0, r1, r2);
0x00002d4c invalid |
0x00002d50 lsrs r0, r0, 8 | r0 >>= 8;
| if (r0 < r0) {
0x00002d52 blt 0x2e0e | goto label_20;
| }
0x00002d54 ldr r0, [sp, 0x18] | r0 = ptr;
0x00002d56 blx 0x1544 | free (r0);
0x00002d5a ldr r0, [sp, 0x14] | r0 = var_14h_3;
0x00002d5c blx 0x1544 | free (r0);
0x00002d60 ldr r0, [sp, 0x10] | r0 = var_10h_4;
0x00002d62 mov r2, r7 | r2 = r7;
0x00002d64 mov r1, r6 | r1 = r6;
0x00002d66 strd r4, r4, [sp, 0x14] | __asm ("strd r4, r4, [ptr]");
0x00002d6a blx 0x1790 | membershipdb_iterator_get ();
0x00002d6c ldc p1, c15, [r2, -0x40] | __asm ("ldc p1, c15, [r2, -0x40]");
0x00002d70 lsrs r3, r0, 0x1c | r3 = r0 >> 0x1c;
0x00002d72 mov sl, r0 | sl = r0;
0x00002d74 bne 0x2d38 |
| }
0x00002d76 ldr r0, [sp, 0x18] | r0 = ptr;
0x00002d78 blx 0x1544 | free (r0);
0x00002d7c ldr r0, [sp, 0x14] | r0 = var_14h_3;
0x00002d7e blx 0x1544 | free (r0);
0x00002d82 ldr r0, [sp, 0x10] | r0 = var_10h_4;
| if (r0 != 0) {
0x00002d84 cbz r0, 0x2d8a |
0x00002d86 blx 0x17dc | fcn_000017dc ();
| }
0x00002d8a ldr r3, [sp, 0xc] | r3 = var_ch_2;
0x00002d8c ldr r6, [r3, 4]! | r6 = *((r3 += 4));
0x00002d90 str r3, [sp, 0xc] | var_ch_2 = r3;
0x00002d92 cmp r6, 0 |
| if (r6 != 0) {
0x00002d94 bne 0x2cfa | goto label_16;
| }
| label_23:
0x00002d96 cmp r5, 0 |
| if (r5 == 0) {
0x00002d98 beq.w 0x2fca | goto label_109;
| }
| label_24:
0x00002d9c movs r1, 0 | r1 = 0;
0x00002d9e mov r0, r5 | r0 = r5;
0x00002da0 blx 0x1454 | r0 = table_print ();
0x00002da4 subs r4, r0, 0 | r4 = r0 - 0;
0x00002da6 it ge |
| if (r4 < r0) {
0x00002da8 movge sl, 0 | sl = 0;
| }
| if (r4 >= r0) {
0x00002dac bge 0x2dcc | goto label_115;
| }
0x00002dae blx 0x14a8 | r0 = log_get_max_level ();
0x00002db2 cmp r0, 2 |
0x00002db4 ittt le |
| if (r0 <= 2) {
0x00002db6 rsble r1, r4, 0 | __asm ("rsble r1, r4, 0");
| }
| if (r0 <= 2) {
0x00002db8 uxtble r1, r1 | __asm ("uxtble r1, r1");
| }
| if (r0 <= 2) {
0x00002dba rsble sl, r1, 0 | __asm ("rsble sl, r1, 0");
| }
| if (r0 > 2) {
0x00002dbe bgt.w 0x305a | goto label_116;
| }
| label_31:
0x00002dc2 cmp.w sl, 0 |
0x00002dc6 it ge |
0x00002dc8 mvnge sl, 0x55 | sl = ~0x55;
| while (r5 != 0) {
| label_115:
0x00002dcc mov r0, r5 | r0 = r5;
0x00002dce blx 0x1520 | table_unref ();
| label_17:
0x00002dd2 ldr r2, [pc, 0x2fc] |
0x00002dd4 ldr r3, [pc, 0x2e4] | r3 = *(0x30bc);
0x00002dd6 add r2, pc | r2 = 0x5eac;
0x00002dd8 ldr r3, [r2, r3] | r3 = *(0x5eac);
0x00002dda ldr r2, [r3] | r2 = *(0x5eac);
0x00002ddc ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x00002dde eors r2, r3 | r2 ^= r3;
0x00002de0 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00002de4 bne.w 0x309e | goto label_117;
| }
0x00002de8 mov r0, sl | r0 = sl;
0x00002dea add sp, 0x24 |
0x00002dec pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_114:
0x00002df0 blx 0x14a8 | r0 = log_get_max_level ();
0x00002df4 cmp r0, 2 |
| if (r0 > 2) {
0x00002df6 bgt.w 0x2f38 | goto label_118;
| }
| label_28:
0x00002dfa rsb.w r1, sl, 0 | r1 = sl - ;
0x00002dfe uxtb r1, r1 | r1 = (int8_t) r1;
0x00002e00 rsb.w sl, r1, 0 | sl = r1 - ;
| label_27:
0x00002e04 cmp.w sl, 0 |
| if (sl >= 0) {
0x00002e08 blt 0x2e0e |
| label_21:
0x00002e0a mvn sl, 0x55 | sl = ~0x55;
| }
| label_20:
0x00002e0e ldr r0, [sp, 0x18] | r0 = ptr;
0x00002e10 blx 0x1544 | free (r0);
0x00002e14 ldr r0, [sp, 0x14] | r0 = var_14h_3;
0x00002e16 blx 0x1544 | free (r0);
0x00002e18 invalid |
| label_19:
0x00002e1a ldr r0, [sp, 0x10] | r0 = var_10h_4;
| if (r0 != 0) {
0x00002e1c cbz r0, 0x2e22 |
0x00002e1e blx 0x17dc | fcn_000017dc ();
| }
0x00002e22 cmp r5, 0 |
0x00002e24 bne 0x2dcc |
| }
0x00002e26 b 0x2dd2 | goto label_17;
| label_110:
0x00002e28 ldr r3, [pc, 0x2a8] |
0x00002e2a mov r0, r6 | r0 = r6;
0x00002e2c add r2, sp, 0x10 | r2 += var_10h_4;
0x00002e2e add r3, pc | r3 = 0x5f06;
0x00002e30 ldr r1, [r3] | r1 = *(0x5f06);
0x00002e32 blx 0x1610 | r0 = membershipdb_by_group ();
0x00002e36 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 >= r0) {
0x00002e38 bge.w 0x2d30 | goto label_18;
| }
0x00002e3c blx 0x14a8 | r0 = log_get_max_level ();
0x00002e40 cmp r0, 2 |
| if (r0 > 2) {
0x00002e42 bgt.w 0x307c | goto label_119;
| }
| label_29:
0x00002e46 rsbs r1, r4, 0 | r1 = r4 - ;
0x00002e48 uxtb r1, r1 | r1 = (int8_t) r1;
0x00002e4a rsb.w sl, r1, 0 | sl = r1 - ;
| label_30:
0x00002e4e cmp.w sl, 0 |
0x00002e52 it ge |
| if (sl < 0) {
0x00002e54 mvnge sl, 0x55 | sl = ~0x55;
| }
0x00002e58 b 0x2e1a | goto label_19;
| label_113:
0x00002e5a blx 0x14a8 | r0 = log_get_max_level ();
0x00002e5e cmp r0, 2 |
| if (r0 <= 2) {
0x00002e60 ble 0x2e0e | goto label_20;
| }
0x00002e62 ldr r2, [pc, 0x274] |
0x00002e64 mov r1, sl | r1 = sl;
0x00002e66 ldr r0, [pc, 0x274] |
0x00002e68 ldr r3, [pc, 0x274] |
0x00002e6a add r2, pc | r2 = 0x5f48;
0x00002e6c add r0, pc | r0 = 0x5f4e;
0x00002e6e adds r2, 7 | r2 += 7;
0x00002e70 add r3, pc | r3 = 0x5f54;
0x00002e72 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x00002e74 adds r0, 0 | r0 += 0;
0x00002e76 mov.w r3, 0x1b0 | r3 = 0x1b0;
0x00002e7a movs r0, 3 | r0 = 3;
0x00002e7c blx 0x16ac | r0 = log_internal ();
0x00002e80 subs.w sl, r0, 0 | sl = r0 - 0;
| if (sl >= r0) {
0x00002e84 bge 0x2e0a | goto label_21;
| }
0x00002e86 b 0x2e0e | goto label_20;
| label_108:
0x00002e88 movs r5, 0 | r5 = 0;
| label_25:
0x00002e8a ldr r3, [pc, 0x258] |
0x00002e8c movs r4, 0 | r4 = 0;
0x00002e8e add r1, sp, 0x10 | r1 += var_10h_4;
0x00002e90 str r4, [sp, 0x10] | var_10h_4 = r4;
0x00002e92 add r3, pc | r3 = 0x5f7c;
0x00002e94 ldr r0, [r3] | r0 = *(0x5f7c);
0x00002e96 blx 0x13f4 | r0 = membershipdb_all ();
0x00002e9a subs r6, r0, 0 | r6 = r0 - 0;
| if (r6 < r0) {
0x00002e9c blt 0x2f5a | goto label_120;
| }
0x00002e9e add r7, sp, 0x18 | r7 += ptr;
0x00002ea0 add r6, sp, 0x14 | r6 += var_14h_3;
0x00002ea2 b 0x2ece | goto label_121;
| label_22:
0x00002ea4 cmn.w r0, 0x70 |
| if (r0 == 0x70) {
0x00002ea8 beq.w 0x2fd0 | goto label_122;
| }
0x00002eac cmp r0, 0 |
| if (r0 < 0) {
0x00002eae blt.w 0x3002 | goto label_123;
| }
0x00002eb2 ldrd r0, r1, [sp, 0x14] | __asm ("ldrd r0, r1, [ptr]");
0x00002eb6 mov r2, r5 | r2 = r5;
0x00002eb8 bl 0x2448 | r0 = fcn_00002448 (r0, r1, r2);
0x00002ebc subs.w sl, r0, 0 | sl = r0 - 0;
| if (sl < r0) {
0x00002ec0 blt 0x2e0e | goto label_20;
| }
0x00002ec2 ldr r0, [sp, 0x18] | r0 = ptr;
0x00002ec4 blx 0x1544 | free (r0);
0x00002ec8 ldr r0, [sp, 0x14] | r0 = var_14h_3;
0x00002eca blx 0x1544 | free (r0);
| label_121:
0x00002ece ldr r0, [sp, 0x10] | r0 = var_10h_4;
0x00002ed0 mov r2, r7 | r2 = r7;
0x00002ed2 mov r1, r6 | r1 = r6;
0x00002ed4 strd r4, r4, [sp, 0x14] | __asm ("strd r4, r4, [ptr]");
0x00002ed8 blx 0x1790 | r0 = membershipdb_iterator_get ();
0x00002edc cmn.w r0, 3 |
0x00002ee0 mov sl, r0 | sl = r0;
| if (r0 != 3) {
0x00002ee2 bne 0x2ea4 | goto label_22;
| }
0x00002ee4 ldr r0, [sp, 0x18] | r0 = ptr;
0x00002ee6 blx 0x1544 | free (r0);
0x00002eea ldr r0, [sp, 0x14] | r0 = var_14h_3;
0x00002eec blx 0x1544 | free (r0);
0x00002ef0 ldr r0, [sp, 0x10] | r0 = var_10h_4;
0x00002ef2 cmp r0, 0 |
| if (r0 == 0) {
0x00002ef4 beq.w 0x2d96 | goto label_23;
| }
0x00002ef8 blx 0x17dc | fcn_000017dc ();
0x00002efc cmp r5, 0 |
| if (r5 != 0) {
0x00002efe bne.w 0x2d9c | goto label_24;
| }
0x00002f02 b 0x2fca | goto label_109;
| label_107:
0x00002f04 ldr r1, [pc, 0x1e0] |
0x00002f06 movs r2, 0 | r2 = 0;
0x00002f08 ldr r0, [pc, 0x1e0] |
0x00002f0a add r1, pc | r1 = 0x5ff6;
0x00002f0c add r0, pc | r0 = 0x5ffc;
0x00002f0e blx 0x16b8 | r0 = table_new_internal ();
0x00002f12 mov r5, r0 | r5 = r0;
| if (r0 == 0) {
0x00002f14 cbz r0, 0x2f78 | goto label_124;
| }
0x00002f16 mov.w r3, -1 | r3 = -1;
0x00002f1a movs r2, 1 | r2 = 1;
0x00002f1c movs r1, 0 | r1 = 0;
0x00002f1e blx 0x14fc | table_set_sort_internal ();
0x00002f22 cmp r4, 1 |
| if (r4 <= 1) {
0x00002f24 ble 0x2e8a | goto label_25;
| }
0x00002f26 ldr.w r6, [r8, 4] | r6 = *((r8 + 4));
0x00002f2a add.w r3, r8, 4 | r3 = r8 + 4;
0x00002f2c lsls r4, r0, 0xc | r4 = r0 << 0xc;
0x00002f2e str r3, [sp, 0xc] | var_ch_2 = r3;
0x00002f30 cmp r6, 0 |
| if (r6 != 0) {
0x00002f32 bne.w 0x2ce8 | goto label_26;
| }
0x00002f36 b 0x2d9c | goto label_24;
| label_118:
0x00002f38 ldr r2, [pc, 0x1b4] |
0x00002f3a mov r1, sl | r1 = sl;
0x00002f3c ldr r0, [pc, 0x1b4] |
0x00002f3e ldr r3, [pc, 0x1b8] |
0x00002f40 add r2, pc | r2 = 0x6034;
0x00002f42 add r0, pc | r0 = 0x603a;
0x00002f44 adds r2, 7 | r2 += 7;
0x00002f46 add r3, pc | r3 = 0x6044;
0x00002f48 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x00002f4c mov.w r3, 0x1b2 | r3 = 0x1b2;
0x00002f50 movs r0, 3 | r0 = 3;
0x00002f52 blx 0x16ac | r0 = log_internal ();
0x00002f56 mov sl, r0 | sl = r0;
0x00002f58 b 0x2e04 | goto label_27;
| label_120:
0x00002f5a blx 0x14a8 | r0 = log_get_max_level ();
0x00002f5e cmp r0, 2 |
0x00002f60 ittt le |
| if (r0 <= 2) {
0x00002f62 rsble r1, r6, 0 | __asm ("rsble r1, r6, 0");
| }
| if (r0 <= 2) {
0x00002f64 uxtble r1, r1 | __asm ("uxtble r1, r1");
| }
| if (r0 <= 2) {
0x00002f66 rsble sl, r1, 0 | __asm ("rsble sl, r1, 0");
| }
0x00002f6a bgt 0x2fa8 |
| while (1) {
0x00002f6c cmp.w sl, 0 |
0x00002f70 it ge |
| if (sl < 0) {
0x00002f72 mvnge sl, 0x55 | sl = ~0x55;
| }
0x00002f76 b 0x2e1a | goto label_19;
| label_124:
0x00002f78 ldr r2, [pc, 0x180] |
0x00002f7a ldr r3, [pc, 0x140] | r3 = *(0x30be);
0x00002f7c add r2, pc | r2 = 0x607c;
0x00002f7e ldr r3, [r2, r3] | r3 = *(0x607c);
0x00002f80 ldr r2, [r3] | r2 = *(0x607c);
0x00002f82 ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x00002f84 eors r2, r3 | r2 ^= r3;
0x00002f86 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00002f8a bne.w 0x309e | goto label_117;
| }
0x00002f8c strh r0, [r1, 4] | *((r1 + 4)) = r0;
0x00002f8e ldr r1, [pc, 0x170] |
0x00002f90 movw r2, 0x193 | r2 = 0x193;
0x00002f94 ldr r3, [pc, 0x16c] |
0x00002f96 movs r0, 3 | r0 = 3;
0x00002f98 add r1, pc | r1 = 0x609e;
0x00002f9a add r3, pc | r3 = 0x60a2;
0x00002f9c adds r1, 7 | r1 += 7;
0x00002f9e add sp, 0x24 |
0x00002fa0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00002fa4 b.w 0x17cc | void (*0x17cc)() ();
0x00002fa8 ldr r2, [pc, 0x15c] |
0x00002faa mov r1, r6 | r1 = r6;
0x00002fac ldr r0, [pc, 0x15c] |
0x00002fae ldr r3, [pc, 0x160] |
0x00002fb0 add r2, pc | r2 = 0x60bc;
0x00002fb2 add r0, pc | r0 = 0x60c2;
0x00002fb4 adds r2, 7 | r2 += 7;
0x00002fb6 add r3, pc | r3 = 0x60cc;
0x00002fb8 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x00002fbc mov.w r3, 0x1be | r3 = 0x1be;
0x00002fc0 movs r0, 3 | r0 = 3;
0x00002fc2 blx 0x16ac | r0 = log_internal ();
0x00002fc6 mov sl, r0 | sl = r0;
0x00002fc8 b 0x2f6c |
| }
| label_109:
0x00002fca mov.w sl, 0 | sl = 0;
0x00002fce b 0x2dd2 | goto label_17;
| label_122:
0x00002fd0 blx 0x14a8 | r0 = log_get_max_level ();
0x00002fd4 cmp r0, 2 |
| if (r0 <= 2) {
0x00002fd6 ble.w 0x2e0e | goto label_20;
| }
0x00002fda ldr r2, [pc, 0x138] |
0x00002fdc mov r1, sl | r1 = sl;
0x00002fde ldr r0, [pc, 0x138] |
0x00002fe0 ldr r3, [pc, 0x138] |
0x00002fe2 add r2, pc | r2 = 0x60fc;
0x00002fe4 add r0, pc | r0 = 0x6102;
0x00002fe6 adds r2, 7 | r2 += 7;
0x00002fe8 add r3, pc | r3 = 0x6108;
0x00002fea strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x00002fee movw r3, 0x1c7 | r3 = 0x1c7;
0x00002ff2 movs r0, 3 | r0 = 3;
0x00002ff4 blx 0x16ac | r0 = log_internal ();
0x00002ff8 subs.w sl, r0, 0 | sl = r0 - 0;
| if (sl >= r0) {
0x00002ffc bge.w 0x2e0a | goto label_21;
| }
0x00003000 b 0x2e0e | goto label_20;
| label_123:
0x00003002 blx 0x14a8 | r0 = log_get_max_level ();
0x00003006 cmp r0, 2 |
| if (r0 <= 2) {
0x00003008 ble.w 0x2dfa | goto label_28;
| }
0x0000300c ldr r2, [pc, 0x110] |
0x0000300e mov r1, sl | r1 = sl;
0x00003010 ldr r0, [pc, 0x110] |
0x00003012 ldr r3, [pc, 0x114] |
0x00003014 add r2, pc | r2 = 0x6138;
0x00003016 add r0, pc | r0 = 0x613e;
0x00003018 adds r2, 7 | r2 += 7;
0x0000301a add r3, pc | r3 = 0x6148;
0x0000301c strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x00003020 movw r3, 0x1c9 | r3 = 0x1c9;
0x00003024 movs r0, 3 | r0 = 3;
0x00003026 blx 0x16ac | r0 = log_internal ();
0x0000302a mov sl, r0 | sl = r0;
0x0000302c b 0x2e04 | goto label_27;
| label_112:
0x0000302e blx 0x14a8 | r0 = log_get_max_level ();
0x00003032 cmp r0, 2 |
| if (r0 <= 2) {
0x00003034 ble.w 0x2e46 | goto label_29;
| }
0x00003038 ldr r2, [pc, 0xf0] |
0x0000303a mov r1, r4 | r1 = r4;
0x0000303c ldr r0, [pc, 0xf0] |
0x0000303e ldr r3, [pc, 0xf4] |
0x00003040 add r2, pc | r2 = 0x6170;
0x00003042 add r0, pc | r0 = 0x6176;
0x00003044 adds r2, 7 | r2 += 7;
0x00003046 add r3, pc | r3 = 0x6180;
0x00003048 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x0000304c movw r3, 0x1a5 | r3 = 0x1a5;
0x00003050 movs r0, 3 | r0 = 3;
0x00003052 blx 0x16ac | r0 = log_internal ();
0x00003056 mov sl, r0 | sl = r0;
0x00003058 b 0x2e4e | goto label_30;
| label_116:
0x0000305a ldr r2, [pc, 0xdc] |
0x0000305c mov r1, r4 | r1 = r4;
0x0000305e ldr r0, [pc, 0xdc] |
0x00003060 ldr r3, [pc, 0xdc] |
0x00003062 add r2, pc | r2 = 0x61a0;
0x00003064 add r0, pc | r0 = 0x61a6;
0x00003066 adds r2, 7 | r2 += 7;
0x00003068 add r3, pc | r3 = 0x61ac;
0x0000306a strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x0000306e mov.w r3, 0x1d4 | r3 = 0x1d4;
0x00003072 movs r0, 3 | r0 = 3;
0x00003074 blx 0x16ac | r0 = log_internal ();
0x00003078 mov sl, r0 | sl = r0;
0x0000307a b 0x2dc2 | goto label_31;
| label_119:
0x0000307c ldr r2, [pc, 0xc4] |
0x0000307e mov r1, r4 | r1 = r4;
0x00003080 ldr r0, [pc, 0xc4] |
0x00003082 ldr r3, [pc, 0xc8] |
0x00003084 add r2, pc | r2 = 0x61cc;
0x00003086 add r0, pc | r0 = 0x61d2;
0x00003088 adds r2, 7 | r2 += 7;
0x0000308a add r3, pc | r3 = 0x61dc;
0x0000308c strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x00003090 movw r3, 0x1a1 | r3 = 0x1a1;
0x00003094 movs r0, 3 | r0 = 3;
0x00003096 blx 0x16ac | r0 = log_internal ();
0x0000309a mov sl, r0 | sl = r0;
0x0000309c b 0x2e4e | goto label_30;
| label_117:
0x0000309e blx 0x16a0 | stack_chk_fail ();
| label_111:
0x000030a2 ldr r1, [pc, 0xac] |
0x000030a4 movw r2, 0x1a7 |
0x000030a8 ldr r3, [pc, 0xa8] |
0x000030aa ldr r0, [pc, 0xac] |
0x000030ac add r1, pc |
0x000030ae add r3, pc | r3 = 0x6206;
0x000030b0 adds r1, 7 | r1 += 7;
0x000030b2 add r0, pc | r0 = 0x6210;
0x000030b4 blx 0x1760 | log_assert_failed_unreachable ();
0x000030b8 movs r1, 0xb0 | r1 = 0xb0;
0x000030ba movs r1, r0 | r1 = r0;
0x000030bc lsls r4, r7, 5 | r4 = r7 << 5;
0x000030be movs r0, r0 |
0x000030c0 movs r3, 0x4a | r3 = 0x4a;
0x000030c2 movs r1, r0 | r1 = r0;
0x000030c4 asrs r6, r7, 0x1f | r6 = r7 >> 0x1f;
0x000030c6 movs r0, r0 |
0x000030c8 adds r4, r6, r0 | r4 = r6 + r0;
0x000030ca movs r0, r0 |
0x000030cc movs r3, 0x22 | r3 = 0x22;
0x000030ce movs r1, r0 | r1 = r0;
0x000030d0 movs r0, 0x86 | r0 = 0x86;
0x000030d2 movs r1, r0 | r1 = r0;
0x000030d4 movs r1, 0xea | r1 = 0xea;
0x000030d6 movs r1, r0 | r1 = r0;
0x000030d8 lsrs r6, r0, 0x18 | r6 = r0 >> 0x18;
0x000030da movs r0, r0 |
0x000030dc asrs r4, r0, 0x1c | r4 = r0 >> 0x1c;
0x000030de movs r0, r0 |
0x000030e0 subs r0, r4, r6 | r0 = r4 - r6;
0x000030e2 movs r0, r0 |
0x000030e4 movs r1, 0x86 | r1 = 0x86;
0x000030e6 movs r1, r0 | r1 = r0;
0x000030e8 asrs r6, r4, 0xf | r6 = r4 >> 0xf;
0x000030ea movs r0, r0 |
0x000030ec asrs r4, r3, 0xf | r4 = r3 >> 0xf;
0x000030ee movs r0, r0 |
0x000030f0 lsrs r0, r6, 0x14 | r0 = r6 >> 0x14;
0x000030f2 movs r0, r0 |
0x000030f4 asrs r6, r6, 0x19 | r6 >>= 0x19;
0x000030f6 movs r0, r0 |
0x000030f8 subs r2, r1, r3 | r2 = r1 - r3;
0x000030fa movs r0, r0 |
0x000030fc subs r0, r4, 3 | r0 = r4 - 3;
0x000030fe movs r1, r0 | r1 = r0;
0x00003100 lsrs r0, r3, 0x13 | r0 = r3 >> 0x13;
0x00003102 movs r0, r0 |
0x00003104 subs r6, r6, r1 | r6 -= r1;
0x00003106 movs r0, r0 |
0x00003108 lsrs r0, r0, 0x13 | r0 >>= 0x13;
0x0000310a movs r0, r0 |
0x0000310c asrs r2, r5, 0x18 | r2 = r5 >> 0x18;
0x0000310e movs r0, r0 |
0x00003110 subs r2, r3, r1 | r2 = r3 - r1;
0x00003112 movs r0, r0 |
0x00003114 lsrs r6, r1, 0x12 | r6 = r1 >> 0x12;
0x00003116 movs r0, r0 |
0x00003118 asrs r4, r1, 0x16 | r4 = r1 >> 0x16;
0x0000311a movs r0, r0 |
0x0000311c subs r0, r5, r0 | r0 = r5 - r0;
0x0000311e movs r0, r0 |
0x00003120 lsrs r4, r3, 0x11 | r4 = r3 >> 0x11;
0x00003122 movs r0, r0 |
0x00003124 asrs r2, r4, 0x16 | r2 = r4 >> 0x16;
0x00003126 movs r0, r0 |
0x00003128 adds r6, r6, r7 | r6 += r7;
0x0000312a movs r0, r0 |
0x0000312c lsrs r0, r6, 0x10 | r0 = r6 >> 0x10;
0x0000312e movs r0, r0 |
0x00003130 asrs r6, r6, 0x13 | r6 >>= 0x13;
0x00003132 movs r0, r0 |
0x00003134 adds r2, r1, r7 | r2 = r1 + r7;
0x00003136 movs r0, r0 |
0x00003138 lsrs r6, r1, 0x10 | r6 = r1 >> 0x10;
0x0000313a movs r0, r0 |
0x0000313c asrs r4, r3, 0x16 | r4 = r3 >> 0x16;
0x0000313e movs r0, r0 |
0x00003140 adds r0, r5, r6 | r0 = r5 + r6;
0x00003142 movs r0, r0 |
0x00003144 lsrs r4, r5, 0xf | r4 = r5 >> 0xf;
0x00003146 movs r0, r0 |
0x00003148 asrs r2, r7, 0x11 | r2 = r7 >> 0x11;
0x0000314a movs r0, r0 |
0x0000314c adds r6, r0, r6 | r6 = r0 + r6;
0x0000314e movs r0, r0 |
0x00003150 lsrs r4, r0, 0xf | r4 = r0 >> 0xf;
0x00003152 movs r0, r0 |
0x00003154 adds r6, r0, r3 | r6 = r0 + r3;
0x00003156 movs r0, r0 |
0x00003158 asrs r6, r5, 0x12 | r6 = r5 >> 0x12;
0x0000315a movs r0, r0 |
0x0000315c ldr.w r2, [pc, 0x47c] | r2 = *(0x000035dc);
0x00003160 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00003164 mov r5, r1 | r5 = r1;
0x00003166 ldr.w r7, [pc, 0x478] | r7 = *(0x000035e0);
0x0000316a sub sp, 0x34 |
0x0000316c add r2, pc | r2 = 0x3317;
0x0000316e mov r4, r0 | r4 = r0;
0x00003170 ldr.w r1, [pc, 0x470] | r1 = *(0x000035e4);
0x00003174 ldr.w r3, [pc, 0x470] | r3 = *(0x35e8);
0x00003178 add r7, pc | r7 += pc;
0x0000317a ldr r6, [r2] | r6 = *(0x3317);
0x0000317c add r1, pc | r1 = 0x9382;
0x0000317e str r7, [sp, 0x14] | var_14h_2 = r7;
0x00003180 ldr r3, [r1, r3] |
0x00003182 cmp r6, 0 |
0x00003184 ldr r3, [r3] | r3 = *(0x9382);
0x00003186 str r3, [sp, 0x2c] | var_2ch = r3;
0x00003188 mov.w r3, 0 | r3 = 0;
| if (r6 < 0) {
0x0000318c blt.w 0x33b0 | goto label_125;
| }
0x00003190 cmp r6, 1 |
| if (r6 == 1) {
0x00003192 beq.w 0x3514 | goto label_126;
| }
0x00003196 cmp r0, 1 |
| if (r0 <= 1) {
0x00003198 ble.w 0x32ec | goto label_127;
| }
| label_40:
0x0000319c ldr r0, [r5, 4] | r0 = *((r5 + 4));
0x0000319e adds r5, 4 | r5 += 4;
0x000031a0 mov r4, r0 | r4 = r0;
0x000031a2 cmp r0, 0 |
| if (r0 == 0) {
0x000031a4 beq.w 0x32ae | goto label_39;
| }
0x000031a8 movs r7, 0 | r7 = 0;
| label_47:
0x000031aa ldr.w r3, [pc, 0x440] |
0x000031ae add r6, sp, 0x28 | r6 += var_28h;
0x000031b0 ldr.w sl, [pc, 0x43c] | sl = *(0x000035f0);
0x000031b4 movs r4, 0 | r4 = 0;
0x000031b6 mov fp, r6 |
0x000031b8 add.w sb, sp, 0x24 | sb += var_24h_3;
0x000031bc add r3, pc | r3 = 0x67ae;
0x000031be mov r6, r4 | r6 = r4;
0x000031c0 adds r3, 7 | r3 += 7;
0x000031c2 add sl, pc | sl += pc;
0x000031c4 str r3, [sp, 0x18] | var_18h_2 = r3;
0x000031c6 ldr.w r3, [pc, 0x42c] |
0x000031ca add r3, pc |
0x000031cc adds r3, 7 | r3 += 7;
0x000031ce str r3, [sp, 0x1c] | var_1ch_3 = r3;
0x000031d0 ldr.w r3, [pc, 0x424] | r3 = *(0x000035f8);
0x000031d4 add r3, pc | r3 = 0x999c;
0x000031d6 str r3, [sp, 0x10] | var_10h_3 = r3;
0x000031d8 b 0x321e |
| while (r0 >= 0) {
0x000031da ldr.w r1, [sl] | r1 = *(sl);
0x000031de mov r2, sb | r2 = sb;
0x000031e0 ldr r0, [sp, 0x28] | r0 = var_28h;
0x000031e2 blx 0x17f4 | r0 = fcn_000017f4 ();
0x000031e6 mov r8, r0 | r8 = r0;
0x000031e8 cmp.w r8, 0 |
| if (r8 < 0) {
0x000031ec blt 0x3240 | goto label_128;
| }
| if (r6 != 0) {
| label_32:
0x000031ee cbz r6, 0x31fe |
0x000031f0 ldr.w r3, [pc, 0x408] | r3 = *(0x000035fc);
0x000031f4 add r3, pc | r3 += pc;
0x000031f6 ldr r3, [r3] | r3 = *(r3);
0x000031f8 cmp r3, 2 |
| if (r3 == 2) {
0x000031fa beq.w 0x3362 | goto label_129;
| }
| }
0x000031fe ldr r0, [sp, 0x24] | r0 = var_24h_3;
0x00003200 mov r1, r7 | r1 = r7;
0x00003202 bl 0x201c | r0 = fcn_0000201c (r0, r1);
0x00003206 cmp r0, 0 |
| if (r0 < 0) {
0x00003208 blt.w 0x337e | goto label_130;
| }
| label_37:
0x0000320c movs r6, 1 | r6 = 1;
| label_33:
0x0000320e ldr r0, [sp, 0x24] | r0 = var_24h_3;
| if (r0 != 0) {
0x00003210 cbz r0, 0x3216 |
0x00003212 blx 0x16f4 | group_record_unref ();
| }
0x00003216 ldr r0, [r5, 4]! | r0 = *((r5 += 4));
0x0000321a cmp r0, 0 |
| if (r0 == 0) {
0x0000321c beq 0x3298 | goto label_131;
| }
0x0000321e movs r3, 0 | r3 = 0;
0x00003220 mov r1, fp | r1 = fp;
0x00003222 str r3, [sp, 0x24] | var_24h_3 = r3;
0x00003224 blx 0x16c4 | r0 = parse_uid ();
0x00003228 cmp r0, 0 |
0x0000322a bge 0x31da |
| }
0x0000322c ldr r3, [sp, 0x10] | r3 = var_10h_3;
0x0000322e mov r2, sb | r2 = sb;
0x00003230 ldr r0, [r5] | r0 = *(r5);
0x00003232 ldr r1, [r3] | r1 = *(r3);
0x00003234 blx 0x1604 | r0 = groupdb_by_name ();
0x00003238 mov r8, r0 | r8 = r0;
0x0000323a cmp.w r8, 0 |
| if (r8 >= 0) {
0x0000323e bge 0x31ee | goto label_32;
| }
| label_128:
0x00003240 blx 0x14a8 | log_get_max_level ();
0x00003244 cmn.w r8, 3 |
| if (r8 == 3) {
0x00003248 beq 0x325e | goto label_132;
| }
0x0000324a cmn.w r8, 0x70 |
| if (r8 == 0x70) {
0x0000324e beq 0x32cc | goto label_133;
| }
0x00003250 cmp r0, 2 |
| if (r0 > 2) {
0x00003252 bgt.w 0x3390 | goto label_134;
| }
| do {
| label_34:
0x00003256 cmp r4, 0 |
0x00003258 it eq |
| if (r4 != 0) {
0x0000325a moveq r4, r8 | r4 = r8;
| }
0x0000325c b 0x320e | goto label_33;
| label_132:
0x0000325e cmp r0, 2 |
0x00003260 ble 0x3256 |
| } while (r0 <= 2);
0x00003262 ldr r3, [r5] | r3 = *(r5);
0x00003264 mov r1, r8 | r1 = r8;
0x00003266 ldr r2, [pc, 0x398] |
0x00003268 movs r0, 3 | r0 = 3;
0x0000326a str r3, [sp, 8] | var_8h_2 = r3;
0x0000326c ldr r3, [pc, 0x394] |
0x0000326e add r2, pc | r2 = 0x6874;
0x00003270 adds r2, 7 | r2 += 7;
0x00003272 add r3, pc | r3 = 0x687a;
0x00003274 str r3, [sp, 4] | var_4h_2 = r3;
0x00003276 ldr r3, [pc, 0x390] |
0x00003278 add r3, pc | r3 = 0x6886;
0x0000327a str r3, [sp] | *(sp) = r3;
0x0000327c mov.w r3, 0x11a | r3 = 0x11a;
0x00003280 blx 0x16ac | log_internal ();
0x00003284 b 0x3256 | goto label_34;
| label_35:
0x00003286 ldr r0, [sp, 0x28] | r0 = var_28h;
| if (r0 != 0) {
0x00003288 cbz r0, 0x328e |
0x0000328a blx 0x16f4 | group_record_unref ();
| }
0x0000328e ldr r0, [sp, 0x24] | r0 = var_24h_3;
| if (r0 != 0) {
0x00003290 cbz r0, 0x3296 |
0x00003292 blx 0x17dc | fcn_000017dc ();
| }
0x00003296 movs r4, 0 | r4 = 0;
| if (r7 != 0) {
| label_131:
0x00003298 cbz r7, 0x32ae |
| label_48:
0x0000329a movs r1, 0 | r1 = 0;
0x0000329c mov r0, r7 | r0 = r7;
0x0000329e blx 0x1454 | r0 = table_print ();
0x000032a2 subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 < r0) {
0x000032a4 blt.w 0x343e | goto label_135;
| }
| label_38:
0x000032a8 mov r0, r7 | r0 = r7;
0x000032aa blx 0x1520 | table_unref ();
| }
| label_39:
0x000032ae ldr r2, [pc, 0x35c] |
0x000032b0 ldr r3, [pc, 0x334] | r3 = *(0x35e8);
0x000032b2 add r2, pc | r2 = 0x68c4;
0x000032b4 ldr r3, [r2, r3] | r3 = *(0x68c4);
0x000032b6 ldr r2, [r3] | r2 = *(0x68c4);
0x000032b8 ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x000032ba eors r2, r3 | r2 ^= r3;
0x000032bc mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000032c0 bne.w 0x35d8 | goto label_136;
| }
0x000032c4 mov r0, r4 | r0 = r4;
0x000032c6 add sp, 0x34 |
0x000032c8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_133:
0x000032cc cmp r0, 2 |
| if (r0 <= 2) {
0x000032ce ble 0x3256 | goto label_34;
| }
0x000032d0 ldr r3, [pc, 0x33c] |
0x000032d2 mov r1, r8 | r1 = r8;
0x000032d4 ldr r2, [sp, 0x1c] | r2 = var_1ch_3;
0x000032d6 movs r0, 3 | r0 = 3;
0x000032d8 add r3, pc | r3 = 0x68ec;
0x000032da str r3, [sp, 4] | var_4h_2 = r3;
0x000032dc ldr r3, [pc, 0x334] |
0x000032de add r3, pc | r3 = 0x68f6;
0x000032e0 str r3, [sp] | *(sp) = r3;
0x000032e2 mov.w r3, 0x11c | r3 = 0x11c;
0x000032e6 blx 0x16ac | log_internal ();
0x000032ea b 0x3256 | goto label_34;
| label_127:
0x000032ec movs r7, 0 | r7 = 0;
| label_45:
0x000032ee ldr r3, [pc, 0x328] |
0x000032f0 movs r5, 0 | r5 = 0;
0x000032f2 add r1, sp, 0x24 | r1 += var_24h_3;
0x000032f4 str r5, [sp, 0x24] | var_24h_3 = r5;
0x000032f6 add r3, pc | r3 = 0x6914;
0x000032f8 ldr r0, [r3] | r0 = *(0x6914);
0x000032fa blx 0x1700 | r0 = groupdb_all ();
0x000032fe subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00003300 blt.w 0x3414 | goto label_137;
| }
0x00003304 ldr.w sb, [pc, 0x314] | sb = *(0x0000361c);
0x00003308 add r6, sp, 0x28 | r6 += var_28h;
0x0000330a ldr r4, [sp, 0x14] | r4 = var_14h_2;
0x0000330c mov r8, r5 | r8 = r5;
0x0000330e add sb, pc | sb += pc;
0x00003310 b 0x332a | goto label_138;
| label_36:
0x00003312 ldr r0, [sp, 0x28] | r0 = var_28h;
0x00003314 mov r1, r7 | r1 = r7;
0x00003316 bl 0x201c | r0 = fcn_0000201c (r0, r1);
0x0000331a cmp r0, 0 |
| if (r0 < 0) {
0x0000331c blt.w 0x34ce | goto label_139;
| }
0x00003320 ldr r0, [sp, 0x28] | r0 = var_28h;
| if (r0 != 0) {
0x00003322 cbz r0, 0x3328 |
0x00003324 blx 0x16f4 | group_record_unref ();
| }
0x00003328 movs r5, 1 | r5 = 1;
| label_138:
0x0000332a ldr r0, [sp, 0x24] | r0 = var_24h_3;
0x0000332c mov r1, r6 | r1 = r6;
0x0000332e str.w r8, [sp, 0x28] | __asm ("str.w r8, [var_28h]");
0x00003332 blx 0x1800 | r0 = fcn_00001800 ();
0x00003336 adds r3, r0, 3 | r3 = r0 + 3;
| if (r3 == r0) {
0x00003338 beq 0x3286 | goto label_35;
| }
0x0000333a cmn.w r0, 0x70 |
| if (r0 == 0x70) {
0x0000333e beq.w 0x349c | goto label_140;
| }
0x00003342 cmp r0, 0 |
| if (r0 < 0) {
0x00003344 blt.w 0x34b2 | goto label_141;
| }
0x00003348 cmp r5, 0 |
| if (r5 == 0) {
0x0000334a beq 0x3312 | goto label_36;
| }
0x0000334c ldr.w r3, [sb] | r3 = *(sb);
0x00003350 cmp r3, 2 |
| if (r3 != 2) {
0x00003352 bne 0x3312 | goto label_36;
| }
0x00003354 ldr r3, [pc, 0x2c8] | r3 = *(0x3620);
0x00003356 movs r0, 0xa | r0 = 0xa;
0x00003358 ldr r3, [r4, r3] | r3 = *((r4 + r3));
0x0000335a ldr r1, [r3] | r1 = *(0x3620);
0x0000335c blx 0x1724 | putc (r0, r1);
0x00003360 b 0x3312 | goto label_36;
| label_129:
0x00003362 ldr r2, [sp, 0x14] | r2 = var_14h_2;
0x00003364 movs r0, 0xa | r0 = 0xa;
0x00003366 ldr r3, [pc, 0x2b8] | r3 = *(0x3622);
0x00003368 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x0000336a ldr r1, [r3] | r1 = *(0x3622);
0x0000336c blx 0x1724 | putc (r0, r1);
0x00003370 ldr r0, [sp, 0x24] | r0 = var_24h_3;
0x00003372 mov r1, r7 | r1 = r7;
0x00003374 bl 0x201c | r0 = fcn_0000201c (r0, r1);
0x00003378 cmp r0, 0 |
| if (r0 >= 0) {
0x0000337a bge.w 0x320c | goto label_37;
| }
| label_130:
0x0000337e mov r8, r0 | r8 = r0;
0x00003380 ldr r0, [sp, 0x24] | r0 = var_24h_3;
| if (r0 != 0) {
0x00003382 cbz r0, 0x3388 |
0x00003384 blx 0x16f4 | group_record_unref ();
| }
0x00003388 mov r4, r8 | r4 = r8;
| label_41:
0x0000338a cmp r7, 0 |
| if (r7 != 0) {
0x0000338c bne 0x32a8 | goto label_38;
| }
0x0000338e b 0x32ae | goto label_39;
| label_134:
0x00003390 ldr r3, [r5] | r3 = *(r5);
0x00003392 mov r1, r8 | r1 = r8;
0x00003394 ldr r2, [sp, 0x18] | r2 = var_18h_2;
0x00003396 movs r0, 3 | r0 = 3;
0x00003398 str r3, [sp, 8] | var_8h_2 = r3;
0x0000339a ldr r3, [pc, 0x288] |
0x0000339c add r3, pc | r3 = 0x69c6;
0x0000339e str r3, [sp, 4] | var_4h_2 = r3;
0x000033a0 ldr r3, [pc, 0x284] |
0x000033a2 add r3, pc | r3 = 0x69ce;
0x000033a4 str r3, [sp] | *(sp) = r3;
0x000033a6 mov.w r3, 0x11e | r3 = 0x11e;
0x000033aa blx 0x16ac | log_internal ();
0x000033ae b 0x3256 | goto label_34;
| label_125:
0x000033b0 cmp r0, 1 |
0x000033b2 itt gt |
| if (r0 <= 1) {
0x000033b4 movgt r3, 2 | r3 = 2;
| }
| if (r0 > 1) {
0x000033b6 strgt r3, [r2] | *(r2) = r3;
| goto label_142;
| }
| if (r0 > 1) {
| label_142:
0x000033b8 bgt.w 0x319c | goto label_40;
| }
0x000033bc ldr r1, [pc, 0x26c] |
0x000033be movs r4, 0 | r4 = 0;
0x000033c0 movs r5, 1 | r5 = 1;
0x000033c2 ldr r3, [pc, 0x26c] |
0x000033c4 str r5, [r2] | *(r2) = r5;
0x000033c6 add r1, pc | r1 = 0x69f6;
0x000033c8 ldr r2, [pc, 0x268] |
0x000033ca strd r1, r4, [sp] | __asm ("strd r1, r4, [sp]");
0x000033ce add r3, pc | r3 = 0x6a04;
0x000033d0 ldr r1, [pc, 0x264] |
0x000033d2 ldr r0, [pc, 0x268] |
0x000033d4 add r2, pc | r2 = 0x6a0c;
0x000033d6 add r1, pc | r1 = 0x6a12;
0x000033d8 add r0, pc | r0 = 0x6a1a;
0x000033da blx 0x16b8 | r0 = table_new_internal ();
0x000033de mov r7, r0 | r7 = r0;
0x000033e0 cmp r0, 0 |
| if (r0 != 0) {
0x000033e2 bne 0x34d2 | goto label_143;
| }
| label_46:
0x000033e4 ldr r2, [pc, 0x258] |
0x000033e6 ldr r3, [pc, 0x200] | r3 = *(0x35ea);
0x000033e8 add r2, pc | r2 = 0x6a2c;
0x000033ea ldr r3, [r2, r3] | r3 = *(0x6a2c);
0x000033ec ldr r2, [r3] | r2 = *(0x6a2c);
0x000033ee ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x000033f0 eors r2, r3 | r2 ^= r3;
0x000033f2 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000033f6 bne.w 0x35d8 | goto label_136;
| }
0x000033fa ldr r1, [pc, 0x248] |
0x000033fc movw r2, 0x105 | r2 = 0x105;
0x00003400 ldr r3, [pc, 0x244] |
0x00003402 movs r0, 3 | r0 = 3;
0x00003404 add r1, pc | r1 = 0x6a4e;
0x00003406 add r3, pc | r3 = 0x6a52;
0x00003408 adds r1, 7 | r1 += 7;
0x0000340a add sp, 0x34 |
0x0000340c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00003410 b.w 0x17cc | void (*0x17cc)() ();
| label_137:
0x00003414 blx 0x14a8 | r0 = log_get_max_level ();
0x00003418 cmp r0, 2 |
0x0000341a ittt le |
| if (r0 <= 2) {
0x0000341c rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 <= 2) {
0x0000341e uxtble r4, r4 | __asm ("uxtble r4, r4");
| }
| if (r0 <= 2) {
0x00003420 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 > 2) {
0x00003422 bgt 0x347a | goto label_144;
| }
| label_42:
0x00003424 cmp r4, 0 |
0x00003426 it ge |
| if (r4 < 0) {
0x00003428 mvnge r4, 0x55 | r4 = ~0x55;
| }
| label_43:
0x0000342c ldr r0, [sp, 0x24] | r0 = var_24h_3;
0x0000342e cmp r0, 0 |
| if (r0 == 0) {
0x00003430 beq 0x338a | goto label_41;
| }
0x00003432 blx 0x17dc | fcn_000017dc ();
0x00003436 cmp r7, 0 |
| if (r7 != 0) {
0x00003438 bne.w 0x32a8 | goto label_38;
| }
0x0000343c b 0x32ae | goto label_39;
| label_135:
0x0000343e blx 0x14a8 | r0 = log_get_max_level ();
0x00003442 cmp r0, 2 |
0x00003444 ittt le |
| if (r0 <= 2) {
0x00003446 rsble r3, r5, 0 | __asm ("rsble r3, r5, 0");
| }
| if (r0 <= 2) {
0x00003448 uxtble r3, r3 | __asm ("uxtble r3, r3");
| }
| if (r0 <= 2) {
0x0000344a rsble r4, r3, 0 | __asm ("rsble r4, r3, 0");
| }
0x0000344c bgt 0x3458 |
| while (1) {
0x0000344e cmp r4, 0 |
0x00003450 it ge |
| if (r4 < 0) {
0x00003452 mvnge r4, 0x55 | r4 = ~0x55;
| }
0x00003456 b 0x32a8 | goto label_38;
0x00003458 ldr r2, [pc, 0x1f0] |
0x0000345a mov r1, r5 | r1 = r5;
0x0000345c ldr r0, [pc, 0x1f0] |
0x0000345e ldr r3, [pc, 0x1f4] |
0x00003460 add r2, pc | r2 = 0x6ab0;
0x00003462 add r0, pc | r0 = 0x6ab6;
0x00003464 adds r2, 7 | r2 += 7;
0x00003466 add r3, pc | r3 = 0x6ac0;
0x00003468 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x0000346c movw r3, 0x14f | r3 = 0x14f;
0x00003470 movs r0, 3 | r0 = 3;
0x00003472 blx 0x16ac | r0 = log_internal ();
0x00003476 mov r4, r0 | r4 = r0;
0x00003478 b 0x344e |
| }
| label_144:
0x0000347a ldr r2, [pc, 0x1dc] |
0x0000347c mov r1, r4 | r1 = r4;
0x0000347e ldr r0, [pc, 0x1dc] |
0x00003480 ldr r3, [pc, 0x1dc] |
0x00003482 add r2, pc | r2 = 0x6ae0;
0x00003484 add r0, pc | r0 = 0x6ae6;
0x00003486 adds r2, 7 | r2 += 7;
0x00003488 add r3, pc | r3 = 0x6aec;
0x0000348a strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x0000348e movw r3, 0x133 | r3 = 0x133;
0x00003492 movs r0, 3 | r0 = 3;
0x00003494 blx 0x16ac | r0 = log_internal ();
0x00003498 mov r4, r0 | r4 = r0;
0x0000349a b 0x3424 | goto label_42;
| label_140:
0x0000349c mov r4, r0 | r4 = r0;
0x0000349e blx 0x14a8 | r0 = log_get_max_level ();
0x000034a2 cmp r0, 2 |
| if (r0 > 2) {
0x000034a4 bgt 0x3592 | goto label_145;
| }
| label_44:
0x000034a6 ldr r0, [sp, 0x28] | r0 = var_28h;
0x000034a8 cmp r0, 0 |
| if (r0 == 0) {
0x000034aa beq 0x342c | goto label_43;
| }
0x000034ac blx 0x16f4 | group_record_unref ();
0x000034b0 b 0x342c | goto label_43;
| label_141:
0x000034b2 mov r4, r0 | r4 = r0;
0x000034b4 blx 0x14a8 | r0 = log_get_max_level ();
0x000034b8 cmp r0, 2 |
0x000034ba ittt le |
| if (r0 <= 2) {
0x000034bc rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 <= 2) {
0x000034be uxtble r4, r4 | __asm ("uxtble r4, r4");
| }
| if (r0 <= 2) {
0x000034c0 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 > 2) {
0x000034c2 bgt 0x35b6 | goto label_146;
| }
| label_50:
0x000034c4 cmp r4, 0 |
| if (r4 < 0) {
0x000034c6 blt 0x34a6 | goto label_44;
| }
| label_49:
0x000034c8 mvn r4, 0x55 | r4 = ~0x55;
0x000034cc b 0x34a6 | goto label_44;
| label_139:
0x000034ce mov r4, r0 | r4 = r0;
0x000034d0 b 0x34a6 | goto label_44;
| label_143:
0x000034d2 mov r1, r4 | r1 = r4;
0x000034d4 movs r2, 2 | r2 = 2;
0x000034d6 blx 0x16dc | table_get_cell ();
0x000034da movs r2, 0x64 | r2 = 0x64;
0x000034dc mov r1, r0 | r1 = r0;
0x000034de mov r0, r7 | r0 = r7;
0x000034e0 blx 0x15bc | table_set_align_percent ();
0x000034e4 ldr r1, [pc, 0x17c] |
0x000034e6 mov r0, r7 | r0 = r7;
0x000034e8 add r1, pc | r1 = 0x6b50;
0x000034ea blx 0x1460 | table_set_empty_string ();
0x000034ee mov.w r3, -1 | r3 = -1;
0x000034f2 movs r2, 2 | r2 = 2;
0x000034f4 movs r1, 3 | r1 = 3;
0x000034f6 mov r0, r7 | r0 = r7;
0x000034f8 blx 0x14fc | table_set_sort_internal ();
0x000034fc mov.w r3, -1 | r3 = -1;
0x00003500 mov r2, r5 | r2 = r5;
0x00003502 str r3, [sp, 4] | var_4h_2 = r3;
0x00003504 movs r3, 3 | r3 = 3;
0x00003506 str r3, [sp] | *(sp) = r3;
0x00003508 mov r1, r4 | r1 = r4;
0x0000350a movs r3, 2 | r3 = 2;
0x0000350c mov r0, r7 | r0 = r7;
0x0000350e blx 0x16e8 | table_set_display_internal ();
0x00003512 b 0x32ee | goto label_45;
| label_126:
0x00003514 ldr r3, [pc, 0x150] |
0x00003516 mov.w r8, 0 | r8 = 0;
0x0000351a ldr r2, [pc, 0x150] |
0x0000351c ldr r1, [pc, 0x150] |
0x0000351e add r3, pc | r3 = 0x6b8a;
0x00003520 ldr r0, [pc, 0x150] |
0x00003522 str r3, [sp] | *(sp) = r3;
0x00003524 add r2, pc | r2 = 0x6b96;
0x00003526 ldr r3, [pc, 0x150] |
0x00003528 add r1, pc | r1 = 0x6b9c;
0x0000352a add r0, pc | r0 = 0x6ba2;
0x0000352c str.w r8, [sp, 4] | __asm ("str.w r8, [var_4h_2]");
0x00003530 add r3, pc | r3 = 0x6bae;
0x00003532 blx 0x16b8 | r0 = table_new_internal ();
0x00003536 mov r7, r0 | r7 = r0;
0x00003538 cmp r0, 0 |
| if (r0 == 0) {
0x0000353a beq.w 0x33e4 | goto label_46;
| }
0x0000353e movs r2, 2 | r2 = 2;
0x00003540 mov r1, r8 | r1 = r8;
0x00003542 blx 0x16dc | table_get_cell ();
0x00003546 movs r2, 0x64 | r2 = 0x64;
0x00003548 mov r1, r0 | r1 = r0;
0x0000354a mov r0, r7 | r0 = r7;
0x0000354c blx 0x15bc | table_set_align_percent ();
0x00003550 ldr r1, [pc, 0x128] |
0x00003552 mov r0, r7 | r0 = r7;
0x00003554 add r1, pc | r1 = 0x6bd4;
0x00003556 blx 0x1460 | table_set_empty_string ();
0x0000355a mov.w r3, -1 | r3 = -1;
0x0000355e movs r2, 2 | r2 = 2;
0x00003560 movs r1, 3 | r1 = 3;
0x00003562 mov r0, r7 | r0 = r7;
0x00003564 blx 0x14fc | table_set_sort_internal ();
0x00003568 movs r3, 3 | r3 = 3;
0x0000356a mov.w r0, -1 | r0 = -1;
0x0000356e strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x00003572 mov r2, r6 | r2 = r6;
0x00003574 mov r1, r8 | r1 = r8;
0x00003576 movs r3, 2 | r3 = 2;
0x00003578 mov r0, r7 | r0 = r7;
0x0000357a blx 0x16e8 | table_set_display_internal ();
0x0000357e cmp r4, 1 |
| if (r4 <= 1) {
0x00003580 ble.w 0x32ee | goto label_45;
| }
0x00003584 ldr r0, [r5, 4] | r0 = *((r5 + 4));
0x00003586 adds r5, 4 | r5 += 4;
0x00003588 cmp r0, 0 |
| if (r0 != 0) {
0x0000358a bne.w 0x31aa | goto label_47;
| }
0x0000358e mov r4, r0 | r4 = r0;
0x00003590 b 0x329a | goto label_48;
| label_145:
0x00003592 ldr r2, [pc, 0xec] |
0x00003594 mov r1, r4 | r1 = r4;
0x00003596 ldr r0, [pc, 0xec] |
0x00003598 ldr r3, [pc, 0xec] |
0x0000359a add r2, pc | r2 = 0x6c20;
0x0000359c add r0, pc | r0 = 0x6c26;
0x0000359e adds r2, 7 | r2 += 7;
0x000035a0 add r3, pc | r3 = 0x6c2c;
0x000035a2 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x000035a6 mov.w r3, 0x13c | r3 = 0x13c;
0x000035aa movs r0, 3 | r0 = 3;
0x000035ac blx 0x16ac | r0 = log_internal ();
0x000035b0 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 >= r0) {
0x000035b2 bge 0x34c8 | goto label_49;
| }
0x000035b4 b 0x34a6 | goto label_44;
| label_146:
0x000035b6 ldr r2, [pc, 0xd4] |
0x000035b8 mov r1, r4 | r1 = r4;
0x000035ba ldr r0, [pc, 0xd4] |
0x000035bc ldr r3, [pc, 0xd4] |
0x000035be add r2, pc | r2 = 0x6c50;
0x000035c0 add r0, pc | r0 = 0x6c56;
0x000035c2 adds r2, 7 | r2 += 7;
0x000035c4 add r3, pc | r3 = 0x6c5c;
0x000035c6 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x000035ca mov.w r3, 0x13e | r3 = 0x13e;
0x000035ce movs r0, 3 | r0 = 3;
0x000035d0 blx 0x16ac | r0 = log_internal ();
0x000035d4 mov r4, r0 | r4 = r0;
0x000035d6 b 0x34c4 | goto label_50;
| label_136:
0x000035d8 blx 0x16a0 | stack_chk_fail ();
0x000035dc subs r4, r2, 2 | r4 = r2 - 2;
0x000035de movs r1, r0 | r1 = r0;
0x000035e0 adds r4, r4, 3 | r4 += 3;
0x000035e2 movs r1, r0 | r1 = r0;
0x000035e4 adds r0, r4, 3 | r0 = r4 + 3;
0x000035e6 movs r1, r0 | r1 = r0;
0x000035e8 lsls r4, r7, 5 | r4 = r7 << 5;
0x000035ea movs r0, r0 |
0x000035ec lsrs r4, r6, 0xa | r4 = r6 >> 0xa;
0x000035ee movs r0, r0 |
0x000035f0 subs r6, r2, 1 | r6 = r2 - 1;
0x000035f2 movs r1, r0 | r1 = r0;
0x000035f4 lsrs r6, r4, 0xa | r6 = r4 >> 0xa;
0x000035f6 movs r0, r0 |
0x000035f8 subs r4, r0, 1 | r4 = r0 - 1;
0x000035fa movs r1, r0 | r1 = r0;
0x000035fc subs r4, r1, 0 | r4 = r1 - 0;
0x000035fe movs r1, r0 | r1 = r0;
0x00003600 lsrs r2, r0, 8 | r2 = r0 >> 8;
0x00003602 movs r0, r0 |
0x00003604 asrs r6, r3, 0xf | r6 = r3 >> 0xf;
0x00003606 movs r0, r0 |
0x00003608 asrs r0, r7, 0x1d | r0 = r7 >> 0x1d;
0x0000360a movs r0, r0 |
0x0000360c subs r2, r5, r6 | r2 = r5 - r6;
0x0000360e movs r1, r0 | r1 = r0;
0x00003610 asrs r4, r2, 0xe | r4 = r2 >> 0xe;
0x00003612 movs r0, r0 |
0x00003614 asrs r2, r2, 0x1c | r2 >>= 0x1c;
0x00003616 movs r0, r0 |
0x00003618 adds r2, r4, 4 | r2 = r4 + 4;
0x0000361a movs r1, r0 | r1 = r0;
0x0000361c adds r2, r6, 3 | r2 = r6 + 3;
0x0000361e movs r1, r0 | r1 = r0;
0x00003620 lsls r4, r1, 6 | r4 = r1 << 6;
0x00003622 movs r0, r0 |
0x00003624 asrs r4, r2, 0xc | r4 = r2 >> 0xc;
0x00003626 movs r0, r0 |
0x00003628 asrs r6, r1, 0x19 | r6 = r1 >> 0x19;
0x0000362a movs r0, r0 |
0x0000362c asrs r2, r6, 9 | r2 = r6 >> 9;
0x0000362e movs r0, r0 |
0x00003630 asrs r6, r1, 9 | r6 = r1 >> 9;
0x00003632 movs r0, r0 |
0x00003634 asrs r4, r2, 9 | r4 = r2 >> 9;
0x00003636 movs r0, r0 |
0x00003638 asrs r6, r2, 9 | r6 = r2 >> 9;
0x0000363a movs r0, r0 |
0x0000363c asrs r4, r1, 0xd | r4 = r1 >> 0xd;
0x0000363e movs r0, r0 |
0x00003640 subs r4, r6, r1 | r4 = r6 - r1;
0x00003642 movs r1, r0 | r1 = r0;
0x00003644 lsrs r4, r5, 1 | r4 = r5 >> 1;
0x00003646 movs r0, r0 |
0x00003648 asrs r2, r5, 0x17 | r2 = r5 >> 0x17;
0x0000364a movs r0, r0 |
0x0000364c lsrs r0, r2, 0x20 | r0 = r2 >> 0x20;
0x0000364e movs r0, r0 |
0x00003650 asrs r6, r3, 6 | r6 = r3 >> 6;
0x00003652 movs r0, r0 |
0x00003654 asrs r2, r1, 0x16 | r2 = r1 >> 0x16;
0x00003656 movs r0, r0 |
0x00003658 lsls r6, r5, 0x1f | r6 = r5 << 0x1f;
0x0000365a movs r0, r0 |
0x0000365c asrs r0, r1, 9 | r0 = r1 >> 9;
0x0000365e movs r0, r0 |
0x00003660 asrs r0, r5, 0x15 | r0 = r5 >> 0x15;
0x00003662 movs r0, r0 |
0x00003664 asrs r4, r4, 5 | r4 >>= 5;
0x00003666 movs r0, r0 |
0x00003668 asrs r2, r3, 4 | r2 = r3 >> 4;
0x0000366a movs r0, r0 |
0x0000366c asrs r4, r0, 4 | r4 = r0 >> 4;
0x0000366e movs r0, r0 |
0x00003670 asrs r4, r0, 4 | r4 = r0 >> 4;
0x00003672 movs r0, r0 |
0x00003674 asrs r2, r7, 7 | r2 = r7 >> 7;
0x00003676 movs r0, r0 |
0x00003678 asrs r4, r5, 3 | r4 = r5 >> 3;
0x0000367a movs r0, r0 |
0x0000367c asrs r0, r7, 3 | r0 = r7 >> 3;
0x0000367e movs r0, r0 |
0x00003680 lsls r6, r2, 0x1b | r6 = r2 << 0x1b;
0x00003682 movs r0, r0 |
0x00003684 asrs r0, r2, 3 | r0 = r2 >> 3;
0x00003686 movs r0, r0 |
0x00003688 asrs r0, r2, 0x11 | r0 = r2 >> 0x11;
0x0000368a movs r0, r0 |
0x0000368c lsls r2, r6, 0x1a | r2 = r6 << 0x1a;
0x0000368e movs r0, r0 |
0x00003690 asrs r4, r5, 4 | r4 = r5 >> 4;
0x00003692 movs r0, r0 |
0x00003694 asrs r4, r5, 0x10 | r4 = r5 >> 0x10;
0x00003696 movs r0, r0 |
0x00003698 ldr.w r3, [pc, 0x4d8] | r3 = *(0x00003b74);
0x0000369c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x000036a0 mov r5, r1 | r5 = r1;
0x000036a2 ldr.w r7, [pc, 0x4d4] | r7 = *(0x00003b78);
0x000036a6 sub sp, 0x3c |
0x000036a8 add r3, pc | r3 += pc;
0x000036aa mov r4, r0 | r4 = r0;
0x000036ac ldr.w r1, [pc, 0x4cc] | r1 = *(0x00003b7c);
0x000036b0 ldr.w r2, [pc, 0x4cc] |
0x000036b4 add r7, pc | r7 += pc;
0x000036b6 ldr r6, [r3] | r6 = *(r3);
0x000036b8 add r1, pc | r1 += pc;
0x000036ba str r7, [sp, 0x1c] | var_1ch_2 = r7;
0x000036bc ldr r2, [r1, r2] | r2 = *((r1 + r2));
0x000036be cmp r6, 0 |
0x000036c0 ldr r2, [r2] | r2 = *(0x3b80);
0x000036c2 str r2, [sp, 0x34] | var_34h = r2;
0x000036c4 mov.w r2, 0 | r2 = 0;
| if (r6 < 0) {
0x000036c8 blt.w 0x38e6 | goto label_147;
| }
0x000036cc cmp r6, 1 |
| if (r6 == 1) {
0x000036ce beq.w 0x3a7a | goto label_148;
| }
0x000036d2 cmp r0, 1 |
| if (r0 <= 1) {
0x000036d4 ble.w 0x3824 | goto label_149;
| }
| label_59:
0x000036d8 ldr r0, [r5, 4] | r0 = *((r5 + 4));
0x000036da adds r5, 4 | r5 += 4;
0x000036dc mov r4, r0 | r4 = r0;
0x000036de cmp r0, 0 |
| if (r0 == 0) {
0x000036e0 beq.w 0x37e8 | goto label_58;
| }
0x000036e4 movs r7, 0 | r7 = 0;
| label_66:
0x000036e6 ldr.w r3, [pc, 0x49c] |
0x000036ea add r6, sp, 0x30 | r6 += var_30h;
0x000036ec ldr.w sl, [pc, 0x498] | sl = *(0x00003b88);
0x000036f0 movs r4, 0 | r4 = 0;
0x000036f2 mov fp, r6 |
0x000036f4 add.w sb, sp, 0x2c | sb += var_2ch_2;
0x000036f8 add r3, pc | r3 = 0x7282;
0x000036fa mov r6, r4 | r6 = r4;
0x000036fc adds r3, 7 | r3 += 7;
0x000036fe add sl, pc | sl += pc;
0x00003700 str r3, [sp, 0x20] | var_20h = r3;
0x00003702 ldr.w r3, [pc, 0x488] |
0x00003706 add r3, pc |
0x00003708 adds r3, 7 | r3 += 7;
0x0000370a str r3, [sp, 0x24] | var_24h_2 = r3;
0x0000370c ldr.w r3, [pc, 0x480] | r3 = *(0x00003b90);
0x00003710 add r3, pc | r3 = 0xa9ac;
0x00003712 str r3, [sp, 0x18] | var_18h = r3;
0x00003714 b 0x375a |
| while (r0 >= 0) {
0x00003716 ldr.w r1, [sl] | r1 = *(sl);
0x0000371a mov r2, sb | r2 = sb;
0x0000371c ldr r0, [sp, 0x30] | r0 = var_30h;
0x0000371e blx 0x140c | r0 = userdb_by_uid ();
0x00003722 mov r8, r0 | r8 = r0;
0x00003724 cmp.w r8, 0 |
| if (r8 < 0) {
0x00003728 blt 0x377c | goto label_150;
| }
| if (r6 != 0) {
| label_51:
0x0000372a cbz r6, 0x373a |
0x0000372c ldr.w r3, [pc, 0x464] | r3 = *(0x00003b94);
0x00003730 add r3, pc | r3 += pc;
0x00003732 ldr r3, [r3] | r3 = *(r3);
0x00003734 cmp r3, 2 |
| if (r3 == 2) {
0x00003736 beq.w 0x389a | goto label_151;
| }
| }
0x0000373a ldr r0, [sp, 0x2c] | r0 = var_2ch_2;
0x0000373c mov r1, r7 | r1 = r7;
0x0000373e bl 0x2214 | r0 = fcn_00002214 (r0, r1);
0x00003742 cmp r0, 0 |
| if (r0 < 0) {
0x00003744 blt.w 0x38b6 | goto label_152;
| }
| label_56:
0x00003748 movs r6, 1 | r6 = 1;
| label_52:
0x0000374a ldr r0, [sp, 0x2c] | r0 = var_2ch_2;
| if (r0 != 0) {
0x0000374c cbz r0, 0x3752 |
0x0000374e blx 0x167c | user_record_unref ();
| }
0x00003752 ldr r0, [r5, 4]! | r0 = *((r5 += 4));
0x00003756 cmp r0, 0 |
| if (r0 == 0) {
0x00003758 beq 0x37d2 | goto label_153;
| }
0x0000375a movs r3, 0 | r3 = 0;
0x0000375c mov r1, fp | r1 = fp;
0x0000375e str r3, [sp, 0x2c] | var_2ch_2 = r3;
0x00003760 blx 0x16c4 | r0 = parse_uid ();
0x00003764 cmp r0, 0 |
0x00003766 bge 0x3716 |
| }
0x00003768 ldr r3, [sp, 0x18] | r3 = var_18h;
0x0000376a mov r2, sb | r2 = sb;
0x0000376c ldr r0, [r5] | r0 = *(r5);
0x0000376e ldr r1, [r3] | r1 = *(r3);
0x00003770 blx 0x1730 | r0 = userdb_by_name ();
0x00003774 mov r8, r0 | r8 = r0;
0x00003776 cmp.w r8, 0 |
| if (r8 >= 0) {
0x0000377a bge 0x372a | goto label_51;
| }
| label_150:
0x0000377c blx 0x14a8 | log_get_max_level ();
0x00003780 cmn.w r8, 3 |
| if (r8 == 3) {
0x00003784 beq 0x379a | goto label_154;
| }
0x00003786 cmn.w r8, 0x70 |
| if (r8 == 0x70) {
0x0000378a beq 0x3806 | goto label_155;
| }
0x0000378c cmp r0, 2 |
| if (r0 > 2) {
0x0000378e bgt.w 0x38c8 | goto label_156;
| }
| do {
| label_53:
0x00003792 cmp r4, 0 |
0x00003794 it eq |
| if (r4 != 0) {
0x00003796 moveq r4, r8 | r4 = r8;
| }
0x00003798 b 0x374a | goto label_52;
| label_154:
0x0000379a cmp r0, 2 |
0x0000379c ble 0x3792 |
| } while (r0 <= 2);
0x0000379e ldr r3, [r5] | r3 = *(r5);
0x000037a0 mov r1, r8 | r1 = r8;
0x000037a2 ldr r2, [pc, 0x3f4] |
0x000037a4 movs r0, 3 | r0 = 3;
0x000037a6 str r3, [sp, 8] | var_8h = r3;
0x000037a8 ldr r3, [pc, 0x3f0] |
0x000037aa add r2, pc | r2 = 0x7348;
0x000037ac adds r2, 7 | r2 += 7;
0x000037ae add r3, pc | r3 = 0x734e;
0x000037b0 str r3, [sp, 4] | var_4h = r3;
0x000037b2 ldr r3, [pc, 0x3ec] |
0x000037b4 add r3, pc | r3 = 0x735a;
0x000037b6 str r3, [sp] | *(sp) = r3;
0x000037b8 movs r3, 0x84 | r3 = 0x84;
0x000037ba blx 0x16ac | log_internal ();
0x000037be b 0x3792 | goto label_53;
| label_54:
0x000037c0 ldr r0, [sp, 0x30] | r0 = var_30h;
| if (r0 != 0) {
0x000037c2 cbz r0, 0x37c8 |
0x000037c4 blx 0x167c | user_record_unref ();
| }
0x000037c8 ldr r0, [sp, 0x2c] | r0 = var_2ch_2;
| if (r0 != 0) {
0x000037ca cbz r0, 0x37d0 |
0x000037cc blx 0x17dc | fcn_000017dc ();
| }
0x000037d0 movs r4, 0 | r4 = 0;
| if (r7 != 0) {
| label_153:
0x000037d2 cbz r7, 0x37e8 |
| label_67:
0x000037d4 movs r1, 0 | r1 = 0;
0x000037d6 mov r0, r7 | r0 = r7;
0x000037d8 blx 0x1454 | r0 = table_print ();
0x000037dc subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 < r0) {
0x000037de blt.w 0x3984 | goto label_157;
| }
| label_57:
0x000037e2 mov r0, r7 | r0 = r7;
0x000037e4 blx 0x1520 | table_unref ();
| }
| label_58:
0x000037e8 ldr r2, [pc, 0x3b8] |
0x000037ea ldr r3, [pc, 0x394] | r3 = *(0x3b82);
0x000037ec add r2, pc | r2 = 0x7394;
0x000037ee ldr r3, [r2, r3] | r3 = *(0x7394);
0x000037f0 ldr r2, [r3] | r2 = *(0x7394);
0x000037f2 ldr r3, [sp, 0x34] | r3 = var_34h;
0x000037f4 eors r2, r3 | r2 ^= r3;
0x000037f6 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000037fa bne.w 0x3b6e | goto label_158;
| }
0x000037fe mov r0, r4 | r0 = r4;
0x00003800 add sp, 0x3c |
0x00003802 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_155:
0x00003806 cmp r0, 2 |
| if (r0 <= 2) {
0x00003808 ble 0x3792 | goto label_53;
| }
0x0000380a ldr r3, [pc, 0x39c] |
0x0000380c mov r1, r8 | r1 = r8;
0x0000380e ldr r2, [sp, 0x24] | r2 = var_24h_2;
0x00003810 movs r0, 3 | r0 = 3;
0x00003812 add r3, pc | r3 = 0x73c0;
0x00003814 str r3, [sp, 4] | var_4h = r3;
0x00003816 ldr r3, [pc, 0x394] |
0x00003818 add r3, pc | r3 = 0x73ca;
0x0000381a str r3, [sp] | *(sp) = r3;
0x0000381c movs r3, 0x86 | r3 = 0x86;
0x0000381e blx 0x16ac | log_internal ();
0x00003822 b 0x3792 | goto label_53;
| label_149:
0x00003824 movs r7, 0 | r7 = 0;
| label_64:
0x00003826 ldr r3, [pc, 0x388] |
0x00003828 movs r5, 0 | r5 = 0;
0x0000382a add r1, sp, 0x2c | r1 += var_2ch_2;
0x0000382c str r5, [sp, 0x2c] | var_2ch_2 = r5;
0x0000382e add r3, pc | r3 = 0x73e4;
0x00003830 ldr r0, [r3] | r0 = *(0x73e4);
0x00003832 blx 0x15b0 | r0 = userdb_all ();
0x00003836 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00003838 blt.w 0x395a | goto label_159;
| }
0x0000383c ldr.w sb, [pc, 0x374] | sb = *(0x00003bb4);
0x00003840 add r6, sp, 0x30 | r6 += var_30h;
0x00003842 ldr r4, [sp, 0x1c] | r4 = var_1ch_2;
0x00003844 mov r8, r5 | r8 = r5;
0x00003846 add sb, pc | sb += pc;
0x00003848 b 0x3862 | goto label_160;
| label_55:
0x0000384a ldr r0, [sp, 0x30] | r0 = var_30h;
0x0000384c mov r1, r7 | r1 = r7;
0x0000384e bl 0x2214 | r0 = fcn_00002214 (r0, r1);
0x00003852 cmp r0, 0 |
| if (r0 < 0) {
0x00003854 blt.w 0x3a14 | goto label_161;
| }
0x00003858 ldr r0, [sp, 0x30] | r0 = var_30h;
| if (r0 != 0) {
0x0000385a cbz r0, 0x3860 |
0x0000385c blx 0x167c | user_record_unref ();
| }
0x00003860 movs r5, 1 | r5 = 1;
| label_160:
0x00003862 ldr r0, [sp, 0x2c] | r0 = var_2ch_2;
0x00003864 mov r1, r6 | r1 = r6;
0x00003866 str.w r8, [sp, 0x30] | __asm ("str.w r8, [var_30h]");
0x0000386a blx 0x13e8 | r0 = userdb_iterator_get ();
0x0000386e adds r3, r0, 3 | r3 = r0 + 3;
| if (r3 == r0) {
0x00003870 beq 0x37c0 | goto label_54;
| }
0x00003872 cmn.w r0, 0x70 |
| if (r0 == 0x70) {
0x00003876 beq.w 0x39de | goto label_162;
| }
0x0000387a cmp r0, 0 |
| if (r0 < 0) {
0x0000387c blt.w 0x39f6 | goto label_163;
| }
0x00003880 cmp r5, 0 |
| if (r5 == 0) {
0x00003882 beq 0x384a | goto label_55;
| }
0x00003884 ldr.w r3, [sb] | r3 = *(sb);
0x00003888 cmp r3, 2 |
| if (r3 != 2) {
0x0000388a bne 0x384a | goto label_55;
| }
0x0000388c ldr r3, [pc, 0x328] | r3 = *(0x3bb8);
0x0000388e movs r0, 0xa | r0 = 0xa;
0x00003890 ldr r3, [r4, r3] | r3 = *((r4 + r3));
0x00003892 ldr r1, [r3] | r1 = *(0x3bb8);
0x00003894 blx 0x1724 | putc (r0, r1);
0x00003898 b 0x384a | goto label_55;
| label_151:
0x0000389a ldr r2, [sp, 0x1c] | r2 = var_1ch_2;
0x0000389c movs r0, 0xa | r0 = 0xa;
0x0000389e ldr r3, [pc, 0x318] | r3 = *(0x3bba);
0x000038a0 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x000038a2 ldr r1, [r3] | r1 = *(0x3bba);
0x000038a4 blx 0x1724 | putc (r0, r1);
0x000038a8 ldr r0, [sp, 0x2c] | r0 = var_2ch_2;
0x000038aa mov r1, r7 | r1 = r7;
0x000038ac bl 0x2214 | r0 = fcn_00002214 (r0, r1);
0x000038b0 cmp r0, 0 |
| if (r0 >= 0) {
0x000038b2 bge.w 0x3748 | goto label_56;
| }
| label_152:
0x000038b6 mov r8, r0 | r8 = r0;
0x000038b8 ldr r0, [sp, 0x2c] | r0 = var_2ch_2;
| if (r0 != 0) {
0x000038ba cbz r0, 0x38c0 |
0x000038bc blx 0x167c | user_record_unref ();
| }
0x000038c0 mov r4, r8 | r4 = r8;
| label_60:
0x000038c2 cmp r7, 0 |
| if (r7 != 0) {
0x000038c4 bne 0x37e2 | goto label_57;
| }
0x000038c6 b 0x37e8 | goto label_58;
| label_156:
0x000038c8 ldr r3, [r5] | r3 = *(r5);
0x000038ca mov r1, r8 | r1 = r8;
0x000038cc ldr r2, [sp, 0x20] | r2 = var_20h;
0x000038ce movs r0, 3 | r0 = 3;
0x000038d0 str r3, [sp, 8] | var_8h = r3;
0x000038d2 ldr r3, [pc, 0x2e8] |
0x000038d4 add r3, pc | r3 = 0x7496;
0x000038d6 str r3, [sp, 4] | var_4h = r3;
0x000038d8 ldr r3, [pc, 0x2e4] |
0x000038da add r3, pc | r3 = 0x749e;
0x000038dc str r3, [sp] | *(sp) = r3;
0x000038de movs r3, 0x88 | r3 = 0x88;
0x000038e0 blx 0x16ac | log_internal ();
0x000038e4 b 0x3792 | goto label_53;
| label_147:
0x000038e6 cmp r0, 1 |
0x000038e8 itt gt |
| if (r0 <= 1) {
0x000038ea movgt r2, 2 | r2 = 2;
| }
| if (r0 > 1) {
0x000038ec strgt r2, [r3] | *(r3) = r2;
| goto label_164;
| }
| if (r0 > 1) {
| label_164:
0x000038ee bgt.w 0x36d8 | goto label_59;
| }
0x000038f2 ldr r0, [pc, 0x2d0] |
0x000038f4 movs r5, 1 | r5 = 1;
0x000038f6 ldr r1, [pc, 0x2d0] |
0x000038f8 movs r4, 0 | r4 = 0;
0x000038fa ldr r2, [pc, 0x2d0] |
0x000038fc add r0, pc | r0 = 0x74c6;
0x000038fe str r0, [sp, 0xc] | var_ch = r0;
0x00003900 add r1, pc | r1 = 0x74ce;
0x00003902 str r5, [r3] | *(r3) = r5;
0x00003904 add r2, pc | r2 = 0x74d6;
0x00003906 ldr r3, [pc, 0x2c8] |
0x00003908 str r1, [sp, 8] | var_8h = r1;
0x0000390a ldr r0, [pc, 0x2c8] |
0x0000390c add r3, pc | r3 = 0x74e2;
0x0000390e ldr r1, [pc, 0x2c8] |
0x00003910 strd r3, r2, [sp] | __asm ("strd r3, r2, [sp]");
0x00003914 ldr r3, [pc, 0x2c4] |
0x00003916 add r0, pc | r0 = 0x74f0;
0x00003918 ldr r2, [pc, 0x2c4] |
0x0000391a add r1, pc | r1 = 0x74f8;
0x0000391c str r4, [sp, 0x10] | var_10h_2 = r4;
0x0000391e add r3, pc | r3 = 0x74fe;
0x00003920 add r2, pc | r2 = 0x7504;
0x00003922 blx 0x16b8 | r0 = table_new_internal ();
0x00003926 mov r7, r0 | r7 = r0;
0x00003928 cmp r0, 0 |
| if (r0 != 0) {
0x0000392a bne 0x3a18 | goto label_165;
| }
| label_65:
0x0000392c ldr r2, [pc, 0x2b4] |
0x0000392e ldr r3, [pc, 0x250] | r3 = *(0x3b82);
0x00003930 add r2, pc | r2 = 0x7518;
0x00003932 ldr r3, [r2, r3] | r3 = *(0x7518);
0x00003934 ldr r2, [r3] | r2 = *(0x7518);
0x00003936 ldr r3, [sp, 0x34] | r3 = var_34h;
0x00003938 eors r2, r3 | r2 ^= r3;
0x0000393a mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0000393e bne.w 0x3b6e | goto label_158;
| }
0x00003942 ldr r1, [pc, 0x2a4] |
0x00003944 movs r2, 0x6e | r2 = 0x6e;
0x00003946 ldr r3, [pc, 0x2a4] |
0x00003948 movs r0, 3 | r0 = 3;
0x0000394a add r1, pc | r1 = 0x7538;
0x0000394c add r3, pc | r3 = 0x753e;
0x0000394e adds r1, 7 | r1 += 7;
0x00003950 add sp, 0x3c |
0x00003952 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00003956 b.w 0x17cc | void (*0x17cc)() ();
| label_159:
0x0000395a blx 0x14a8 | r0 = log_get_max_level ();
0x0000395e cmp r0, 2 |
0x00003960 ittt le |
| if (r0 <= 2) {
0x00003962 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 <= 2) {
0x00003964 uxtble r4, r4 | __asm ("uxtble r4, r4");
| }
| if (r0 <= 2) {
0x00003966 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 > 2) {
0x00003968 bgt 0x39be | goto label_166;
| }
| label_61:
0x0000396a cmp r4, 0 |
0x0000396c it ge |
| if (r4 < 0) {
0x0000396e mvnge r4, 0x55 | r4 = ~0x55;
| }
| label_62:
0x00003972 ldr r0, [sp, 0x2c] | r0 = var_2ch_2;
0x00003974 cmp r0, 0 |
| if (r0 == 0) {
0x00003976 beq 0x38c2 | goto label_60;
| }
0x00003978 blx 0x17dc | fcn_000017dc ();
0x0000397c cmp r7, 0 |
| if (r7 != 0) {
0x0000397e bne.w 0x37e2 | goto label_57;
| }
0x00003982 b 0x37e8 | goto label_58;
| label_157:
0x00003984 blx 0x14a8 | r0 = log_get_max_level ();
0x00003988 cmp r0, 2 |
0x0000398a ittt le |
| if (r0 <= 2) {
0x0000398c rsble r3, r5, 0 | __asm ("rsble r3, r5, 0");
| }
| if (r0 <= 2) {
0x0000398e uxtble r3, r3 | __asm ("uxtble r3, r3");
| }
| if (r0 <= 2) {
0x00003990 rsble r4, r3, 0 | __asm ("rsble r4, r3, 0");
| }
0x00003992 bgt 0x399e |
| while (1) {
0x00003994 cmp r4, 0 |
0x00003996 it ge |
| if (r4 < 0) {
0x00003998 mvnge r4, 0x55 | r4 = ~0x55;
| }
0x0000399c b 0x37e2 | goto label_57;
0x0000399e ldr r2, [pc, 0x250] |
0x000039a0 mov r1, r5 | r1 = r5;
0x000039a2 ldr r0, [pc, 0x250] |
0x000039a4 ldr r3, [pc, 0x250] |
0x000039a6 add r2, pc | r2 = 0x759c;
0x000039a8 add r0, pc | r0 = 0x75a2;
0x000039aa adds r2, 7 | r2 += 7;
0x000039ac add r3, pc | r3 = 0x75a8;
0x000039ae strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x000039b2 movs r3, 0xb7 | r3 = 0xb7;
0x000039b4 movs r0, 3 | r0 = 3;
0x000039b6 blx 0x16ac | r0 = log_internal ();
0x000039ba mov r4, r0 | r4 = r0;
0x000039bc b 0x3994 |
| }
| label_166:
0x000039be ldr r2, [pc, 0x23c] |
0x000039c0 mov r1, r4 | r1 = r4;
0x000039c2 ldr r0, [pc, 0x23c] |
0x000039c4 ldr r3, [pc, 0x23c] |
0x000039c6 add r2, pc | r2 = 0x75c8;
0x000039c8 add r0, pc | r0 = 0x75ce;
0x000039ca adds r2, 7 | r2 += 7;
0x000039cc add r3, pc | r3 = 0x75d4;
0x000039ce strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x000039d2 movs r3, 0x9c | r3 = 0x9c;
0x000039d4 movs r0, 3 | r0 = 3;
0x000039d6 blx 0x16ac | r0 = log_internal ();
0x000039da mov r4, r0 | r4 = r0;
0x000039dc b 0x396a | goto label_61;
| label_162:
0x000039de mov r4, r0 | r4 = r0;
0x000039e0 blx 0x14a8 | r0 = log_get_max_level ();
0x000039e4 cmp r0, 2 |
| if (r0 > 2) {
0x000039e6 bgt.w 0x3b2a | goto label_167;
| }
| label_63:
0x000039ea ldr r0, [sp, 0x30] | r0 = var_30h;
0x000039ec cmp r0, 0 |
| if (r0 == 0) {
0x000039ee beq 0x3972 | goto label_62;
| }
0x000039f0 blx 0x167c | user_record_unref ();
0x000039f4 b 0x3972 | goto label_62;
| label_163:
0x000039f6 mov r4, r0 | r4 = r0;
0x000039f8 blx 0x14a8 | r0 = log_get_max_level ();
0x000039fc cmp r0, 2 |
0x000039fe ittt le |
| if (r0 <= 2) {
0x00003a00 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 <= 2) {
0x00003a02 uxtble r4, r4 | __asm ("uxtble r4, r4");
| }
| if (r0 <= 2) {
0x00003a04 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 > 2) {
0x00003a06 bgt.w 0x3b4e | goto label_168;
| }
| label_69:
0x00003a0a cmp r4, 0 |
| if (r4 < 0) {
0x00003a0c blt 0x39ea | goto label_63;
| }
| label_68:
0x00003a0e mvn r4, 0x55 | r4 = ~0x55;
0x00003a12 b 0x39ea | goto label_63;
| label_161:
0x00003a14 mov r4, r0 | r4 = r0;
0x00003a16 b 0x39ea | goto label_63;
| label_165:
0x00003a18 mov r1, r4 | r1 = r4;
0x00003a1a movs r2, 2 | r2 = 2;
0x00003a1c blx 0x16dc | table_get_cell ();
0x00003a20 movs r2, 0x64 | r2 = 0x64;
0x00003a22 mov r1, r0 | r1 = r0;
0x00003a24 mov r0, r7 | r0 = r7;
0x00003a26 blx 0x15bc | table_set_align_percent ();
0x00003a2a mov r1, r4 | r1 = r4;
0x00003a2c movs r2, 3 | r2 = 3;
0x00003a2e mov r0, r7 | r0 = r7;
0x00003a30 blx 0x16dc | table_get_cell ();
0x00003a34 movs r2, 0x64 | r2 = 0x64;
0x00003a36 mov r1, r0 | r1 = r0;
0x00003a38 mov r0, r7 | r0 = r7;
0x00003a3a blx 0x15bc | table_set_align_percent ();
0x00003a3e ldr r1, [pc, 0x1c8] |
0x00003a40 mov r0, r7 | r0 = r7;
0x00003a42 add r1, pc | r1 = 0x7650;
0x00003a44 blx 0x1460 | table_set_empty_string ();
0x00003a48 mov.w r3, -1 | r3 = -1;
0x00003a4c movs r2, 2 | r2 = 2;
0x00003a4e movs r1, 7 | r1 = 7;
0x00003a50 mov r0, r7 | r0 = r7;
0x00003a52 blx 0x14fc | table_set_sort_internal ();
0x00003a56 mov.w r3, -1 | r3 = -1;
0x00003a5a movs r0, 6 | r0 = 6;
0x00003a5c str r3, [sp, 0x10] | var_10h_2 = r3;
0x00003a5e movs r3, 5 | r3 = 5;
0x00003a60 strd r3, r0, [sp, 8] | __asm ("strd r3, r0, [var_8h]");
0x00003a64 mov r1, r4 | r1 = r4;
0x00003a66 movs r3, 3 | r3 = 3;
0x00003a68 movs r4, 4 | r4 = 4;
0x00003a6a strd r3, r4, [sp] | __asm ("strd r3, r4, [sp]");
0x00003a6e mov r2, r5 | r2 = r5;
0x00003a70 movs r3, 2 | r3 = 2;
0x00003a72 mov r0, r7 | r0 = r7;
0x00003a74 blx 0x16e8 | table_set_display_internal ();
0x00003a78 b 0x3826 | goto label_64;
| label_148:
0x00003a7a ldr r3, [pc, 0x190] |
0x00003a7c mov.w r8, 0 | r8 = 0;
0x00003a80 ldr r2, [pc, 0x18c] |
0x00003a82 ldr r1, [pc, 0x190] |
0x00003a84 add r3, pc | r3 = 0x7696;
0x00003a86 ldr r0, [pc, 0x190] |
0x00003a88 str r3, [sp, 0xc] | var_ch = r3;
0x00003a8a add r2, pc | r2 = 0x769e;
0x00003a8c ldr r3, [pc, 0x18c] |
0x00003a8e add r1, pc | r1 = 0x76a8;
0x00003a90 add r0, pc | r0 = 0x76ae;
0x00003a92 str.w r8, [sp, 0x10] | __asm ("str.w r8, [var_10h_2]");
0x00003a96 add r3, pc | r3 = 0x76b6;
0x00003a98 str r3, [sp, 8] | var_8h = r3;
0x00003a9a ldr r3, [pc, 0x184] |
0x00003a9c add r3, pc | r3 = 0x76c2;
0x00003a9e str r3, [sp, 4] | var_4h = r3;
0x00003aa0 ldr r3, [pc, 0x180] |
0x00003aa2 add r3, pc | r3 = 0x76ca;
0x00003aa4 str r3, [sp] | *(sp) = r3;
0x00003aa6 ldr r3, [pc, 0x180] |
0x00003aa8 add r3, pc | r3 = 0x76d6;
0x00003aaa blx 0x16b8 | r0 = table_new_internal ();
0x00003aae mov r7, r0 | r7 = r0;
0x00003ab0 cmp r0, 0 |
| if (r0 == 0) {
0x00003ab2 beq.w 0x392c | goto label_65;
| }
0x00003ab6 movs r2, 2 | r2 = 2;
0x00003ab8 mov r1, r8 | r1 = r8;
0x00003aba blx 0x16dc | table_get_cell ();
0x00003abe movs r2, 0x64 | r2 = 0x64;
0x00003ac0 mov r1, r0 | r1 = r0;
0x00003ac2 mov r0, r7 | r0 = r7;
0x00003ac4 blx 0x15bc | table_set_align_percent ();
0x00003ac8 movs r2, 3 | r2 = 3;
0x00003aca mov r1, r8 | r1 = r8;
0x00003acc mov r0, r7 | r0 = r7;
0x00003ace blx 0x16dc | table_get_cell ();
0x00003ad2 movs r2, 0x64 | r2 = 0x64;
0x00003ad4 mov r1, r0 | r1 = r0;
0x00003ad6 mov r0, r7 | r0 = r7;
0x00003ad8 blx 0x15bc | table_set_align_percent ();
0x00003adc ldr r1, [pc, 0x14c] |
0x00003ade mov r0, r7 | r0 = r7;
0x00003ae0 add r1, pc | r1 = 0x7710;
0x00003ae2 blx 0x1460 | table_set_empty_string ();
0x00003ae6 mov.w r3, -1 | r3 = -1;
0x00003aea movs r2, 2 | r2 = 2;
0x00003aec movs r1, 7 | r1 = 7;
0x00003aee mov r0, r7 | r0 = r7;
0x00003af0 blx 0x14fc | table_set_sort_internal ();
0x00003af4 movs r3, 6 | r3 = 6;
0x00003af6 mov.w r0, -1 | r0 = -1;
0x00003afa strd r3, r0, [sp, 0xc] | __asm ("strd r3, r0, [var_ch]");
0x00003afe mov r2, r6 | r2 = r6;
0x00003b00 movs r3, 4 | r3 = 4;
0x00003b02 movs r6, 5 | r6 = 5;
0x00003b04 strd r3, r6, [sp, 4] | __asm ("strd r3, r6, [var_8h]");
0x00003b08 movs r3, 3 | r3 = 3;
0x00003b0a str r3, [sp] | *(sp) = r3;
0x00003b0c mov r1, r8 | r1 = r8;
0x00003b0e movs r3, 2 | r3 = 2;
0x00003b10 mov r0, r7 | r0 = r7;
0x00003b12 blx 0x16e8 | table_set_display_internal ();
0x00003b16 cmp r4, 1 |
| if (r4 <= 1) {
0x00003b18 ble.w 0x3826 | goto label_64;
| }
0x00003b1c ldr r0, [r5, 4] | r0 = *((r5 + 4));
0x00003b1e adds r5, 4 | r5 += 4;
0x00003b20 cmp r0, 0 |
| if (r0 != 0) {
0x00003b22 bne.w 0x36e6 | goto label_66;
| }
0x00003b26 mov r4, r0 | r4 = r0;
0x00003b28 b 0x37d4 | goto label_67;
| label_167:
0x00003b2a ldr r2, [pc, 0x104] |
0x00003b2c mov r1, r4 | r1 = r4;
0x00003b2e ldr r0, [pc, 0x104] |
0x00003b30 ldr r3, [pc, 0x104] |
0x00003b32 add r2, pc | r2 = 0x7768;
0x00003b34 add r0, pc | r0 = 0x776e;
0x00003b36 adds r2, 7 | r2 += 7;
0x00003b38 add r3, pc | r3 = 0x7774;
0x00003b3a strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x00003b3e movs r3, 0xa5 | r3 = 0xa5;
0x00003b40 movs r0, 3 | r0 = 3;
0x00003b42 blx 0x16ac | r0 = log_internal ();
0x00003b46 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 >= r0) {
0x00003b48 bge.w 0x3a0e | goto label_68;
| }
0x00003b4c b 0x39ea | goto label_63;
| label_168:
0x00003b4e ldr r2, [pc, 0xec] |
0x00003b50 mov r1, r4 | r1 = r4;
0x00003b52 ldr r0, [pc, 0xec] |
0x00003b54 ldr r3, [pc, 0xec] |
0x00003b56 add r2, pc | r2 = 0x7798;
0x00003b58 add r0, pc | r0 = 0x779e;
0x00003b5a adds r2, 7 | r2 += 7;
0x00003b5c add r3, pc | r3 = 0x77a4;
0x00003b5e strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x00003b62 movs r3, 0xa7 | r3 = 0xa7;
0x00003b64 movs r0, 3 | r0 = 3;
0x00003b66 blx 0x16ac | r0 = log_internal ();
0x00003b6a mov r4, r0 | r4 = r0;
0x00003b6c b 0x3a0a | goto label_69;
| label_158:
0x00003b6e blx 0x16a0 | stack_chk_fail ();
0x00003b72 nop |
0x00003b74 adds r0, r3, r5 | r0 = r3 + r5;
0x00003b76 movs r1, r0 | r1 = r0;
0x00003b78 asrs r0, r5, 0x1e | r0 = r5 >> 0x1e;
0x00003b7a movs r1, r0 | r1 = r0;
0x00003b7c asrs r4, r4, 0x1e | r4 >>= 0x1e;
0x00003b7e movs r1, r0 | r1 = r0;
0x00003b80 lsls r4, r7, 5 | r4 = r7 << 5;
0x00003b82 movs r0, r0 |
0x00003b84 lsls r0, r7, 0x15 | r0 = r7 << 0x15;
0x00003b86 movs r0, r0 |
0x00003b88 adds r2, r3, r4 | r2 = r3 + r4;
0x00003b8a movs r1, r0 | r1 = r0;
0x00003b8c lsls r2, r5, 0x15 | r2 = r5 << 0x15;
0x00003b8e movs r0, r0 |
0x00003b90 adds r0, r1, r4 | r0 = r1 + r4;
0x00003b92 movs r1, r0 | r1 = r0;
0x00003b94 adds r0, r2, r3 | r0 = r2 + r3;
0x00003b96 movs r1, r0 | r1 = r0;
0x00003b98 lsls r6, r0, 0x13 | r6 = r0 << 0x13;
0x00003b9a movs r0, r0 |
0x00003b9c lsrs r6, r5, 0x11 | r6 = r5 >> 0x11;
0x00003b9e movs r0, r0 |
0x00003ba0 asrs r0, r4, 8 | r0 = r4 >> 8;
0x00003ba2 movs r0, r0 |
0x00003ba4 asrs r0, r6, 0x19 | r0 = r6 >> 0x19;
0x00003ba6 movs r1, r0 | r1 = r0;
0x00003ba8 lsrs r2, r4, 0x10 | r2 = r4 >> 0x10;
0x00003baa movs r0, r0 |
0x00003bac asrs r4, r7, 6 | r4 = r7 >> 6;
0x00003bae movs r0, r0 |
0x00003bb0 asrs r2, r5, 0x1f | r2 = r5 >> 0x1f;
0x00003bb2 movs r1, r0 | r1 = r0;
0x00003bb4 asrs r2, r7, 0x1e | r2 = r7 >> 0x1e;
0x00003bb6 movs r1, r0 | r1 = r0;
0x00003bb8 lsls r4, r1, 6 | r4 = r1 << 6;
0x00003bba movs r0, r0 |
0x00003bbc lsrs r4, r2, 0xf | r4 = r2 >> 0xf;
0x00003bbe movs r0, r0 |
0x00003bc0 asrs r2, r7, 3 | r2 = r7 >> 3;
0x00003bc2 movs r0, r0 |
0x00003bc4 lsrs r4, r7, 0x14 | r4 = r7 >> 0x14;
0x00003bc6 movs r0, r0 |
0x00003bc8 lsrs r0, r2, 0x18 | r0 = r2 >> 0x18;
0x00003bca movs r0, r0 |
0x00003bcc lsrs r4, r2, 0x18 | r4 = r2 >> 0x18;
0x00003bce movs r0, r0 |
0x00003bd0 lsrs r4, r2, 0x18 | r4 = r2 >> 0x18;
0x00003bd2 movs r0, r0 |
0x00003bd4 lsrs r6, r1, 0x18 | r6 = r1 >> 0x18;
0x00003bd6 movs r0, r0 |
0x00003bd8 lsrs r2, r2, 0x14 | r2 >>= 0x14;
0x00003bda movs r0, r0 |
0x00003bdc lsrs r2, r1, 0x14 | r2 = r1 >> 0x14;
0x00003bde movs r0, r0 |
0x00003be0 lsrs r4, r5, 0x17 | r4 = r5 >> 0x17;
0x00003be2 movs r0, r0 |
0x00003be4 asrs r4, r5, 0x14 | r4 = r5 >> 0x14;
0x00003be6 movs r1, r0 | r1 = r0;
0x00003be8 lsls r6, r4, 0xc | r6 = r4 << 0xc;
0x00003bea movs r0, r0 |
0x00003bec asrs r0, r1, 2 | r0 = r1 >> 2;
0x00003bee movs r0, r0 |
0x00003bf0 lsls r2, r1, 0xb | r2 = r1 << 0xb;
0x00003bf2 movs r0, r0 |
0x00003bf4 lsrs r0, r3, 0x11 | r0 = r3 >> 0x11;
0x00003bf6 movs r0, r0 |
0x00003bf8 asrs r0, r5, 0x20 | r0 = r5 >> 0x20;
0x00003bfa movs r0, r0 |
0x00003bfc lsls r2, r5, 0xa | r2 = r5 << 0xa;
0x00003bfe movs r0, r0 |
0x00003c00 lsrs r4, r4, 0x15 | r4 >>= 0x15;
0x00003c02 movs r0, r0 |
0x00003c04 asrs r0, r1, 0x20 | r0 = r1 >> 0x20;
0x00003c06 movs r0, r0 |
0x00003c08 lsrs r2, r1, 0x10 | r2 = r1 >> 0x10;
0x00003c0a movs r0, r0 |
0x00003c0c lsrs r4, r6, 0xe | r4 = r6 >> 0xe;
0x00003c0e movs r0, r0 |
0x00003c10 lsrs r2, r0, 0x12 | r2 = r0 >> 0x12;
0x00003c12 movs r0, r0 |
0x00003c14 lsrs r6, r3, 0xe | r6 = r3 >> 0xe;
0x00003c16 movs r0, r0 |
0x00003c18 lsrs r4, r2, 0x12 | r4 = r2 >> 0x12;
0x00003c1a movs r0, r0 |
0x00003c1c lsrs r2, r7, 0x11 | r2 = r7 >> 0x11;
0x00003c1e movs r0, r0 |
0x00003c20 lsrs r4, r7, 0x11 | r4 = r7 >> 0x11;
0x00003c22 movs r0, r0 |
0x00003c24 lsrs r6, r7, 0x11 | r6 = r7 >> 0x11;
0x00003c26 movs r0, r0 |
0x00003c28 lsrs r0, r0, 0xe | r0 >>= 0xe;
0x00003c2a movs r0, r0 |
0x00003c2c lsrs r4, r5, 0xd | r4 = r5 >> 0xd;
0x00003c2e movs r0, r0 |
0x00003c30 lsls r6, r7, 4 | r6 = r7 << 4;
0x00003c32 movs r0, r0 |
0x00003c34 lsrs r0, r0, 4 | r0 >>= 4;
0x00003c36 movs r0, r0 |
0x00003c38 lsrs r4, r3, 0x1a | r4 = r3 >> 0x1a;
0x00003c3a movs r0, r0 |
0x00003c3c lsls r2, r3, 4 | r2 = r3 << 4;
0x00003c3e movs r0, r0 |
0x00003c40 lsrs r4, r6, 0xf | r4 = r6 >> 0xf;
0x00003c42 movs r0, r0 |
0x00003c44 lsrs r0, r7, 0x19 | r0 = r7 >> 0x19;
0x00003c46 movs r0, r0 |
| /* [14] -r-x section size 8 named .fini */
0x00003c48 ands r0, r1 | r0 &= r1;
0x00003c4a invalid |
| }
[*] Function printf used 5 times userdbctl