0x1834ac3d0 | 0x1834ac3d0 |// WARNING: [rz-ghidra] Detected overlap for variable var_ech 0x1834ac3d0 |// WARNING: [rz-ghidra] Detected overlap for variable var_f4h | 0x1834ac3d0 |uint64_t fcn.1834ac3d0(int64_t arg1, int64_t arg2, int64_t arg3) |{ | int32_t *piVar1; | int64_t *piVar2; | int64_t iVar3; | char cVar4; | int32_t iVar5; | undefined8 uVar6; | int64_t iVar7; | undefined4 *puVar8; | uint64_t uVar9; | int32_t iVar10; | code *UNRECOVERED_JUMPTABLE; | int32_t iVar11; | int64_t unaff_GS_OFFSET; | undefined auStack_128 [40]; | int64_t var_100h; | int64_t var_f8h; | int64_t var_f0h; | undefined uStack_e0; | int32_t iStack_d0; | int32_t iStack_c8; | int64_t var_90h; | int64_t var_78h; | int64_t var_68h; | int64_t var_58h; | undefined8 uStack_50; | int64_t var_48h; | 0x1834ac3ed | var_48h = *(uint64_t *)0x191c71040 ^ (uint64_t)auStack_128; 0x1834ac3fc | if (*(char *)(arg1 + 0x38) == '\0') { 0x1834ac412 | uVar6 = (*(code *)0x185f59da0)(); 0x1834ac424 | var_f8h = 0x190b11648; 0x1834ac427 | var_f0h = 0x18; 0x1834ac432 | cVar4 = func_0x000184dc6ec0(uVar6); 0x1834ac439 | if (cVar4 == '\0') goto code_r0x0001834ac43b; 0x1834ac4b0 | iVar7 = *(int64_t *)(arg1 + 0x88); 0x1834ac4ba | if (iVar7 == 0) { 0x1834ac492 | func_0x0001834ab910(arg1, &var_f8h); 0x1834ac49d | func_0x0001834aa5d0(arg1, &var_f8h); 0x1834ac4a2 | iVar7 = *(int64_t *)(arg1 + 0x88); 0x1834ac4ac | if (iVar7 == 0) goto code_r0x0001834ac43b; | } 0x1834ac4c3 | if (*(char *)(arg1 + 0x191) == '\0') { 0x1834ac4dc | piVar2 = *(int64_t **) 0x1834ac4d8 | (*(int64_t *)(*(int64_t *)(unaff_GS_OFFSET + 0x58) + (uint64_t)*(uint32_t *)0x191d832e0 * 8) + 0x1834ac4dc | 0x3d8); 0x1834ac4f2 | if ((piVar2 == (int64_t *)0x0) || (iVar7 = *piVar2, iVar7 == 0)) goto code_r0x0001834ac9f3; 0x1834ac4fd | puVar8 = (undefined4 *)func_0x000185f006b8(0x30); 0x1834ac505 | *puVar8 = 1; 0x1834ac512 | *(undefined8 *)(puVar8 + 2) = 0x183294d90; 0x1834ac51d | *(undefined8 *)(puVar8 + 4) = 0x182bd0d90; 0x1834ac528 | *(undefined8 *)(puVar8 + 6) = 0x18327c9d0; 0x1834ac52c | iVar3 = *(int64_t *)arg3; 0x1834ac52f | *(int64_t *)(puVar8 + 8) = iVar3; 0x1834ac533 | *(undefined8 *)arg3 = 0; 0x1834ac53a | *(undefined *)(puVar8 + 10) = 1; 0x1834ac541 | if (iVar3 == 0) { 0x1834ac9fc | UNRECOVERED_JUMPTABLE = (code *)swi(3); 0x1834ac9fc | uVar9 = (*UNRECOVERED_JUMPTABLE)(); 0x1834ac9fc | return uVar9; | } 0x1834ac55d | uVar6 = 0x333; | } else { 0x1834ac5aa | if (((*(int64_t *)(iVar7 + 0xf0) != 0) && (*(char *)(*(int64_t *)(iVar7 + 0xf0) + 4) == '\0')) && 0x1834ac5a2 | (*(int64_t *)(iVar7 + 0xf8) != 0)) { 0x1834ac5c1 | if ((*(int64_t *)(iVar7 + 0xf0) == 0) || (*(char *)(*(int64_t *)(iVar7 + 0xf0) + 4) != '\0')) { 0x1834ac9f6 | UNRECOVERED_JUMPTABLE = (code *)swi(3); 0x1834ac9f6 | uVar9 = (*UNRECOVERED_JUMPTABLE)(); 0x1834ac9f6 | return uVar9; | } 0x1834ac5d8 | cVar4 = (*(code *)0x185f59da0)(); 0x1834ac5e0 | if (cVar4 != '\0') { 0x1834ac685 | func_0x00018acc7f80(*(undefined8 *)(arg1 + 0x88), &var_f8h); 0x1834ac696 | piVar2 = (int64_t *)(arg1 + 0x1f0); 0x1834ac6a4 | if (*(char *)(arg1 + 0x200) == '\x01') { 0x1834ac6c8 | *piVar2 = var_f8h; 0x1834ac6c8 | *(int64_t *)(arg1 + 0x1f8) = var_f0h; | } else { 0x1834ac6a9 | if (piVar2 == (int64_t *)0x0) goto code_r0x0001834ac9cb; 0x1834ac6b5 | *piVar2 = var_f8h; 0x1834ac6b5 | *(int64_t *)(arg1 + 0x1f8) = var_f0h; 0x1834ac6b9 | *(undefined *)(arg1 + 0x200) = 1; | } 0x1834ac6da | uVar6 = (*(code *)0x185f59da0)(); 0x1834ac6ee | var_f8h = CONCAT44(var_f8h._4_4_, *(undefined4 *)(arg1 + 0x1f0)); 0x1834ac6f4 | uStack_e0 = 2; 0x1834ac707 | var_58h = 0x190b116a0; 0x1834ac711 | uStack_50 = 0x24; 0x1834ac71f | func_0x000180542f00(uVar6, &var_58h, &var_f8h); 0x1834ac72a | var_f8h = CONCAT44(var_f8h._4_4_, *(undefined4 *)(arg1 + 500)); 0x1834ac72d | uStack_e0 = 2; 0x1834ac738 | var_58h = 0x190b116c8; 0x1834ac73c | uStack_50 = 0x24; 0x1834ac757 | func_0x000180542f00(uVar6, &var_58h, &var_f8h); 0x1834ac762 | var_f8h = CONCAT44(var_f8h._4_4_, *(undefined4 *)(arg1 + 0x1f8)); 0x1834ac766 | uStack_e0 = 2; 0x1834ac772 | var_58h = 0x190b116f0; 0x1834ac775 | uStack_50 = 0x24; 0x1834ac78f | func_0x000180542f00(uVar6, &var_58h, &var_f8h); 0x1834ac79a | var_f8h = CONCAT44(var_f8h._4_4_, *(undefined4 *)(arg1 + 0x1fc)); 0x1834ac79e | uStack_e0 = 2; 0x1834ac7aa | var_58h = 0x190b11718; 0x1834ac7ad | uStack_50 = 0x25; 0x1834ac7c5 | func_0x000180542f00(uVar6, &var_58h, &var_f8h); 0x1834ac7d1 | if (*(char *)(arg1 + 0x200) != '\0') { 0x1834ac7de | func_0x000185f5a0c0(&var_f8h, 0, 0xa0); 0x1834ac81c | var_58h = CONCAT44((int32_t)((uint64_t)*(undefined8 *)(arg1 + 0x1f8) >> 0x20) / 2 + 0x1834ac801 | (int32_t)((uint64_t)*(undefined8 *)(arg1 + 0x1f0) >> 0x20), 0x1834ac805 | (int32_t)*(undefined8 *)(arg1 + 0x1f8) / 2 + 0x1834ac801 | (int32_t)*(undefined8 *)(arg1 + 0x1f0)); 0x1834ac837 | (*(code *)0x185f59da0)(*(undefined8 *)0x191ded860, &var_f8h); 0x1834ac855 | if (var_68h._7_1_ < '\0') { 0x1834aca1c | func_0x0001841dcbe0(var_78h, CONCAT17(var_68h._7_1_, (unkbyte7)var_68h) & 0x7fffffffffffffff 0x1834aca1c | ); | } 0x1834ac86d | if (var_90h != 0) { 0x1834ac86f | LOCK(); 0x1834ac86f | *(int32_t *)var_90h = *(int32_t *)var_90h + -1; 0x1834ac86f | UNLOCK(); 0x1834ac872 | if (*(int32_t *)var_90h == 0) { 0x1834ac9d2 | func_0x0001841dcbe0(var_90h, 500); | } | } 0x1834ac88a | if (((uint64_t)arg2 >> 0x20 & 1) == 0) { 0x1834ac8b9 | if (*(char *)(arg1 + 0x200) == '\0') goto code_r0x0001834ac9cb; 0x1834ac8cb | iVar10 = *(int32_t *)(arg1 + 0x1f8) / 2 + *(int32_t *)(arg1 + 0x1f0); 0x1834ac8d0 | iVar5 = iVar10 - iStack_d0; 0x1834ac8d5 | iVar11 = -iVar5; 0x1834ac8d8 | if (iVar11 < 0) { 0x1834ac8d8 | iVar11 = iVar5; | } 0x1834ac8e1 | iVar10 = (iStack_c8 + iStack_d0) - iVar10; 0x1834ac8e5 | iVar5 = -iVar10; 0x1834ac8e7 | if (iVar5 < 0) { 0x1834ac8e7 | iVar5 = iVar10; | } 0x1834ac8f2 | arg2 = (int64_t)((iVar5 < iVar11) + 2); 0x1834ac8f5 | cVar4 = (iVar5 < iVar11) + '\x01'; | } else { 0x1834ac88e | if (*(char *)(arg1 + 0x200) == '\0') goto code_r0x0001834ac9cb; 0x1834ac897 | if ((uint32_t)arg2 < 3) { 0x1834ac8a5 | cVar4 = *(char *)((uint64_t)((uint32_t)arg2 & 3) + 0x190b176fc); | } else { 0x1834ac8ab | cVar4 = '\x02'; 0x1834ac8b0 | arg2 = 3; | } | } 0x1834ac8fa | func_0x0001834aca30(arg1, cVar4); 0x1834ac8ff | var_100h = *(int64_t *)arg3; 0x1834ac907 | *(undefined8 *)arg3 = 0; 0x1834ac915 | if (*(char *)(arg1 + 0x200) != '\0') { 0x1834ac925 | var_f8h = *(int64_t *)(arg1 + 0x1f0); 0x1834ac925 | var_f0h = *(int64_t *)(arg1 + 0x1f8); 0x1834ac93a | UNRECOVERED_JUMPTABLE = 0x1834ac936 | (code *)((int64_t)*(int32_t *)((arg2 & 0xffffffffU) * 4 + 0x190b17704) + 0x190b17704); 0x1834ac93d | // WARNING: Could not recover jumptable at 0x0001834ac93d. Too many branches 0x1834ac93d | // WARNING: Treating indirect jump as call 0x1834ac93d | // switch table (1 cases) at 0x190b17704 0x1834ac93d | uVar9 = (*UNRECOVERED_JUMPTABLE)(&var_f0h, UNRECOVERED_JUMPTABLE); 0x1834ac93d | return uVar9; | } | } |code_r0x0001834ac9cb: 0x1834ac9cb | // WARNING: Does not return 0x1834ac9cb | UNRECOVERED_JUMPTABLE = (code *)invalidInstructionException(); 0x1834ac9cb | (*UNRECOVERED_JUMPTABLE)(); | } | } 0x1834ac5f9 | piVar2 = *(int64_t **) 0x1834ac5f5 | (*(int64_t *)(*(int64_t *)(unaff_GS_OFFSET + 0x58) + (uint64_t)*(uint32_t *)0x191d832e0 * 8) + 0x1834ac5f9 | 0x3d8); 0x1834ac60f | if ((piVar2 == (int64_t *)0x0) || (iVar7 = *piVar2, iVar7 == 0)) { 0x1834ac9f9 | UNRECOVERED_JUMPTABLE = (code *)swi(3); 0x1834ac9f9 | uVar9 = (*UNRECOVERED_JUMPTABLE)(); 0x1834ac9f9 | return uVar9; | } 0x1834ac61a | puVar8 = (undefined4 *)func_0x000185f006b8(0x30); 0x1834ac622 | *puVar8 = 1; 0x1834ac62f | *(undefined8 *)(puVar8 + 2) = 0x183294d90; 0x1834ac63a | *(undefined8 *)(puVar8 + 4) = 0x182bd0d90; 0x1834ac645 | *(undefined8 *)(puVar8 + 6) = 0x18327c9d0; 0x1834ac649 | iVar3 = *(int64_t *)arg3; 0x1834ac64c | *(int64_t *)(puVar8 + 8) = iVar3; 0x1834ac650 | *(undefined8 *)arg3 = 0; 0x1834ac657 | *(undefined *)(puVar8 + 10) = 1; 0x1834ac65e | if (iVar3 == 0) { 0x1834ac9ff | UNRECOVERED_JUMPTABLE = (code *)swi(3); 0x1834ac9ff | uVar9 = (*UNRECOVERED_JUMPTABLE)(); 0x1834ac9ff | return uVar9; | } 0x1834ac67a | uVar6 = 0x338; | } 0x1834ac563 | func_0x000184339cd0(&var_f8h, 0x190b17524, 0x190b174e0, uVar6); 0x1834ac582 | var_58h = (int64_t)puVar8; 0x1834ac582 | (*(code *)0x185f59da0)(iVar7, &var_f8h, &var_58h, 0); 0x1834ac588 | uVar9 = CONCAT71((unkint7)((uint64_t)puVar8 >> 8), 1); | } else { |code_r0x0001834ac43b: 0x1834ac43b | uVar9 = 0; | } 0x1834ac43d | piVar1 = *(int32_t **)arg3; 0x1834ac443 | if (piVar1 != (int32_t *)0x0) { 0x1834ac476 | LOCK(); 0x1834ac476 | *piVar1 = *piVar1 + -1; 0x1834ac476 | UNLOCK(); 0x1834ac479 | if (*piVar1 == 0) { 0x1834ac47f | (*(code *)0x185f59da0)(); | } | } 0x1834ac45a | if (*(uint64_t *)0x191c71040 == (var_48h ^ (uint64_t)auStack_128)) { 0x1834ac475 | return uVar9 & 0xffffffff; | } 0x1834ac9eb | func_0x000185f05b40(var_48h ^ (uint64_t)auStack_128); |code_r0x0001834ac9f3: 0x1834ac9f3 | UNRECOVERED_JUMPTABLE = (code *)swi(3); 0x1834ac9f3 | uVar9 = (*UNRECOVERED_JUMPTABLE)(); 0x1834ac9f3 | return uVar9; |} [{"offset":6497682384,"name":"fcn.1834ac3d0","size":1622,"is-pure":false,"realsz":1564,"noreturn":false,"stackframe":296,"calltype":"ms","cost":460,"cc":40,"loops":9,"bits":64,"type":"fcn","nbbs":55,"edges":78,"ebbs":8,"signature":"fcn.1834ac3d0(int64_t arg1, int64_t arg2, int64_t arg3);","minbound":6497682384,"maxbound":6497684006,"callrefs":[{"from":6497682450,"to":6740346544,"type":"CALL"},{"from":6497682482,"to":6524006080,"type":"CALL"},{"from":6497682559,"to":6740346544,"type":"CALL"},{"from":6497682565,"to":6497682501,"type":"CODE"},{"from":6497682578,"to":6497679632,"type":"CALL"},{"from":6497682589,"to":6497674704,"type":"CALL"},{"from":6497682606,"to":6497682620,"type":"CODE"},{"from":6497682685,"to":6542067384,"type":"CALL"},{"from":6497682787,"to":6512942288,"type":"CALL"},{"from":6497682818,"to":6740346544,"type":"CALL"},{"from":6497682826,"to":6497682493,"type":"CODE"},{"from":6497682904,"to":6740346544,"type":"CALL"},{"from":6497682970,"to":6542067384,"type":"CALL"},{"from":6497683072,"to":6497682787,"type":"CODE"},{"from":6497683089,"to":6623625088,"type":"CALL"},{"from":6497683136,"to":6497683148,"type":"CODE"},{"from":6497683162,"to":6740346544,"type":"CALL"},{"from":6497683231,"to":6447968000,"type":"CALL"},{"from":6497683287,"to":6447968000,"type":"CALL"},{"from":6497683343,"to":6447968000,"type":"CALL"},{"from":6497683397,"to":6447968000,"type":"CALL"},{"from":6497683438,"to":6542434496,"type":"CALL"},{"from":6497683511,"to":6740346544,"type":"CALL"},{"from":6497683625,"to":6497683703,"type":"CODE"},{"from":6497683637,"to":6497683703,"type":"CODE"},{"from":6497683706,"to":6497684016,"type":"CALL"},{"from":6497683773,"to":6497683788,"type":"CODE"},{"from":6497683773,"to":6497683915,"type":"CODE"},{"from":6497683800,"to":6497683837,"type":"CODE"},{"from":6497683905,"to":6497684416,"type":"CALL"},{"from":6497683910,"to":6497682493,"type":"CODE"},{"from":6497683922,"to":6511512544,"type":"CALL"},{"from":6497683934,"to":6497683576,"type":"CODE"},{"from":6497683950,"to":6542089024,"type":"CALL"},{"from":6497683996,"to":6511512544,"type":"CALL"},{"from":6497684001,"to":6497683547,"type":"CODE"}],"datarefs":[{"from":6497682406,"to":6740709440,"type":"DATA"},{"from":6497682456,"to":6722491976,"type":"DATA"},{"from":6497682512,"to":6740709440,"type":"DATA"},{"from":6497682633,"to":6741832416,"type":"DATA"},{"from":6497682699,"to":6495489424,"type":"DATA"},{"from":6497682710,"to":6488395152,"type":"DATA"},{"from":6497682721,"to":6495390160,"type":"DATA"},{"from":6497682759,"to":6722516260,"type":"DATA"},{"from":6497682766,"to":6722516192,"type":"DATA"},{"from":6497682918,"to":6741832416,"type":"DATA"},{"from":6497682984,"to":6495489424,"type":"DATA"},{"from":6497682995,"to":6488395152,"type":"DATA"},{"from":6497683006,"to":6495390160,"type":"DATA"},{"from":6497683044,"to":6722516260,"type":"DATA"},{"from":6497683051,"to":6722516192,"type":"DATA"},{"from":6497683192,"to":6722492064,"type":"DATA"},{"from":6497683249,"to":6722492104,"type":"DATA"},{"from":6497683307,"to":6722492144,"type":"DATA"},{"from":6497683363,"to":6722492184,"type":"DATA"},{"from":6497683443,"to":6742268000,"type":"DATA"},{"from":6497683614,"to":6722516732,"type":"DATA"},{"from":6497683759,"to":6722516740,"type":"DATA"}],"codexrefs":[{"from":6497682565,"to":6497682501,"type":"CODE"},{"from":6497682606,"to":6497682620,"type":"CODE"},{"from":6497682826,"to":6497682493,"type":"CODE"},{"from":6497683072,"to":6497682787,"type":"CODE"},{"from":6497683136,"to":6497683148,"type":"CODE"},{"from":6497683625,"to":6497683703,"type":"CODE"},{"from":6497683637,"to":6497683703,"type":"CODE"},{"from":6497683773,"to":6497683788,"type":"CODE"},{"from":6497683773,"to":6497683915,"type":"CODE"},{"from":6497683800,"to":6497683837,"type":"CODE"},{"from":6497683910,"to":6497682493,"type":"CODE"},{"from":6497683934,"to":6497683576,"type":"CODE"},{"from":6497684001,"to":6497683547,"type":"CODE"}],"dataxrefs":[],"indegree":13,"outdegree":23,"nlocals":10,"nargs":3,"stackvars":[{"name":"var_100h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-256}},{"name":"var_f8h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-248}},{"name":"var_f4h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-244}},{"name":"var_f0h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-240}},{"name":"var_ech","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-236}},{"name":"var_90h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-144}},{"name":"var_78h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-120}},{"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_48h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-72}}],"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"}}]}]