0x1837e8aa0 | 0x1837e8aa0 |// WARNING: [rz-ghidra] Detected overlap for variable var_49h 0x1837e8aa0 |// WARNING: [rz-ghidra] Detected overlap for variable var_71h 0x1837e8aa0 |// WARNING: [rz-ghidra] Detected overlap for variable var_d8h 0x1837e8aa0 |// WARNING: [rz-ghidra] Detected overlap for variable var_59h 0x1837e8aa0 |// WARNING: [rz-ghidra] Detected overlap for variable var_70h | 0x1837e8aa0 |uint64_t fcn.1837e8aa0(int64_t arg1, int64_t arg2) |{ | int32_t iVar1; | uint64_t *puVar2; | undefined8 uVar3; | code *pcVar4; | int64_t iVar5; | int32_t iVar6; | uint32_t uVar7; | undefined8 uVar8; | int64_t iVar9; | int64_t iVar10; | uint64_t uVar11; | int32_t *piVar12; | uint64_t uVar13; | uint64_t uVar14; | int64_t *piVar15; | uint8_t uVar16; | uint64_t *puVar17; | uint64_t *puVar18; | char in_R8B; | int32_t *piVar19; | int64_t unaff_GS_OFFSET; | undefined auStack_108 [47]; | int64_t var_d9h; | int64_t var_d0h; | int64_t var_c8h; | uint64_t uStack_c0; | int64_t var_b8h; | int64_t iStack_b0; | int64_t var_a8h; | undefined *puStack_a0; | undefined *puStack_98; | int64_t var_88h; | int64_t var_80h; | int64_t var_78h; | int64_t *var_70h; | undefined8 uStack_68; | undefined var_59h; | int64_t var_58h; | undefined var_49h; | int64_t var_48h; | 0x1837e8ac0 | var_48h = *(uint64_t *)0x191c71040 ^ (uint64_t)auStack_108; 0x1837e8acb | puVar2 = *(uint64_t **)(arg1 + 0x40); 0x1837e8ada | iVar9 = *(int64_t *)(arg1 + 0x48) * 0x30; 0x1837e8ae4 | puVar17 = puVar2; 0x1837e8ae4 | if (iVar9 != 0) { 0x1837e8afe | uVar11 = (iVar9 >> 4) * -0x5555555555555555; | do { 0x1837e8b15 | uVar14 = uVar11 >> 1; 0x1837e8b24 | uVar13 = uVar14; 0x1837e8b24 | if (puVar17[uVar14 * 6] < (uint64_t)arg2) { 0x1837e8b03 | uVar13 = ~uVar14 + uVar11; 0x1837e8b09 | puVar17 = puVar17 + uVar14 * 6 + 6; | } 0x1837e8b13 | uVar11 = uVar13; 0x1837e8b13 | } while (uVar13 != 0); | } 0x1837e8b61 | if ((puVar17 == puVar2 + *(int64_t *)(arg1 + 0x48) * 6) || ((uint64_t)arg2 < *puVar17)) { 0x1837e8b63 | uVar11 = 0; | } else { 0x1837e8bb7 | var_88h = 0; 0x1837e8bb7 | var_80h = 0; 0x1837e8bbf | var_78h = 0; 0x1837e8bcf | var_d9h._0_1_ = in_R8B; 0x1837e8bcf | if (*(char *)((int64_t)puVar17 + 0x1f) < '\0') { 0x1837e8ba0 | func_0x0001841dd0f0(&var_88h, puVar17[1], puVar17[2]); | } else { 0x1837e8bd5 | var_78h = puVar17[3]; 0x1837e8be1 | var_88h = puVar17[1]; 0x1837e8be1 | var_80h = puVar17[2]; | } 0x1837e8bec | iVar1 = (int32_t)puVar17[4]; 0x1837e8bef | var_49h = 0; 0x1837e8bff | uVar3 = *(undefined8 *)(arg1 + 8); 0x1837e8c03 | var_58h = arg2; 0x1837e8c03 | uVar8 = func_0x000180dc4ff0(); 0x1837e8c11 | iVar9 = func_0x000184300b20(uVar8, uVar3, 1); 0x1837e8c24 | if (arg2 != 0 && iVar9 != 0) { 0x1837e8c2a | puStack_98 = &var_59h; 0x1837e8c32 | var_59h = 0; 0x1837e8c35 | var_a8h = (int64_t)&var_58h; 0x1837e8c3d | var_70h = &var_a8h; 0x1837e8c45 | puStack_a0 = &var_49h; 0x1837e8c64 | uStack_68 = 0x1837f8ae0; 0x1837e8c26 | func_0x0001812baa60(iVar9 + 8, &var_70h, 0, 0); | } 0x1837e8c7f | func_0x0001837e9a70(arg1, arg2); 0x1837e8c84 | var_d0h = puVar17[5]; 0x1837e8c88 | puVar17[5] = 0; 0x1837e8c90 | iVar10 = *(int64_t *)(arg1 + 0x40); 0x1837e8c94 | iVar9 = *(int64_t *)(arg1 + 0x48); 0x1837e8c9f | iVar5 = iVar9 * 0x30; 0x1837e8caa | if ((uint64_t *)(iVar10 + iVar5) == puVar17) { 0x1837e90c2 | pcVar4 = (code *)swi(3); 0x1837e90c2 | uVar11 = (*pcVar4)(); 0x1837e90c2 | return uVar11; | } 0x1837e8cd6 | if ((int64_t)puVar17 + (0x30 - iVar10) != iVar5) { 0x1837e8cf3 | unique0x1000074d = arg1; | do { 0x1837e8d98 | if ((*puVar17 & 0xfffffffc00000000) == *(uint64_t *)0x191cd6d08) { 0x1837e8d16 | func_0x00018005f390(); | } 0x1837e8d20 | *puVar17 = puVar17[6]; 0x1837e8d25 | puVar17[6] = 0; 0x1837e8d34 | if (*(char *)((int64_t)puVar17 + 0x1f) < '\0') { 0x1837e8d0f | func_0x0001841dcbe0(puVar17[1], puVar17[3] & 0x7fffffffffffffff); | } 0x1837e8d42 | puVar17[3] = puVar17[9]; 0x1837e8d49 | *(int32_t *)(puVar17 + 1) = (int32_t)puVar17[7]; 0x1837e8d49 | *(undefined4 *)((int64_t)puVar17 + 0xc) = *(undefined4 *)((int64_t)puVar17 + 0x3c); 0x1837e8d49 | *(int32_t *)(puVar17 + 2) = (int32_t)puVar17[8]; 0x1837e8d49 | *(undefined4 *)((int64_t)puVar17 + 0x14) = *(undefined4 *)((int64_t)puVar17 + 0x44); 0x1837e8d4d | *(undefined *)((int64_t)puVar17 + 0x4f) = 0; 0x1837e8d51 | *(undefined *)(puVar17 + 7) = 0; 0x1837e8d57 | *(int32_t *)(puVar17 + 4) = (int32_t)puVar17[10]; 0x1837e8d5a | uVar11 = puVar17[0xb]; 0x1837e8d5e | puVar17[0xb] = 0; 0x1837e8d66 | uVar13 = puVar17[5]; 0x1837e8d6a | puVar17[5] = uVar11; 0x1837e8d71 | if (uVar13 != 0) { 0x1837e8d78 | func_0x0001837f1a30(uVar13, 1); | } 0x1837e8d7d | puVar17 = puVar17 + 6; 0x1837e8d84 | } while ((uint64_t *)(iVar10 + iVar5 + -0x30) != puVar17); 0x1837e8da9 | iVar10 = *(int64_t *)(stack0xffffffffffffff28 + 0x40); 0x1837e8dad | iVar9 = *(int64_t *)(stack0xffffffffffffff28 + 0x48); 0x1837e8db1 | arg1 = stack0xffffffffffffff28; | } 0x1837e8dd3 | if (puVar17 != (uint64_t *)(iVar10 + iVar9 * 0x30)) { 0x1837e8de0 | puVar2 = (uint64_t *)(iVar9 * 0x30 + iVar10); | do { 0x1837e8ddc | puVar18 = puVar2 + -6; 0x1837e8e1c | if (puVar18 == (uint64_t *)0x0) { 0x1837e90ad | // WARNING: Does not return 0x1837e90ad | pcVar4 = (code *)invalidInstructionException(); 0x1837e90ad | (*pcVar4)(); | } 0x1837e8e22 | uVar11 = puVar2[-1]; 0x1837e8e26 | puVar2[-1] = 0; 0x1837e8e31 | if (uVar11 != 0) { 0x1837e8e38 | func_0x0001837f1a30(uVar11, 1); | } 0x1837e8e41 | if (*(char *)((int64_t)puVar2 + -0x11) < '\0') { 0x1837e8ded | func_0x0001841dcbe0(puVar2[-5], puVar2[-3] & 0x7fffffffffffffff); | } 0x1837e8e02 | if ((*puVar18 & 0xfffffffc00000000) == *(uint64_t *)0x191cd6d08) { 0x1837e8e04 | func_0x00018005f390(); | } 0x1837e8e09 | *puVar18 = 0; 0x1837e8e17 | puVar2 = puVar18; 0x1837e8e17 | } while (puVar18 != puVar17); 0x1837e8e48 | iVar10 = *(int64_t *)(arg1 + 0x40); | } 0x1837e8e4c | iVar9 = var_d0h; 0x1837e8e61 | *(int64_t *)(arg1 + 0x48) = ((int64_t)puVar17 - iVar10 >> 4) * -0x5555555555555555; 0x1837e8e71 | if (*(int64_t *)(var_d0h + 0x18) != 0) { 0x1837e8e6a | func_0x000184a86230(*(int64_t *)(var_d0h + 0x18) + 8, 0x190b5ece8); | } 0x1837e8e88 | func_0x000180f4f6b0(iVar9, 0); 0x1837e8ea0 | piVar15 = *(int64_t **) 0x1837e8e9c | (*(int64_t *)(*(int64_t *)(unaff_GS_OFFSET + 0x58) + (uint64_t)*(uint32_t *)0x191d832e0 * 8) + 0x3d8) | ; 0x1837e8eb6 | if ((piVar15 == (int64_t *)0x0) || (iVar10 = *piVar15, iVar10 == 0)) goto code_r0x0001837e90bf; 0x1837e8eca | func_0x000184339cd0(&var_a8h, 0x190c22a98, 0x190c22a48, 0x369); 0x1837e8ef5 | (*(code *)0x185f59da0)(iVar10, &var_a8h, 0x1837f82b0, iVar9); 0x1837e8f05 | if (*(int64_t *)(arg1 + 0x120) != 0) { 0x1837e8efb | func_0x0001837fa420(*(int64_t *)(arg1 + 0x120), arg2); | } 0x1837e8f0f | piVar12 = *(int32_t **)(arg1 + 0x28); 0x1837e8f17 | iVar9 = *(int64_t *)(arg1 + 0x30) * 0x20; 0x1837e8f1e | piVar19 = piVar12; 0x1837e8f1e | if (iVar9 != 0) { 0x1837e8f2d | uVar11 = iVar9 >> 5; | do { 0x1837e8f44 | uVar14 = uVar11 >> 1; 0x1837e8f52 | uVar13 = uVar14; 0x1837e8f52 | if (piVar19[uVar14 * 8] < iVar1) { 0x1837e8f32 | uVar13 = ~uVar14 + uVar11; 0x1837e8f38 | piVar19 = piVar19 + uVar14 * 8 + 8; | } 0x1837e8f42 | uVar11 = uVar13; 0x1837e8f42 | } while (uVar13 != 0); | } 0x1837e8f64 | if ((piVar19 != piVar12 + *(int64_t *)(arg1 + 0x30) * 8) && (*piVar19 <= iVar1)) { 0x1837e8f66 | iVar9 = (int64_t)*(char *)((int64_t)piVar19 + 0x1f); 0x1837e8f71 | if (iVar9 < 0) { 0x1837e8f73 | iVar9 = *(int64_t *)(piVar19 + 4); | } 0x1837e8f86 | iVar10 = (int64_t)(char)var_78h._7_1_; 0x1837e8f86 | if ((int64_t)(char)var_78h._7_1_ < 0) { 0x1837e8f88 | iVar10 = var_80h; | } 0x1837e8f93 | if (iVar9 == iVar10) { 0x1837e8f97 | piVar15 = (int64_t *)var_88h; 0x1837e8f97 | if (-1 < var_78h) { 0x1837e8fa1 | piVar15 = &var_88h; | } 0x1837e8fad | if (*(char *)((int64_t)piVar19 + 0x1f) < '\0') { 0x1837e8fb5 | piVar12 = *(int32_t **)(piVar19 + 2); | } else { 0x1837e8faf | piVar12 = piVar19 + 2; | } 0x1837e8fb9 | iVar6 = func_0x000185f59f10(piVar12, piVar15); 0x1837e8fc0 | if (iVar6 == 0) { 0x1837e8fc2 | func_0x0001837ea3b0(arg1 + 0x28, &var_a8h, piVar19); | } | } | } 0x1837e8fd3 | piVar15 = &var_88h; 0x1837e8fdb | uVar16 = var_78h._7_1_; 0x1837e8fe6 | var_b8h = var_88h; 0x1837e8fe6 | iStack_b0 = var_80h; 0x1837e8fe6 | if (-1 < (int64_t)(char)var_78h._7_1_) { 0x1837e8fee | var_b8h = (int64_t)piVar15; 0x1837e8fee | iStack_b0 = (int64_t)(char)var_78h._7_1_; | } 0x1837e900a | var_a8h = 0; 0x1837e900a | puStack_a0 = (undefined *)0x0; 0x1837e8ffe | func_0x0001837f07a0(arg1 + 0x10, &var_a8h); 0x1837e9019 | uVar11 = 0; 0x1837e9038 | if (((undefined *)var_a8h != puStack_a0) && 0x1837e9038 | (uVar11 = 0, var_a8h != *(int64_t *)(arg1 + 0x18) * 0x20 + *(int64_t *)(arg1 + 0x10))) { 0x1837e9045 | if (*(int64_t *)(var_a8h + 0x18) == 0) { 0x1837e8b28 | uVar11 = 0; | } else { 0x1837e904d | uVar7 = func_0x0001837f9820(*(int64_t *)(var_a8h + 0x18), iVar1); 0x1837e9052 | uVar11 = (uint64_t)uVar7; 0x1837e9061 | uVar16 = var_78h._7_1_; 0x1837e906a | if (((char)var_d9h != '\0') && ((char)uVar7 != '\0')) { 0x1837e9070 | uStack_c0 = (uint64_t)var_78h._7_1_; 0x1837e907d | if (var_78h < 0) { 0x1837e9081 | piVar15 = (int64_t *)var_88h; 0x1837e9081 | uStack_c0 = var_80h; | } 0x1837e9099 | var_c8h = (int64_t)piVar15; 0x1837e9099 | uVar7 = func_0x0001837e7690(arg1); 0x1837e909e | uVar11 = (uint64_t)uVar7; 0x1837e90a8 | uVar16 = var_78h._7_1_; | } | } | } 0x1837e8b32 | if ((char)uVar16 < '\0') { 0x1837e8b47 | func_0x0001841dcbe0(var_88h, var_78h & 0x7fffffffffffffff); | } | } 0x1837e8b7b | if (*(uint64_t *)0x191c71040 == (var_48h ^ (uint64_t)auStack_108)) { 0x1837e8b97 | return uVar11; | } 0x1837e90b7 | func_0x000185f05b40(var_48h ^ (uint64_t)auStack_108); |code_r0x0001837e90bf: 0x1837e90bf | pcVar4 = (code *)swi(3); 0x1837e90bf | uVar11 = (*pcVar4)(); 0x1837e90bf | return uVar11; |} [{"offset":6501075616,"name":"fcn.1837e8aa0","size":1571,"is-pure":false,"realsz":1569,"noreturn":false,"stackframe":264,"calltype":"ms","cost":497,"cc":45,"loops":16,"bits":64,"type":"fcn","nbbs":82,"edges":119,"ebbs":4,"signature":"fcn.1837e8aa0(int64_t arg1, int64_t arg2);","minbound":6501075616,"maxbound":6501077187,"callrefs":[{"from":6501075710,"to":6501075733,"type":"CODE"},{"from":6501075750,"to":6501075712,"type":"CODE"},{"from":6501075755,"to":6501075760,"type":"CODE"},{"from":6501075783,"to":6511512544,"type":"CALL"},{"from":6501075788,"to":6501075814,"type":"CODE"},{"from":6501075880,"to":6511513840,"type":"CALL"},{"from":6501075885,"to":6501075948,"type":"CODE"},{"from":6501075971,"to":6456889328,"type":"CALL"},{"from":6501075985,"to":6512708384,"type":"CALL"},{"from":6501076084,"to":6462089824,"type":"CALL"},{"from":6501076095,"to":6501079664,"type":"CALL"},{"from":6501076211,"to":6501076358,"type":"CODE"},{"from":6501076239,"to":6511512544,"type":"CALL"},{"from":6501076244,"to":6501076278,"type":"CODE"},{"from":6501076246,"to":6442840976,"type":"CALL"},{"from":6501076344,"to":6501112368,"type":"CALL"},{"from":6501076378,"to":6501076246,"type":"CODE"},{"from":6501076386,"to":6501076411,"type":"CODE"},{"from":6501076448,"to":6501076505,"type":"CODE"},{"from":6501076461,"to":6511512544,"type":"CALL"},{"from":6501076484,"to":6442840976,"type":"CALL"},{"from":6501076536,"to":6501112368,"type":"CALL"},{"from":6501076547,"to":6501076450,"type":"CODE"},{"from":6501076606,"to":6520594992,"type":"CALL"},{"from":6501076616,"to":6458504880,"type":"CALL"},{"from":6501076696,"to":6512942288,"type":"CALL"},{"from":6501076725,"to":6740346544,"type":"CALL"},{"from":6501076746,"to":6501147680,"type":"CALL"},{"from":6501076781,"to":6501076804,"type":"CODE"},{"from":6501076820,"to":6501076783,"type":"CODE"},{"from":6501076897,"to":6501076907,"type":"CODE"},{"from":6501076915,"to":6501076921,"type":"CODE"},{"from":6501076921,"to":6542434064,"type":"CALL"},{"from":6501076942,"to":6501082032,"type":"CALL"},{"from":6501077009,"to":6501107616,"type":"CALL"},{"from":6501077069,"to":6501144608,"type":"CALL"},{"from":6501077145,"to":6501070480,"type":"CALL"},{"from":6501077160,"to":6501075760,"type":"CODE"},{"from":6501077178,"to":6542089024,"type":"CALL"}],"datarefs":[{"from":6501075641,"to":6740709440,"type":"DATA"},{"from":6501075825,"to":6740709440,"type":"DATA"},{"from":6501076053,"to":6501141216,"type":"DATA"},{"from":6501076369,"to":6741126408,"type":"DATA"},{"from":6501076475,"to":6741126408,"type":"DATA"},{"from":6501076599,"to":6722809064,"type":"DATA"},{"from":6501076621,"to":6741832416,"type":"DATA"},{"from":6501076668,"to":6723611288,"type":"DATA"},{"from":6501076675,"to":6723611208,"type":"DATA"},{"from":6501076709,"to":6501139120,"type":"DATA"}],"codexrefs":[{"from":6501075710,"to":6501075733,"type":"CODE"},{"from":6501075750,"to":6501075712,"type":"CODE"},{"from":6501075755,"to":6501075760,"type":"CODE"},{"from":6501075788,"to":6501075814,"type":"CODE"},{"from":6501075885,"to":6501075948,"type":"CODE"},{"from":6501076211,"to":6501076358,"type":"CODE"},{"from":6501076244,"to":6501076278,"type":"CODE"},{"from":6501076378,"to":6501076246,"type":"CODE"},{"from":6501076386,"to":6501076411,"type":"CODE"},{"from":6501076448,"to":6501076505,"type":"CODE"},{"from":6501076547,"to":6501076450,"type":"CODE"},{"from":6501076781,"to":6501076804,"type":"CODE"},{"from":6501076820,"to":6501076783,"type":"CODE"},{"from":6501076897,"to":6501076907,"type":"CODE"},{"from":6501076915,"to":6501076921,"type":"CODE"},{"from":6501077160,"to":6501075760,"type":"CODE"}],"dataxrefs":[],"indegree":16,"outdegree":23,"nlocals":15,"nargs":2,"stackvars":[{"name":"var_d9h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-217}},{"name":"var_d8h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-216}},{"name":"var_d0h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-208}},{"name":"var_c8h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-200}},{"name":"var_b8h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-184}},{"name":"var_a8h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-168}},{"name":"var_88h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-136}},{"name":"var_80h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-128}},{"name":"var_78h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-120}},{"name":"var_71h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-113}},{"name":"var_70h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-112}},{"name":"var_59h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-89}},{"name":"var_58h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-88}},{"name":"var_49h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-73}},{"name":"var_48h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-72}}],"regvars":[{"name":"arg1","arg":true,"type":"int64_t","storage":{"type":"reg","reg":"rcx"}},{"name":"arg2","arg":true,"type":"int64_t","storage":{"type":"reg","reg":"rdx"}}]}]