0x184770e70 | 0x184770e70 |// WARNING: [rz-ghidra] Detected overlap for variable var_48h | 0x184770e70 |undefined8 fcn.184770e70(int64_t arg1) |{ | uint64_t uVar1; | undefined auVar2 [16]; | code *pcVar3; | uint16_t uVar4; | uint32_t uVar5; | uint32_t uVar6; | int32_t iVar7; | char cVar8; | int32_t iVar9; | undefined8 uVar10; | int64_t iVar11; | int32_t iVar12; | uint64_t uVar13; | int32_t iVar14; | uint64_t *puVar15; | int64_t iVar16; | int64_t *piVar17; | int64_t iVar18; | int64_t iVar19; | int32_t *piVar20; | char *pcVar21; | uint64_t uVar22; | uint32_t uVar23; | uint64_t uVar24; | int64_t unaff_GS_OFFSET; | bool bVar25; | uint8_t uVar26; | undefined auVar27 [16]; | undefined auVar28 [16]; | undefined auVar29 [16]; | undefined auStack_88 [32]; | int64_t var_68h; | int64_t var_58h; | int64_t var_50h; | unkbyte7 var_48h; | int64_t var_41h; | int64_t var_38h; | int64_t var_30h; | 0x184770e84 | var_30h = *(uint64_t *)0x191c71040 ^ (uint64_t)auStack_88; 0x1847711ee | if ((*(int32_t *)(*(int64_t *)(*(int64_t *)(unaff_GS_OFFSET + 0x58) + (uint64_t)*(uint32_t *)0x191d832e0 * 8) + 4) < 0x184770eab | *(int32_t *)0x191dbb9a8) && (func_0x000185f00fe8(0x191dbb9a8), *(int32_t *)0x191dbb9a8 == -1)) { 0x1847711f8 | *(undefined (*) [16])0x191dbb990 = (undefined [16])0x0; 0x184771200 | *(undefined8 *)0x191dbb9a0 = 0; 0x184771212 | func_0x000185f00f7c(0x191dbb9a8); | } 0x184770eb1 | piVar17 = *(int64_t **)0x191dbb990; 0x184770ebb | if (*(int64_t **)0x191dbb990 == (int64_t *)0x0) { |code_r0x0001847710a4: 0x1847710ab | func_0x000185f96d50(&var_58h, 0x19061e178, 0x11c); 0x1847710c5 | func_0x000185f96de0(&var_38h, 0x19061e340, 0xffffffff, &var_58h); 0x1847710ab | func_0x000185f96ea0(&var_58h, 0); 0x1847710e8 | uVar10 = func_0x000185f96d40(&var_38h); 0x1847710f5 | piVar17 = &var_58h; 0x1847710f5 | iVar11 = (int64_t)(char)var_41h; 0x1847710f5 | if ((int64_t)(char)var_41h < 0) { 0x1847710fc | piVar17 = (int64_t *)var_58h; 0x1847710fc | iVar11 = var_50h; | } 0x184771107 | func_0x000184dcd0d0(uVar10, piVar17, iVar11); 0x184771111 | if ((char)var_41h < '\0') { 0x184771127 | func_0x0001841dcbe0(var_58h, CONCAT17((char)var_41h, var_48h) & 0x7fffffffffffffff); | } 0x18477112c | func_0x000185f96d70(&var_38h); 0x184770ed2 | } else if (*(int64_t *)(**(int64_t **)0x191dbb990 + 0x40) == 0x1841e1d40) { 0x184770edc | iVar14 = *(int32_t *)((*(int64_t **)0x191dbb990)[3] + 4); 0x184770edf | iVar12 = *(int32_t *)((*(int64_t **)0x191dbb990)[3] + 8); 0x184770ee2 | iVar9 = (*(code *)0x11c21916)(); 0x184770ee2 | iVar7 = *(int32_t *)0x191e21708; 0x184770ef7 | if (iVar9 == iVar14 && iVar12 != 0) { 0x184771246 | pcVar3 = (code *)swi(3); 0x184771246 | uVar10 = (*pcVar3)(); 0x184771246 | return uVar10; | } 0x184770eff | if (iVar9 != iVar14) { 0x184771066 | if (*(int32_t *)(piVar17[3] + 4) != 0) { 0x18477106c | iVar14 = *(int32_t *)(piVar17[3] + 0xc); 0x18477107e | iVar11 = *(int64_t *)(*(int64_t *)(unaff_GS_OFFSET + 0x58) + (uint64_t)*(uint32_t *)0x191d832e0 * 8); 0x184771082 | iVar12 = *(int32_t *)(iVar11 + 0x560); 0x18477108b | if (iVar12 == -1) { 0x184771228 | LOCK(); 0x184771228 | UNLOCK(); 0x184771230 | iVar12 = *(int32_t *)0x191e21708 + 1; 0x184771230 | *(int32_t *)(iVar11 + 0x560) = *(int32_t *)0x191e21708; 0x184771230 | *(int32_t *)0x191e21708 = iVar12; 0x184771232 | iVar12 = iVar7; | } 0x18477109e | if (iVar14 != -1 && iVar14 == iVar12) goto code_r0x000184770f05; | } | goto code_r0x0001847710a4; | } | } else { 0x184771021 | cVar8 = (*(code *)0x185f59da0)(*(int64_t **)0x191dbb990); 0x184771029 | if (cVar8 == '\0') goto code_r0x0001847710a4; | } |code_r0x000184770f05: 0x184770f17 | puVar15 = *(uint64_t **)0x191dbd680; 0x184770f17 | if (*(uint64_t **)0x191dbd680 < (uint64_t *)0x2) { 0x18477119b | LOCK(); 0x18477119b | bVar25 = *(uint64_t **)0x191dbd680 == (uint64_t *)0x0; 0x18477119b | if (bVar25) { 0x18477119b | *(uint64_t **)0x191dbd680 = (uint64_t *)0x1; | } 0x18477119b | UNLOCK(); 0x1847711a4 | if (bVar25) { 0x1847711aa | *(undefined8 *)0x191dbd688 = 0; 0x1847711c3 | *(uint64_t **)0x191dbd680 = (uint64_t *)0x191dbd688; 0x1847711d1 | func_0x000180c22b40(0x182cbcdc0, 0x191dbd680); 0x1847711d6 | puVar15 = (uint64_t *)0x191dbd688; | } else { 0x184771254 | puVar15 = *(uint64_t **)0x191dbd680; 0x184771254 | if (*(uint64_t **)0x191dbd680 == (uint64_t *)0x1) { 0x184771267 | var_58h = 0; 0x18477126e | func_0x000184768050(); | do { 0x184771273 | func_0x000184768050(&var_38h); 0x1847712b6 | iVar11 = var_38h - var_58h; 0x1847712b6 | if (SBORROW8(var_38h, var_58h)) { 0x1847712b6 | iVar11 = (uint64_t)(-1 < var_38h - var_58h) + 0x7fffffffffffffff; | } 0x1847712c0 | if (iVar11 < 1000) { 0x184771284 | func_0x00018ad81da0(); | } else { 0x1847712c7 | func_0x00018ad81db0(1000); | } 0x184771294 | puVar15 = *(uint64_t **)0x191dbd680; 0x184771294 | } while (*(uint64_t **)0x191dbd680 == (uint64_t *)0x1); | } | } | } 0x184770f1d | uVar13 = *puVar15; 0x184770f23 | iVar14 = (int32_t)((uint64_t)arg1 >> 0x20); 0x184770f23 | if ((uVar13 & 0x3e) == 0) { 0x184771142 | if (uVar13 < 0x8000) goto code_r0x00018477118d; 0x184771144 | piVar20 = (int32_t *)puVar15[1]; 0x184771148 | uVar10 = 0; 0x184771157 | if ((*piVar20 == (int32_t)arg1) && (piVar20[1] == iVar14)) { 0x18477115d | pcVar21 = ""; |code_r0x000184770fe0: 0x184770fea | if (piVar20 == (int32_t *)0x191d84b64) { 0x184771038 | var_68h = 0x190181e70; 0x184771056 | func_0x000185f8a8f0(3, 0x190181f15, 0x6aa, 0x190181f28); 0x18477105b | // WARNING: Does not return 0x18477105b | pcVar3 = (code *)invalidInstructionException(); 0x18477105b | (*pcVar3)(); | } 0x184770ff1 | if (*pcVar21 < '\0') goto code_r0x000184771244; 0x184770ff7 | uVar10 = *(undefined8 *)(piVar20 + 2); | } | } else { 0x184770f30 | uVar22 = -1LL << ((uint8_t)uVar13 & 0x3f); 0x184770f33 | uVar1 = puVar15[1]; 0x184770f3a | iVar18 = uVar1 - uVar22; 0x184770f3d | iVar19 = iVar18 + 0xf; 0x184770f45 | uVar22 = ~uVar22; 0x184770f5d | auVar27._8_8_ = 0; 0x184770f5d | auVar27._0_8_ = arg1 & 0xffffffffU ^ (uint64_t)((uint32_t)uVar13 & 0x7c0); 0x184770f69 | auVar2._8_8_ = 0; 0x184770f69 | auVar2._0_8_ = SUB168(auVar27 * ZEXT816(0x79d5f9e0de1e8cf5), 0) ^ 0x184770f08 | (uint64_t)arg1 >> 0x20 ^ SUB168(auVar27 * ZEXT816(0x79d5f9e0de1e8cf5), 8); 0x184770f6c | uVar13 = SUB168(auVar2 * ZEXT816(0x79d5f9e0de1e8cf5), 8) ^ SUB168(auVar2 * ZEXT816(0x79d5f9e0de1e8cf5), 0); 0x184770f7a | uVar26 = (uint8_t)(uVar13 >> 0x39); 0x184770f7a | auVar27 = ZEXT216(CONCAT11(uVar26, uVar26)); 0x184770f7e | auVar27 = pshuflw(auVar27, auVar27, 0); 0x184770f88 | iVar11 = 0; 0x184771187 | while( true ) { 0x184770f8a | uVar13 = uVar13 & uVar22; 0x184770f99 | pcVar21 = (char *)(uVar1 + uVar13); 0x184770fa3 | auVar29[0] = -(auVar27[0] == *pcVar21); 0x184770fa3 | auVar29[1] = -(auVar27[1] == pcVar21[1]); 0x184770fa3 | auVar29[2] = -(auVar27[2] == pcVar21[2]); 0x184770fa3 | auVar29[3] = -(auVar27[3] == pcVar21[3]); 0x184770fa3 | auVar29[4] = -(auVar27[4] == pcVar21[4]); 0x184770fa3 | auVar29[5] = -(auVar27[5] == pcVar21[5]); 0x184770fa3 | auVar29[6] = -(auVar27[6] == pcVar21[6]); 0x184770fa3 | auVar29[7] = -(auVar27[7] == pcVar21[7]); 0x184770fa3 | auVar29[8] = -(auVar27[0] == pcVar21[8]); 0x184770fa3 | auVar29[9] = -(auVar27[1] == pcVar21[9]); 0x184770fa3 | auVar29[10] = -(auVar27[2] == pcVar21[10]); 0x184770fa3 | auVar29[0xb] = -(auVar27[3] == pcVar21[0xb]); 0x184770fa3 | auVar29[0xc] = -(auVar27[4] == pcVar21[0xc]); 0x184770fa3 | auVar29[0xd] = -(auVar27[5] == pcVar21[0xd]); 0x184770fa3 | auVar29[0xe] = -(auVar27[6] == pcVar21[0xe]); 0x184770fa3 | auVar29[0xf] = -(auVar27[7] == pcVar21[0xf]); 0x184770fa7 | uVar4 = (uint16_t)(SUB161(auVar29 >> 7, 0) & 1) | (uint16_t)(SUB161(auVar29 >> 0xf, 0) & 1) << 1 | 0x184770fa7 | (uint16_t)(SUB161(auVar29 >> 0x17, 0) & 1) << 2 | (uint16_t)(SUB161(auVar29 >> 0x1f, 0) & 1) << 3 | 0x184770fa7 | (uint16_t)(SUB161(auVar29 >> 0x27, 0) & 1) << 4 | (uint16_t)(SUB161(auVar29 >> 0x2f, 0) & 1) << 5 | 0x184770fa7 | (uint16_t)(SUB161(auVar29 >> 0x37, 0) & 1) << 6 | (uint16_t)(SUB161(auVar29 >> 0x3f, 0) & 1) << 7 | 0x184770fa7 | (uint16_t)(SUB161(auVar29 >> 0x47, 0) & 1) << 8 | (uint16_t)(SUB161(auVar29 >> 0x4f, 0) & 1) << 9 | 0x184770fa7 | (uint16_t)(SUB161(auVar29 >> 0x57, 0) & 1) << 10 | (uint16_t)(SUB161(auVar29 >> 0x5f, 0) & 1) << 0xb 0x184770fa7 | | (uint16_t)(SUB161(auVar29 >> 0x67, 0) & 1) << 0xc | 0x184770fa7 | (uint16_t)(SUB161(auVar29 >> 0x6f, 0) & 1) << 0xd | 0x184770fa7 | (uint16_t)(SUB161(auVar29 >> 0x77, 0) & 1) << 0xe | (uint16_t)(auVar29[0xf] >> 7) << 0xf; 0x184770fa7 | uVar23 = (uint32_t)uVar4; 0x184770fad | if (uVar4 != 0) { | do { 0x184770fb3 | uVar5 = 0; 0x184770fb3 | for (uVar6 = uVar23; (uVar6 & 1) == 0; uVar6 = uVar6 >> 1 | 0x80000000) { 0x184770fb3 | uVar5 = uVar5 + 1; | } 0x184770fbb | uVar24 = uVar5 + uVar13 & uVar22; 0x184770fc1 | iVar16 = uVar24 * 0x10; 0x184770fd4 | if ((*(int32_t *)(iVar19 + iVar16) == (int32_t)arg1) && 0x184770fcf | (*(int32_t *)(iVar18 + 0x13 + iVar16) == iVar14)) { 0x184770fda | piVar20 = (int32_t *)(iVar19 + iVar16); 0x184770fdd | pcVar21 = (char *)(uVar1 + uVar24); 0x184770fdd | goto code_r0x000184770fe0; | } 0x18477116d | uVar23 = uVar23 - 1 & uVar23; 0x184771173 | } while (uVar23 != 0); | } 0x184771179 | auVar28[0] = -(*pcVar21 == -0x80); 0x184771179 | auVar28[1] = -(pcVar21[1] == -0x80); 0x184771179 | auVar28[2] = -(pcVar21[2] == -0x80); 0x184771179 | auVar28[3] = -(pcVar21[3] == -0x80); 0x184771179 | auVar28[4] = -(pcVar21[4] == -0x80); 0x184771179 | auVar28[5] = -(pcVar21[5] == -0x80); 0x184771179 | auVar28[6] = -(pcVar21[6] == -0x80); 0x184771179 | auVar28[7] = -(pcVar21[7] == -0x80); 0x184771179 | auVar28[8] = -(pcVar21[8] == -0x80); 0x184771179 | auVar28[9] = -(pcVar21[9] == -0x80); 0x184771179 | auVar28[10] = -(pcVar21[10] == -0x80); 0x184771179 | auVar28[0xb] = -(pcVar21[0xb] == -0x80); 0x184771179 | auVar28[0xc] = -(pcVar21[0xc] == -0x80); 0x184771179 | auVar28[0xd] = -(pcVar21[0xd] == -0x80); 0x184771179 | auVar28[0xe] = -(pcVar21[0xe] == -0x80); 0x184771179 | auVar28[0xf] = -(pcVar21[0xf] == -0x80); 0x184771187 | if ((((((((((((((((SUB161(auVar28 >> 7, 0) & 1) != 0 || (SUB161(auVar28 >> 0xf, 0) & 1) != 0) || 0x184771181 | (SUB161(auVar28 >> 0x17, 0) & 1) != 0) || (SUB161(auVar28 >> 0x1f, 0) & 1) != 0) || 0x184771181 | (SUB161(auVar28 >> 0x27, 0) & 1) != 0) || (SUB161(auVar28 >> 0x2f, 0) & 1) != 0) || 0x184771181 | (SUB161(auVar28 >> 0x37, 0) & 1) != 0) || (SUB161(auVar28 >> 0x3f, 0) & 1) != 0) || 0x184771181 | (SUB161(auVar28 >> 0x47, 0) & 1) != 0) || (SUB161(auVar28 >> 0x4f, 0) & 1) != 0) || 0x184771181 | (SUB161(auVar28 >> 0x57, 0) & 1) != 0) || (SUB161(auVar28 >> 0x5f, 0) & 1) != 0) || 0x184771181 | (SUB161(auVar28 >> 0x67, 0) & 1) != 0) || (SUB161(auVar28 >> 0x6f, 0) & 1) != 0) || 0x184771181 | (SUB161(auVar28 >> 0x77, 0) & 1) != 0) || auVar28[0xf] < '\0') break; 0x1847712d1 | uVar13 = uVar13 + iVar11 + 0x10; 0x1847712d5 | iVar11 = iVar11 + 0x10; | } |code_r0x00018477118d: 0x18477118d | uVar10 = 0; | } 0x18477100d | if (*(uint64_t *)0x191c71040 == (var_30h ^ (uint64_t)auStack_88)) { 0x18477101d | return uVar10; | } 0x18477123c | func_0x000185f05b40(var_30h ^ (uint64_t)auStack_88); |code_r0x000184771244: 0x184771244 | // WARNING: Does not return 0x184771244 | pcVar3 = (code *)invalidInstructionException(); 0x184771244 | (*pcVar3)(); |} [{"offset":6517362288,"name":"fcn.184770e70","size":1134,"is-pure":false,"realsz":1132,"noreturn":false,"stackframe":136,"calltype":"ms","cost":339,"cc":33,"loops":17,"bits":64,"type":"fcn","nbbs":51,"edges":76,"ebbs":4,"signature":"fcn.184770e70(int64_t arg1);","minbound":6517362288,"maxbound":6517363422,"callrefs":[{"from":6517362402,"to":6740378168,"type":"CALL"},{"from":6517362721,"to":6740346544,"type":"CALL"},{"from":6517362735,"to":6517362852,"type":"CODE"},{"from":6517362774,"to":6542633200,"type":"CALL"},{"from":6517362873,"to":6542683472,"type":"CALL"},{"from":6517362902,"to":6542683616,"type":"CALL"},{"from":6517362912,"to":6542683808,"type":"CALL"},{"from":6517362920,"to":6542683456,"type":"CALL"},{"from":6517362951,"to":6524031184,"type":"CALL"},{"from":6517362983,"to":6511512544,"type":"CALL"},{"from":6517362993,"to":6542683504,"type":"CALL"},{"from":6517362998,"to":6517362437,"type":"CODE"},{"from":6517363044,"to":6517362656,"type":"CODE"},{"from":6517363087,"to":6517362683,"type":"CODE"},{"from":6517363153,"to":6455176000,"type":"CALL"},{"from":6517363158,"to":6517362461,"type":"CODE"},{"from":6517363170,"to":6542069736,"type":"CALL"},{"from":6517363218,"to":6542069628,"type":"CALL"},{"from":6517363223,"to":6517362353,"type":"CODE"},{"from":6517363250,"to":6517362833,"type":"CODE"},{"from":6517363263,"to":6542089024,"type":"CALL"},{"from":6517363293,"to":6517362461,"type":"CODE"},{"from":6517363310,"to":6517325904,"type":"CALL"},{"from":6517363330,"to":6517363350,"type":"CODE"},{"from":6517363332,"to":6624386464,"type":"CALL"},{"from":6517363353,"to":6517325904,"type":"CALL"},{"from":6517363399,"to":6624386480,"type":"CALL"},{"from":6517363404,"to":6517363337,"type":"CODE"},{"from":6517363417,"to":6517362570,"type":"CODE"}],"datarefs":[{"from":6517362301,"to":6740709440,"type":"DATA"},{"from":6517362316,"to":6742063528,"type":"DATA"},{"from":6517362322,"to":6741832416,"type":"DATA"},{"from":6517362353,"to":6742063504,"type":"DATA"},{"from":6517362376,"to":6511533376,"type":"DATA"},{"from":6517362444,"to":6742070912,"type":"DATA"},{"from":6517362656,"to":6741838692,"type":"DATA"},{"from":6517362691,"to":6740709440,"type":"DATA"},{"from":6517362737,"to":6712467056,"type":"DATA"},{"from":6517362749,"to":6712467221,"type":"DATA"},{"from":6517362756,"to":6712467240,"type":"DATA"},{"from":6517362799,"to":6741832416,"type":"DATA"},{"from":6517362852,"to":6717301112,"type":"DATA"},{"from":6517362878,"to":6717301568,"type":"DATA"},{"from":6517363037,"to":6712116080,"type":"DATA"},{"from":6517363114,"to":6742070920,"type":"DATA"},{"from":6517363125,"to":6742070912,"type":"DATA"},{"from":6517363132,"to":6742070920,"type":"DATA"},{"from":6517363139,"to":6742070912,"type":"DATA"},{"from":6517363146,"to":6489361856,"type":"DATA"},{"from":6517363163,"to":6742063528,"type":"DATA"},{"from":6517363175,"to":6742063528,"type":"DATA"},{"from":6517363200,"to":6742063520,"type":"DATA"},{"from":6517363211,"to":6742063528,"type":"DATA"},{"from":6517363273,"to":6742070912,"type":"DATA"},{"from":6517363286,"to":6742070912,"type":"DATA"},{"from":6517363337,"to":6742070912,"type":"DATA"}],"codexrefs":[{"from":6517362735,"to":6517362852,"type":"CODE"},{"from":6517362998,"to":6517362437,"type":"CODE"},{"from":6517363044,"to":6517362656,"type":"CODE"},{"from":6517363087,"to":6517362683,"type":"CODE"},{"from":6517363158,"to":6517362461,"type":"CODE"},{"from":6517363223,"to":6517362353,"type":"CODE"},{"from":6517363250,"to":6517362833,"type":"CODE"},{"from":6517363293,"to":6517362461,"type":"CODE"},{"from":6517363330,"to":6517363350,"type":"CODE"},{"from":6517363404,"to":6517363337,"type":"CODE"},{"from":6517363417,"to":6517362570,"type":"CODE"}],"dataxrefs":[],"indegree":11,"outdegree":18,"nlocals":7,"nargs":1,"stackvars":[{"name":"var_68h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-104}},{"name":"var_58h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-88}},{"name":"var_50h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-80}},{"name":"var_48h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-72}},{"name":"var_41h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-65}},{"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"}}]}]