0x18adb6860 | 0x18adb6860 |// WARNING: Possible PIC construction at 0x00018adb6414: Changing call to branch 0x18adb6860 |// WARNING: Removing unreachable block (ram,0x00018adb6419) 0x18adb6860 |// WARNING: Variable defined which should be unmapped: var_c0h 0x18adb6860 |// WARNING: Variable defined which should be unmapped: var_c8h 0x18adb6860 |// WARNING: Variable defined which should be unmapped: var_b8h 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_a0h 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_44h 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_a8h 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_58h 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_98h 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_4ch 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_90h 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_54h 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_50h 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_fch 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_70h 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_68h 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_66h 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_f4h 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_e0h 0x18adb6860 |// WARNING: [rz-ghidra] Detected overlap for variable var_f0h | 0x18adb6860 |void fcn.18adb6860(int64_t arg1, int64_t arg_40h) |{ | undefined8 *puVar1; | int32_t *piVar2; | code *pcVar3; | char cVar4; | uint64_t uVar5; | int32_t iVar6; | uint64_t unaff_RBX; | uint64_t unaff_RSI; | int32_t *unaff_RDI; | uint64_t uVar7; | uint64_t uVar8; | undefined8 *puVar9; | uint64_t uVar10; | int64_t *unaff_R14; | int64_t *piVar11; | undefined4 unaff_XMM6_Da; | undefined4 unaff_XMM6_Db; | undefined4 unaff_XMM6_Dc; | undefined4 unaff_XMM6_Dd; | char acStackY_141 [81]; | undefined8 uStackY_f0; | undefined auStackY_e8 [32]; | int64_t var_c8h; | int64_t var_c0h; | int64_t var_b8h; | int64_t var_b0h; | int64_t var_a4h; | int64_t var_98h; | uint64_t uStack_90; | int64_t var_88h; | int64_t var_80h; | int64_t var_78h; | undefined4 uStack_70; | undefined auStack_6c [4]; | int64_t var_68h; | int64_t var_60h; | undefined var_58h [7]; | int64_t var_51h; | int64_t var_48h; | int64_t var_40h; | int64_t var_38h; | 0x18adb6860 | piVar2 = *(int32_t **)0x191de8498; 0x18adb6860 | iVar6 = (int32_t)arg1; 0x18adb686c | if (*(int32_t **)0x191de8498 == (int32_t *)0x0) { 0x18adb6872 | pcVar3 = (code *)swi(3); 0x18adb6872 | (*pcVar3)(); 0x18adb6872 | return; | } 0x18adb6885 | if (*(int64_t *)(*(int32_t **)0x191de8498 + 0x12) == 0) { 0x18adb634c | var_38h = *(uint64_t *)0x191c71040 ^ (uint64_t)auStackY_e8; 0x18adb6365 | var_a4h._0_4_ = iVar6; 0x18adb636d | if ((*(int64_t **)0x191de7408 != (int64_t *)0x0) && (**(int64_t **)0x191de7408 != 0)) { 0x18adb6376 | uStackY_f0 = 0x18adb637c; 0x18adb6376 | cVar4 = case.0x1841dcc6f.0(); 0x18adb637e | if (cVar4 == '\0') goto code_r0x00018adb6507; | } 0x18adb6384 | uVar5 = *(uint64_t *)0x191d84e88; 0x18adb6407 | if ((iVar6 != 0) || (*piVar2 != 0)) { 0x18adb6388 | var_b0h = 0x60; 0x18adb6399 | if (*(uint8_t *)0x191de5230 != 0) { 0x18adb6468 | unaff_RBX = (uint64_t)*(uint8_t *)0x191de5230; 0x18adb647c | uVar10 = *(uint64_t *)0x191d84e88 ^ 0xaa0586a82c7005f7; 0x18adb647f | unaff_R14 = &var_48h; 0x18adb648a | uStackY_f0 = 0x18adb648f; 0x18adb648a | fcn.185c4f280(var_c0h); 0x18adb648f | var_c8h = (int64_t)&var_98h; 0x18adb6497 | uStack_90 = uVar5; 0x18adb64a2 | var_88h = 0x190ca7e98; 0x18adb64a8 | var_60h = 0; 0x18adb64af | var_80h = 0; 0x18adb64af | var_78h._0_4_ = 0; 0x18adb64b3 | var_78h._4_4_ = 0; 0x18adb64b3 | uStack_70 = 0; 0x18adb64b3 | _auStack_6c = 0; 0x18adb64b7 | _var_58h = 1; 0x18adb64bf | var_51h._1_1_ = 0; 0x18adb64c3 | stack0xffffffffffffffb4 = 0; 0x18adb64cf | stack0xffffffffffffff60 = 0; 0x18adb64ed | uStackY_f0 = 0x18adb64f2; 0x18adb64ed | var_c0h = (int64_t)unaff_R14; 0x18adb64ed | var_b8h._0_4_ = iVar6; 0x18adb64ed | var_98h = uVar10; 0x18adb64ed | fcn.18adb7030(var_c8h, (int64_t)unaff_R14, CONCAT44(var_b8h._4_4_, iVar6)); | } 0x18adb639f | var_48h = 0x60; 0x18adb63b3 | if (*(uint8_t *)0x191de5230 != 0) { 0x18adb644e | var_98h = 0x190ca7e60; 0x18adb645e | uStackY_f0 = 0x18adb6463; 0x18adb645e | fcn.18adb6dc0(*(uint8_t *)0x191de5230, &var_48h, &var_98h, &var_a4h); | } 0x18adb63b9 | *piVar2 = iVar6; 0x18adb63c0 | if (*(int64_t *)(piVar2 + 0x12) == 0) { 0x18adb6414 | *(undefined8 **)0x20 = (BADSPACEBASE *)&uStackY_f0; 0x18adb6414 | uStackY_f0 = 0x18adb6419; 0x18adb6414 | unaff_RSI = arg1 & 0xffffffffU; 0x18adb6414 | unaff_RDI = piVar2; 0x18adb6414 | goto code_r0x00018adb68b0; | } 0x18adb63c2 | var_48h = 0x60; 0x18adb63d6 | if (*(uint8_t *)0x191de5230 != 0) { 0x18adb6423 | var_98h = 0; 0x18adb6438 | uStackY_f0 = 0x18adb643d; 0x18adb6438 | fcn.184354510(*(uint8_t *)0x191de5230, &var_48h, &var_98h, 2); | } | } 0x18adb63ed | if (*(uint64_t *)0x191c71040 == (var_38h ^ (uint64_t)auStackY_e8)) { 0x18adb6403 | return; | } 0x18adb6502 | uStackY_f0 = 0x18adb6507; 0x18adb64ff | fcn.185f05b40(var_38h ^ (uint64_t)auStackY_e8); |code_r0x00018adb6507: 0x18adb6507 | pcVar3 = (code *)swi(3); 0x18adb6507 | (*pcVar3)(); 0x18adb6507 | return; | } 0x18adb6894 | if (((char)(*(int32_t **)0x191de8498)[2] == '\x01') && ((*(int32_t **)0x191de8498)[1] == iVar6)) { 0x18adb6896 | return; | } 0x18adb689e | *(uint64_t *)(*(int32_t **)0x191de8498 + 1) = arg1 & 0xffffffffU | 0x100000000; |code_r0x00018adb68b0: 0x18adb68b0 | *(int64_t **)((int64_t)*(undefined **)0x20 + -8) = unaff_R14; 0x18adb68b2 | *(uint64_t *)((int64_t)*(undefined **)0x20 + -0x10) = unaff_RSI; 0x18adb68b3 | *(int32_t **)((int64_t)*(undefined **)0x20 + -0x18) = unaff_RDI; 0x18adb68b4 | *(uint64_t *)((int64_t)*(undefined **)0x20 + -0x20) = unaff_RBX; 0x18adb68bc | *(undefined4 *)((int64_t)*(undefined **)0x20 + -0x38) = unaff_XMM6_Da; 0x18adb68bc | *(undefined4 *)((int64_t)*(undefined **)0x20 + -0x34) = unaff_XMM6_Db; 0x18adb68bc | *(undefined4 *)((int64_t)*(undefined **)0x20 + -0x30) = unaff_XMM6_Dc; 0x18adb68bc | *(undefined4 *)((int64_t)*(undefined **)0x20 + -0x2c) = unaff_XMM6_Dd; 0x18adb68d3 | *(uint64_t *)((int64_t)*(undefined **)0x20 + -0x40) = 0x18adb68d0 | *(uint64_t *)0x191c71040 ^ (uint64_t)((int64_t)*(undefined **)0x20 + -0xe8); 0x18adb68db | *(int32_t *)((int64_t)*(undefined **)0x20 + -0x44) = iVar6; 0x18adb68f4 | if ((*(int64_t **)0x191de7408 != (int64_t *)0x0) && (**(int64_t **)0x191de7408 != 0)) { 0x18adb68fd | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0xf0) = 0x18adb6903; 0x18adb68fd | cVar4 = case.0x1841dcc6f.0(); 0x18adb6905 | if (cVar4 == '\0') goto code_r0x00018adb6b02; | } 0x18adb6912 | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0xf0) = 0x18adb6917; 0x18adb6912 | cVar4 = fcn.184211fd0(0x191cd6bc8); 0x18adb6919 | if (cVar4 == '\0') { 0x18adb6ae8 | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0xf0) = 0x18adb6aed; 0x18adb6ae8 | fcn.18adb6b10(*(int64_t *)((int64_t)*(undefined **)0x20 + -0x80)); | } else { 0x18adb6922 | puVar1 = (undefined8 *)((int64_t)*(undefined **)0x20 + -0x68); 0x18adb692a | *puVar1 = 0; 0x18adb692a | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x60) = 0; 0x18adb692d | piVar11 = (int64_t *)0x0; 0x18adb6930 | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x58) = 0; 0x18adb693e | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0xf0) = 0x18adb6943; 0x18adb693e | fcn.185956d70(0x190ca7d98, puVar1); 0x18adb6943 | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x78) = 0; 0x18adb6948 | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x88) = 0; 0x18adb6948 | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x80) = 0; 0x18adb694d | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x98) = 0; 0x18adb694d | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0x90) = 0; 0x18adb6956 | if (*(int64_t *)(piVar2 + 0xe) != 0) { 0x18adb6967 | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0xf0) = 0x18adb696c; 0x18adb695c | fcn.18062eb40((undefined *)((int64_t)*(undefined **)0x20 + -0x98), piVar2 + 4); 0x18adb696c | piVar11 = *(int64_t **)((int64_t)*(undefined **)0x20 + -0x88); | } 0x18adb6970 | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0xb8) = 0; 0x18adb6970 | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0xb0) = 0; 0x18adb6975 | *(undefined8 *)((int64_t)*(undefined **)0x20 + -200) = 0; 0x18adb6975 | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0xc0) = 0; 0x18adb697a | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0xa8) = 0; 0x18adb6986 | if (piVar11 != (int64_t *)0x0) { | do { 0x18adb6a4e | uVar5 = *(uint64_t *)((int64_t)*(undefined **)0x20 + -0x80); 0x18adb6a53 | uVar10 = *(uint64_t *)((int64_t)*(undefined **)0x20 + -0x78); 0x18adb6a58 | uVar7 = piVar11[1]; 0x18adb6a62 | uVar8 = uVar10; 0x18adb6a62 | if (uVar7 < uVar10) { 0x18adb6a62 | uVar8 = uVar7; | } 0x18adb6a69 | if (uVar5 == uVar8) break; 0x18adb6a72 | if (uVar7 <= uVar5) { |code_r0x00018adb6ad7: 0x18adb6ad7 | // WARNING: Does not return 0x18adb6ad7 | pcVar3 = (code *)invalidInstructionException(); 0x18adb6ad7 | (*pcVar3)(); | } 0x18adb6a74 | uVar7 = (uint64_t)*(char *)((int64_t)*(undefined **)0x20 + -0x51); 0x18adb6a83 | if ((int64_t)uVar7 < 0) { 0x18adb6a85 | uVar7 = *(uint64_t *)((int64_t)*(undefined **)0x20 + -0x60); | } 0x18adb6a90 | piVar2 = *(int32_t **)(*piVar11 + uVar5 * 8); 0x18adb6a94 | uVar8 = (uint64_t)*piVar2; 0x18adb6a9a | if (uVar8 < uVar7) { 0x18adb6aa6 | puVar9 = puVar1; 0x18adb6aa6 | if (*(char *)((int64_t)*(undefined **)0x20 + -0x51) < '\0') { 0x18adb6aa8 | puVar9 = *(undefined8 **)((int64_t)*(undefined **)0x20 + -0x68); | } 0x18adb6ab0 | cVar4 = *(char *)((int64_t)puVar9 + uVar8); 0x18adb6acc | if ((cVar4 == '0') || ((cVar4 == '1' && (iVar6 != 1)))) goto code_r0x00018adb69f9; | } else { |code_r0x00018adb69f9: 0x18adb69fc | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0xf0) = 0x18adb6a01; 0x18adb69fc | fcn.18adb74d0(piVar2, uVar10, arg1 & 0xffffffffU); 0x18adb6a01 | piVar11 = *(int64_t **)((int64_t)*(undefined **)0x20 + -0x88); 0x18adb6a09 | if (piVar11 == (int64_t *)0x0) break; 0x18adb6a0b | uVar5 = *(uint64_t *)((int64_t)*(undefined **)0x20 + -0x80); 0x18adb6a10 | uVar10 = *(uint64_t *)((int64_t)*(undefined **)0x20 + -0x78); | } 0x18adb6a15 | uVar5 = uVar5 + 1; 0x18adb6a18 | *(uint64_t *)((int64_t)*(undefined **)0x20 + -0x80) = uVar5; 0x18adb6a24 | if ((uint64_t)piVar11[1] < uVar10) { 0x18adb6a24 | uVar10 = piVar11[1]; | } 0x18adb6a2b | if (uVar5 < uVar10) { | do { 0x18adb6a31 | if ((uint64_t)piVar11[1] <= uVar5) goto code_r0x00018adb6ad7; 0x18adb6a3f | if (*(int64_t *)(*piVar11 + uVar5 * 8) != 0) break; 0x18adb6a41 | uVar5 = uVar5 + 1; 0x18adb6a44 | *(uint64_t *)((int64_t)*(undefined **)0x20 + -0x80) = uVar5; 0x18adb6a4c | } while (uVar10 != uVar5); | } | } while( true ); | } 0x18adb6991 | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0xf0) = 0x18adb6996; 0x18adb698c | fcn.180379c00((undefined *)((int64_t)*(undefined **)0x20 + -200)); 0x18adb699b | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0xf0) = 0x18adb69a0; 0x18adb6996 | fcn.180379c00((undefined *)((int64_t)*(undefined **)0x20 + -0x98)); 0x18adb69a8 | if (*(char *)((int64_t)*(undefined **)0x20 + -0x51) < '\0') { 0x18adb69c4 | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0xf0) = 0x18adb69c9; 0x18adb69bc | fcn.1841dcbe0(*(undefined8 *)((int64_t)*(undefined **)0x20 + -0x68), 0x18adb69b4 | *(uint64_t *)((int64_t)*(undefined **)0x20 + -0x58) & 0x7fffffffffffffff); | } | } 0x18adb69de | if (*(uint64_t *)0x191c71040 == 0x18adb69c9 | (*(uint64_t *)((int64_t)*(undefined **)0x20 + -0x40) ^ (uint64_t)((int64_t)*(undefined **)0x20 + -0xe8))) { 0x18adb69f8 | return; | } 0x18adb6afd | *(undefined8 *)((int64_t)*(undefined **)0x20 + -0xf0) = 0x18adb6b02; 0x18adb6af2 | fcn.185f05b40(*(uint64_t *)((int64_t)*(undefined **)0x20 + -0x40) ^ (uint64_t)((int64_t)*(undefined **)0x20 + -0xe8) 0x18adb6afd | ); |code_r0x00018adb6b02: 0x18adb6b02 | pcVar3 = (code *)swi(3); 0x18adb6b02 | (*pcVar3)(); 0x18adb6b02 | return; |} [{"offset":6624602208,"name":"fcn.18adb6860","size":2003,"is-pure":false,"realsz":1125,"noreturn":false,"stackframe":232,"calltype":"ms","cost":349,"cc":42,"loops":16,"bits":64,"type":"fcn","nbbs":57,"edges":85,"ebbs":7,"signature":"fcn.18adb6860(int64_t arg1, int64_t arg_40h);","minbound":6624600880,"maxbound":6624602883,"callrefs":[{"from":6624600950,"to":6740346544,"type":"CALL"},{"from":6624601101,"to":6624601048,"type":"CODE"},{"from":6624601108,"to":6624602288,"type":"CALL"},{"from":6624601113,"to":6624601026,"type":"CODE"},{"from":6624601144,"to":6513050896,"type":"CALL"},{"from":6624601149,"to":6624601048,"type":"CODE"},{"from":6624601182,"to":6624603584,"type":"CALL"},{"from":6624601187,"to":6624601017,"type":"CODE"},{"from":6624601226,"to":6539244160,"type":"CALL"},{"from":6624601325,"to":6624604208,"type":"CALL"},{"from":6624601330,"to":6624600991,"type":"CODE"},{"from":6624601346,"to":6542089024,"type":"CALL"},{"from":6624602274,"to":6624602288,"type":"CODE"},{"from":6624602365,"to":6740346544,"type":"CALL"},{"from":6624602386,"to":6511730640,"type":"CALL"},{"from":6624602430,"to":6536129904,"type":"CALL"},{"from":6624602471,"to":6448933696,"type":"CALL"},{"from":6624602513,"to":6446095360,"type":"CALL"},{"from":6624602523,"to":6446095360,"type":"CALL"},{"from":6624602564,"to":6511512544,"type":"CALL"},{"from":6624602620,"to":6624605392,"type":"CALL"},{"from":6624602834,"to":6624602617,"type":"CODE"},{"from":6624602856,"to":6624602896,"type":"CALL"},{"from":6624602861,"to":6624602569,"type":"CODE"},{"from":6624602877,"to":6542089024,"type":"CALL"}],"datarefs":[{"from":6624600901,"to":6740709440,"type":"DATA"},{"from":6624600923,"to":6742242312,"type":"DATA"},{"from":6624600977,"to":6742233648,"type":"DATA"},{"from":6624601003,"to":6742233648,"type":"DATA"},{"from":6624601038,"to":6742233648,"type":"DATA"},{"from":6624601059,"to":6740709440,"type":"DATA"},{"from":6624601154,"to":6724157024,"type":"DATA"},{"from":6624601195,"to":6741839496,"type":"DATA"},{"from":6624601243,"to":6724157080,"type":"DATA"},{"from":6624602210,"to":6742246552,"type":"DATA"},{"from":6624602313,"to":6740709440,"type":"DATA"},{"from":6624602338,"to":6742242312,"type":"DATA"},{"from":6624602379,"to":6741126088,"type":"DATA"},{"from":6624602420,"to":6724156824,"type":"DATA"},{"from":6624602580,"to":6740709440,"type":"DATA"}],"codexrefs":[{"from":6624601101,"to":6624601048,"type":"CODE"},{"from":6624601108,"to":6624602288,"type":"CALL"},{"from":6624601113,"to":6624601026,"type":"CODE"},{"from":6624601149,"to":6624601048,"type":"CODE"},{"from":6624601187,"to":6624601017,"type":"CODE"},{"from":6624601330,"to":6624600991,"type":"CODE"},{"from":6624602274,"to":6624602288,"type":"CODE"},{"from":6624602834,"to":6624602617,"type":"CODE"},{"from":6624602861,"to":6624602569,"type":"CODE"}],"dataxrefs":[],"indegree":9,"outdegree":17,"nlocals":19,"nargs":2,"stackvars":[{"name":"var_c8h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-200}},{"name":"var_c0h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-192}},{"name":"var_b8h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-184}},{"name":"var_b0h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-176}},{"name":"var_a8h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-168}},{"name":"var_a4h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-164}},{"name":"var_a0h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-160}},{"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_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_68h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-104}},{"name":"var_60h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-96}},{"name":"var_58h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-88}},{"name":"var_51h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-81}},{"name":"var_48h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-72}},{"name":"var_44h","arg":false,"type":"int64_t","storage":{"type":"stack","stack":-68}},{"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":"arg_40h","arg":true,"type":"int64_t","storage":{"type":"stack","stack":64}}],"regvars":[{"name":"arg1","arg":true,"type":"int64_t","storage":{"type":"reg","reg":"rcx"}}]}]