0x1834ad100 | 0x1834ad100 |// WARNING: [rz-ghidra] Detected overlap for variable var_12ch 0x1834ad100 |// WARNING: [rz-ghidra] Detected overlap for variable var_134h | 0x1834ad100 |undefined8 fcn.1834ad100(int64_t arg1, int64_t arg2, int64_t arg3) |{ | int32_t *piVar1; | int64_t iVar2; | int64_t iVar3; | code *pcVar4; | char cVar5; | undefined8 uVar6; | int64_t *piVar7; | undefined4 *puVar8; | int32_t iVar9; | uint64_t uVar10; | undefined8 uVar11; | int32_t iVar12; | int64_t unaff_GS_OFFSET; | bool bVar13; | int32_t iVar14; | int32_t iVar15; | undefined auStack_168 [40]; | int64_t var_140h; | int64_t var_138h; | int64_t var_130h; | int64_t var_128h; | int64_t var_120h; | int64_t var_118h; | undefined8 uStack_110; | int32_t iStack_f0; | int32_t iStack_ec; | uint32_t uStack_e8; | int32_t iStack_e4; | int64_t var_b0h; | int64_t var_98h; | int64_t var_88h; | int64_t var_78h; | int64_t var_70h; | int64_t var_68h; | int64_t var_58h; | 0x1834ad12f | var_70h = *(uint64_t *)0x191c71040 ^ (uint64_t)auStack_168; 0x1834ad13e | if (*(char *)(arg1 + 0x38) == '\0') { 0x1834ad154 | uVar6 = (*(code *)0x185f59da0)(); 0x1834ad166 | var_118h = 0x190b11648; 0x1834ad169 | uStack_110 = 0x18; 0x1834ad177 | cVar5 = func_0x000184dc6ec0(uVar6, &var_118h); 0x1834ad17e | if (cVar5 == '\0') goto code_r0x0001834ad180; 0x1834ad1e2 | func_0x0001834ab910(arg1, &var_118h); 0x1834ad1f5 | piVar7 = (int64_t *)(arg1 + 0x1f0); 0x1834ad1f5 | if (*(char *)(arg1 + 0x200) == '\0') { 0x1834ad1f5 | piVar7 = &var_118h; | } 0x1834ad1f9 | var_128h = *piVar7; 0x1834ad1f9 | var_120h = piVar7[1]; 0x1834ad201 | func_0x000185f5a0c0(&var_118h, 0, 0xa0); 0x1834ad22d | iVar14 = (int32_t)var_120h; 0x1834ad22d | iVar12 = (int32_t)((uint64_t)var_120h >> 0x20); 0x1834ad23b | iVar15 = iVar14 / 2 + (int32_t)var_128h; 0x1834ad23b | var_138h = CONCAT44(iVar12 / 2 + (int32_t)((uint64_t)var_128h >> 0x20), iVar15); 0x1834ad253 | (*(code *)0x185f59da0)(*(undefined8 *)0x191ded860, &var_118h); 0x1834ad261 | uVar10 = (uint64_t)uStack_e8; 0x1834ad271 | if (var_88h._7_1_ < '\0') { 0x1834ad5e7 | func_0x0001841dcbe0(var_98h, CONCAT17(var_88h._7_1_, (unkbyte7)var_88h) & 0x7fffffffffffffff); | } 0x1834ad282 | if (var_b0h != 0) { 0x1834ad284 | LOCK(); 0x1834ad284 | *(int32_t *)var_b0h = *(int32_t *)var_b0h + -1; 0x1834ad284 | UNLOCK(); 0x1834ad287 | if (*(int32_t *)var_b0h == 0) { 0x1834ad5aa | func_0x0001841dcbe0(var_b0h, 500); | } | } 0x1834ad297 | var_138h._4_4_ = (undefined4)((uint64_t)var_128h >> 0x20); 0x1834ad297 | if (((uint64_t)arg2 >> 0x20 & 1) == 0) { 0x1834ad2a9 | iVar12 = -(iVar15 - iStack_f0); 0x1834ad2ac | if (iVar12 < 0) { 0x1834ad2ac | iVar12 = iVar15 - iStack_f0; | } 0x1834ad2b0 | uVar10 = (uint64_t)(uStack_e8 + iStack_f0); 0x1834ad2b5 | iVar15 = (uStack_e8 + iStack_f0) - iVar15; 0x1834ad2b9 | iVar9 = -iVar15; 0x1834ad2bb | if (iVar9 < 0) { 0x1834ad2bb | iVar9 = iVar15; | } 0x1834ad2c1 | if (iVar9 < iVar12) { |code_r0x0001834ad2c3: 0x1834ad2c9 | var_130h = var_120h; 0x1834ad2d3 | iStack_f0 = iStack_f0 - iVar14; 0x1834ad2d6 | var_138h = CONCAT44(var_138h._4_4_, iStack_f0); 0x1834ad2db | uVar6 = 2; 0x1834ad2e0 | piVar7 = &var_130h; | } else { |code_r0x0001834ad341: 0x1834ad347 | var_130h = var_120h; 0x1834ad34d | iStack_f0 = (int32_t)uVar10; 0x1834ad34d | var_138h = CONCAT44(var_138h._4_4_, iStack_f0); 0x1834ad351 | uVar6 = 1; 0x1834ad356 | piVar7 = &var_130h; | } | } else { 0x1834ad32b | piVar7 = (int64_t *)((int64_t)&var_130h + 4); 0x1834ad330 | iVar15 = (int32_t)arg2; 0x1834ad332 | var_138h._0_4_ = (undefined4)var_128h; 0x1834ad332 | if (iVar15 == 0) { 0x1834ad2e7 | var_130h = var_120h; 0x1834ad2f5 | iStack_f0 = iStack_ec - iVar12; 0x1834ad2f8 | var_138h = CONCAT44(iStack_f0, (undefined4)var_138h); 0x1834ad2fd | uVar6 = 4; | } else { 0x1834ad337 | if (iVar15 != 1) { 0x1834ad33c | if (iVar15 != 2) { 0x1834ad33e | uVar10 = (uint64_t)(uStack_e8 + iStack_f0); 0x1834ad33e | goto code_r0x0001834ad341; | } | goto code_r0x0001834ad2c3; | } 0x1834ad310 | var_130h = var_120h; 0x1834ad316 | iStack_f0 = iStack_e4 + iStack_ec; 0x1834ad319 | var_138h = CONCAT44(iStack_f0, (undefined4)var_138h); 0x1834ad31e | uVar6 = 3; | } | } 0x1834ad359 | var_130h = var_120h; 0x1834ad359 | iVar12 = (int32_t)*piVar7; 0x1834ad36b | iVar15 = iVar12 + iStack_f0; 0x1834ad36b | if (SCARRY4(iVar12, iStack_f0)) { 0x1834ad36b | iVar15 = (iStack_f0 + iVar12 >> 0x1f) + -0x80000000; | } 0x1834ad37f | iVar12 = iVar15 - iStack_f0; 0x1834ad37f | if (SBORROW4(iVar15, iStack_f0)) { 0x1834ad37f | iVar12 = (-1 < iVar15 - iStack_f0) + 0x7fffffff; | } 0x1834ad386 | iVar15 = 0; 0x1834ad386 | if (0 < iVar12) { 0x1834ad386 | iVar15 = iVar12; | } 0x1834ad389 | *(int32_t *)piVar7 = iVar15; 0x1834ad38b | iVar2 = *(int64_t *)(arg1 + 0x88); 0x1834ad395 | if (iVar2 == 0) { 0x1834ad48b | func_0x0001834aa5d0(arg1, &var_138h); | } else { 0x1834ad39b | *(undefined *)(arg1 + 400) = 1; 0x1834ad3bd | if (((*(int64_t *)(iVar2 + 0xf0) != 0) && (*(char *)(*(int64_t *)(iVar2 + 0xf0) + 4) == '\0')) && 0x1834ad3b5 | (*(int64_t *)(iVar2 + 0xf8) != 0)) { 0x1834ad3d4 | if ((*(int64_t *)(iVar2 + 0xf0) == 0) || (*(char *)(*(int64_t *)(iVar2 + 0xf0) + 4) != '\0')) 0x1834ad3d4 | goto code_r0x0001834ad5c4; 0x1834ad3f0 | (*(code *)0x185f59da0)(*(undefined8 *)(iVar2 + 0xf8), &var_138h); | } 0x1834ad3f6 | *(undefined *)(arg1 + 400) = 0; 0x1834ad3fd | iVar2 = *(int64_t *)(arg1 + 0x88); 0x1834ad41f | if (((*(int64_t *)(iVar2 + 0xf0) != 0) && (*(char *)(*(int64_t *)(iVar2 + 0xf0) + 4) == '\0')) && 0x1834ad417 | (*(int64_t *)(iVar2 + 0xf8) != 0)) { 0x1834ad436 | if ((*(int64_t *)(iVar2 + 0xf0) == 0) || (*(char *)(*(int64_t *)(iVar2 + 0xf0) + 4) != '\0')) { 0x1834ad5c7 | pcVar4 = (code *)swi(3); 0x1834ad5c7 | uVar6 = (*pcVar4)(); 0x1834ad5c7 | return uVar6; | } 0x1834ad44d | cVar5 = (*(code *)0x185f59da0)(); 0x1834ad455 | if (cVar5 != '\0') goto code_r0x0001834ad490; | } 0x1834ad45e | if (*(char *)(arg1 + 0x191) == '\x01') { 0x1834ad460 | func_0x000182764d30(*(undefined8 *)(arg1 + 0x88)); 0x1834ad473 | if (*(int64_t *)(arg1 + 0x28) != 0) { 0x1834ad46c | func_0x0001804f8e20(*(int64_t *)(arg1 + 0x28) + 0x100); | } | } | } |code_r0x0001834ad490: 0x1834ad490 | bVar13 = *(int64_t *)(arg1 + 0x88) != 0; 0x1834ad498 | uVar11 = CONCAT71((unkint7)(uVar10 >> 8), bVar13); 0x1834ad49c | if (bVar13) { 0x1834ad4a9 | if (*(char *)(arg1 + 0x191) == '\0') { 0x1834ad4f4 | piVar7 = *(int64_t **) 0x1834ad4f0 | (*(int64_t *)(*(int64_t *)(unaff_GS_OFFSET + 0x58) + (uint64_t)*(uint32_t *)0x191d832e0 * 8) + 0x1834ad4f4 | 0x3d8); 0x1834ad50a | if ((piVar7 == (int64_t *)0x0) || (iVar2 = *piVar7, iVar2 == 0)) { 0x1834ad5ca | pcVar4 = (code *)swi(3); 0x1834ad5ca | uVar6 = (*pcVar4)(); 0x1834ad5ca | return uVar6; | } 0x1834ad515 | puVar8 = (undefined4 *)func_0x000185f006b8(0x30); 0x1834ad51d | *puVar8 = 1; 0x1834ad52a | *(undefined8 *)(puVar8 + 2) = 0x183294d90; 0x1834ad535 | *(undefined8 *)(puVar8 + 4) = 0x182bd0d90; 0x1834ad540 | *(undefined8 *)(puVar8 + 6) = 0x18327c9d0; 0x1834ad544 | iVar3 = *(int64_t *)arg3; 0x1834ad547 | *(int64_t *)(puVar8 + 8) = iVar3; 0x1834ad54b | *(undefined8 *)arg3 = 0; 0x1834ad552 | *(undefined *)(puVar8 + 10) = 1; 0x1834ad559 | if (iVar3 == 0) { 0x1834ad5f1 | pcVar4 = (code *)swi(3); 0x1834ad5f1 | uVar6 = (*pcVar4)(); 0x1834ad5f1 | return uVar6; | } 0x1834ad56d | func_0x000184339cd0(&var_118h, 0x190b1752c, 0x190b174e0, 0x36f); 0x1834ad59a | var_78h = (int64_t)puVar8; 0x1834ad59a | (*(code *)0x185f59da0)(iVar2, &var_118h, &var_78h, 0); | } else { 0x1834ad4b5 | func_0x0001834aca30(arg1, uVar6, &var_120h); 0x1834ad4ba | var_140h = *(int64_t *)arg3; 0x1834ad4c5 | *(undefined8 *)arg3 = 0; 0x1834ad4d7 | func_0x0001834acbc0(arg1, &var_128h, 0); | } | } | } else { |code_r0x0001834ad180: 0x1834ad180 | uVar11 = 0; | } 0x1834ad182 | piVar1 = *(int32_t **)arg3; 0x1834ad188 | if (piVar1 != (int32_t *)0x0) { 0x1834ad1cb | LOCK(); 0x1834ad1cb | *piVar1 = *piVar1 + -1; 0x1834ad1cb | UNLOCK(); 0x1834ad1ce | if (*piVar1 == 0) { 0x1834ad1d4 | (*(code *)0x185f59da0)(); | } | } 0x1834ad19f | if (*(uint64_t *)0x191c71040 == (var_70h ^ (uint64_t)auStack_168)) { 0x1834ad1ca | return uVar11; | } 0x1834ad5bc | func_0x000185f05b40(var_70h ^ (uint64_t)auStack_168); |code_r0x0001834ad5c4: 0x1834ad5c4 | pcVar4 = (code *)swi(3); 0x1834ad5c4 | uVar6 = (*pcVar4)(); 0x1834ad5c4 | return uVar6; |} [{"offset":6497685760,"name":"fcn.1834ad100","size":1266,"is-pure":false,"realsz":1260,"noreturn":false,"stackframe":360,"calltype":"ms","cost":386,"cc":37,"loops":10,"bits":64,"type":"fcn","nbbs":52,"edges":79,"ebbs":5,"signature":"fcn.1834ad100(int64_t arg1, int64_t arg2, int64_t arg3);","minbound":6497685760,"maxbound":6497687026,"callrefs":[{"from":6497685844,"to":6740346544,"type":"CALL"},{"from":6497685879,"to":6524006080,"type":"CALL"},{"from":6497685972,"to":6740346544,"type":"CALL"},{"from":6497685978,"to":6497685898,"type":"CODE"},{"from":6497685986,"to":6497679632,"type":"CALL"},{"from":6497686033,"to":6542434496,"type":"CALL"},{"from":6497686099,"to":6740346544,"type":"CALL"},{"from":6497686240,"to":6497686361,"type":"CODE"},{"from":6497686280,"to":6497686361,"type":"CODE"},{"from":6497686313,"to":6497686361,"type":"CODE"},{"from":6497686512,"to":6740346544,"type":"CALL"},{"from":6497686605,"to":6740346544,"type":"CALL"},{"from":6497686631,"to":6483758384,"type":"CALL"},{"from":6497686652,"to":6447664672,"type":"CALL"},{"from":6497686657,"to":6497686672,"type":"CODE"},{"from":6497686667,"to":6497674704,"type":"CALL"},{"from":6497686709,"to":6497684016,"type":"CALL"},{"from":6497686743,"to":6497684416,"type":"CALL"},{"from":6497686748,"to":6497685890,"type":"CODE"},{"from":6497686805,"to":6542067384,"type":"CALL"},{"from":6497686907,"to":6512942288,"type":"CALL"},{"from":6497686938,"to":6740346544,"type":"CALL"},{"from":6497686944,"to":6497685890,"type":"CODE"},{"from":6497686954,"to":6511512544,"type":"CALL"},{"from":6497686959,"to":6497686157,"type":"CODE"},{"from":6497686975,"to":6542089024,"type":"CALL"},{"from":6497687015,"to":6511512544,"type":"CALL"},{"from":6497687020,"to":6497686135,"type":"CODE"}],"datarefs":[{"from":6497685800,"to":6740709440,"type":"DATA"},{"from":6497685850,"to":6722491976,"type":"DATA"},{"from":6497685909,"to":6740709440,"type":"DATA"},{"from":6497686038,"to":6742268000,"type":"DATA"},{"from":6497686753,"to":6741832416,"type":"DATA"},{"from":6497686819,"to":6495489424,"type":"DATA"},{"from":6497686830,"to":6488395152,"type":"DATA"},{"from":6497686841,"to":6495390160,"type":"DATA"},{"from":6497686879,"to":6722516268,"type":"DATA"},{"from":6497686886,"to":6722516192,"type":"DATA"}],"codexrefs":[{"from":6497685978,"to":6497685898,"type":"CODE"},{"from":6497686240,"to":6497686361,"type":"CODE"},{"from":6497686280,"to":6497686361,"type":"CODE"},{"from":6497686313,"to":6497686361,"type":"CODE"},{"from":6497686657,"to":6497686672,"type":"CODE"},{"from":6497686748,"to":6497685890,"type":"CODE"},{"from":6497686944,"to":6497685890,"type":"CODE"},{"from":6497686959,"to":6497686157,"type":"CODE"},{"from":6497687020,"to":6497686135,"type":"CODE"}],"dataxrefs":[],"indegree":9,"outdegree":19,"nlocals":15,"nargs":3,"stackvars":[{"name":"var_140h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-320}},{"name":"var_138h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-312}},{"name":"var_134h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-308}},{"name":"var_130h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-304}},{"name":"var_12ch","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-300}},{"name":"var_128h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-296}},{"name":"var_120h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-288}},{"name":"var_118h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-280}},{"name":"var_b0h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-176}},{"name":"var_98h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-152}},{"name":"var_88h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-136}},{"name":"var_78h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-120}},{"name":"var_70h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-112}},{"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}}],"regvars":[{"name":"arg3","arg":true,"type":"int64_t","storage":{"type":"reg","reg":"r8"}},{"name":"arg1","arg":true,"type":"int64_t","storage":{"type":"reg","reg":"rcx"}},{"name":"arg2","arg":true,"type":"int64_t","storage":{"type":"reg","reg":"rdx"}}]}]