// WARNING: Possible PIC construction at 0x000183453e75: Changing call to branch // WARNING: Possible PIC construction at 0x000183453ec1: Changing call to branch // WARNING: Removing unreachable block (ram,0x000183453e7a) // WARNING: Removing unreachable block (ram,0x000183453ec6) void fcn.183453d80(int64_t arg1) { uint32_t uVar1; char *pcVar2; int32_t *piVar3; undefined *puVar4; uint64_t *puVar5; undefined8 uVar6; undefined8 uVar7; undefined8 uVar8; code *pcVar9; char cVar10; uint32_t uVar11; uint64_t uVar12; uint64_t uVar13; uint8_t uVar14; uint8_t uVar15; uint64_t *puVar16; uint64_t uVar17; uint64_t *puVar18; char in_DL; undefined8 *puVar19; uint64_t *puVar20; uint64_t *unaff_RBX; undefined8 unaff_RBP; char *pcVar21; uint64_t *unaff_RSI; uint64_t *unaff_RDI; uint16_t uVar22; uint32_t uVar23; uint32_t uVar24; uint64_t uVar25; undefined8 unaff_R12; uint32_t *puVar26; int64_t unaff_R14; int64_t iVar27; int64_t iVar28; int32_t *unaff_R15; int64_t unaff_GS_OFFSET; bool bVar29; undefined8 uStack_50; int64_t var_48h; int64_t var_40h; int64_t var_38h; int64_t var_30h; iVar27 = *(int64_t *)(arg1 + 0x48); puVar20 = *(uint64_t **)(arg1 + 0x50); *(undefined8 *)(arg1 + 0x48) = 0; *(undefined8 *)(arg1 + 0x50) = 0; piVar3 = *(int32_t **)(arg1 + 0x38); puVar16 = *(uint64_t **)(arg1 + 0x40); *(undefined8 *)(arg1 + 0x38) = 0; *(undefined8 *)(arg1 + 0x40) = 0; puVar4 = *(undefined **)(arg1 + 0x28); puVar5 = *(uint64_t **)(arg1 + 0x30); *(undefined8 *)(arg1 + 0x28) = 0; *(undefined8 *)(arg1 + 0x30) = 0; if (in_DL == '\0') { *puVar4 = 0; uStack_50 = 0x183453dd2; func_0x000184212ca0(puVar4 + 0x18, 0x190900b00, 0x1c); } *piVar3 = *piVar3 + -1; iVar27 = iVar27 + 8; uStack_50 = 0x183453de6; (*case.0x183453f4a.0)(iVar27); if (puVar5 != (uint64_t *)0x0) { LOCK(); puVar18 = puVar5 + 1; uVar12 = *puVar18; *(int32_t *)puVar18 = (int32_t)*puVar18 + -1; UNLOCK(); if ((int32_t)uVar12 == 0) { uStack_50 = 0x183453e9f; (*case.0x183453f4a.0)(puVar5); if ((int32_t)puVar5[2] != 0) { LOCK(); puVar18 = puVar5 + 2; uVar12 = *puVar18; *(int32_t *)puVar18 = (int32_t)*puVar18 + -1; UNLOCK(); if ((int32_t)uVar12 != 0) goto code_r0x000183453dfd; } if (*(int64_t *)(*puVar5 + 0x18) == 0x186267930) { *(undefined8 **)0x20 = (BADSPACEBASE *)&uStack_50; uStack_50 = 0x183453ec6; puVar18 = puVar5; unaff_RBX = puVar5; unaff_RSI = puVar20; unaff_RDI = puVar16; unaff_R14 = iVar27; unaff_R15 = piVar3; goto code_r0x0001841dcbe0; } uStack_50 = 0x183453ee2; (*case.0x183453f4a.0)(puVar5); } } code_r0x000183453dfd: if (puVar16 != (uint64_t *)0x0) { LOCK(); puVar18 = puVar16 + 1; uVar12 = *puVar18; *(int32_t *)puVar18 = (int32_t)*puVar18 + -1; UNLOCK(); if ((int32_t)uVar12 == 0) { uStack_50 = 0x183453e53; (*case.0x183453f4a.0)(puVar16); if ((int32_t)puVar16[2] != 0) { LOCK(); puVar18 = puVar16 + 2; uVar12 = *puVar18; *(int32_t *)puVar18 = (int32_t)*puVar18 + -1; UNLOCK(); if ((int32_t)uVar12 != 0) goto code_r0x000183453e10; } if (*(int64_t *)(*puVar16 + 0x18) == 0x186267930) { *(undefined8 **)0x20 = (BADSPACEBASE *)&uStack_50; uStack_50 = 0x183453e7a; puVar18 = puVar16; unaff_RBX = puVar5; unaff_RSI = puVar20; unaff_RDI = puVar16; unaff_R14 = iVar27; unaff_R15 = piVar3; goto code_r0x0001841dcbe0; } uStack_50 = 0x183453ed4; (*case.0x183453f4a.0)(puVar16); } } code_r0x000183453e10: if (puVar20 != (uint64_t *)0x0) { LOCK(); puVar16 = puVar20 + 1; uVar12 = *puVar16; *(int32_t *)puVar16 = (int32_t)*puVar16 + -1; UNLOCK(); if ((int32_t)uVar12 == 0) { uStack_50 = 0x183453f0a; (*case.0x183453f4a.0)(puVar20); if ((int32_t)puVar20[2] != 0) { LOCK(); puVar16 = puVar20 + 2; uVar12 = *puVar16; *(int32_t *)puVar16 = (int32_t)*puVar16 + -1; UNLOCK(); if ((int32_t)uVar12 != 0) { return; } } puVar18 = puVar20; if (*(int64_t *)(*puVar20 + 0x18) != 0x186267930) { // switch table (4 cases) at 0x191c186b0 (*case.0x183453f4a.0)(puVar20); return; } code_r0x0001841dcbe0: *(int32_t **)((int64_t)*(undefined **)0x20 + -8) = unaff_R15; *(int64_t *)((int64_t)*(undefined **)0x20 + -0x10) = unaff_R14; *(uint64_t **)((int64_t)*(undefined **)0x20 + -0x18) = unaff_RSI; *(uint64_t **)((int64_t)*(undefined **)0x20 + -0x20) = unaff_RDI; *(uint64_t **)((int64_t)*(undefined **)0x20 + -0x28) = unaff_RBX; *(uint64_t *)((int64_t)*(undefined **)0x20 + -0x30) = *(uint64_t *)0x191c71040 ^ (uint64_t)((int64_t)*(undefined **)0x20 + -0x68); if (*(int64_t *)(*(int64_t *)0x191cd6d80 + 0x48) != 0x185ad6ff0) goto code_r0x0001841dcc43; unaff_RBX = *(uint64_t **)0x191d84750; if ((*(uint32_t *)0x191de7658 & 1) != 0) goto code_r0x0001841dccfa; do { if (*(int64_t *)(*(int64_t *)0x191c71ea8 + 0x48) == 0x1841c06a0) { if (*(int64_t *)(*(int64_t *)0x191d0c3e0 + 0x48) != 0x185ba45b0) { if (*(int64_t *)(*(int64_t *)0x191d0c3e0 + 0x48) != 0x185ba4620) goto code_r0x0001841dcc43; if (*(uint64_t *)0x191c71040 != (*(uint64_t *)((int64_t)*(undefined **)0x20 + -0x30) ^ (uint64_t)((int64_t)*(undefined **)0x20 + -0x68))) goto code_r0x0001841dcced; if (puVar18 == (uint64_t *)0x0) { return; } iVar27 = 2; if ((((uint64_t)puVar18 & 0xfffffffc00000000) != *(uint64_t *)0x191cd6d08) && (iVar27 = 1, ((uint64_t)puVar18 & 0xfffffffc00000000) != *(uint64_t *)0x191cd6d00)) { iVar27 = (uint64_t) ((*(uint64_t *)0x191cd6d18 & (uint64_t)puVar18 & 0xffffffffffe00000) == *(uint64_t *)0x191cd6d10) * 3; } pcVar21 = *(char **)(*(int64_t *)(iVar27 * 8 + 0x191cd6d20) + ((uint64_t)puVar18 & 0xffffffffffe00000)); *(undefined8 *)((int64_t)*(undefined **)0x20 + -8) = *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x10); *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x10) = *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x18); *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x18) = *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x20); *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x20) = unaff_RBP; *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x28) = *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x28); *(uint64_t *)((int64_t)*(undefined **)0x20 + -0x30) = *(uint64_t *)0x191c71040 ^ (uint64_t)((int64_t)*(undefined **)0x20 + -0x68); if ((((uint64_t)puVar18 & 0xfffffff800000000) == *(uint64_t *)0x191cd6d00) || ((*(uint64_t *)0x191cd6d18 & (uint64_t)puVar18) == *(uint64_t *)0x191cd6d10)) { uVar13 = (uint64_t)puVar18 & 0xffffffffffe00000; uVar12 = (uint64_t)((uint32_t)((uint64_t)puVar18 >> 9) & 0xfe0); iVar27 = (*(int64_t *)(pcVar21 + 0x88) + uVar13 + uVar12) - (uint64_t) ((*(uint8_t *)(uVar12 + 0x1e + *(int64_t *)(pcVar21 + 0x88) + uVar13) & 0x3f) << 5) ; *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x40) = 0; uVar12 = (uint64_t)*(uint32_t *)(pcVar21 + 0x80) + 0x20; if (uVar12 < 0xf0001) { if (*pcVar21 == '\x01') { iVar28 = 0x3f; if (uVar12 != 0) { for (; uVar12 >> iVar28 == 0; iVar28 = iVar28 + -1) { } } uVar24 = (uint32_t)iVar28 ^ 0x3f; uVar14 = 0x3cU - (char)uVar24 & 0x3f; uVar25 = uVar12 >> uVar14 | uVar12 << 0x40 - uVar14; uVar17 = (((uint64_t)((uint32_t)uVar25 & 7) - (uint64_t)(uVar24 << 3)) - (uint64_t)(uVar25 < 0x10)) + 0x1c8; uVar25 = 0x6f; if (uVar17 < 0x6f) { uVar25 = uVar17; } uVar24 = 0; if (uVar12 != 0) { uVar24 = (int32_t)uVar12 - 1U >> 4; } uVar23 = (uint32_t)uVar25; if (uVar12 < 0x101) { uVar23 = uVar24; } } else { if (*pcVar21 != '\0') { pcVar9 = (code *)swi(3); (*pcVar9)(); return; } iVar28 = 0x3f; if (uVar12 != 0) { for (; uVar12 >> iVar28 == 0; iVar28 = iVar28 + -1) { } } uVar24 = (uint32_t)iVar28 ^ 0x3f; uVar14 = 0x3cU - (char)uVar24 & 0x3f; uVar25 = uVar12 >> uVar14 | uVar12 << 0x40 - uVar14; uVar17 = (((uint64_t)((uint32_t)uVar25 & 7) - (uint64_t)(uVar24 << 3)) - (uint64_t)(uVar25 < 0x10)) + 0x1c8; uVar25 = 0x6f; if (uVar17 < 0x6f) { uVar25 = uVar17; } uVar24 = 0; if (uVar12 != 0) { uVar24 = (int32_t)uVar12 - 1U >> 4; } uVar23 = (uint32_t)uVar25; if (uVar12 < 0x101) { uVar23 = uVar24; } uVar23 = ((uint16_t)uVar23 < 0x6e && 0xff < uVar12) | uVar23; } uVar22 = (uint16_t)uVar23; if (uVar22 != (uint16_t) ((int16_t)(((int32_t)*(int64_t *)(iVar27 + 0x10) - (int32_t)pcVar21) - 200U >> 4) * -0x5555)) { pcVar9 = (code *)swi(3); (*pcVar9)(); return; } uVar24 = uVar23 + 0x39 & 0xffff; uVar15 = (uint8_t)(uVar24 >> 3); uVar14 = uVar15 - 4; if (uVar24 >> 3 == 0) { uVar14 = uVar15; } uVar12 = ((uint64_t)(uVar23 + 0x39 & 7) | 8) << (uVar14 & 0x3f); if (uVar22 < 0x10) { uVar12 = (uint64_t)((uVar23 & 0xffff) << 4) + 0x10; } if (uVar12 != *(uint32_t *)(*(int64_t *)(iVar27 + 0x10) + 0x18)) { pcVar9 = (code *)swi(3); (*pcVar9)(); return; } } else { uVar12 = (uint64_t)*(uint32_t *)(*(int64_t *)(iVar27 + 0x10) + 0x18); uVar22 = (int16_t)(((int32_t)*(int64_t *)(iVar27 + 0x10) - (int32_t)pcVar21) - 200U >> 4 ) * -0x5555; } *(uint16_t *)((int64_t)*(undefined **)0x20 + -0x40) = uVar22; *(uint64_t *)((int64_t)*(undefined **)0x20 + -0x38) = uVar12; if (pcVar21[0x10] == '\x01') { if (((uint64_t)puVar18 & 0xfff) == 0) goto code_r0x00018005e4ab; puVar26 = (uint32_t *)((int64_t)puVar18 + (uVar12 - 4)); while( true ) { uVar24 = *puVar26; if ((uVar24 & 0x3fffffff) != 1) { *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x70) = 0x18005e4d4; func_0x000185093f40(pcVar21, iVar27, puVar18); } LOCK(); *puVar26 = *puVar26 | 0x80000000; UNLOCK(); uVar23 = *puVar26; do { LOCK(); uVar11 = *puVar26; bVar29 = uVar23 == uVar11; if (bVar29) { *puVar26 = uVar23 & 0xfffffffe; uVar11 = uVar23; } uVar23 = uVar11; UNLOCK(); } while (!bVar29); if ((uVar23 & 1) != 0) break; *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x70) = 0x18005e4ab; uVar13 = func_0x0001839bb150(uVar23, puVar18, iVar27); code_r0x00018005e4ab: puVar26 = (uint32_t *) (((uint32_t)((uint64_t)puVar18 >> 9) & 0xff8) + uVar13 + 0x2000); } if ((uVar23 & 0x3ffffffe) == 0) goto code_r0x00018005e406; if ((uVar24 & 0x3fffffff) == 1) { pcVar9 = (code *)swi(3); (*pcVar9)(); return; } LOCK(); *(uint64_t *)(pcVar21 + 0x1610) = *(int64_t *)(pcVar21 + 0x1610) + (uint64_t)*(uint32_t *)(*(int64_t *)(iVar27 + 0x10) + 0x18); UNLOCK(); LOCK(); *(int64_t *)(pcVar21 + 0x1618) = *(int64_t *)(pcVar21 + 0x1618) + 1; UNLOCK(); LOCK(); *(uint64_t *)(pcVar21 + 0x1620) = *(int64_t *)(pcVar21 + 0x1620) + (uint64_t)*(uint32_t *)(*(int64_t *)(iVar27 + 0x10) + 0x18); UNLOCK(); LOCK(); *(int64_t *)(pcVar21 + 0x1628) = *(int64_t *)(pcVar21 + 0x1628) + 1; UNLOCK(); } else { code_r0x00018005e406: if (pcVar21[1] == '\x01') { uVar12 = *(uint64_t *)(pcVar21 + 8); if (*(char *)(*(int64_t *) (*(int64_t *)(unaff_GS_OFFSET + 0x58) + (uint64_t)*(uint32_t *)0x191d832e0 * 8) + 8) == '\0') { *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x70) = 0x18005e435; func_0x000185f007dc(); } if (3 < uVar12) { // WARNING: Does not return pcVar9 = (code *)invalidInstructionException(); (*pcVar9)(); } uVar12 = *(uint64_t *) (*(int64_t *) (*(int64_t *)(unaff_GS_OFFSET + 0x58) + (uint64_t)*(uint32_t *)0x191d832e0 * 8) + 0x540 + uVar12 * 8); if (1 < uVar12) { *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x70) = 0x18005e47b; func_0x000183279290(uVar12 + 0x528, puVar18, iVar27, (undefined *)((int64_t)*(undefined **)0x20 + -0x40)); goto code_r0x00018005e47b; } } *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x70) = 0x18005e52f; func_0x0001832781f0(pcVar21 + 0x36c0, puVar18, iVar27, (undefined *)((int64_t)*(undefined **)0x20 + -0x40)); } code_r0x00018005e47b: if (*(uint64_t *)0x191c71040 == (*(uint64_t *)((int64_t)*(undefined **)0x20 + -0x30) ^ (uint64_t)((int64_t)*(undefined **)0x20 + -0x68))) { return; } *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x70) = 0x18005e565; func_0x000185f05b40(*(uint64_t *)((int64_t)*(undefined **)0x20 + -0x30) ^ (uint64_t)((int64_t)*(undefined **)0x20 + -0x68)); } pcVar9 = (code *)swi(3); (*pcVar9)(); return; } if (*(uint64_t *)0x191c71040 == (*(uint64_t *)((int64_t)*(undefined **)0x20 + -0x30) ^ (uint64_t)((int64_t)*(undefined **)0x20 + -0x68))) { uVar6 = *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x28); uVar7 = *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x20); uVar8 = *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x18); if (puVar18 == (uint64_t *)0x0) { return; } iVar27 = 2; if ((((uint64_t)puVar18 & 0xfffffffc00000000) != *(uint64_t *)0x191cd6d08) && (iVar27 = 1, ((uint64_t)puVar18 & 0xfffffffc00000000) != *(uint64_t *)0x191cd6d00)) { iVar27 = (uint64_t) ((*(uint64_t *)0x191cd6d18 & (uint64_t)puVar18 & 0xffffffffffe00000) == *(uint64_t *)0x191cd6d10) * 3; } pcVar21 = *(char **)(*(int64_t *)(iVar27 * 8 + 0x191cd6d20) + ((uint64_t)puVar18 & 0xffffffffffe00000)); *(undefined8 *)((int64_t)*(undefined **)0x20 + -8) = *(undefined8 *)((int64_t)*(undefined **)0x20 + -8); *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x10) = *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x10); *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x18) = unaff_R12; *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x20) = uVar8; *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x28) = uVar7; *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x30) = unaff_RBP; *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x38) = uVar6; if ((((uint64_t)puVar18 & 0xfffffff800000000) != *(uint64_t *)0x191cd6d00) && ((*(uint64_t *)0x191cd6d18 & (uint64_t)puVar18) != *(uint64_t *)0x191cd6d10)) { pcVar9 = (code *)swi(3); (*pcVar9)(); return; } uVar13 = (uint64_t)puVar18 & 0xffffffffffe00000; uVar12 = (uint64_t)((uint32_t)((uint64_t)puVar18 >> 9) & 0xfe0); puVar19 = (undefined8 *) ((*(int64_t *)(pcVar21 + 0x88) + uVar13 + uVar12) - (uint64_t) ((*(uint8_t *)(uVar12 + 0x1e + *(int64_t *)(pcVar21 + 0x88) + uVar13) & 0x3f) << 5)); uVar12 = (uint64_t)*(uint32_t *)(pcVar21 + 0x80) + 0x20; if (uVar12 < 0xf0001) { if (*pcVar21 == '\x01') { iVar27 = 0x3f; if (uVar12 != 0) { for (; uVar12 >> iVar27 == 0; iVar27 = iVar27 + -1) { } } uVar24 = (uint32_t)iVar27 ^ 0x3f; uVar14 = 0x3cU - (char)uVar24 & 0x3f; uVar25 = uVar12 >> uVar14 | uVar12 << 0x40 - uVar14; uVar17 = (((uint64_t)((uint32_t)uVar25 & 7) - (uint64_t)(uVar24 << 3)) - (uint64_t)(uVar25 < 0x10)) + 0x1c8; uVar25 = 0x6f; if (uVar17 < 0x6f) { uVar25 = uVar17; } uVar23 = 0; if (uVar12 != 0) { uVar23 = (int32_t)uVar12 - 1U >> 4; } uVar24 = (uint32_t)uVar25; if (uVar12 < 0x101) { uVar24 = uVar23; } } else { if (*pcVar21 != '\0') { pcVar9 = (code *)swi(3); (*pcVar9)(); return; } iVar27 = 0x3f; if (uVar12 != 0) { for (; uVar12 >> iVar27 == 0; iVar27 = iVar27 + -1) { } } uVar24 = (uint32_t)iVar27 ^ 0x3f; uVar14 = 0x3cU - (char)uVar24 & 0x3f; uVar25 = uVar12 >> uVar14 | uVar12 << 0x40 - uVar14; uVar17 = (((uint64_t)((uint32_t)uVar25 & 7) - (uint64_t)(uVar24 << 3)) - (uint64_t)(uVar25 < 0x10)) + 0x1c8; uVar25 = 0x6f; if (uVar17 < 0x6f) { uVar25 = uVar17; } uVar24 = 0; if (uVar12 != 0) { uVar24 = (int32_t)uVar12 - 1U >> 4; } uVar23 = (uint32_t)uVar25; if (uVar12 < 0x101) { uVar23 = uVar24; } uVar24 = ((uint16_t)uVar23 < 0x6e && 0xff < uVar12) | uVar23; } if ((uint16_t)uVar24 != (uint16_t)((int16_t)(((int32_t)puVar19[2] - (int32_t)pcVar21) - 200U >> 4) * -0x5555)) { pcVar9 = (code *)swi(3); (*pcVar9)(); return; } uVar23 = (uVar24 + 0x39 & 0xffff) >> 3; uVar14 = (char)uVar23 - 4; if (uVar23 == 0) { uVar14 = 0; } uVar12 = ((uint64_t)(uVar24 + 0x39 & 7) | 8) << (uVar14 & 0x3f); if ((uint16_t)uVar24 < 0x10) { uVar12 = (uint64_t)((uVar24 & 0xffff) << 4) + 0x10; } if (uVar12 != *(uint32_t *)(puVar19[2] + 0x18)) { pcVar9 = (code *)swi(3); (*pcVar9)(); return; } } else { uVar12 = (uint64_t)*(uint32_t *)(puVar19[2] + 0x18); uVar24 = (((int32_t)puVar19[2] - (int32_t)pcVar21) - 200U >> 4) * -0x5555; } if (pcVar21[0x10] == '\x01') { if (((uint64_t)puVar18 & 0xfff) == 0) goto code_r0x00018005e090; puVar26 = (uint32_t *)((int64_t)puVar18 + (uVar12 - 4)); while( true ) { uVar23 = *puVar26; if ((uVar23 & 0x3fffffff) != 1) { *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x60) = 0x18005e0b9; func_0x000185093f40(pcVar21, puVar19, puVar18); } uVar11 = *puVar26; do { LOCK(); uVar1 = *puVar26; bVar29 = uVar11 == uVar1; if (bVar29) { *puVar26 = uVar11 & 0xfffffffe; uVar1 = uVar11; } uVar11 = uVar1; UNLOCK(); } while (!bVar29); if ((uVar11 & 1) != 0) break; *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x60) = 0x18005e090; uVar13 = func_0x0001839bb150(uVar11, puVar18, puVar19); code_r0x00018005e090: puVar26 = (uint32_t *)(((uint32_t)((uint64_t)puVar18 >> 9) & 0xff8) + uVar13 + 0x2000); } if ((uVar11 & 0x3ffffffe) != 0) { if ((uVar23 & 0x3fffffff) != 1) { LOCK(); *(uint64_t *)(pcVar21 + 0x1610) = *(int64_t *)(pcVar21 + 0x1610) + (uint64_t)*(uint32_t *)(puVar19[2] + 0x18); UNLOCK(); LOCK(); *(int64_t *)(pcVar21 + 0x1618) = *(int64_t *)(pcVar21 + 0x1618) + 1; UNLOCK(); LOCK(); *(uint64_t *)(pcVar21 + 0x1620) = *(int64_t *)(pcVar21 + 0x1620) + (uint64_t)*(uint32_t *)(puVar19[2] + 0x18); UNLOCK(); LOCK(); *(int64_t *)(pcVar21 + 0x1628) = *(int64_t *)(pcVar21 + 0x1628) + 1; UNLOCK(); return; } pcVar9 = (code *)swi(3); (*pcVar9)(); return; } } if (pcVar21[1] == '\x01') { uVar13 = *(uint64_t *)(pcVar21 + 8); if (*(char *)(*(int64_t *) (*(int64_t *)(unaff_GS_OFFSET + 0x58) + (uint64_t)*(uint32_t *)0x191d832e0 * 8) + 8) == '\0') { *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x60) = 0x18005dddf; func_0x000185f007dc(); } if (3 < uVar13) { // WARNING: Does not return pcVar9 = (code *)invalidInstructionException(); (*pcVar9)(); } piVar3 = *(int32_t **) (*(int64_t *) (*(int64_t *)(unaff_GS_OFFSET + 0x58) + (uint64_t)*(uint32_t *)0x191d832e0 * 8) + 0x540 + uVar13 * 8); if ((int32_t *)0x1 < piVar3) { if (uVar12 < 0xf0001) { *(int64_t *)(piVar3 + 0x10) = *(int64_t *)(piVar3 + 0x10) + 1; if ((uint16_t)uVar24 <= *(uint16_t *)0x191d0c420) { if ((uint16_t)uVar24 < 0x48) { uVar23 = (uVar24 & 0xffff) << 4; puVar20 = (uint64_t *)((int64_t)piVar3 + (uint64_t)uVar23 + 0x88); uVar24 = 4 - ((uint32_t)((uint64_t)puVar18 >> 4) & 3); uVar22 = *(uint16_t *)((int64_t)piVar3 + (uint64_t)uVar23 + 0x92) >> 4; if (uVar22 <= uVar24) { uVar24 = (uint32_t)uVar22; } puVar16 = puVar18; if (uVar22 != 0) { do { *(undefined4 *)puVar16 = 0xbadbad00; *(undefined4 *)((int64_t)puVar16 + 4) = 0xbadbad00; *(undefined4 *)(puVar16 + 1) = 0xbadbad00; *(undefined4 *)((int64_t)puVar16 + 0xc) = 0xbadbad00; uVar24 = uVar24 - 1; puVar16 = puVar16 + 2; } while (uVar24 != 0); } if (*puVar20 == 0) { uVar12 = 0; } else { uVar12 = ~*(uint64_t *)(piVar3 + 4) & *puVar20; uVar12 = uVar12 >> 0x38 | (uVar12 & 0xff000000000000) >> 0x28 | (uVar12 & 0xff0000000000) >> 0x18 | (uVar12 & 0xff00000000) >> 8 | (uVar12 & 0xff000000) << 8 | (uVar12 & 0xff0000) << 0x18 | (uVar12 & 0xff00) << 0x28 | uVar12 << 0x38; } *puVar18 = uVar12; puVar18[1] = ~uVar12; *puVar20 = (uint64_t)puVar18; uVar15 = *(char *)((int64_t)piVar3 + (uint64_t)uVar23 + 0x90) + 1; *(uint8_t *)((int64_t)piVar3 + (uint64_t)uVar23 + 0x90) = uVar15; *piVar3 = *piVar3 + (uint32_t) *(uint16_t *)((int64_t)piVar3 + (uint64_t)uVar23 + 0x92) ; *(int64_t *)(piVar3 + 0x12) = *(int64_t *)(piVar3 + 0x12) + 1; uVar14 = *(uint8_t *)((int64_t)piVar3 + (uint64_t)uVar23 + 0x91); if (uVar14 < uVar15) { *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x60) = 0x18005e10c; func_0x00018424e5f0(piVar3, puVar20, uVar14 >> 1); } if ((char)piVar3[1] == '\x01') { *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x60) = 0x18005e07e; func_0x00018424f7c0(piVar3); } uVar22 = *(uint16_t *)((int64_t)piVar3 + (uint64_t)uVar23 + 0x92); uVar24 = *(uint32_t *)(pcVar21 + 0x80); *(int64_t *)(piVar3 + 0x1e) = *(int64_t *)(piVar3 + 0x1e) + 1; *(uint64_t *)(piVar3 + 0x20) = *(int64_t *)(piVar3 + 0x20) + ((uint64_t)uVar22 - (uint64_t)uVar24); return; } // WARNING: Does not return pcVar9 = (code *)invalidInstructionException(); (*pcVar9)(); } *(int64_t *)(piVar3 + 0x14) = *(int64_t *)(piVar3 + 0x14) + 1; } if (*(int32_t *)(puVar19 + 3) < 0) { uVar13 = puVar19[4]; } else { uVar13 = (uint64_t)*(uint32_t *)(puVar19[2] + 0x18); } uVar24 = *(uint32_t *)(pcVar21 + 0x80); *(int64_t *)(piVar3 + 0x1e) = *(int64_t *)(piVar3 + 0x1e) + 1; *(uint64_t *)(piVar3 + 0x20) = *(int64_t *)(piVar3 + 0x20) + (uVar13 - uVar24); } } if (pcVar21[2] == '\x01') { *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x60) = 0x18005e15e; func_0x00018beef010(puVar18, puVar19, 0); *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x60) = 0x18005e168; func_0x00018beef070(0, uVar12); LOCK(); *(uint64_t *)(pcVar21 + 0x3848) = *(int64_t *)(pcVar21 + 0x3848) + uVar12; UNLOCK(); return; } *puVar18 = 0; if (((pcVar21[0x40] == '\x01') && (pcVar2 = (char *)puVar19[2], pcVar2 <= pcVar21 + 0x1598 && pcVar21 + 200 <= pcVar2)) && ((uint64_t)((*(uint32_t *)(pcVar2 + 0x1c) & 0xff) << 0xc) * *(int64_t *)(pcVar2 + 0x20) >> 0x2b != 0)) { if (*(int32_t *)(puVar19 + 3) < 0) { uVar12 = puVar19[4]; } else { uVar12 = (uint64_t)*(uint32_t *)(pcVar2 + 0x18); } uVar24 = *(uint32_t *)(pcVar21 + 0x80); *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x60) = 0x18005df8e; func_0x000185f5a0c0(puVar18, 0, uVar12 - uVar24); } LOCK(); *(uint64_t *)(pcVar21 + 0x15f0) = *(int64_t *)(pcVar21 + 0x15f0) - (uint64_t)*(uint32_t *)(puVar19[2] + 0x18); UNLOCK(); pcVar21 = pcVar21 + 0xc0; *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x60) = 0x18005dfad; cVar10 = (*(code *)0x11c22ea4)(pcVar21); if (cVar10 == '\0') { *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x60) = 0x18005dfb9; func_0x00018437fac0(pcVar21); } puVar20 = (uint64_t *)*puVar19; if (puVar20 == puVar18) { pcVar9 = (code *)swi(3); (*pcVar9)(); return; } if (puVar20 == (uint64_t *)0x0) { uVar12 = 0; } else { uVar12 = 0xfffffffc00000000; if (((((uint64_t)puVar20 & 0xfffffffc00000000) != *(uint64_t *)0x191cd6d08) && (((uint64_t)puVar20 & 0xfffffffc00000000) != *(uint64_t *)0x191cd6d00)) && (uVar12 = *(uint64_t *)0x191cd6d18, (*(uint64_t *)0x191cd6d18 & (uint64_t)puVar20) != *(uint64_t *)0x191cd6d10)) { pcVar9 = (code *)swi(3); (*pcVar9)(); return; } uVar12 = ~uVar12 & (uint64_t)puVar20; uVar12 = uVar12 >> 0x38 | (uVar12 & 0xff000000000000) >> 0x28 | (uVar12 & 0xff0000000000) >> 0x18 | (uVar12 & 0xff00000000) >> 8 | (uVar12 & 0xff000000) << 8 | (uVar12 & 0xff0000) << 0x18 | (uVar12 & 0xff00) << 0x28 | uVar12 << 0x38; } *puVar18 = uVar12; puVar18[1] = ~uVar12; *puVar19 = puVar18; *(uint8_t *)((int64_t)puVar19 + 0x1c) = *(uint8_t *)((int64_t)puVar19 + 0x1c) & 0xfe; uVar24 = *(uint32_t *)(puVar19 + 3); if ((uVar24 & 0x7fff) != 0) { uVar23 = uVar24 - 1 & 0x7fff; *(uint32_t *)(puVar19 + 3) = uVar24 & 0xffff8000 | uVar23; if (((uVar24 >> 0x1e & 1) != 0) || (uVar23 == 0)) { *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x60) = 0x18005e142; func_0x00018424ed20(puVar19, 1); } (*(code *)0x11c22954)(pcVar21); return; } pcVar9 = (code *)swi(3); (*pcVar9)(); return; } } else { code_r0x0001841dcc43: if (*(uint64_t *)0x191c71040 == (*(uint64_t *)((int64_t)*(undefined **)0x20 + -0x30) ^ (uint64_t)((int64_t)*(undefined **)0x20 + -0x68))) { (*case.0x183453f4a.0)(puVar18, 0x20, 0); return; } } code_r0x0001841dcced: *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x70) = 0x1841dccfa; func_0x000185f05b40(*(uint64_t *)((int64_t)*(undefined **)0x20 + -0x30) ^ (uint64_t)((int64_t)*(undefined **)0x20 + -0x68)); code_r0x0001841dccfa: if (puVar18 != (uint64_t *)0x0) { *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x70) = 0x1841dcd08; iVar27 = func_0x00018ada0da0(); uVar12 = (uint64_t) ((uint32_t)((uint64_t)((int64_t)puVar18 * 0x4bfdb9df5a6f243b) >> 0x20) & *(uint32_t *)(iVar27 + 0x28)); if (*(uint64_t *)(iVar27 + 0x10) <= uVar12) { // WARNING: Does not return pcVar9 = (code *)invalidInstructionException(); (*pcVar9)(); } iVar27 = *(int64_t *)(iVar27 + 8); *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x38) = puVar18; *(undefined8 **)((int64_t)*(undefined **)0x20 + -0x48) = (undefined8 *)((int64_t)*(undefined **)0x20 + -0x38); *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x40) = 8; *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x70) = 0x1841dcd49; uVar13 = func_0x000184ac7310(); iVar28 = uVar12 * 0x10; if ((~*(uint64_t *)(iVar27 + 8 + iVar28) & (1LL << ((uint8_t)(uVar13 >> 6) & 0x3f) | 1LL << (uVar13 & 0x3f) | 1LL << (uVar13 >> 0xc & 0x3f) | 1LL << (uVar13 >> 0x12 & 0x3f) | 1LL << (uVar13 >> 0x18 & 0x3f) | 1LL << (uVar13 >> 0x1e & 0x3f) | 1LL << (uVar13 >> 0x24 & 0x3f) | 1LL << (uVar13 >> 0x2a & 0x3f))) == 0) { for (puVar19 = *(undefined8 **)(iVar27 + iVar28); puVar19 != (undefined8 *)0x0; puVar19 = (undefined8 *)puVar19[1]) { if ((uint64_t *)*puVar19 == puVar18) { *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x70) = 0x1841dcdca; cVar10 = func_0x00018ada0800(); if (cVar10 == '\0') { *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x70) = 0x1841dcddd; func_0x00018ada0e70(unaff_RBX, puVar18); } break; } } } } } while( true ); } } return; } [{"offset":6497320320,"name":"fcn.183453d80","size":54485985,"is-pure":false,"realsz":2993,"noreturn":false,"stackframe":104,"calltype":"ms","cost":936,"cc":100,"loops":27,"bits":64,"type":"fcn","nbbs":147,"edges":203,"ebbs":20,"signature":"fcn.183453d80(int64_t arg1);","minbound":6442834800,"maxbound":6497320785,"callrefs":[{"from":6442835090,"to":6442835190,"type":"CODE"},{"from":6442835418,"to":6542067676,"type":"CALL"},{"from":6442835699,"to":6442835603,"type":"CODE"},{"from":6442835849,"to":6542434496,"type":"CALL"},{"from":6442835879,"to":6740380256,"type":"CALL"},{"from":6442835892,"to":6513228480,"type":"CALL"},{"from":6442836084,"to":6442835987,"type":"CODE"},{"from":6442836089,"to":6511982528,"type":"CALL"},{"from":6442836094,"to":6442835658,"type":"CODE"},{"from":6442836107,"to":6502986064,"type":"CALL"},{"from":6442836134,"to":6442835324,"type":"CODE"},{"from":6442836148,"to":6526943040,"type":"CALL"},{"from":6442836153,"to":6442835342,"type":"CODE"},{"from":6442836213,"to":6442835682,"type":"CODE"},{"from":6442836231,"to":6511977968,"type":"CALL"},{"from":6442836236,"to":6442835646,"type":"CODE"},{"from":6442836267,"to":6442835297,"type":"CODE"},{"from":6442836285,"to":6511979808,"type":"CALL"},{"from":6442836290,"to":6442836058,"type":"CODE"},{"from":6442836299,"to":6442835724,"type":"CODE"},{"from":6442836313,"to":6642659344,"type":"CALL"},{"from":6442836323,"to":6642659440,"type":"CALL"},{"from":6442836336,"to":6442835682,"type":"CODE"},{"from":6442836345,"to":6442835835,"type":"CODE"},{"from":6442836694,"to":6442836794,"type":"CODE"},{"from":6442837040,"to":6542067676,"type":"CALL"},{"from":6442837110,"to":6495376016,"type":"CALL"},{"from":6442837158,"to":6502986064,"type":"CALL"},{"from":6442837185,"to":6442836938,"type":"CODE"},{"from":6442837199,"to":6526943040,"type":"CALL"},{"from":6442837204,"to":6442836956,"type":"CODE"},{"from":6442837264,"to":6442837115,"type":"CODE"},{"from":6442837290,"to":6495371760,"type":"CALL"},{"from":6442837295,"to":6442837115,"type":"CODE"},{"from":6442837326,"to":6442836900,"type":"CODE"},{"from":6442837344,"to":6542089024,"type":"CALL"},{"from":6497320397,"to":6511733920,"type":"CALL"},{"from":6497320416,"to":6740346544,"type":"CALL"},{"from":6497320513,"to":6497320464,"type":"CODE"},{"from":6497320525,"to":6740346544,"type":"CALL"},{"from":6497320565,"to":6511512544,"type":"CALL"},{"from":6497320570,"to":6497320464,"type":"CODE"},{"from":6497320586,"to":6497320445,"type":"CODE"},{"from":6497320601,"to":6740346544,"type":"CALL"},{"from":6497320641,"to":6511512544,"type":"CALL"},{"from":6497320646,"to":6497320445,"type":"CODE"},{"from":6497320654,"to":6740346544,"type":"CALL"},{"from":6497320660,"to":6497320464,"type":"CODE"},{"from":6497320668,"to":6740346544,"type":"CALL"},{"from":6497320674,"to":6497320445,"type":"CODE"},{"from":6497320693,"to":6497320487,"type":"CODE"},{"from":6497320708,"to":6740346544,"type":"CALL"},{"from":6497320759,"to":6511512544,"type":"CODE"},{"from":6497320778,"to":6497320740,"type":"CODE"},{"from":6497320778,"to":6542091152,"type":"CODE"},{"from":6497320778,"to":6542433696,"type":"CODE"},{"from":6497320778,"to":6542433728,"type":"CODE"}],"datarefs":[{"from":6442834836,"to":6741126400,"type":"DATA"},{"from":6442834845,"to":6741126424,"type":"DATA"},{"from":6442834855,"to":6741126416,"type":"DATA"},{"from":6442835390,"to":6741832416,"type":"DATA"},{"from":6442835433,"to":6741832416,"type":"DATA"},{"from":6442835487,"to":6741345312,"type":"DATA"},{"from":6442835561,"to":6724160688,"type":"DATA"},{"from":6442835934,"to":6741126408,"type":"DATA"},{"from":6442835943,"to":6741126400,"type":"DATA"},{"from":6442835952,"to":6741126424,"type":"DATA"},{"from":6442835965,"to":6741126416,"type":"DATA"},{"from":6442836075,"to":6740379744,"type":"DATA"},{"from":6442836400,"to":6740709440,"type":"DATA"},{"from":6442836431,"to":6741126400,"type":"DATA"},{"from":6442836440,"to":6741126424,"type":"DATA"},{"from":6442836450,"to":6741126416,"type":"DATA"},{"from":6442837012,"to":6741832416,"type":"DATA"},{"from":6442837055,"to":6741832416,"type":"DATA"},{"from":6442837123,"to":6740709440,"type":"DATA"},{"from":6497320384,"to":6720326400,"type":"DATA"},{"from":6497320545,"to":6545635632,"type":"DATA"},{"from":6497320621,"to":6545635632,"type":"DATA"},{"from":6497320728,"to":6545635632,"type":"DATA"},{"from":6497320778,"to":6740346544,"type":"DATA"}],"codexrefs":[{"from":6442835090,"to":6442835190,"type":"CODE"},{"from":6442835699,"to":6442835603,"type":"CODE"},{"from":6442836084,"to":6442835987,"type":"CODE"},{"from":6442836094,"to":6442835658,"type":"CODE"},{"from":6442836134,"to":6442835324,"type":"CODE"},{"from":6442836153,"to":6442835342,"type":"CODE"},{"from":6442836213,"to":6442835682,"type":"CODE"},{"from":6442836236,"to":6442835646,"type":"CODE"},{"from":6442836267,"to":6442835297,"type":"CODE"},{"from":6442836290,"to":6442836058,"type":"CODE"},{"from":6442836299,"to":6442835724,"type":"CODE"},{"from":6442836336,"to":6442835682,"type":"CODE"},{"from":6442836345,"to":6442835835,"type":"CODE"},{"from":6442836694,"to":6442836794,"type":"CODE"},{"from":6442837185,"to":6442836938,"type":"CODE"},{"from":6442837204,"to":6442836956,"type":"CODE"},{"from":6442837264,"to":6442837115,"type":"CODE"},{"from":6442837295,"to":6442837115,"type":"CODE"},{"from":6442837326,"to":6442836900,"type":"CODE"},{"from":6497320513,"to":6497320464,"type":"CODE"},{"from":6497320570,"to":6497320464,"type":"CODE"},{"from":6497320586,"to":6497320445,"type":"CODE"},{"from":6497320646,"to":6497320445,"type":"CODE"},{"from":6497320660,"to":6497320464,"type":"CODE"},{"from":6497320674,"to":6497320445,"type":"CODE"},{"from":6497320693,"to":6497320487,"type":"CODE"},{"from":6497320778,"to":6497320740,"type":"CODE"},{"from":6511396639,"to":6442834800,"type":"CODE"},{"from":6511396767,"to":6442836384,"type":"CODE"}],"dataxrefs":[],"indegree":29,"outdegree":26,"nlocals":4,"nargs":1,"stackvars":[{"name":"var_48h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-72}},{"name":"var_40h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-64}},{"name":"var_38h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-56}},{"name":"var_30h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-48}}],"regvars":[{"name":"arg1","arg":true,"type":"int64_t","storage":{"type":"reg","reg":"rcx"}}]}]