From 304a926ea4db416b832a6142c9b430a2e073d923 Mon Sep 17 00:00:00 2001 From: Matiq Date: Sun, 16 Aug 2026 21:14:51 +0300 Subject: [PATCH] chore: FFT giants, factor tables, spectral class map, block-processor chain --- ListFuns.java | 26 + SearchRefs.java | 4 +- focus_decomp.txt | 992 +++++----------------------------- focus_list.txt | 1 + funs_range.txt | 1051 ++++++++++++++++++++++++++++++++++++ giant.txt | 1233 ++++++++++++++++++++++++++++++++++++++++++ giant2.txt | 1339 ++++++++++++++++++++++++++++++++++++++++++++++ giant3.txt | 0 roadmap.md | 26 + tmp_spec.txt | 0 xrefs.txt | 41 +- 11 files changed, 3831 insertions(+), 882 deletions(-) create mode 100644 ListFuns.java create mode 100644 focus_list.txt create mode 100644 funs_range.txt create mode 100644 giant.txt create mode 100644 giant2.txt create mode 100644 giant3.txt create mode 100644 tmp_spec.txt diff --git a/ListFuns.java b/ListFuns.java new file mode 100644 index 0000000..d1e1d9e --- /dev/null +++ b/ListFuns.java @@ -0,0 +1,26 @@ +import ghidra.app.script.GhidraScript; +import ghidra.program.model.listing.Function; +import ghidra.program.model.listing.FunctionIterator; +import ghidra.util.task.TaskMonitor; +import java.io.PrintWriter; + +public class ListFuns extends GhidraScript { + @Override + public void run() throws Exception { + FunctionIterator it = currentProgram.getFunctionManager().getFunctions(true); + PrintWriter pw = new PrintWriter(new java.io.BufferedWriter( + new java.io.FileWriter("/home/m/re-tools/funs_range.txt"))); + long lo = 0x180500000L, hi = 0x180530000L; + while (it.hasNext()) { + Function f = it.next(); + long off = f.getEntryPoint().getOffset(); + if (off >= lo && off <= hi) { + int n = 0; + try { n = (int)f.getBody().getNumAddresses(); } catch (Exception e) {} + pw.println(Long.toHexString(off) + " " + n + " " + f.getName()); + } + } + pw.close(); + println("LISTFUNS_DONE"); + } +} diff --git a/SearchRefs.java b/SearchRefs.java index 208ac2b..d2bd9e1 100644 --- a/SearchRefs.java +++ b/SearchRefs.java @@ -8,7 +8,7 @@ import java.io.PrintWriter; public class SearchRefs extends GhidraScript { @Override public void run() throws Exception { - String[] targets = {"180008140","180039aa0","181c5cd10","18003f1a0","18003f600"}; + String[] targets = {"180008140","180039b00","18003a2a0","18003b6c0","180034280","18003f1a0","18003f600","1800356f0","18052e130","18052df60"}; AddressSpace as = currentProgram.getAddressFactory().getDefaultAddressSpace(); PrintWriter pw = new PrintWriter(new java.io.BufferedWriter( new java.io.FileWriter("/home/m/re-tools/xrefs.txt"))); @@ -18,7 +18,7 @@ public class SearchRefs extends GhidraScript { pw.println("### TARGET " + ts); ReferenceIterator it = currentProgram.getReferenceManager().getReferencesTo(t); int n=0; - while (it.hasNext() && n<200) { + while (it.hasNext() && n<300) { Reference r = it.next(); pw.println(" from " + r.getFromAddress() + " type=" + r.getReferenceType()); n++; diff --git a/focus_decomp.txt b/focus_decomp.txt index 21bfb99..594b6c1 100644 --- a/focus_decomp.txt +++ b/focus_decomp.txt @@ -1,893 +1,141 @@ -############ NO_FUNCTION 0x18001474c ############ -############ FUN_ 18003b6c0 size=559 ############ +############ FUN_ 180536f90 size=249 ############ -/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ +/* WARNING: Removing unreachable block (ram,0x000180537079) */ +/* WARNING: Removing unreachable block (ram,0x0001805370c8) */ +/* WARNING: Removing unreachable block (ram,0x00018053707f) */ -longlong FUN_18003b6c0(longlong param_1,uint param_2,longlong param_3,int param_4,undefined8 param_5 - ,undefined8 param_6) +void FUN_180536f90(undefined8 param_1,undefined8 param_2,undefined8 *param_3,undefined8 param_4, + undefined4 param_5) { - longlong lVar1; - undefined8 uVar2; - longlong lVar3; - ulonglong uVar4; - uint uVar5; - longlong lVar6; - uint uVar7; - uint uVar8; - int iVar9; - int iVar10; - longlong lVar11; - longlong lVar12; - int iVar13; - longlong lVar14; - longlong lVar15; + undefined8 *puVar1; + undefined8 *puVar2; + undefined1 auStack_f8 [32]; + undefined8 local_d8; + undefined8 local_c8; + undefined8 uStack_c0; + undefined8 local_b8; + undefined4 local_b0; + undefined4 uStack_ac; + undefined4 uStack_a8; + undefined4 uStack_a4; + undefined8 local_a0; + undefined4 local_98; + undefined4 uStack_94; + undefined4 uStack_90; + undefined4 uStack_8c; + ulonglong local_88; - if ((int)param_2 < 0x12) { - uVar2 = FUN_180034280(param_2,param_5); - } - else { - uVar2 = FUN_180105de0(param_2,5,param_5); - } - if (*(int *)(&DAT_181c5e3fc + (longlong)(int)param_2 * 4) == 0) { - *(undefined8 *)(param_1 + 0x38) = uVar2; - lVar3 = FUN_18003a2a0(0x11,param_3,param_4); - iVar10 = 1; - iVar9 = 1 << (param_2 & 0x1f); - uVar5 = (int)(((uint)(iVar9 >> 1) >> 0x1e) + iVar9) >> 2; - *(longlong *)(param_1 + 0x40) = lVar3; - if (0 < (int)uVar5) { - if (uVar5 >> 1 != 0) { - iVar10 = 1 << (param_4 - param_2 & 0x1f); - iVar9 = uVar5 * iVar10 + iVar10; - lVar15 = (longlong)iVar10; - lVar14 = 0; - lVar12 = (longlong)(iVar9 + iVar10 * -2); - lVar11 = (longlong)(iVar9 - iVar10); - uVar8 = 0; - do { - uVar7 = uVar8; - lVar1 = lVar11 * 8; - uVar8 = uVar7 + 1; - lVar6 = (longlong)(int)(uVar7 * 2) * 0x10; - lVar11 = lVar11 + iVar10 * -2; - *(undefined8 *)(lVar3 + lVar6) = *(undefined8 *)(param_3 + lVar1); - lVar1 = lVar14 * 8; - lVar14 = lVar14 + iVar10 * 2; - *(ulonglong *)(lVar3 + 8 + lVar6) = *(ulonglong *)(param_3 + lVar1) ^ _DAT_181c5e4e0; - lVar1 = lVar12 * 8; - lVar12 = lVar12 + iVar10 * -2; - *(undefined8 *)(lVar3 + 0x10 + lVar6) = *(undefined8 *)(param_3 + lVar1); - lVar1 = lVar15 * 8; - lVar15 = lVar15 + iVar10 * 2; - *(ulonglong *)(lVar3 + 0x18 + lVar6) = *(ulonglong *)(param_3 + lVar1) ^ _DAT_181c5e4e0; - } while (uVar8 < uVar5 >> 1); - iVar10 = uVar7 + 2 + uVar8; - } - if (iVar10 - 1U < uVar5) { - iVar9 = 1 << (param_4 - param_2 & 0x1f); - iVar13 = (iVar10 - 1U) * iVar9; - *(undefined8 *)((longlong)iVar10 * 0x10 + -0x10 + lVar3) = - *(undefined8 *)(param_3 + (longlong)(int)(iVar9 * uVar5 - iVar13) * 8); - *(ulonglong *)((longlong)iVar10 * 0x10 + -8 + lVar3) = - *(ulonglong *)(param_3 + (longlong)iVar13 * 8) ^ _DAT_181c5e4e0; - } - } - uVar4 = lVar3 + (longlong)(int)uVar5 * 0x10; - *(undefined4 *)(param_1 + 0x1c) = 0x200000; - lVar3 = uVar4 + (-(uVar4 & 0x3f) & 0x3f); - } - else { - lVar3 = FUN_18003b900(param_1,param_2,param_3,param_4,0,uVar2,param_6); - } - if (0x11 < (int)param_2) { - iVar10 = 0x8000; - if (0x7fff < *(int *)(param_1 + 0x1c)) { - iVar10 = *(int *)(param_1 + 0x1c); - } - *(int *)(param_1 + 0x1c) = iVar10; - } - return lVar3; + local_88 = DAT_182615970 ^ (ulonglong)auStack_f8; + puVar1 = (undefined8 *)*param_3; + puVar2 = (undefined8 *)param_3[1]; + local_b0 = *(undefined4 *)(puVar1 + 1); + uStack_ac = *(undefined4 *)((longlong)puVar1 + 0xc); + uStack_a8 = *(undefined4 *)(puVar1 + 2); + uStack_a4 = *(undefined4 *)((longlong)puVar1 + 0x14); + local_98 = *(undefined4 *)(puVar2 + 1); + uStack_94 = *(undefined4 *)((longlong)puVar2 + 0xc); + uStack_90 = *(undefined4 *)(puVar2 + 2); + uStack_8c = *(undefined4 *)((longlong)puVar2 + 0x14); + local_c8 = *puVar1; + local_a0 = *puVar2; + uStack_c0 = 0; + local_d8 = param_4; + local_b8 = local_c8; + /* WARNING: Subroutine does not return */ + thunk_FUN_181ba94b0(&local_c8,param_2,param_5); } -############ FUN_ 18003f1a0 size=1102 ############ +############ FUN_ 180535880 size=283 ############ -/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ +/* WARNING: Removing unreachable block (ram,0x000180535987) */ +/* WARNING: Removing unreachable block (ram,0x0001805359d3) */ +/* WARNING: Removing unreachable block (ram,0x00018053598d) */ -longlong FUN_18003f1a0(uint param_1,longlong param_2,int param_3,longlong param_4) - -{ - longlong lVar1; - double dVar2; - int iVar3; - ulonglong uVar4; - longlong lVar5; - longlong lVar6; - longlong lVar7; - uint uVar8; - int iVar9; - longlong lVar10; - longlong lVar11; - longlong lVar12; - int iVar13; - uint uVar14; - uint uVar15; - longlong lVar16; - int iVar17; - uint uVar18; - ulonglong uVar19; - longlong lVar20; - undefined1 auVar21 [16]; - undefined1 auVar22 [16]; - undefined1 auVar23 [16]; - undefined1 auVar24 [16]; - undefined1 auVar25 [16]; - undefined1 auVar26 [16]; - undefined1 auVar27 [16]; - undefined1 auVar28 [16]; - - dVar2 = DAT_181c5e510; - iVar13 = 1; - iVar9 = 1 << (param_1 & 0x1f); - iVar17 = 1 << (param_3 - param_1 & 0x1f); - iVar3 = ((uint)(iVar9 >> 1) >> 0x1e) + iVar9; - lVar6 = (longlong)(iVar17 * 2); - uVar18 = iVar3 >> 2; - uVar19 = (ulonglong)uVar18; - lVar7 = (longlong)(iVar17 * -2); - if (iVar9 < 0x20000) { - uVar19 = (ulonglong)(int)uVar18; - uVar4 = 2; - if (8 < iVar9) { - uVar4 = uVar19; - } - } - else { - uVar4 = (longlong)(iVar3 >> 0xb) + 0x200; - } - uVar4 = uVar4 * 0x10 + param_4; - lVar5 = uVar4 + (-(uVar4 & 0x3f) & 0x3f); - uVar18 = (uint)uVar19; - if (iVar9 < 0x20000) { - if (iVar9 < 9) { - if (0 < (int)uVar18) { - if ((uVar19 >> 1 & 0x7fffffff) != 0) { - auVar21._8_8_ = 0; - auVar21._0_8_ = DAT_181c5e510; - iVar13 = uVar18 * iVar17 + iVar17; - lVar7 = (longlong)iVar17; - lVar11 = 0; - lVar6 = (longlong)(iVar13 + iVar17 * -2); - lVar16 = (longlong)(iVar13 - iVar17); - uVar8 = 0; - do { - uVar15 = uVar8; - lVar10 = lVar16 * 8; - lVar20 = (longlong)(int)(uVar15 * 4); - uVar8 = uVar15 + 1; - lVar16 = lVar16 + iVar17 * -2; - *(double *)(param_4 + lVar20 * 8) = dVar2 * *(double *)(param_2 + lVar10); - auVar24._8_8_ = 0; - auVar24._0_8_ = *(ulonglong *)(param_2 + lVar11 * 8); - lVar11 = lVar11 + iVar17 * 2; - auVar24 = vfnmadd213sd_fma(auVar24,auVar21,auVar21); - *(longlong *)(param_4 + 8 + lVar20 * 8) = auVar24._0_8_; - lVar10 = lVar6 * 8; - lVar6 = lVar6 + iVar17 * -2; - *(double *)(param_4 + 0x10 + lVar20 * 8) = dVar2 * *(double *)(param_2 + lVar10); - auVar27._8_8_ = 0; - auVar27._0_8_ = *(ulonglong *)(param_2 + lVar7 * 8); - lVar7 = lVar7 + iVar17 * 2; - auVar24 = vfnmadd213sd_fma(auVar27,auVar21,auVar21); - *(longlong *)(param_4 + 0x18 + lVar20 * 8) = auVar24._0_8_; - } while (uVar8 < ((uint)(uVar19 >> 1) & 0x7fffffff)); - iVar13 = uVar15 + 2 + uVar8; - } - if (iVar13 - 1U < uVar18) { - iVar3 = (iVar13 - 1U) * iVar17; - auVar25._8_8_ = 0; - auVar25._0_8_ = DAT_181c5e510; - *(double *)(param_4 + -0x10 + (longlong)(iVar13 * 2) * 8) = - DAT_181c5e510 * *(double *)(param_2 + (longlong)(int)(uVar18 * iVar17 - iVar3) * 8); - auVar23._8_8_ = 0; - auVar23._0_8_ = *(ulonglong *)(param_2 + (longlong)iVar3 * 8); - auVar21 = vfnmadd213sd_fma(auVar25,auVar23,auVar25); - *(longlong *)(param_4 + -8 + (longlong)(iVar13 * 2) * 8) = auVar21._0_8_; - } - } - return lVar5; - } - lVar11 = (longlong)iVar17; - iVar13 = 0; - if (0 < (int)uVar18) { - auVar22._8_8_ = 0; - auVar22._0_8_ = DAT_181c5e510; - lVar10 = (longlong)(int)(iVar17 * uVar18 - iVar17); - lVar20 = (longlong)(iVar17 * 2); - lVar16 = (longlong)(int)(iVar17 * uVar18 + iVar17 * -2); - do { - lVar1 = lVar10 * 8; - lVar12 = (longlong)(iVar13 * 2); - iVar13 = iVar13 + 2; - lVar10 = lVar10 + lVar7; - *(double *)(param_4 + lVar12 * 8) = dVar2 * *(double *)(param_2 + lVar1); - lVar1 = lVar16 * 8; - lVar16 = lVar16 + lVar7; - *(double *)(param_4 + 8 + lVar12 * 8) = dVar2 * *(double *)(param_2 + lVar1); - auVar26._8_8_ = 0; - auVar26._0_8_ = *(ulonglong *)(param_2 + lVar11 * 8); - lVar11 = lVar11 + lVar6; - auVar21 = vfnmadd213sd_fma(auVar26,auVar22,auVar22); - *(longlong *)(param_4 + 0x10 + lVar12 * 8) = auVar21._0_8_; - auVar28._8_8_ = 0; - auVar28._0_8_ = *(ulonglong *)(param_2 + lVar20 * 8); - lVar20 = lVar20 + lVar6; - auVar21 = vfnmadd213sd_fma(auVar28,auVar22,auVar22); - *(longlong *)(param_4 + 0x18 + lVar12 * 8) = auVar21._0_8_; - } while (iVar13 < (int)uVar18); - } - } - else { - iVar3 = 0; - lVar10 = (longlong)(int)(iVar17 * uVar18 - iVar17); - lVar20 = (longlong)(iVar17 * 2); - lVar16 = (longlong)(int)(iVar17 * uVar18 + iVar17 * -2); - lVar11 = (longlong)iVar17; - do { - uVar19 = (ulonglong)(uint)(iVar3 * 2); - *(undefined8 *)(param_4 + uVar19 * 8) = *(undefined8 *)(param_2 + lVar10 * 8); - iVar3 = iVar3 + 2; - lVar10 = lVar10 + lVar7; - *(undefined8 *)(param_4 + 8 + uVar19 * 8) = *(undefined8 *)(param_2 + lVar16 * 8); - lVar16 = lVar16 + lVar7; - lVar1 = lVar11 * 8; - lVar11 = lVar11 + lVar6; - *(ulonglong *)(param_4 + 0x10 + uVar19 * 8) = *(ulonglong *)(param_2 + lVar1) ^ _DAT_181c5e500 - ; - lVar1 = lVar20 * 8; - lVar20 = lVar20 + lVar6; - *(ulonglong *)(param_4 + 0x18 + uVar19 * 8) = *(ulonglong *)(param_2 + lVar1) ^ _DAT_181c5e500 - ; - } while (iVar3 < 0x200); - if (0 < (int)uVar18) { - uVar8 = uVar18 + 0x1ff; - if (uVar8 >> 10 != 0) { - iVar3 = iVar17 * -0x400; - lVar6 = (longlong)(iVar17 * 0x200); - iVar13 = uVar18 * iVar17 + iVar17 * 0x200; - lVar11 = 0; - lVar7 = (longlong)(iVar13 + iVar3); - lVar16 = (longlong)(iVar17 * -0x200 + iVar13); - uVar15 = 0; - do { - uVar14 = uVar15; - lVar10 = lVar16 * 8; - lVar20 = (longlong)(int)(uVar14 * 4); - uVar15 = uVar14 + 1; - lVar16 = lVar16 + iVar3; - *(undefined8 *)(param_4 + 0x2000 + lVar20 * 8) = *(undefined8 *)(param_2 + lVar10); - lVar10 = lVar11 * 8; - lVar11 = lVar11 + iVar17 * 0x400; - *(ulonglong *)(param_4 + 0x2008 + lVar20 * 8) = - *(ulonglong *)(param_2 + lVar10) ^ _DAT_181c5e500; - lVar10 = lVar7 * 8; - lVar7 = lVar7 + iVar3; - *(undefined8 *)(param_4 + 0x2010 + lVar20 * 8) = *(undefined8 *)(param_2 + lVar10); - lVar10 = lVar6 * 8; - lVar6 = lVar6 + iVar17 * 0x400; - *(ulonglong *)(param_4 + 0x2018 + lVar20 * 8) = - *(ulonglong *)(param_2 + lVar10) ^ _DAT_181c5e500; - } while (uVar15 < uVar8 >> 10); - iVar13 = uVar14 + 2 + uVar15; - } - uVar15 = iVar13 - 1; - if (uVar15 < (uint)((int)(((uint)((int)uVar8 >> 8) >> 0x17) + 0x1ff + uVar18) >> 9)) { - *(undefined8 *)(param_4 + 0x1ff0 + (longlong)(iVar13 * 2) * 8) = - *(undefined8 *) - (param_2 + (longlong)(int)(uVar18 * iVar17 + uVar15 * iVar17 * -0x200) * 8); - *(ulonglong *)(param_4 + 0x1ff8 + (longlong)(iVar13 * 2) * 8) = - *(ulonglong *)(param_2 + (longlong)(int)(iVar17 * 0x200 * uVar15) * 8) ^ _DAT_181c5e500 - ; - } - } - } - return lVar5; -} - - - -############ FUN_ 18003f600 size=1038 ############ - -/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ - -longlong FUN_18003f600(uint param_1,longlong param_2,int param_3,longlong param_4) - -{ - longlong lVar1; - int iVar2; - ulonglong uVar3; - longlong lVar4; - longlong lVar5; - longlong lVar6; - longlong lVar7; - int iVar8; - int iVar9; - uint uVar10; - longlong lVar11; - longlong lVar12; - longlong lVar13; - uint uVar14; - uint uVar15; - int iVar16; - uint uVar17; - ulonglong uVar18; - longlong lVar19; - - iVar8 = 1; - iVar9 = 1 << (param_1 & 0x1f); - iVar16 = 1 << (param_3 - param_1 & 0x1f); - iVar2 = ((uint)(iVar9 >> 1) >> 0x1e) + iVar9; - lVar5 = (longlong)(iVar16 * 2); - uVar17 = iVar2 >> 2; - uVar18 = (ulonglong)uVar17; - lVar6 = (longlong)(iVar16 * -2); - if (iVar9 < 0x20000) { - uVar18 = (ulonglong)(int)uVar17; - uVar3 = 2; - if (8 < iVar9) { - uVar3 = uVar18; - } - } - else { - uVar3 = (longlong)(iVar2 >> 0xb) + 0x200; - } - uVar3 = uVar3 * 0x10 + param_4; - lVar4 = uVar3 + (-(uVar3 & 0x3f) & 0x3f); - uVar17 = (uint)uVar18; - if (iVar9 < 0x20000) { - if (iVar9 < 9) { - if (0 < (int)uVar17) { - if ((uVar18 >> 1 & 0x7fffffff) != 0) { - iVar8 = uVar17 * iVar16 + iVar16; - lVar12 = (longlong)iVar16; - lVar19 = 0; - lVar6 = (longlong)(iVar8 + iVar16 * -2); - lVar5 = (longlong)(iVar8 - iVar16); - uVar10 = 0; - do { - uVar15 = uVar10; - lVar11 = lVar5 * 8; - lVar7 = (longlong)(int)(uVar15 * 4); - uVar10 = uVar15 + 1; - lVar5 = lVar5 + iVar16 * -2; - *(undefined8 *)(param_4 + lVar7 * 8) = *(undefined8 *)(param_2 + lVar11); - lVar11 = lVar19 * 8; - lVar19 = lVar19 + iVar16 * 2; - *(ulonglong *)(param_4 + 8 + lVar7 * 8) = - *(ulonglong *)(param_2 + lVar11) ^ _DAT_181c5e520; - lVar11 = lVar6 * 8; - lVar6 = lVar6 + iVar16 * -2; - *(undefined8 *)(param_4 + 0x10 + lVar7 * 8) = *(undefined8 *)(param_2 + lVar11); - lVar11 = lVar12 * 8; - lVar12 = lVar12 + iVar16 * 2; - *(ulonglong *)(param_4 + 0x18 + lVar7 * 8) = - *(ulonglong *)(param_2 + lVar11) ^ _DAT_181c5e520; - } while (uVar10 < ((uint)(uVar18 >> 1) & 0x7fffffff)); - iVar8 = uVar15 + 2 + uVar10; - } - if (iVar8 - 1U < uVar17) { - iVar2 = (iVar8 - 1U) * iVar16; - *(undefined8 *)(param_4 + -0x10 + (longlong)(iVar8 * 2) * 8) = - *(undefined8 *)(param_2 + (longlong)(int)(uVar17 * iVar16 - iVar2) * 8); - *(ulonglong *)(param_4 + -8 + (longlong)(iVar8 * 2) * 8) = - *(ulonglong *)(param_2 + (longlong)iVar2 * 8) ^ _DAT_181c5e520; - } - } - return lVar4; - } - lVar12 = (longlong)iVar16; - iVar8 = 0; - if (0 < (int)uVar17) { - lVar19 = (longlong)(int)(iVar16 * uVar17 - iVar16); - lVar7 = (longlong)(iVar16 * 2); - lVar11 = (longlong)(int)(iVar16 * uVar17 + iVar16 * -2); - do { - lVar1 = lVar19 * 8; - lVar13 = (longlong)(iVar8 * 2); - iVar8 = iVar8 + 2; - lVar19 = lVar19 + lVar6; - *(undefined8 *)(param_4 + lVar13 * 8) = *(undefined8 *)(param_2 + lVar1); - lVar1 = lVar11 * 8; - lVar11 = lVar11 + lVar6; - *(undefined8 *)(param_4 + 8 + lVar13 * 8) = *(undefined8 *)(param_2 + lVar1); - lVar1 = lVar12 * 8; - lVar12 = lVar12 + lVar5; - *(ulonglong *)(param_4 + 0x10 + lVar13 * 8) = - *(ulonglong *)(param_2 + lVar1) ^ _DAT_181c5e520; - lVar1 = lVar7 * 8; - lVar7 = lVar7 + lVar5; - *(ulonglong *)(param_4 + 0x18 + lVar13 * 8) = - *(ulonglong *)(param_2 + lVar1) ^ _DAT_181c5e520; - } while (iVar8 < (int)uVar17); - } - } - else { - iVar2 = 0; - lVar11 = (longlong)(int)(iVar16 * uVar17 - iVar16); - lVar7 = (longlong)(iVar16 * 2); - lVar19 = (longlong)(int)(iVar16 * uVar17 + iVar16 * -2); - lVar12 = (longlong)iVar16; - do { - uVar18 = (ulonglong)(uint)(iVar2 * 2); - *(undefined8 *)(param_4 + uVar18 * 8) = *(undefined8 *)(param_2 + lVar11 * 8); - iVar2 = iVar2 + 2; - lVar11 = lVar11 + lVar6; - *(undefined8 *)(param_4 + 8 + uVar18 * 8) = *(undefined8 *)(param_2 + lVar19 * 8); - lVar19 = lVar19 + lVar6; - lVar1 = lVar12 * 8; - lVar12 = lVar12 + lVar5; - *(ulonglong *)(param_4 + 0x10 + uVar18 * 8) = *(ulonglong *)(param_2 + lVar1) ^ _DAT_181c5e520 - ; - lVar1 = lVar7 * 8; - lVar7 = lVar7 + lVar5; - *(ulonglong *)(param_4 + 0x18 + uVar18 * 8) = *(ulonglong *)(param_2 + lVar1) ^ _DAT_181c5e520 - ; - } while (iVar2 < 0x200); - if (0 < (int)uVar17) { - uVar10 = uVar17 + 0x1ff; - if (uVar10 >> 10 != 0) { - iVar2 = iVar16 * -0x400; - lVar5 = (longlong)(iVar16 * 0x200); - iVar8 = uVar17 * iVar16 + iVar16 * 0x200; - lVar12 = 0; - lVar6 = (longlong)(iVar8 + iVar2); - lVar19 = (longlong)(iVar16 * -0x200 + iVar8); - uVar15 = 0; - do { - uVar14 = uVar15; - lVar11 = lVar19 * 8; - lVar7 = (longlong)(int)(uVar14 * 4); - uVar15 = uVar14 + 1; - lVar19 = lVar19 + iVar2; - *(undefined8 *)(param_4 + 0x2000 + lVar7 * 8) = *(undefined8 *)(param_2 + lVar11); - lVar11 = lVar12 * 8; - lVar12 = lVar12 + iVar16 * 0x400; - *(ulonglong *)(param_4 + 0x2008 + lVar7 * 8) = - *(ulonglong *)(param_2 + lVar11) ^ _DAT_181c5e520; - lVar11 = lVar6 * 8; - lVar6 = lVar6 + iVar2; - *(undefined8 *)(param_4 + 0x2010 + lVar7 * 8) = *(undefined8 *)(param_2 + lVar11); - lVar11 = lVar5 * 8; - lVar5 = lVar5 + iVar16 * 0x400; - *(ulonglong *)(param_4 + 0x2018 + lVar7 * 8) = - *(ulonglong *)(param_2 + lVar11) ^ _DAT_181c5e520; - } while (uVar15 < uVar10 >> 10); - iVar8 = uVar14 + 2 + uVar15; - } - uVar15 = iVar8 - 1; - if (uVar15 < (uint)((int)(((uint)((int)uVar10 >> 8) >> 0x17) + 0x1ff + uVar17) >> 9)) { - *(undefined8 *)(param_4 + 0x1ff0 + (longlong)(iVar8 * 2) * 8) = - *(undefined8 *) - (param_2 + (longlong)(int)(uVar17 * iVar16 + uVar15 * iVar16 * -0x200) * 8); - *(ulonglong *)(param_4 + 0x1ff8 + (longlong)(iVar8 * 2) * 8) = - *(ulonglong *)(param_2 + (longlong)(int)(iVar16 * 0x200 * uVar15) * 8) ^ _DAT_181c5e520 - ; - } - } - } - return lVar4; -} - - - -############ FUN_ 180034280 size=156 ############ - -undefined4 * FUN_180034280(int param_1,undefined4 *param_2) - -{ - int iVar1; - int iVar2; - longlong lVar3; - longlong lVar4; - int iVar5; - - if (1 < param_1) { - iVar2 = 1 << (param_1 + 0x1eU & 0x1f); - iVar1 = 0; - lVar3 = (longlong)iVar2; - iVar2 = iVar2 >> 1; - lVar4 = 1; - if (1 < lVar3) { - do { - iVar5 = iVar2; - if (iVar2 <= iVar1) { - do { - iVar1 = iVar1 - iVar5; - iVar5 = iVar5 >> 1; - } while (iVar5 <= iVar1); - } - iVar1 = iVar1 + iVar5; - param_2[lVar4] = iVar1 * 2; - lVar4 = lVar4 + 1; - } while (lVar4 < lVar3); - } - *param_2 = 0; - param_2[lVar3] = 0; - return (undefined4 *) - ((longlong)(param_2 + lVar3 + 1) + (-((ulonglong)(param_2 + lVar3 + 1) & 0x3f) & 0x3f)); - } - return param_2; -} - - - -############ FUN_ 180039b00 size=1939 ############ - -/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ - -longlong FUN_180039b00(uint param_1,ulonglong param_2) +void FUN_180535880(undefined8 param_1,undefined8 param_2,undefined8 *param_3,undefined8 param_4, + undefined4 param_5) { double *pdVar1; - ulonglong *puVar2; - undefined8 *puVar3; - bool bVar4; - bool bVar5; - bool bVar6; - uint uVar7; - uint uVar8; - ulonglong uVar9; - uint uVar10; - int iVar11; - longlong lVar12; - uint uVar13; - ulonglong uVar14; - ulonglong uVar15; - uint uVar16; - longlong lVar17; - longlong lVar18; - ulonglong uVar19; - longlong lVar20; - int iVar21; - ulonglong uVar22; - undefined1 auVar23 [16]; - undefined1 auVar24 [16]; - undefined1 auVar25 [16]; - undefined1 auVar26 [16]; - undefined1 auVar27 [16]; - undefined1 auVar28 [16]; - undefined1 auVar29 [32]; - undefined1 auVar30 [32]; - undefined1 auVar31 [32]; - undefined1 auVar32 [32]; - undefined1 auVar33 [32]; - double dVar34; - undefined1 auVar35 [16]; - double dVar36; + double *pdVar2; + undefined1 auStack_c8 [32]; + undefined8 local_a8; + float local_a0; + float local_9c; + float local_98; + float local_90; + float local_8c; + float local_88; + ulonglong local_80; - iVar11 = 1 << (param_1 & 0x1f); - uVar10 = (int)(((uint)(iVar11 >> 1) >> 0x1e) + iVar11) >> 2; - if ((int)param_1 < 0xb) { - if ((int)uVar10 < 1) { - lVar12 = (longlong)(int)uVar10 * 8; - } - else { - if ((int)uVar10 < 7) { - lVar12 = (longlong)(int)uVar10 * 8; - goto LAB_180039ce5; - } - iVar11 = 1 << (10 - param_1 & 0x1f); - lVar18 = (longlong)iVar11; - lVar17 = (longlong)(int)uVar10; - if (iVar11 * 8 < 1) { -LAB_180039cdd: - lVar12 = lVar17 * 8; - } - else if (param_2 < 0x182616800) { - lVar12 = lVar17 * 8; - if (lVar12 <= (longlong)((longlong)&DAT_182616800 - param_2)) { -LAB_180039bbf: - lVar12 = lVar17 * 8; - if ((int)uVar10 < 0xb) { - uVar14 = 0; - uVar16 = uVar10 & 0xfffffffe; -LAB_180039c37: - lVar17 = uVar14 * lVar18; - do { - puVar2 = &DAT_182616800 + lVar17; - auVar35._8_8_ = 0; - auVar35._0_8_ = *puVar2; - lVar17 = lVar17 + lVar18 * 2; - auVar35 = vmovhpd_avx(auVar35,puVar2[lVar18]); - *(undefined1 (*) [16])(param_2 + uVar14 * 8) = auVar35; - uVar14 = uVar14 + 2; - } while (uVar14 < (ulonglong)(longlong)(int)uVar16); - } - else { - uVar14 = param_2 & 0xf; - if ((param_2 & 7) == 0) { - if ((int)uVar14 != 0) { - uVar14 = 1; - } - } - else { - uVar14 = 0; - } - iVar21 = (int)uVar14; - if (iVar21 + 2 <= (int)uVar10) { - uVar19 = 0; - uVar16 = uVar10 - (uVar10 - iVar21 & 1); - if (iVar21 != 0) { - lVar17 = 0; - do { - puVar3 = &DAT_182616800 + lVar17; - lVar17 = lVar17 + lVar18; - *(undefined8 *)(param_2 + uVar19 * 8) = *puVar3; - uVar19 = uVar19 + 1; - } while (uVar19 < uVar14); - } - goto LAB_180039c37; - } - uVar16 = 0; - } - uVar7 = 0; - lVar17 = 0; - if (uVar16 + 1 <= uVar10) { - lVar20 = (longlong)(int)(iVar11 * uVar16); - do { - uVar7 = uVar7 + 1; - *(undefined8 *)(param_2 + (longlong)(int)uVar16 * 8 + lVar17 * 8) = - (&DAT_182616800)[lVar20]; - lVar20 = lVar20 + lVar18; - lVar17 = lVar17 + 1; - } while (uVar7 < uVar10 - uVar16); - } - goto LAB_180039db6; - } - } - else { - if (param_2 < 0x182616801) goto LAB_180039cdd; - lVar12 = lVar17 * 8; - if ((lVar17 + -1) * (longlong)(iVar11 * 8) + 8 <= (longlong)(param_2 - 0x182616800)) - goto LAB_180039bbf; - } -LAB_180039ce5: - iVar11 = 1; - if (uVar10 >> 1 != 0) { - iVar11 = 1 << (10 - param_1 & 0x1f); - lVar18 = (longlong)iVar11; - lVar20 = (longlong)(iVar11 * 2); - lVar17 = 0; - uVar16 = 0; - do { - uVar7 = uVar16; - puVar3 = &DAT_182616800 + lVar17; - uVar16 = uVar7 + 1; - lVar17 = lVar17 + lVar20; - *(undefined8 *)(param_2 + (longlong)(int)(uVar7 * 2) * 8) = *puVar3; - puVar3 = &DAT_182616800 + lVar18; - lVar18 = lVar18 + lVar20; - *(undefined8 *)(param_2 + 8 + (longlong)(int)(uVar7 * 2) * 8) = *puVar3; - } while (uVar16 < uVar10 >> 1); - iVar11 = uVar7 + 2 + uVar16; - } - if (iVar11 - 1U < uVar10) { - *(undefined8 *)((param_2 - 8) + (longlong)iVar11 * 8) = - (&DAT_182616800)[(int)((1 << (10 - param_1 & 0x1f)) * (iVar11 - 1U))]; - } - } -LAB_180039db6: - *(undefined8 *)(lVar12 + param_2) = 0x3ff0000000000000; - goto LAB_18003a23f; + local_80 = DAT_182615970 ^ (ulonglong)auStack_c8; + pdVar1 = (double *)*param_3; + pdVar2 = (double *)param_3[1]; + local_8c = (float)pdVar2[1]; + local_9c = (float)pdVar1[1]; + local_88 = (float)pdVar2[2]; + local_a0 = (float)*pdVar1; + local_90 = (float)*pdVar2; + local_98 = (float)pdVar1[2]; + local_a8 = param_4; + /* WARNING: Subroutine does not return */ + thunk_FUN_181ba94b0(local_a0,param_2,param_5); +} + + + +############ FUN_ 18052da00 size=85 ############ + +void FUN_18052da00(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined4 param_4) + +{ + int iVar1; + + iVar1 = __std_type_info_compare(0x182650db8,0x182650db8); + if (iVar1 == 0) { + /* WARNING: Subroutine does not return */ + thunk_FUN_181ba94b0(param_2,param_3); } - iVar21 = (int)(((uint)(iVar11 >> 2) >> 0x1d) + iVar11) >> 3; - dVar36 = DAT_181c5e3f0 / (double)iVar11; - uVar16 = iVar21 + 1; - if (-1 < iVar21) { - if ((int)uVar16 < 0x10) { -LAB_18003a28c: - uVar8 = 0; - } - else { - uVar14 = param_2 & 0x1f; - if ((param_2 & 7) == 0) { - if ((int)uVar14 != 0) { - uVar14 = (ulonglong)(0x20U - (int)uVar14 >> 3); - } - } - else { - uVar14 = 0; - } - uVar7 = (uint)uVar14; - if ((int)uVar16 < (int)(uVar7 + 0x10)) goto LAB_18003a28c; - uVar13 = 0; - lVar12 = 0; - uVar8 = uVar16 - (uVar16 - uVar7 & 0xf); - if (uVar7 != 0) { - do { - dVar34 = (double)(int)uVar13; - uVar13 = uVar13 + 1; - *(double *)(param_2 + lVar12 * 8) = dVar36 * dVar34; - lVar12 = lVar12 + 1; - } while (uVar13 < uVar7); - } - auVar35 = _DAT_181c5e3d0; - auVar23 = vpunpcklqdq_avx512vl(ZEXT416(uVar7),ZEXT416(uVar7 + 1)); - auVar24 = vpunpcklqdq_avx512vl(ZEXT416(uVar7 + 2),ZEXT416(uVar7 + 3)); - auVar23 = vshufps_avx512vl(auVar23,auVar24,0x88); - auVar32._8_8_ = dVar36; - auVar32._0_8_ = dVar36; - auVar32._16_8_ = dVar36; - auVar32._24_8_ = dVar36; - do { - auVar24 = vpaddd_avx512vl(auVar23,auVar35); - auVar25 = vpaddd_avx512vl(auVar24,auVar35); - auVar26 = vpaddd_avx512vl(auVar25,auVar35); - auVar33 = vcvtdq2pd_avx(auVar23); - auVar29 = vcvtdq2pd_avx512vl(auVar24); - auVar30 = vcvtdq2pd_avx512vl(auVar25); - auVar31 = vcvtdq2pd_avx512vl(auVar26); - auVar29 = vmulpd_avx512vl(auVar32,auVar29); - auVar23 = vpaddd_avx512vl(auVar26,auVar35); - auVar30 = vmulpd_avx512vl(auVar32,auVar30); - auVar31 = vmulpd_avx512vl(auVar32,auVar31); - pdVar1 = (double *)(param_2 + uVar14 * 8); - *pdVar1 = dVar36 * auVar33._0_8_; - pdVar1[1] = dVar36 * auVar33._8_8_; - pdVar1[2] = dVar36 * auVar33._16_8_; - pdVar1[3] = dVar36 * auVar33._24_8_; - *(undefined1 (*) [32])(param_2 + 0x20 + uVar14 * 8) = auVar29; - *(undefined1 (*) [32])(param_2 + 0x40 + uVar14 * 8) = auVar30; - *(undefined1 (*) [32])(param_2 + 0x60 + uVar14 * 8) = auVar31; - uVar14 = uVar14 + 0x10; - } while (uVar14 < (ulonglong)(longlong)(int)uVar8); - } - auVar35 = _DAT_181c5e3d0; - if (uVar8 + 1 <= uVar16) { - auVar23 = vpunpcklqdq_avx512vl(ZEXT416(uVar8),ZEXT416(uVar8 + 1)); - uVar14 = 0; - auVar24 = vpunpcklqdq_avx512vl(ZEXT416(uVar8 + 2),ZEXT416(uVar8 + 3)); - auVar23 = vshufps_avx512vl(auVar23,auVar24,0x88); - auVar33._8_8_ = dVar36; - auVar33._0_8_ = dVar36; - auVar33._16_8_ = dVar36; - auVar33._24_8_ = dVar36; - auVar25 = vpbroadcastd_avx512vl(); - lVar12 = 0; - auVar24 = _DAT_181c5e3e0; - do { - auVar32 = vcvtdq2pd_avx512vl(auVar23); - uVar14 = uVar14 + 4; - auVar23 = vpaddd_avx(auVar23,auVar35); - uVar19 = vpcmpgtd_avx512vl(auVar25,auVar24); - uVar19 = uVar19 & 0xf; - auVar24 = vpaddd_avx(auVar24,auVar35); - auVar32 = vmulpd_avx512vl(auVar33,auVar32); - puVar2 = (ulonglong *)(lVar12 + param_2 + (longlong)(int)uVar8 * 8); - bVar4 = (bool)((byte)uVar19 & 1); - bVar5 = (bool)((byte)(uVar19 >> 1) & 1); - bVar6 = (bool)((byte)(uVar19 >> 2) & 1); - *puVar2 = (ulonglong)bVar4 * auVar32._0_8_ | (ulonglong)!bVar4 * *puVar2; - puVar2[1] = (ulonglong)bVar5 * auVar32._8_8_ | (ulonglong)!bVar5 * puVar2[1]; - puVar2[2] = (ulonglong)bVar6 * auVar32._16_8_ | (ulonglong)!bVar6 * puVar2[2]; - puVar2[3] = (uVar19 >> 3) * auVar32._24_8_ | (ulonglong)!SUB81(uVar19 >> 3,0) * puVar2[3]; - lVar12 = lVar12 + 0x20; - } while (uVar14 < (ulonglong)((longlong)(int)uVar16 - (longlong)(int)uVar8)); - } + /* WARNING: Subroutine does not return */ + thunk_FUN_181ba94b0(param_2,(double)(float)param_3,param_1,param_4); +} + + + +############ FUN_ 18052d990 size=97 ############ + +void FUN_18052d990(undefined8 param_1,undefined8 param_2,undefined4 param_3) + +{ + int iVar1; + + iVar1 = __std_type_info_compare(0x182650db8,0x182650db8); + if (iVar1 == 0) { + /* WARNING: Subroutine does not return */ + thunk_FUN_181ba94b0(); } - auVar35 = _DAT_181c5e3d0; - uVar7 = uVar10 - iVar21; - if ((int)uVar10 < (int)uVar16) { - uVar14 = param_2 + 8 + (longlong)iVar21 * 8; + /* WARNING: Subroutine does not return */ + thunk_FUN_181ba94b0(param_2,param_1,param_3); +} + + + +############ FUN_ 18052da70 size=78 ############ + +void FUN_18052da70(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined4 param_4) + +{ + int iVar1; + + iVar1 = __std_type_info_compare(0x182650db8,0x182650db8); + if (iVar1 == 0) { + /* WARNING: Subroutine does not return */ + thunk_FUN_181ba94b0(); } - else { - lVar12 = param_2 + (longlong)iVar21 * 8; - uVar14 = lVar12 + 8; - if ((int)uVar7 < 0x10) { - uVar19 = 0; - } - else { - uVar8 = (uint)uVar14 & 0x1f; - if ((uVar14 & 7) == 0) { - if (((uVar14 & 0x1f) != 0) && (uVar8 = 0x20 - uVar8 >> 3, (int)uVar7 < (int)uVar8)) { - uVar8 = uVar7; - } - } - else { - uVar8 = 0; - } - uVar13 = uVar7 - uVar8 & 0xf; - uVar19 = (longlong)(int)uVar7 - (ulonglong)uVar13; - uVar15 = (ulonglong)(int)uVar8; - if (uVar8 != 0) { - auVar27 = vmovdqu32_avx512vl(_DAT_181c5e3e0); - auVar24 = vpbroadcastd_avx512vl(); - auVar25 = vpbroadcastd_avx512vl(); - auVar23 = vpunpcklqdq_avx512vl(ZEXT416(uVar16),ZEXT416(iVar21 + 2)); - uVar9 = 0; - auVar29._8_8_ = dVar36; - auVar29._0_8_ = dVar36; - auVar29._16_8_ = dVar36; - auVar29._24_8_ = dVar36; - auVar26 = vpunpcklqdq_avx512vl(ZEXT416(iVar21 + 3),ZEXT416(iVar21 + 4)); - auVar23 = vshufps_avx512vl(auVar23,auVar26,0x88); - lVar17 = 0; - do { - auVar26 = vpsubd_avx512vl(auVar24,auVar23); - uVar9 = uVar9 + 4; - auVar32 = vcvtdq2pd_avx512vl(auVar26); - auVar23 = vpaddd_avx(auVar23,auVar35); - uVar22 = vpcmpgtd_avx512vl(auVar25,auVar27); - uVar22 = uVar22 & 0xf; - auVar27 = vpaddd_avx512vl(auVar27,auVar35); - auVar32 = vmulpd_avx512vl(auVar29,auVar32); - puVar2 = (ulonglong *)(lVar17 + 8 + lVar12); - bVar4 = (bool)((byte)uVar22 & 1); - bVar5 = (bool)((byte)(uVar22 >> 1) & 1); - bVar6 = (bool)((byte)(uVar22 >> 2) & 1); - *puVar2 = (ulonglong)bVar4 * auVar32._0_8_ | (ulonglong)!bVar4 * *puVar2; - puVar2[1] = (ulonglong)bVar5 * auVar32._8_8_ | (ulonglong)!bVar5 * puVar2[1]; - puVar2[2] = (ulonglong)bVar6 * auVar32._16_8_ | (ulonglong)!bVar6 * puVar2[2]; - puVar2[3] = (uVar22 >> 3) * auVar32._24_8_ | (ulonglong)!SUB81(uVar22 >> 3,0) * puVar2[3]; - lVar17 = lVar17 + 0x20; - } while (uVar9 < uVar15); - if (uVar7 == uVar8) goto LAB_18003a220; - } - uVar16 = uVar8 + 1 + iVar21; - auVar23 = vpunpcklqdq_avx512vl(ZEXT416(uVar16),ZEXT416(uVar16 + 1)); - auVar24 = vpunpcklqdq_avx512vl(ZEXT416(uVar16 + 2),ZEXT416(uVar16 + 3)); - auVar23 = vshufps_avx512vl(auVar23,auVar24,0x88); - if ((longlong)(uVar15 + 0x10) <= (longlong)uVar19) { - auVar24 = vpbroadcastd_avx512vl(); - auVar30._8_8_ = dVar36; - auVar30._0_8_ = dVar36; - auVar30._16_8_ = dVar36; - auVar30._24_8_ = dVar36; - do { - auVar25 = vpaddd_avx512vl(auVar23,auVar35); - auVar23 = vpsubd_avx(auVar24,auVar23); - auVar26 = vpaddd_avx512vl(auVar25,auVar35); - auVar25 = vpsubd_avx512vl(auVar24,auVar25); - auVar27 = vpaddd_avx512vl(auVar26,auVar35); - auVar26 = vpsubd_avx512vl(auVar24,auVar26); - auVar28 = vpsubd_avx512vl(auVar24,auVar27); - auVar32 = vcvtdq2pd_avx512vl(auVar23); - auVar33 = vcvtdq2pd_avx512vl(auVar25); - auVar23 = vpaddd_avx512vl(auVar27,auVar35); - auVar29 = vcvtdq2pd_avx512vl(auVar26); - auVar31 = vcvtdq2pd_avx512vl(auVar28); - auVar32 = vmulpd_avx512vl(auVar30,auVar32); - auVar33 = vmulpd_avx512vl(auVar30,auVar33); - auVar29 = vmulpd_avx512vl(auVar30,auVar29); - auVar31 = vmulpd_avx512vl(auVar30,auVar31); - *(undefined1 (*) [32])(lVar12 + 8 + uVar15 * 8) = auVar32; - *(undefined1 (*) [32])(lVar12 + 0x28 + uVar15 * 8) = auVar33; - *(undefined1 (*) [32])(lVar12 + 0x48 + uVar15 * 8) = auVar29; - *(undefined1 (*) [32])(lVar12 + 0x68 + uVar15 * 8) = auVar31; - uVar15 = uVar15 + 0x10; - } while (uVar15 < uVar19); - if (uVar13 == 0) goto LAB_18003a220; - } - } - lVar12 = lVar12 + uVar19 * 8; - iVar11 = (uVar7 - 1) - (int)uVar19; - do { - uVar16 = (int)uVar19 + 1; - uVar19 = (ulonglong)uVar16; - dVar34 = (double)iVar11; - iVar11 = iVar11 + -1; - *(double *)(lVar12 + 8) = dVar36 * dVar34; - lVar12 = lVar12 + 8; - } while ((int)uVar16 < (int)uVar7); - } -LAB_18003a220: - thunk_FUN_1801de760(param_2,param_2); - thunk_FUN_1801e3f20(uVar14,uVar14,uVar7); -LAB_18003a23f: - uVar14 = param_2 + 8 + (longlong)(int)uVar10 * 8; - return uVar14 + (-(uVar14 & 0x3f) & 0x3f); + /* WARNING: Subroutine does not return */ + thunk_FUN_181ba94b0(param_2,param_3,param_1,param_4); } diff --git a/focus_list.txt b/focus_list.txt new file mode 100644 index 0000000..edf7a1c --- /dev/null +++ b/focus_list.txt @@ -0,0 +1 @@ +180536f90,180535880,18052da00,18052d990,18052da70 diff --git a/funs_range.txt b/funs_range.txt new file mode 100644 index 0000000..a018ec7 --- /dev/null +++ b/funs_range.txt @@ -0,0 +1,1051 @@ +180500020 91 FUN_180500020 +180500080 189 FUN_180500080 +180500140 52 FUN_180500140 +180500180 458 FUN_180500180 +180500370 52 FUN_180500370 +1805003b0 52 FUN_1805003b0 +1805003f0 164 FUN_1805003f0 +1805004a0 68 FUN_1805004a0 +1805004f0 68 FUN_1805004f0 +180500540 69 FUN_180500540 +180500590 114 FUN_180500590 +180500610 157 FUN_180500610 +1805006b0 84 FUN_1805006b0 +180500710 79 FUN_180500710 +180500760 632 FUN_180500760 +180500a00 76 FUN_180500a00 +180500a50 69 FUN_180500a50 +180500aa0 78 FUN_180500aa0 +180500af0 356 FUN_180500af0 +180500c60 68 FUN_180500c60 +180500cb0 160 FUN_180500cb0 +180500d50 1146 FUN_180500d50 +1805011d0 60 FUN_1805011d0 +180501210 124 FUN_180501210 +180501290 67 FUN_180501290 +1805012e0 52 FUN_1805012e0 +180501320 256 FUN_180501320 +180501420 27 FUN_180501420 +180501440 27 FUN_180501440 +180501460 93 FUN_180501460 +1805014d0 648 FUN_1805014d0 +180501780 623 FUN_180501780 +180501a10 678 FUN_180501a10 +180501cd0 93 FUN_180501cd0 +180501d40 93 FUN_180501d40 +180501db0 108 FUN_180501db0 +180501e20 249 FUN_180501e20 +180501f20 270 FUN_180501f20 +180502030 27 FUN_180502030 +180502050 168 FUN_180502050 +180502100 294 FUN_180502100 +180502240 161 FUN_180502240 +1805022f0 170 FUN_1805022f0 +1805023a0 2094 FUN_1805023a0 +180502bf0 1243 FUN_180502bf0 +1805030d0 223 FUN_1805030d0 +1805031b0 489 FUN_1805031b0 +1805033c0 535 FUN_1805033c0 +1805035e0 584 FUN_1805035e0 +180503830 557 FUN_180503830 +180503a60 884 FUN_180503a60 +180503df0 915 FUN_180503df0 +1805041a0 510 FUN_1805041a0 +1805043b0 169 FUN_1805043b0 +180504460 541 FUN_180504460 +180504680 245 FUN_180504680 +180504780 127 FUN_180504780 +180504800 591 FUN_180504800 +180504a80 1410 FUN_180504a80 +180505060 613 FUN_180505060 +1805052d0 196 FUN_1805052d0 +1805053a0 95 FUN_1805053a0 +180505400 70 FUN_180505400 +180505450 70 FUN_180505450 +1805054a0 304 FUN_1805054a0 +1805055d0 52 FUN_1805055d0 +180505610 107 FUN_180505610 +180505680 52 FUN_180505680 +1805056c0 617 FUN_1805056c0 +180505930 1053 FUN_180505930 +180505d80 264 FUN_180505d80 +180505e90 211 FUN_180505e90 +180505f70 252 FUN_180505f70 +180506070 583 FUN_180506070 +1805062e0 151 FUN_1805062e0 +180506380 151 FUN_180506380 +180506420 299 FUN_180506420 +180506550 55 FUN_180506550 +1805065c0 104 FUN_1805065c0 +180506630 224 FUN_180506630 +180506710 182 FUN_180506710 +1805067e0 82 FUN_1805067e0 +180506840 1547 FUN_180506840 +180506e50 1673 FUN_180506e50 +1805074e0 5 thunk_FUN_18051a4c0 +1805074f0 234 FUN_1805074f0 +1805075e0 1386 FUN_1805075e0 +180507b50 682 FUN_180507b50 +180507e00 1488 FUN_180507e00 +1805083d0 292 FUN_1805083d0 +180508510 154 FUN_180508510 +1805085b0 89 FUN_1805085b0 +180508610 55 FUN_180508610 +180508650 126 FUN_180508650 +1805086d0 65 FUN_1805086d0 +180508720 126 FUN_180508720 +1805087a0 31 FUN_1805087a0 +1805087c0 110 FUN_1805087c0 +180508830 92 FUN_180508830 +180508890 56 `scalar_deleting_destructor' +1805088d0 430 FUN_1805088d0 +180508a80 12 FUN_180508a80 +180508a90 112 FUN_180508a90 +180508b00 178 FUN_180508b00 +180508bc0 199 FUN_180508bc0 +180508c90 117 FUN_180508c90 +180508d10 52 FUN_180508d10 +180508d50 52 FUN_180508d50 +180508d90 38 FUN_180508d90 +180508dc0 442 FUN_180508dc0 +180508fb0 226 FUN_180508fb0 +1805090a0 43 FUN_1805090a0 +1805090d0 550 FUN_1805090d0 +180509300 318 FUN_180509300 +180509440 88 FUN_180509440 +1805094a0 249 FUN_1805094a0 +1805095b0 157 FUN_1805095b0 +180509650 110 FUN_180509650 +1805096c0 52 FUN_1805096c0 +180509700 52 FUN_180509700 +180509740 265 FUN_180509740 +180509850 165 FUN_180509850 +180509900 1130 FUN_180509900 +180509d70 52 FUN_180509d70 +180509db0 358 FUN_180509db0 +180509f20 413 FUN_180509f20 +18050a130 606 FUN_18050a130 +18050a390 12 FUN_18050a390 +18050a3a0 52 FUN_18050a3a0 +18050a3e0 119 FUN_18050a3e0 +18050a4c0 52 FUN_18050a4c0 +18050a500 383 FUN_18050a500 +18050a680 127 FUN_18050a680 +18050a700 243 FUN_18050a700 +18050a800 675 FUN_18050a800 +18050aad0 5 thunk_FUN_18050b3e0 +18050aae0 150 FUN_18050aae0 +18050ab80 194 FUN_18050ab80 +18050ac50 1214 FUN_18050ac50 +18050b110 12 FUN_18050b110 +18050b120 249 FUN_18050b120 +18050b220 447 FUN_18050b220 +18050b3e0 189 FUN_18050b3e0 +18050b4a0 156 FUN_18050b4a0 +18050b540 9 FUN_18050b540 +18050b550 132 FUN_18050b550 +18050b5e0 135 FUN_18050b5e0 +18050b670 22 FUN_18050b670 +18050b690 72 FUN_18050b690 +18050b6e0 52 FUN_18050b6e0 +18050b720 52 FUN_18050b720 +18050b760 1039 FUN_18050b760 +18050bb70 407 FUN_18050bb70 +18050bd30 52 FUN_18050bd30 +18050bd70 161 FUN_18050bd70 +18050be20 66 FUN_18050be20 +18050be70 52 FUN_18050be70 +18050beb0 357 FUN_18050beb0 +18050c070 462 FUN_18050c070 +18050c240 16 FUN_18050c240 +18050c250 227 FUN_18050c250 +18050c340 52 FUN_18050c340 +18050c380 52 FUN_18050c380 +18050c3c0 70 FUN_18050c3c0 +18050c410 76 FUN_18050c410 +18050c4c0 62 FUN_18050c4c0 +18050c500 286 FUN_18050c500 +18050c620 52 FUN_18050c620 +18050c660 52 FUN_18050c660 +18050c6a0 218 FUN_18050c6a0 +18050c780 223 FUN_18050c780 +18050c870 518 FUN_18050c870 +18050ca80 5 thunk_FUN_18050c870 +18050ca90 111 FUN_18050ca90 +18050cb00 77 FUN_18050cb00 +18050cb90 52 FUN_18050cb90 +18050cbd0 52 FUN_18050cbd0 +18050cc10 34 FUN_18050cc10 +18050cc40 92 FUN_18050cc40 +18050cca0 109 FUN_18050cca0 +18050cd10 269 FUN_18050cd10 +18050ce60 160 FUN_18050ce60 +18050cf00 76 FUN_18050cf00 +18050cf50 320 FUN_18050cf50 +18050d090 125 FUN_18050d090 +18050d110 125 FUN_18050d110 +18050d190 93 FUN_18050d190 +18050d1f0 280 FUN_18050d1f0 +18050d340 199 FUN_18050d340 +18050d410 11 FUN_18050d410 +18050d420 43 FUN_18050d420 +18050d450 602 FUN_18050d450 +18050d6b0 46 FUN_18050d6b0 +18050d6e0 134 FUN_18050d6e0 +18050d770 73 FUN_18050d770 +18050d7c0 173 FUN_18050d7c0 +18050d870 105 FUN_18050d870 +18050d8e0 51 FUN_18050d8e0 +18050d920 272 FUN_18050d920 +18050da30 158 FUN_18050da30 +18050dad0 355 FUN_18050dad0 +18050dc40 131 FUN_18050dc40 +18050dcd0 36 FUN_18050dcd0 +18050dd00 885 FUN_18050dd00 +18050e0a0 568 FUN_18050e0a0 +18050e2e0 8 FUN_18050e2e0 +18050e2f0 93 FUN_18050e2f0 +18050e350 41 FUN_18050e350 +18050e380 260 FUN_18050e380 +18050e490 505 FUN_18050e490 +18050e6b0 586 FUN_18050e6b0 +18050e900 193 FUN_18050e900 +18050e9d0 193 FUN_18050e9d0 +18050eaa0 283 FUN_18050eaa0 +18050ebc0 135 FUN_18050ebc0 +18050ec60 66 FUN_18050ec60 +18050ecb0 563 FUN_18050ecb0 +18050eef0 100 FUN_18050eef0 +18050ef60 511 FUN_18050ef60 +18050f160 14 FUN_18050f160 +18050f170 126 FUN_18050f170 +18050f1f0 120 FUN_18050f1f0 +18050f270 173 FUN_18050f270 +18050f320 91 FUN_18050f320 +18050f380 127 FUN_18050f380 +18050f400 379 FUN_18050f400 +18050f590 368 FUN_18050f590 +18050f720 455 FUN_18050f720 +18050f910 204 FUN_18050f910 +18050f9e0 76 FUN_18050f9e0 +18050fa30 135 FUN_18050fa30 +18050fac0 272 FUN_18050fac0 +18050fbe0 206 FUN_18050fbe0 +18050fcc0 151 FUN_18050fcc0 +18050fd60 149 FUN_18050fd60 +18050fe00 395 FUN_18050fe00 +18050ff90 379 FUN_18050ff90 +180510110 19 FUN_180510110 +180510130 528 FUN_180510130 +180510350 222 FUN_180510350 +180510430 78 FUN_180510430 +180510480 573 FUN_180510480 +1805106e0 291 FUN_1805106e0 +180510810 537 FUN_180510810 +180510bd0 16 FUN_180510bd0 +180510be0 1160 FUN_180510be0 +180511070 20 FUN_180511070 +180511090 64 FUN_180511090 +1805110d0 17 FUN_1805110d0 +1805110f0 43 FUN_1805110f0 +180511120 17 FUN_180511120 +180511150 139 FUN_180511150 +1805111e0 127 FUN_1805111e0 +180511260 329 FUN_180511260 +1805113b0 306 FUN_1805113b0 +180511500 1664 FUN_180511500 +180511ba0 269 FUN_180511ba0 +180511cb0 137 FUN_180511cb0 +180511d40 7 FUN_180511d40 +180511d50 116 FUN_180511d50 +180511dd0 690 FUN_180511dd0 +180512090 255 FUN_180512090 +180512190 218 FUN_180512190 +180512270 363 FUN_180512270 +1805123f0 513 FUN_1805123f0 +180512600 293 FUN_180512600 +180512750 975 FUN_180512750 +180512b30 552 FUN_180512b30 +180512d70 904 FUN_180512d70 +180513100 171 FUN_180513100 +1805131b0 268 FUN_1805131b0 +180513360 616 FUN_180513360 +180513690 74 FUN_180513690 +1805136e0 365 FUN_1805136e0 +180513850 551 FUN_180513850 +180513b90 662 FUN_180513b90 +180513f40 270 FUN_180513f40 +180514050 469 FUN_180514050 +180514230 551 FUN_180514230 +180514460 524 FUN_180514460 +180514680 583 FUN_180514680 +1805148d0 69 FUN_1805148d0 +180514920 8 FUN_180514920 +180514930 12 FUN_180514930 +180514940 178 FUN_180514940 +180514a00 105 FUN_180514a00 +180514a70 398 FUN_180514a70 +180514c00 3473 FUN_180514c00 +180515c40 227 FUN_180515c40 +180515d30 89 FUN_180515d30 +180515d90 1195 FUN_180515d90 +180516280 105 FUN_180516280 +180516330 194 FUN_180516330 +180516400 31 FUN_180516400 +180516420 52 FUN_180516420 +180516460 62 FUN_180516460 +1805164a0 66 FUN_1805164a0 +1805164f0 77 FUN_1805164f0 +180516570 100 FUN_180516570 +1805165e0 177 FUN_1805165e0 +1805166a0 300 FUN_1805166a0 +1805167d0 130 FUN_1805167d0 +180516860 51 FUN_180516860 +1805168a0 52 FUN_1805168a0 +1805168e0 166 FUN_1805168e0 +180516990 28 FUN_180516990 +1805169b0 6 FUN_1805169b0 +1805169c0 43 FUN_1805169c0 +1805169f0 106 FUN_1805169f0 +180516a60 174 FUN_180516a60 +180516b10 26 FUN_180516b10 +180516b30 10 FUN_180516b30 +180516b40 43 FUN_180516b40 +180516b70 222 FUN_180516b70 +180516c50 48 FUN_180516c50 +180516c80 14 FUN_180516c80 +180516c90 126 FUN_180516c90 +180516d10 6 FUN_180516d10 +180516d20 6 FUN_180516d20 +180516d30 43 FUN_180516d30 +180516d60 287 FUN_180516d60 +180516e80 329 FUN_180516e80 +180516fd0 102 FUN_180516fd0 +180517040 136 FUN_180517040 +1805170d0 492 FUN_1805170d0 +180517540 160 FUN_180517540 +180517760 250 FUN_180517760 +180517890 121 FUN_180517890 +180517910 2426 FUN_180517910 +1805182c0 203 FUN_1805182c0 +180518400 896 FUN_180518400 +180518790 731 FUN_180518790 +180518a90 316 FUN_180518a90 +180518bd0 386 FUN_180518bd0 +180518d60 706 FUN_180518d60 +180519050 299 FUN_180519050 +180519190 273 FUN_180519190 +1805192b0 52 FUN_1805192b0 +1805192f0 93 FUN_1805192f0 +180519350 520 FUN_180519350 +180519560 352 FUN_180519560 +1805196d0 110 FUN_1805196d0 +180519740 130 FUN_180519740 +1805197d0 206 FUN_1805197d0 +1805198a0 122 FUN_1805198a0 +180519920 35 FUN_180519920 +180519950 201 FUN_180519950 +180519a20 35 FUN_180519a20 +180519a50 207 FUN_180519a50 +180519b20 35 FUN_180519b20 +180519b50 207 FUN_180519b50 +180519c20 157 FUN_180519c20 +180519cd0 207 FUN_180519cd0 +180519da0 173 FUN_180519da0 +180519e50 1644 FUN_180519e50 +18051a4c0 117 FUN_18051a4c0 +18051a540 126 FUN_18051a540 +18051a5c0 370 FUN_18051a5c0 +18051a740 224 FUN_18051a740 +18051a830 169 FUN_18051a830 +18051a8f0 111 FUN_18051a8f0 +18051a960 193 FUN_18051a960 +18051aa30 71 FUN_18051aa30 +18051aa80 14 FUN_18051aa80 +18051aa90 330 FUN_18051aa90 +18051abf0 205 FUN_18051abf0 +18051acc0 98 FUN_18051acc0 +18051ad30 282 FUN_18051ad30 +18051ae50 110 FUN_18051ae50 +18051aec0 75 FUN_18051aec0 +18051af10 132 FUN_18051af10 +18051afa0 153 FUN_18051afa0 +18051b040 131 FUN_18051b040 +18051b0d0 153 FUN_18051b0d0 +18051b170 126 FUN_18051b170 +18051b230 220 FUN_18051b230 +18051b310 103 FUN_18051b310 +18051b380 122 FUN_18051b380 +18051b400 36 FUN_18051b400 +18051b430 127 FUN_18051b430 +18051b4d0 98 FUN_18051b4d0 +18051b540 156 FUN_18051b540 +18051b600 106 FUN_18051b600 +18051b670 36 FUN_18051b670 +18051b6b0 157 FUN_18051b6b0 +18051b750 238 FUN_18051b750 +18051b850 157 FUN_18051b850 +18051b910 700 FUN_18051b910 +18051bbd0 238 FUN_18051bbd0 +18051bcc0 127 FUN_18051bcc0 +18051bdb0 167 FUN_18051bdb0 +18051bef0 49 FUN_18051bef0 +18051c000 36 FUN_18051c000 +18051c080 60 FUN_18051c080 +18051c0c0 43 FUN_18051c0c0 +18051c0f0 43 FUN_18051c0f0 +18051c120 43 FUN_18051c120 +18051c150 32 FUN_18051c150 +18051c1b0 546 FUN_18051c1b0 +18051c3e0 307 FUN_18051c3e0 +18051c520 90 FUN_18051c520 +18051c580 336 FUN_18051c580 +18051c700 198 FUN_18051c700 +18051c7d0 94 FUN_18051c7d0 +18051c830 231 FUN_18051c830 +18051c930 166 FUN_18051c930 +18051c9f0 112 FUN_18051c9f0 +18051ca70 52 FUN_18051ca70 +18051cab0 117 FUN_18051cab0 +18051cb30 189 FUN_18051cb30 +18051cc20 156 FUN_18051cc20 +18051ccc0 162 FUN_18051ccc0 +18051ce20 115 FUN_18051ce20 +18051ceb0 108 FUN_18051ceb0 +18051cf20 156 FUN_18051cf20 +18051cfc0 1187 FUN_18051cfc0 +18051d470 111 FUN_18051d470 +18051d4f0 248 FUN_18051d4f0 +18051d610 65 FUN_18051d610 +18051d660 132 FUN_18051d660 +18051d6f0 672 FUN_18051d6f0 +18051d990 172 FUN_18051d990 +18051da50 78 FUN_18051da50 +18051dab0 82 FUN_18051dab0 +18051db10 295 FUN_18051db10 +18051dc40 746 FUN_18051dc40 +18051df30 300 FUN_18051df30 +18051e060 545 FUN_18051e060 +18051e290 542 FUN_18051e290 +18051e4b0 762 FUN_18051e4b0 +18051e7b0 383 FUN_18051e7b0 +18051e930 401 FUN_18051e930 +18051ead0 408 FUN_18051ead0 +18051ec70 103 FUN_18051ec70 +18051ece0 239 FUN_18051ece0 +18051edd0 238 FUN_18051edd0 +18051eec0 351 FUN_18051eec0 +18051f040 259 FUN_18051f040 +18051f150 226 FUN_18051f150 +18051f240 352 FUN_18051f240 +18051f3a0 226 FUN_18051f3a0 +18051f490 377 FUN_18051f490 +18051f620 239 FUN_18051f620 +18051f710 239 FUN_18051f710 +18051f800 11 FUN_18051f800 +18051f810 352 FUN_18051f810 +18051f980 76 FUN_18051f980 +18051f9d0 107 FUN_18051f9d0 +18051fa40 76 FUN_18051fa40 +18051fa90 556 FUN_18051fa90 +18051fcc0 102 FUN_18051fcc0 +18051fd30 379 FUN_18051fd30 +18051fee0 89 FUN_18051fee0 +18051ff40 19 FUN_18051ff40 +18051ff60 118 FUN_18051ff60 +18051ffe0 100 FUN_18051ffe0 +180520050 68 FUN_180520050 +1805200a0 68 FUN_1805200a0 +1805200f0 486 FUN_1805200f0 +1805202e0 87 FUN_1805202e0 +180520340 777 FUN_180520340 +180520650 660 FUN_180520650 +1805208f0 249 FUN_1805208f0 +1805209f0 796 FUN_1805209f0 +180520d10 118 FUN_180520d10 +180520d90 79 FUN_180520d90 +180520de0 8 FUN_180520de0 +180520df0 38 FUN_180520df0 +180520e20 53 FUN_180520e20 +180520e60 8 FUN_180520e60 +180520e70 57 FUN_180520e70 +180520eb0 66 FUN_180520eb0 +180520f00 8 FUN_180520f00 +180520f10 22 FUN_180520f10 +180520f30 79 FUN_180520f30 +180520f80 8 FUN_180520f80 +180520f90 62 FUN_180520f90 +180520fd0 40 FUN_180520fd0 +180521040 8 FUN_180521040 +180521050 57 FUN_180521050 +180521090 86 FUN_180521090 +1805210f0 53 FUN_1805210f0 +180521130 8 FUN_180521130 +180521140 15 FUN_180521140 +180521150 9 FUN_180521150 +180521160 79 FUN_180521160 +1805211b0 8 FUN_1805211b0 +1805211c0 38 FUN_1805211c0 +1805211f0 8 FUN_1805211f0 +180521200 38 FUN_180521200 +180521230 8 FUN_180521230 +180521240 22 FUN_180521240 +180521260 8 FUN_180521260 +180521270 22 FUN_180521270 +180521290 83 FUN_180521290 +1805212f0 8 FUN_1805212f0 +180521300 33 FUN_180521300 +180521330 44 FUN_180521330 +180521360 40 FUN_180521360 +1805213b0 8 FUN_1805213b0 +1805213c0 52 FUN_1805213c0 +180521400 84 FUN_180521400 +180521460 8 FUN_180521460 +180521470 22 FUN_180521470 +180521490 79 FUN_180521490 +1805214e0 8 FUN_1805214e0 +1805214f0 36 FUN_1805214f0 +180521520 44 FUN_180521520 +180521550 8 FUN_180521550 +180521560 36 FUN_180521560 +180521590 44 FUN_180521590 +1805215c0 30 FUN_1805215c0 +1805215e0 35 FUN_1805215e0 +180521610 17 FUN_180521610 +180521630 364 FUN_180521630 +1805217a0 32 FUN_1805217a0 +1805217c0 286 FUN_1805217c0 +1805218e0 921 FUN_1805218e0 +180521c80 785 FUN_180521c80 +180521fa0 11 FUN_180521fa0 +180521fb0 12 FUN_180521fb0 +180521fc0 110 FUN_180521fc0 +180522030 11 FUN_180522030 +180522040 115 FUN_180522040 +1805220c0 111 FUN_1805220c0 +180522130 9 FUN_180522130 +180522140 39 FUN_180522140 +180522170 92 FUN_180522170 +1805221d0 187 FUN_1805221d0 +180522290 188 FUN_180522290 +180522350 222 FUN_180522350 +180522430 53 FUN_180522430 +180522470 8 FUN_180522470 +180522480 44 FUN_180522480 +1805224b0 52 FUN_1805224b0 +1805224f0 79 FUN_1805224f0 +180522540 8 FUN_180522540 +180522550 38 FUN_180522550 +180522580 46 FUN_180522580 +1805225b0 8 FUN_1805225b0 +1805225c0 38 FUN_1805225c0 +1805225f0 46 FUN_1805225f0 +180522620 8 FUN_180522620 +180522630 44 FUN_180522630 +180522660 52 FUN_180522660 +1805226a0 53 FUN_1805226a0 +1805226e0 8 FUN_1805226e0 +1805226f0 62 FUN_1805226f0 +180522730 69 FUN_180522730 +180522780 8 FUN_180522780 +180522790 38 FUN_180522790 +1805227c0 46 FUN_1805227c0 +1805227f0 8 FUN_1805227f0 +180522800 14 FUN_180522800 +180522820 22 FUN_180522820 +180522840 8 FUN_180522840 +180522850 22 FUN_180522850 +180522870 8 FUN_180522870 +180522880 22 FUN_180522880 +1805228b0 22 FUN_1805228b0 +1805228e0 22 FUN_1805228e0 +180522910 22 FUN_180522910 +180522940 22 FUN_180522940 +180522960 8 FUN_180522960 +180522970 22 FUN_180522970 +180522990 8 FUN_180522990 +1805229a0 22 FUN_1805229a0 +1805229c0 8 FUN_1805229c0 +1805229d0 22 FUN_1805229d0 +1805229f0 8 FUN_1805229f0 +180522a00 22 FUN_180522a00 +180522a20 8 FUN_180522a20 +180522a30 22 FUN_180522a30 +180522a60 22 FUN_180522a60 +180522a90 22 FUN_180522a90 +180522ac0 22 FUN_180522ac0 +180522af0 22 FUN_180522af0 +180522b10 8 FUN_180522b10 +180522b20 22 FUN_180522b20 +180522b40 8 FUN_180522b40 +180522b50 22 FUN_180522b50 +180522b70 8 FUN_180522b70 +180522b80 22 FUN_180522b80 +180522ba0 8 FUN_180522ba0 +180522bb0 22 FUN_180522bb0 +180522bd0 8 FUN_180522bd0 +180522be0 22 FUN_180522be0 +180522c00 9 FUN_180522c00 +180522c10 9 FUN_180522c10 +180522c20 9 FUN_180522c20 +180522c30 31 FUN_180522c30 +180522c50 94 FUN_180522c50 +180522cf0 9 FUN_180522cf0 +180522d00 67 FUN_180522d00 +180522d50 51 FUN_180522d50 +180522d90 14 FUN_180522d90 +180522da0 14 FUN_180522da0 +180522dc0 80 FUN_180522dc0 +180522e10 65 FUN_180522e10 +180522e60 266 FUN_180522e60 +180522f80 17 FUN_180522f80 +180522fa0 24 FUN_180522fa0 +180522fe0 115 FUN_180522fe0 +180523060 968 FUN_180523060 +180523430 790 FUN_180523430 +180523750 280 FUN_180523750 +180523870 26 FUN_180523870 +180523890 76 FUN_180523890 +1805238e0 34 FUN_1805238e0 +180523910 949 FUN_180523910 +180523cf0 513 FUN_180523cf0 +180523f00 51 FUN_180523f00 +180523f40 379 FUN_180523f40 +1805240c0 426 FUN_1805240c0 +180524270 434 FUN_180524270 +180524430 178 FUN_180524430 +1805244f0 188 FUN_1805244f0 +1805245d0 2884 FUN_1805245d0 +180525120 358 FUN_180525120 +180525290 481 FUN_180525290 +180525480 358 FUN_180525480 +1805255f0 766 FUN_1805255f0 +1805258f0 514 FUN_1805258f0 +180525af4 12 FUN_180525af4 +180525b00 9 FUN_180525b00 +180525b0c 12 FUN_180525b0c +180525b18 9 FUN_180525b18 +180525b24 12 FUN_180525b24 +180525b30 12 FUN_180525b30 +180525b3c 12 FUN_180525b3c +180525b48 12 FUN_180525b48 +180525b54 9 FUN_180525b54 +180525b60 12 FUN_180525b60 +180525b6c 12 FUN_180525b6c +180525b78 6 FUN_180525b78 +180525b80 12 FUN_180525b80 +180525b8c 12 FUN_180525b8c +180525b98 12 FUN_180525b98 +180525ba4 9 FUN_180525ba4 +180525bb0 12 FUN_180525bb0 +180525bbc 12 FUN_180525bbc +180525bc8 12 FUN_180525bc8 +180525bd4 12 FUN_180525bd4 +180525be0 9 FUN_180525be0 +180525bec 12 FUN_180525bec +180525bf8 9 FUN_180525bf8 +180525c04 9 FUN_180525c04 +180525c10 12 FUN_180525c10 +180525c1c 12 FUN_180525c1c +180525c28 12 FUN_180525c28 +180525c34 12 FUN_180525c34 +180525c40 9 FUN_180525c40 +180525c4c 12 FUN_180525c4c +180525c58 9 FUN_180525c58 +180525c64 12 FUN_180525c64 +180525c70 9 FUN_180525c70 +180525c7c 12 FUN_180525c7c +180525c88 9 FUN_180525c88 +180525c94 12 FUN_180525c94 +180525ca0 12 FUN_180525ca0 +180525cac 9 FUN_180525cac +180525cb8 9 FUN_180525cb8 +180525cc4 12 FUN_180525cc4 +180525cd0 9 FUN_180525cd0 +180525cdc 9 FUN_180525cdc +180525ce8 12 FUN_180525ce8 +180525cf4 9 FUN_180525cf4 +180525d00 12 FUN_180525d00 +180525d0c 12 FUN_180525d0c +180525d18 12 FUN_180525d18 +180525d24 9 FUN_180525d24 +180525d30 9 FUN_180525d30 +180525d3c 9 FUN_180525d3c +180525d48 9 FUN_180525d48 +180525d54 12 FUN_180525d54 +180525d60 12 FUN_180525d60 +180525d6c 12 FUN_180525d6c +180525d78 12 FUN_180525d78 +180525d84 9 FUN_180525d84 +180525d90 12 FUN_180525d90 +180525d9c 9 FUN_180525d9c +180525da8 9 FUN_180525da8 +180525db4 9 FUN_180525db4 +180525dc0 12 FUN_180525dc0 +180525dcc 9 FUN_180525dcc +180525dd8 9 FUN_180525dd8 +180525de4 12 FUN_180525de4 +180525df0 12 FUN_180525df0 +180525dfc 9 FUN_180525dfc +180525e08 12 FUN_180525e08 +180525e14 9 FUN_180525e14 +180525e20 12 FUN_180525e20 +180525e2c 12 FUN_180525e2c +180525e38 12 FUN_180525e38 +180525e44 12 FUN_180525e44 +180525e50 9 FUN_180525e50 +180525e5c 12 FUN_180525e5c +180525e68 9 FUN_180525e68 +180525e74 12 FUN_180525e74 +180525e80 9 FUN_180525e80 +180525e8c 12 FUN_180525e8c +180525e98 9 FUN_180525e98 +180525ea4 12 FUN_180525ea4 +180525eb0 12 FUN_180525eb0 +180525ebc 12 FUN_180525ebc +180525ec8 12 FUN_180525ec8 +180525ed4 12 FUN_180525ed4 +180525ee0 12 FUN_180525ee0 +180525eec 12 FUN_180525eec +180525ef8 12 FUN_180525ef8 +180525f04 12 FUN_180525f04 +180525f10 12 FUN_180525f10 +180525f1c 12 FUN_180525f1c +180525f28 12 FUN_180525f28 +180525f34 12 FUN_180525f34 +180525f40 9 FUN_180525f40 +180525f4c 12 FUN_180525f4c +180525f58 12 FUN_180525f58 +180525f64 12 FUN_180525f64 +180525f70 12 FUN_180525f70 +180525f7c 12 FUN_180525f7c +180525f88 12 FUN_180525f88 +180525f94 9 FUN_180525f94 +180525fa0 9 FUN_180525fa0 +180525fac 12 FUN_180525fac +180525fb8 9 FUN_180525fb8 +180525fc4 12 FUN_180525fc4 +180525fd0 12 FUN_180525fd0 +180525fdc 12 FUN_180525fdc +180525fe8 12 FUN_180525fe8 +180525ff4 9 FUN_180525ff4 +180526000 12 FUN_180526000 +18052600c 9 FUN_18052600c +180526018 9 FUN_180526018 +180526024 9 FUN_180526024 +180526030 12 FUN_180526030 +18052603c 12 FUN_18052603c +180526048 12 FUN_180526048 +180526054 9 FUN_180526054 +180526060 6 FUN_180526060 +180526068 9 FUN_180526068 +180526074 9 FUN_180526074 +180526080 9 FUN_180526080 +18052608c 9 FUN_18052608c +180526098 12 FUN_180526098 +1805260a4 9 FUN_1805260a4 +1805260b8 12 FUN_1805260b8 +1805260c4 9 FUN_1805260c4 +1805260d0 12 FUN_1805260d0 +1805260dc 9 FUN_1805260dc +1805260e8 12 FUN_1805260e8 +1805260f4 12 FUN_1805260f4 +180526100 12 FUN_180526100 +18052610c 12 FUN_18052610c +180526118 9 FUN_180526118 +180526124 12 FUN_180526124 +180526130 12 FUN_180526130 +18052613c 12 FUN_18052613c +180526150 9 FUN_180526150 +18052615c 12 FUN_18052615c +180526168 9 FUN_180526168 +180526174 12 FUN_180526174 +180526180 9 FUN_180526180 +18052618c 12 FUN_18052618c +180526198 12 FUN_180526198 +1805261a4 12 FUN_1805261a4 +1805261b0 6 FUN_1805261b0 +1805261b8 12 FUN_1805261b8 +1805261c4 9 FUN_1805261c4 +1805261d0 12 FUN_1805261d0 +1805261dc 9 FUN_1805261dc +1805261e8 12 FUN_1805261e8 +1805261f4 12 FUN_1805261f4 +180526200 12 FUN_180526200 +18052620c 12 FUN_18052620c +180526218 12 FUN_180526218 +180526224 12 FUN_180526224 +180526230 12 FUN_180526230 +18052623c 12 FUN_18052623c +180526248 12 FUN_180526248 +180526254 12 FUN_180526254 +180526260 12 FUN_180526260 +18052626c 12 FUN_18052626c +180526278 12 FUN_180526278 +180526284 12 FUN_180526284 +180526290 12 FUN_180526290 +18052629c 12 FUN_18052629c +1805262a8 9 FUN_1805262a8 +1805262b4 12 FUN_1805262b4 +1805262c0 9 FUN_1805262c0 +1805262cc 12 FUN_1805262cc +1805262d8 12 FUN_1805262d8 +1805262e4 12 FUN_1805262e4 +1805262f0 12 FUN_1805262f0 +1805262fc 12 FUN_1805262fc +180526308 9 FUN_180526308 +180526314 12 FUN_180526314 +180526320 9 FUN_180526320 +18052632c 12 FUN_18052632c +180526338 9 FUN_180526338 +180526344 12 FUN_180526344 +180526350 12 FUN_180526350 +18052635c 9 FUN_18052635c +180526368 12 FUN_180526368 +180526374 9 FUN_180526374 +180526380 9 FUN_180526380 +18052638c 9 FUN_18052638c +180526398 12 FUN_180526398 +1805263a4 12 FUN_1805263a4 +1805263b0 12 FUN_1805263b0 +1805263bc 12 FUN_1805263bc +1805263c8 9 FUN_1805263c8 +1805263d4 12 FUN_1805263d4 +1805263e0 9 FUN_1805263e0 +1805263ec 9 FUN_1805263ec +1805263f8 9 FUN_1805263f8 +180526404 12 FUN_180526404 +180526410 12 FUN_180526410 +18052641c 9 FUN_18052641c +180526428 9 FUN_180526428 +180526434 9 FUN_180526434 +180526440 12 FUN_180526440 +18052644c 9 FUN_18052644c +180526458 12 FUN_180526458 +180526464 9 FUN_180526464 +180526470 9 FUN_180526470 +18052647c 12 FUN_18052647c +180526488 9 FUN_180526488 +180526494 12 FUN_180526494 +1805264a0 9 FUN_1805264a0 +1805264ac 12 FUN_1805264ac +1805264b8 9 FUN_1805264b8 +1805264c4 12 FUN_1805264c4 +1805264d0 9 FUN_1805264d0 +1805264dc 12 FUN_1805264dc +1805264e8 12 FUN_1805264e8 +1805264f4 12 FUN_1805264f4 +180526500 9 FUN_180526500 +18052650c 9 FUN_18052650c +180526518 12 FUN_180526518 +180526524 9 FUN_180526524 +180526530 12 FUN_180526530 +18052653c 9 FUN_18052653c +180526548 9 FUN_180526548 +180526554 12 FUN_180526554 +180526560 12 FUN_180526560 +18052656c 12 FUN_18052656c +180526578 12 FUN_180526578 +180526584 12 FUN_180526584 +180526590 9 FUN_180526590 +18052659c 12 FUN_18052659c +1805265a8 12 FUN_1805265a8 +1805265b4 12 FUN_1805265b4 +1805265c0 12 FUN_1805265c0 +1805265cc 9 FUN_1805265cc +1805265d8 12 FUN_1805265d8 +1805265e4 12 FUN_1805265e4 +1805265f0 9 FUN_1805265f0 +1805265fc 12 FUN_1805265fc +180526608 9 FUN_180526608 +180526614 12 FUN_180526614 +180526620 12 FUN_180526620 +18052662c 12 FUN_18052662c +180526638 12 FUN_180526638 +180526644 12 FUN_180526644 +180526650 9 FUN_180526650 +18052665c 9 FUN_18052665c +180526668 12 FUN_180526668 +180526674 9 FUN_180526674 +180526680 12 FUN_180526680 +18052668c 12 FUN_18052668c +180526698 9 FUN_180526698 +1805266a4 12 FUN_1805266a4 +1805266b0 12 FUN_1805266b0 +1805266bc 9 FUN_1805266bc +1805266c8 9 FUN_1805266c8 +1805266d4 9 FUN_1805266d4 +1805266e0 12 FUN_1805266e0 +1805266ec 9 FUN_1805266ec +1805266f8 6 FUN_1805266f8 +180526700 12 FUN_180526700 +18052670c 9 FUN_18052670c +180526718 9 FUN_180526718 +180526724 9 FUN_180526724 +180526730 12 FUN_180526730 +18052673c 12 FUN_18052673c +180526750 12 FUN_180526750 +18052675c 9 FUN_18052675c +180526768 12 FUN_180526768 +180526774 9 FUN_180526774 +180526780 12 FUN_180526780 +18052678c 12 FUN_18052678c +1805267a0 52 FUN_1805267a0 +1805267e0 45 FUN_1805267e0 +180526810 162 FUN_180526810 +1805268c0 72 FUN_1805268c0 +180526910 277 FUN_180526910 +180526a30 374 FUN_180526a30 +180526c70 124 FUN_180526c70 +180526d20 162 FUN_180526d20 +180526e00 442 FUN_180526e00 +180526fd0 54 FUN_180526fd0 +180527010 462 FUN_180527010 +180527220 327 FUN_180527220 +1805273a0 166 FUN_1805273a0 +180527450 467 FUN_180527450 +180527630 213 FUN_180527630 +180527710 222 FUN_180527710 +1805277f0 111 FUN_1805277f0 +180527860 111 FUN_180527860 +1805278d0 6 FUN_1805278d0 +1805278e0 248 FUN_1805278e0 +1805279e0 52 FUN_1805279e0 +180527a20 162 FUN_180527a20 +180527ad0 89 FUN_180527ad0 +180527b30 52 FUN_180527b30 +180527b70 164 FUN_180527b70 +180527c20 208 FUN_180527c20 +180527d40 185 FUN_180527d40 +180527e00 264 FUN_180527e00 +180527f10 135 FUN_180527f10 +180527fa0 116 FUN_180527fa0 +180528020 46 FUN_180528020 +180528050 19 FUN_180528050 +180528070 370 FUN_180528070 +1805281f0 156 FUN_1805281f0 +180528290 71 FUN_180528290 +1805282f0 532 FUN_1805282f0 +180528510 514 FUN_180528510 +180528720 551 FUN_180528720 +180528950 419 FUN_180528950 +180528af4 12 FUN_180528af4 +180528b00 9 FUN_180528b00 +180528b0c 9 FUN_180528b0c +180528b18 9 FUN_180528b18 +180528b30 87 FUN_180528b30 +180528b90 11 FUN_180528b90 +180528ba0 43 vtbl_.?AVSoothe2AudioProcessor@@ +180528bd0 45 FUN_180528bd0 +180528c00 144 FUN_180528c00 +180528ca0 170 FUN_180528ca0 +180528d50 203 FUN_180528d50 +180528e20 203 FUN_180528e20 +180528ef0 33 FUN_180528ef0 +180528f20 12 FUN_180528f20 +180528f30 13 FUN_180528f30 +180528f40 550 FUN_180528f40 +180529190 5 thunk_FUN_180484cd0 +1805291a0 244 FUN_1805291a0 +1805292a0 222 vtbl_.?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@ +180529380 106 FUN_180529380 +180529410 317 FUN_180529410 +180529550 191 vtbl_.?AV?$Soothe2Module@M$01@@ +180529610 1154 vtbl_.?AV?$SpectralProcessor@M$07$01@@ +180529aa0 380 FUN_180529aa0 +180529c50 8 vtbl_.?AV?$IIRFilterExtended@M$01@@ +180529c60 548 vtbl_.?AV?$Soothe2Module@M$01@@ +180529ef0 227 vtbl_.?AV?$Soothe2Module@M$01@@ +180529fe0 2051 vtbl_.?AV?$Soothe2Module@M$01@@ +18052b940 7 vtbl_.?AV?$Soothe2Module@M$01@@ +18052b950 12 vtbl_.?AV?$Soothe2Module@M$01@@ +18052b960 17 vtbl_.?AV?$Soothe2Module@M$01@@ +18052b980 15 vtbl_.?AV?$Soothe2Module@M$01@@ +18052b990 17 vtbl_.?AV?$Soothe2Module@M$01@@ +18052b9b0 104 vtbl_.?AV?$Soothe2Module@M$01@@ +18052ba20 13 vtbl_.?AV?$Soothe2Module@M$01@@ +18052ba30 7 vtbl_.?AV?$Soothe2Module@M$01@@ +18052ba40 7 vtbl_.?AV?$Soothe2Module@M$01@@ +18052ba50 71 vtbl_.?AV?$Soothe2Module@M$01@@ +18052baa0 39 vtbl_.?AV?$Soothe2Module@M$01@@ +18052bad0 39 vtbl_.?AV?$Soothe2Module@M$01@@ +18052bb00 17 vtbl_.?AV?$Soothe2Module@M$01@@ +18052bb20 22 vtbl_.?AV?$Soothe2Module@M$01@@ +18052bb40 22 vtbl_.?AV?$Soothe2Module@M$01@@ +18052bb60 22 vtbl_.?AV?$Soothe2Module@M$01@@ +18052bb80 22 vtbl_.?AV?$Soothe2Module@M$01@@ +18052bba0 68 vtbl_.?AV?$Soothe2Module@M$01@@ +18052bbf0 7 vtbl_.?AV?$Soothe2Module@M$01@@ +18052bc40 103 FUN_18052bc40 +18052bcb0 74 FUN_18052bcb0 +18052bd00 189 vtbl_.?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@ +18052bdd0 15 FUN_18052bdd0 +18052bde0 15 FUN_18052bde0 +18052bdf0 432 vtbl_.?AV?$SpectralProcessor@M$07$01@@ +18052bfa0 870 vtbl_.?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@ +18052c310 339 FUN_18052c310 +18052c490 14 FUN_18052c490 +18052c4a0 794 vtbl_.?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@ +18052c7e0 12 vtbl_.?AVSoothe2AudioProcessor@@ +18052c7f0 141 vtbl_.?AV?$SpectralProcessor@M$07$01@@ +18052c880 49 vtbl_.?AV?$SpectralProcessor@M$07$01@@ +18052c8c0 16 vtbl_.?AV?$SpectralProcessor@M$07$01@@ +18052c8d0 18 vtbl_.?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@ +18052c8f0 26 vtbl_.?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@ +18052c910 232 FUN_18052c910 +18052caf0 768 FUN_18052caf0 +18052ce00 98 vtbl_.?AV?$Soothe2ModuleBase@M$01@@ +18052ce70 9 vtbl_.?AV?$Soothe2ModuleBase@M$01@@ +18052ce80 14 vtbl_.?AV?$Soothe2Module@M$01@@ +18052ce90 48 vtbl_.?AV?$Soothe2ModuleBase@M$01@@ +18052cec0 88 vtbl_.?AV?$Soothe2ModuleBase@M$01@@ +18052cf20 5 thunk_FUN_18052fa60 +18052cf30 105 FUN_18052cf30 +18052cfa0 13 vtbl_.?AV?$AudioProcessingModule@M$01@@ +18052cfb0 61 vtbl_.?AV?$AudioProcessingModule@M$01@@ +18052cff0 36 FUN_18052cff0 +18052d040 135 FUN_18052d040 +18052d0d0 277 FUN_18052d0d0 +18052d280 102 FUN_18052d280 +18052d360 43 FUN_18052d360 +18052d390 52 vtbl_.?AV?$SpectralProcessor@M$07$01@@ +18052d3d0 52 vtbl_.?AV?$SpectralProcessor@M$07$01@@ +18052d410 39 FUN_18052d410 +18052d4b0 32 FUN_18052d4b0 +18052d4f0 26 FUN_18052d4f0 +18052d520 38 vtbl_.?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@ +18052d580 47 vtbl_.?AV?$AudioProcessingModule@M$01@@ +18052d600 52 FUN_18052d600 +18052d640 14 FUN_18052d640 +18052d830 85 FUN_18052d830 +18052d8a0 93 FUN_18052d8a0 +18052d920 104 FUN_18052d920 +18052d990 97 FUN_18052d990 +18052da00 85 FUN_18052da00 +18052da70 78 FUN_18052da70 +18052dae0 85 FUN_18052dae0 +18052db50 104 FUN_18052db50 +18052dbc0 97 FUN_18052dbc0 +18052dc30 227 FUN_18052dc30 +18052dd30 555 FUN_18052dd30 +18052df60 450 FUN_18052df60 +18052e130 91 FUN_18052e130 +18052e190 137 FUN_18052e190 +18052e220 56 FUN_18052e220 +18052e260 577 FUN_18052e260 +18052e9b0 3167 FUN_18052e9b0 +18052f610 36 FUN_18052f610 +18052f640 58 FUN_18052f640 +18052f680 454 FUN_18052f680 +18052f850 190 FUN_18052f850 +18052f920 281 FUN_18052f920 +18052fa60 78 FUN_18052fa60 +18052fac0 110 FUN_18052fac0 +18052fb30 31 vtbl_.?AV?$IIRFilterExtended@M$01@@ +18052fb50 119 vtbl_.?AV?$IIRFilterExtended@M$01@@ +18052fbd0 82 FUN_18052fbd0 +18052fc30 92 FUN_18052fc30 +18052fc90 174 FUN_18052fc90 +18052fd40 38 vtbl_.?AV?$AudioProcessingModule@M$01@@ +18052fdb0 32 FUN_18052fdb0 +18052fe00 392 FUN_18052fe00 diff --git a/giant.txt b/giant.txt new file mode 100644 index 0000000..d610bcf --- /dev/null +++ b/giant.txt @@ -0,0 +1,1233 @@ +############ FUN_ 18002f980 size=14481 ############ + +/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ + +ulonglong * +FUN_18002f980(longlong param_1,int param_2,longlong param_3,undefined4 param_4,int param_5, + undefined8 param_6,undefined8 param_7) + +{ + int iVar1; + int iVar2; + undefined4 uVar3; + int iVar4; + char cVar5; + char cVar6; + int iVar7; + int iVar8; + int iVar9; + ulonglong *puVar10; + int iVar11; + int iVar12; + int iVar13; + uint uVar14; + int iVar15; + int iVar16; + int iVar17; + int iVar18; + int iVar19; + int iVar20; + int iVar21; + int iVar22; + int iVar23; + uint uVar24; + int iVar25; + uint uVar26; + int iVar27; + int iVar28; + int iVar29; + int iVar30; + int iVar31; + int iVar32; + int iVar33; + int iVar34; + int iVar35; + int iVar36; + int iVar37; + int iVar38; + int iVar39; + int iVar40; + int iVar41; + uint uVar42; + int iVar43; + int iVar44; + int iVar45; + int iVar46; + int iVar47; + int iVar48; + int iVar49; + int iVar50; + int iVar51; + uint uVar52; + int iVar53; + int iVar54; + int iVar55; + int iVar56; + int iVar57; + int iVar58; + int iVar59; + int iVar60; + int iVar61; + ulonglong uVar62; + ulonglong uVar63; + ulonglong *local_900; + + iVar2 = *(int *)(&DAT_181c5e0fc + (longlong)param_2 * 4); + iVar19 = param_2 - iVar2; + if (iVar19 < 0x12) { + *(undefined8 *)(param_1 + 0x38) = param_6; + puVar10 = (ulonglong *)FUN_18002e360(iVar19,param_3); + iVar25 = 1 << ((byte)iVar19 & 0x1f); + *(uint *)(param_1 + 0x1c) = iVar25 * 0x10 + 0x3fU & 0xffffffc0; + } + else { + puVar10 = (ulonglong *)FUN_18002f980(param_1,iVar19,param_3,param_4,param_5 + 1,param_6,param_7) + ; + iVar25 = 1 << ((byte)iVar19 & 0x1f); + } + uVar24 = 0; + uVar3 = *(undefined4 *)(&DAT_181c5e15c + (longlong)param_2 * 4); + *(ulonglong **)(param_1 + 0x78 + (longlong)param_5 * 8) = puVar10; + if (0 < iVar25) { + iVar4 = iVar25 * 2; + iVar33 = 1 << ((byte)uVar3 - (char)iVar2 & 0x1f); + uVar42 = (int)(iVar33 + 3 + ((uint)(iVar33 + 3 >> 1) >> 0x1e)) >> 2; + iVar43 = 0; + iVar15 = 0; + iVar11 = 0; + local_900 = puVar10; + do { + uVar26 = 1; + iVar16 = -iVar19; + iVar44 = iVar19; + if (-iVar2 < 0) { + do { + iVar12 = iVar44 + 2; + cVar5 = (char)(iVar16 + -2); + cVar6 = (char)param_4; + if (iVar12 == param_2) { + iVar44 = 1 << ((byte)iVar12 & 0x1f); + iVar32 = 1 << (cVar5 + cVar6 & 0x1fU); + if (0 < (int)uVar26 >> 1) { + iVar56 = (int)(((uint)(iVar44 >> 1) >> 0x1e) + iVar44) >> 2; + iVar31 = iVar32 * iVar56; + iVar50 = iVar32 * iVar15; + iVar29 = iVar32 * iVar11; + iVar22 = iVar44 / 2; + iVar57 = iVar32 * iVar22; + iVar8 = iVar31 - iVar50; + iVar13 = iVar32 + iVar50; + iVar21 = iVar50 - iVar57; + iVar7 = iVar32 * 4; + iVar37 = (int)(((uint)(iVar44 * 3 >> 1) >> 0x1e) + iVar44 * 3) >> 2; + iVar23 = iVar32 * iVar37; + iVar20 = iVar50 - iVar23; + iVar45 = iVar29 - iVar23; + iVar34 = iVar31 - iVar29; + iVar35 = iVar29 - iVar57; + iVar1 = iVar29 + iVar32 * 4; + iVar27 = iVar44 * iVar32 - iVar29; + iVar30 = iVar44 * iVar32 - iVar50; + iVar44 = iVar29 + iVar32 * 2; + iVar17 = iVar50 + iVar32 * 2; + iVar18 = iVar32 * 3; + iVar39 = iVar18 + iVar50; + iVar47 = iVar29 + iVar32 * 6; + iVar28 = iVar32 * 8; + uVar52 = 0; + do { + uVar14 = 0; + if (0 < iVar33) { + iVar58 = iVar32 * iVar4 * uVar52; + iVar38 = iVar32 * iVar25 * uVar52; + do { + iVar9 = iVar25 * uVar52 + iVar15 + uVar14 * 4; + if (iVar56 < iVar9) { + iVar40 = iVar7 * uVar14; + if (iVar22 < iVar9) { + if (iVar37 < iVar9) { + *local_900 = *(ulonglong *) + (param_3 + (longlong)(iVar20 + iVar38 + iVar40) * 8); + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar30 - iVar38) - iVar40) * 8); + } + else { + *local_900 = *(ulonglong *) + (param_3 + (longlong)-(iVar20 + iVar38 + iVar40) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)(iVar21 + iVar38 + iVar40) * 8); + } + } + else { + *local_900 = *(ulonglong *) + (param_3 + (longlong)(iVar40 + (iVar38 - iVar8)) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *)(param_3 + (longlong)-(iVar21 + iVar38 + iVar40) * 8) + ^ _DAT_181c5e1e0; + } + } + else { + *local_900 = *(ulonglong *) + (param_3 + + (longlong)(int)-((iVar38 - iVar8) + iVar7 * uVar14) * 8); + uVar63 = *(ulonglong *) + (param_3 + (longlong)(int)(iVar50 + iVar38 + iVar7 * uVar14) * 8) ^ + _DAT_181c5e1e0; + } + iVar40 = iVar7 * uVar14; + local_900[4] = uVar63; + iVar51 = iVar9 + 1; + if (iVar56 < iVar51) { + if (iVar22 < iVar51) { + if (iVar37 < iVar51) { + local_900[1] = *(ulonglong *) + (param_3 + + (longlong)((iVar13 - iVar23) + iVar38 + iVar40) * 8); + uVar63 = *(ulonglong *) + (param_3 + (longlong)(((iVar30 - iVar32) - iVar38) - iVar40) * 8 + ); + } + else { + local_900[1] = *(ulonglong *) + (param_3 + + (longlong)-(iVar32 + iVar20 + iVar38 + iVar40) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar13 - iVar57) + iVar38 + iVar40) * 8); + } + } + else { + local_900[1] = *(ulonglong *) + (param_3 + + (longlong)((iVar13 - iVar31) + iVar38 + iVar40) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)-(iVar32 + iVar21 + iVar38 + iVar40) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + local_900[1] = *(ulonglong *) + (param_3 + + (longlong)(((iVar8 - iVar32) - iVar38) - iVar40) * 8); + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar13 + iVar38 + iVar40) * 8) ^ + _DAT_181c5e1e0; + } + local_900[5] = uVar63; + iVar51 = iVar9 + 2; + if (iVar56 < iVar51) { + if (iVar22 < iVar51) { + if (iVar37 < iVar51) { + local_900[2] = *(ulonglong *) + (param_3 + + (longlong)((iVar17 - iVar23) + iVar38 + iVar40) * 8); + uVar63 = *(ulonglong *) + (param_3 + + (longlong)(((iVar30 + iVar32 * -2) - iVar38) - iVar40) * 8); + } + else { + local_900[2] = *(ulonglong *) + (param_3 + + (longlong)-(iVar20 + iVar32 * 2 + iVar38 + iVar40) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar17 - iVar57) + iVar38 + iVar40) * 8); + } + } + else { + local_900[2] = *(ulonglong *) + (param_3 + + (longlong)((iVar17 - iVar31) + iVar38 + iVar40) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)-(iVar21 + iVar32 * 2 + iVar38 + iVar40) * 8) + ^ _DAT_181c5e1e0; + } + } + else { + local_900[2] = *(ulonglong *) + (param_3 + + (longlong)(((iVar32 * -2 + iVar8) - iVar38) - iVar40) * 8); + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar17 + iVar38 + iVar40) * 8) ^ + _DAT_181c5e1e0; + } + iVar9 = iVar9 + 3; + local_900[6] = uVar63; + if (iVar56 < iVar9) { + if (iVar22 < iVar9) { + if (iVar37 < iVar9) { + local_900[3] = *(ulonglong *) + (param_3 + + (longlong)(iVar40 + iVar38 + (iVar39 - iVar23)) * 8); + uVar63 = *(ulonglong *) + (param_3 + + (longlong)(((iVar30 + iVar32 * -3) - iVar38) - iVar40) * 8); + } + else { + local_900[3] = *(ulonglong *) + (param_3 + + (longlong)-(iVar40 + iVar20 + iVar18 + iVar38) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)(iVar40 + (iVar39 - iVar57) + iVar38) * 8); + } + } + else { + local_900[3] = *(ulonglong *) + (param_3 + + (longlong)(iVar40 + (iVar39 - iVar31) + iVar38) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)-(iVar40 + iVar21 + iVar18 + iVar38) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + local_900[3] = *(ulonglong *) + (param_3 + + (longlong)(((iVar8 + iVar32 * -3) - iVar38) - iVar40) * 8); + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar40 + iVar39 + iVar38) * 8) ^ + _DAT_181c5e1e0; + } + local_900[7] = uVar63; + iVar9 = iVar4 * uVar52 + iVar11 + uVar14 * 8; + if (iVar56 < iVar9) { + iVar40 = iVar28 * uVar14; + if (iVar22 < iVar9) { + if (iVar37 < iVar9) { + local_900[8] = *(ulonglong *) + (param_3 + (longlong)(iVar45 + iVar58 + iVar40) * 8); + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar27 - iVar58) - iVar40) * 8); + } + else { + local_900[8] = *(ulonglong *) + (param_3 + (longlong)-(iVar45 + iVar58 + iVar40) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)(iVar35 + iVar58 + iVar40) * 8); + } + } + else { + local_900[8] = *(ulonglong *) + (param_3 + (longlong)(iVar40 + (iVar58 - iVar34)) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *)(param_3 + (longlong)-(iVar35 + iVar58 + iVar40) * 8) + ^ _DAT_181c5e1e0; + } + } + else { + local_900[8] = *(ulonglong *) + (param_3 + + (longlong)(int)-((iVar58 - iVar34) + iVar28 * uVar14) * 8); + uVar63 = *(ulonglong *) + (param_3 + (longlong)(int)(iVar29 + iVar58 + iVar28 * uVar14) * 8) ^ + _DAT_181c5e1e0; + } + iVar40 = iVar28 * uVar14; + local_900[0xc] = uVar63; + iVar51 = iVar9 + 2; + if (iVar56 < iVar51) { + if (iVar22 < iVar51) { + if (iVar37 < iVar51) { + local_900[9] = *(ulonglong *) + (param_3 + + (longlong)((iVar44 - iVar23) + iVar58 + iVar40) * 8); + uVar63 = *(ulonglong *) + (param_3 + + (longlong)(((iVar27 + iVar32 * -2) - iVar58) - iVar40) * 8); + } + else { + local_900[9] = *(ulonglong *) + (param_3 + + (longlong)-(iVar45 + iVar32 * 2 + iVar58 + iVar40) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar44 - iVar57) + iVar58 + iVar40) * 8); + } + } + else { + local_900[9] = *(ulonglong *) + (param_3 + + (longlong)((iVar44 - iVar31) + iVar58 + iVar40) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)-(iVar35 + iVar32 * 2 + iVar58 + iVar40) * 8) + ^ _DAT_181c5e1e0; + } + } + else { + local_900[9] = *(ulonglong *) + (param_3 + + (longlong)(((iVar34 + iVar32 * -2) - iVar58) - iVar40) * 8); + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar40 + iVar44 + iVar58) * 8) ^ + _DAT_181c5e1e0; + } + local_900[0xd] = uVar63; + iVar51 = iVar9 + 4; + if (iVar56 < iVar51) { + if (iVar22 < iVar51) { + if (iVar37 < iVar51) { + local_900[10] = + *(ulonglong *) + (param_3 + (longlong)((iVar1 - iVar23) + iVar58 + iVar40) * 8); + uVar63 = *(ulonglong *) + (param_3 + + (longlong)(((iVar27 + iVar32 * -4) - iVar58) - iVar40) * 8); + } + else { + local_900[10] = + *(ulonglong *) + (param_3 + (longlong)-(iVar45 + iVar32 * 4 + iVar58 + iVar40) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar1 - iVar57) + iVar58 + iVar40) * 8); + } + } + else { + local_900[10] = + *(ulonglong *) + (param_3 + (longlong)((iVar1 - iVar31) + iVar58 + iVar40) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)-(iVar35 + iVar32 * 4 + iVar58 + iVar40) * 8) + ^ _DAT_181c5e1e0; + } + } + else { + local_900[10] = + *(ulonglong *) + (param_3 + (longlong)(((iVar34 + iVar32 * -4) - iVar58) - iVar40) * 8); + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar1 + iVar58 + iVar40) * 8) ^ + _DAT_181c5e1e0; + } + iVar9 = iVar9 + 6; + local_900[0xe] = uVar63; + if (iVar56 < iVar9) { + if (iVar22 < iVar9) { + if (iVar37 < iVar9) { + local_900[0xb] = + *(ulonglong *) + (param_3 + (longlong)(iVar40 + iVar58 + (iVar47 - iVar23)) * 8); + uVar63 = *(ulonglong *) + (param_3 + + (longlong)(((iVar27 + iVar32 * -6) - iVar58) - iVar40) * 8); + } + else { + local_900[0xb] = + *(ulonglong *) + (param_3 + (longlong)-(iVar40 + iVar45 + iVar32 * 6 + iVar58) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)(iVar40 + (iVar47 - iVar57) + iVar58) * 8); + } + } + else { + local_900[0xb] = + *(ulonglong *) + (param_3 + (longlong)(iVar40 + (iVar47 - iVar31) + iVar58) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)-(iVar40 + iVar35 + iVar32 * 6 + iVar58) * 8) + ^ _DAT_181c5e1e0; + } + } + else { + local_900[0xb] = + *(ulonglong *) + (param_3 + (longlong)(((iVar32 * -6 + iVar34) - iVar58) - iVar40) * 8); + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar40 + iVar47 + iVar58) * 8) ^ + _DAT_181c5e1e0; + } + uVar14 = uVar14 + 1; + local_900[0xf] = uVar63; + local_900 = local_900 + 0x10; + } while (uVar14 < uVar42); + } + uVar52 = uVar52 + 1; + } while (uVar52 < (uint)((int)uVar26 >> 1)); + } +LAB_18003311c: + uVar26 = uVar26 << 2; + iVar16 = iVar16 + -2; + } + else { + if ((iVar44 + 4 == param_2) || (iVar44 + 6 == param_2)) { + iVar32 = 1 << ((byte)iVar12 & 0x1f); + iVar44 = 1 << (cVar5 + cVar6 & 0x1fU); + if (0 < (int)uVar26) { + iVar56 = iVar44 * iVar15; + iVar57 = iVar44 * iVar43; + iVar59 = iVar44 * iVar11; + iVar8 = (int)(((uint)(iVar32 >> 1) >> 0x1e) + iVar32) >> 2; + iVar1 = iVar44 + iVar56; + iVar51 = iVar44 * iVar8; + iVar58 = iVar32 / 2; + iVar50 = iVar44 * iVar58; + iVar27 = iVar51 - iVar56; + iVar53 = iVar57 - iVar50; + iVar28 = iVar56 - iVar50; + iVar9 = (int)(((uint)(iVar32 * 3 >> 1) >> 0x1e) + iVar32 * 3) >> 2; + iVar45 = iVar44 * iVar9; + iVar32 = iVar32 * iVar44; + iVar31 = iVar57 - iVar45; + iVar40 = iVar56 - iVar45; + iVar38 = iVar59 - iVar45; + iVar21 = iVar51 - iVar57; + iVar35 = iVar51 - iVar59; + iVar22 = iVar59 - iVar50; + iVar18 = iVar44 * 4; + iVar39 = iVar59 + iVar44 * 4; + iVar54 = iVar32 - iVar59; + iVar46 = iVar32 - iVar56; + iVar32 = iVar32 - iVar57; + iVar47 = iVar59 + iVar44 * 2; + iVar7 = iVar56 + iVar44 * 2; + iVar34 = iVar44 * 3; + iVar60 = iVar57 + iVar34; + iVar13 = iVar34 + iVar56; + iVar30 = iVar57 + iVar44 * 6; + iVar17 = iVar59 + iVar44 * 6; + iVar29 = iVar44 * 8; + iVar37 = iVar44 * 9; + iVar23 = iVar37 + iVar57; + iVar20 = iVar44 * 0xc; + uVar52 = 0; + do { + uVar14 = 0; + if (0 < iVar33) { + iVar48 = iVar44 * iVar4 * uVar52; + iVar36 = iVar44 * iVar25 * uVar52; + iVar41 = iVar44 * iVar25 * 3 * uVar52; + do { + iVar55 = iVar25 * uVar52 + iVar15 + uVar14 * 4; + if (iVar8 < iVar55) { + iVar49 = iVar18 * uVar14; + if (iVar58 < iVar55) { + if (iVar9 < iVar55) { + *local_900 = *(ulonglong *) + (param_3 + (longlong)(iVar40 + iVar36 + iVar49) * 8); + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar46 - iVar36) - iVar49) * 8); + } + else { + *local_900 = *(ulonglong *) + (param_3 + (longlong)-(iVar40 + iVar36 + iVar49) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)(iVar28 + iVar36 + iVar49) * 8); + } + } + else { + *local_900 = *(ulonglong *) + (param_3 + (longlong)(iVar49 + (iVar36 - iVar27)) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)-(iVar28 + iVar36 + iVar49) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + *local_900 = *(ulonglong *) + (param_3 + + (longlong)(int)-((iVar36 - iVar27) + iVar18 * uVar14) * 8); + uVar63 = *(ulonglong *) + (param_3 + (longlong)(int)(iVar56 + iVar36 + iVar18 * uVar14) * 8) + ^ _DAT_181c5e1e0; + } + iVar49 = iVar18 * uVar14; + local_900[4] = uVar63; + iVar61 = iVar55 + 1; + if (iVar8 < iVar61) { + if (iVar58 < iVar61) { + if (iVar9 < iVar61) { + local_900[1] = *(ulonglong *) + (param_3 + + (longlong)((iVar1 - iVar45) + iVar36 + iVar49) * 8); + uVar63 = *(ulonglong *) + (param_3 + + (longlong)(((iVar46 - iVar44) - iVar36) - iVar49) * 8); + } + else { + local_900[1] = *(ulonglong *) + (param_3 + + (longlong)-(iVar44 + iVar40 + iVar36 + iVar49) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar1 - iVar50) + iVar36 + iVar49) * 8) + ; + } + } + else { + local_900[1] = *(ulonglong *) + (param_3 + + (longlong)((iVar1 - iVar51) + iVar36 + iVar49) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)-(iVar44 + iVar28 + iVar36 + iVar49) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + local_900[1] = *(ulonglong *) + (param_3 + + (longlong)(((iVar27 - iVar44) - iVar36) - iVar49) * 8); + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar1 + iVar36 + iVar49) * 8) ^ + _DAT_181c5e1e0; + } + local_900[5] = uVar63; + iVar61 = iVar55 + 2; + if (iVar8 < iVar61) { + if (iVar58 < iVar61) { + if (iVar9 < iVar61) { + local_900[2] = *(ulonglong *) + (param_3 + + (longlong)((iVar7 - iVar45) + iVar36 + iVar49) * 8); + uVar63 = *(ulonglong *) + (param_3 + + (longlong)(((iVar46 + iVar44 * -2) - iVar36) - iVar49) * 8); + } + else { + local_900[2] = *(ulonglong *) + (param_3 + + (longlong)-(iVar40 + iVar44 * 2 + iVar36 + iVar49) * 8) + ^ _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar7 - iVar50) + iVar36 + iVar49) * 8) + ; + } + } + else { + local_900[2] = *(ulonglong *) + (param_3 + + (longlong)((iVar7 - iVar51) + iVar36 + iVar49) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + + (longlong)-(iVar28 + iVar44 * 2 + iVar36 + iVar49) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + local_900[2] = *(ulonglong *) + (param_3 + + (longlong)(((iVar44 * -2 + iVar27) - iVar36) - iVar49) * 8); + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar7 + iVar36 + iVar49) * 8) ^ + _DAT_181c5e1e0; + } + iVar55 = iVar55 + 3; + local_900[6] = uVar63; + if (iVar8 < iVar55) { + if (iVar58 < iVar55) { + if (iVar9 < iVar55) { + local_900[3] = *(ulonglong *) + (param_3 + + (longlong)(iVar49 + iVar36 + (iVar13 - iVar45)) * 8); + uVar63 = *(ulonglong *) + (param_3 + + (longlong)(((iVar46 + iVar44 * -3) - iVar36) - iVar49) * 8); + } + else { + local_900[3] = *(ulonglong *) + (param_3 + + (longlong)-(iVar49 + iVar40 + iVar34 + iVar36) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)(iVar49 + (iVar13 - iVar50) + iVar36) * 8 + ); + } + } + else { + local_900[3] = *(ulonglong *) + (param_3 + + (longlong)(iVar49 + (iVar13 - iVar51) + iVar36) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)-(iVar49 + iVar28 + iVar34 + iVar36) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + local_900[3] = *(ulonglong *) + (param_3 + + (longlong)(((iVar27 + iVar44 * -3) - iVar36) - iVar49) * 8); + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar49 + iVar13 + iVar36) * 8) + ^ _DAT_181c5e1e0; + } + local_900[7] = uVar63; + iVar55 = iVar4 * uVar52 + iVar11 + uVar14 * 8; + if (iVar8 < iVar55) { + iVar49 = iVar29 * uVar14; + if (iVar58 < iVar55) { + if (iVar9 < iVar55) { + local_900[8] = *(ulonglong *) + (param_3 + (longlong)(iVar38 + iVar48 + iVar49) * 8); + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar54 - iVar48) - iVar49) * 8); + } + else { + local_900[8] = *(ulonglong *) + (param_3 + (longlong)-(iVar38 + iVar48 + iVar49) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)(iVar22 + iVar48 + iVar49) * 8); + } + } + else { + local_900[8] = *(ulonglong *) + (param_3 + (longlong)(iVar49 + (iVar48 - iVar35)) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)-(iVar22 + iVar48 + iVar49) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + local_900[8] = *(ulonglong *) + (param_3 + + (longlong)(int)-((iVar48 - iVar35) + iVar29 * uVar14) * 8); + uVar63 = *(ulonglong *) + (param_3 + (longlong)(int)(iVar59 + iVar48 + iVar29 * uVar14) * 8) + ^ _DAT_181c5e1e0; + } + iVar49 = iVar29 * uVar14; + local_900[0xc] = uVar63; + iVar61 = iVar55 + 2; + if (iVar8 < iVar61) { + if (iVar58 < iVar61) { + if (iVar9 < iVar61) { + local_900[9] = *(ulonglong *) + (param_3 + + (longlong)((iVar47 - iVar45) + iVar48 + iVar49) * 8); + uVar63 = *(ulonglong *) + (param_3 + + (longlong)(((iVar54 + iVar44 * -2) - iVar48) - iVar49) * 8); + } + else { + local_900[9] = *(ulonglong *) + (param_3 + + (longlong)-(iVar38 + iVar44 * 2 + iVar48 + iVar49) * 8) + ^ _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar47 - iVar50) + iVar48 + iVar49) * 8 + ); + } + } + else { + local_900[9] = *(ulonglong *) + (param_3 + + (longlong)((iVar47 - iVar51) + iVar48 + iVar49) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + + (longlong)-(iVar22 + iVar44 * 2 + iVar48 + iVar49) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + local_900[9] = *(ulonglong *) + (param_3 + + (longlong)(((iVar35 + iVar44 * -2) - iVar48) - iVar49) * 8); + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar47 + iVar48 + iVar49) * 8) + ^ _DAT_181c5e1e0; + } + local_900[0xd] = uVar63; + iVar61 = iVar55 + 4; + if (iVar8 < iVar61) { + if (iVar58 < iVar61) { + if (iVar9 < iVar61) { + local_900[10] = + *(ulonglong *) + (param_3 + (longlong)((iVar39 - iVar45) + iVar48 + iVar49) * 8); + uVar63 = *(ulonglong *) + (param_3 + + (longlong)(((iVar54 + iVar44 * -4) - iVar48) - iVar49) * 8); + } + else { + local_900[10] = + *(ulonglong *) + (param_3 + (longlong)-(iVar38 + iVar44 * 4 + iVar48 + iVar49) * 8) + ^ _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar39 - iVar50) + iVar48 + iVar49) * 8 + ); + } + } + else { + local_900[10] = + *(ulonglong *) + (param_3 + (longlong)((iVar39 - iVar51) + iVar48 + iVar49) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + + (longlong)-(iVar22 + iVar44 * 4 + iVar48 + iVar49) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + local_900[10] = + *(ulonglong *) + (param_3 + (longlong)(((iVar35 + iVar44 * -4) - iVar48) - iVar49) * 8) + ; + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar39 + iVar48 + iVar49) * 8) + ^ _DAT_181c5e1e0; + } + iVar55 = iVar55 + 6; + local_900[0xe] = uVar63; + if (iVar8 < iVar55) { + if (iVar58 < iVar55) { + if (iVar9 < iVar55) { + local_900[0xb] = + *(ulonglong *) + (param_3 + (longlong)(iVar49 + iVar48 + (iVar17 - iVar45)) * 8); + uVar63 = *(ulonglong *) + (param_3 + + (longlong)(((iVar54 + iVar44 * -6) - iVar48) - iVar49) * 8); + } + else { + local_900[0xb] = + *(ulonglong *) + (param_3 + (longlong)-(iVar49 + iVar38 + iVar44 * 6 + iVar48) * 8) + ^ _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)(iVar49 + (iVar17 - iVar50) + iVar48) * 8 + ); + } + } + else { + local_900[0xb] = + *(ulonglong *) + (param_3 + (longlong)(iVar49 + (iVar17 - iVar51) + iVar48) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + + (longlong)-(iVar49 + iVar22 + iVar44 * 6 + iVar48) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + local_900[0xb] = + *(ulonglong *) + (param_3 + (longlong)(((iVar44 * -6 + iVar35) - iVar48) - iVar49) * 8) + ; + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar49 + iVar17 + iVar48) * 8) + ^ _DAT_181c5e1e0; + } + local_900[0xf] = uVar63; + iVar55 = iVar25 * 3 * uVar52 + iVar43 + uVar14 * 0xc; + if (iVar8 < iVar55) { + iVar49 = iVar20 * uVar14; + if (iVar58 < iVar55) { + if (iVar9 < iVar55) { + local_900[0x10] = + *(ulonglong *)(param_3 + (longlong)(iVar31 + iVar41 + iVar49) * 8); + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar32 - iVar41) - iVar49) * 8); + } + else { + local_900[0x10] = + *(ulonglong *)(param_3 + (longlong)-(iVar31 + iVar41 + iVar49) * 8) + ^ _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)(iVar53 + iVar41 + iVar49) * 8); + } + } + else { + local_900[0x10] = + *(ulonglong *)(param_3 + (longlong)(iVar49 + (iVar41 - iVar21)) * 8) + ^ _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)-(iVar53 + iVar41 + iVar49) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + local_900[0x10] = + *(ulonglong *) + (param_3 + (longlong)(int)-((iVar41 - iVar21) + iVar20 * uVar14) * 8); + uVar63 = *(ulonglong *) + (param_3 + (longlong)(int)(iVar57 + iVar41 + iVar20 * uVar14) * 8) + ^ _DAT_181c5e1e0; + } + iVar49 = iVar20 * uVar14; + local_900[0x14] = uVar63; + iVar61 = iVar55 + 3; + if (iVar8 < iVar61) { + if (iVar58 < iVar61) { + if (iVar9 < iVar61) { + local_900[0x11] = + *(ulonglong *) + (param_3 + (longlong)((iVar60 - iVar45) + iVar41 + iVar49) * 8); + uVar63 = *(ulonglong *) + (param_3 + + (longlong)(((iVar32 + iVar44 * -3) - iVar41) - iVar49) * 8); + } + else { + local_900[0x11] = + *(ulonglong *) + (param_3 + (longlong)-(iVar31 + iVar34 + iVar41 + iVar49) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar60 - iVar50) + iVar41 + iVar49) * 8 + ); + } + } + else { + local_900[0x11] = + *(ulonglong *) + (param_3 + (longlong)((iVar60 - iVar51) + iVar41 + iVar49) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)-(iVar53 + iVar34 + iVar41 + iVar49) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + local_900[0x11] = + *(ulonglong *) + (param_3 + (longlong)(((iVar21 + iVar44 * -3) - iVar41) - iVar49) * 8) + ; + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar60 + iVar41 + iVar49) * 8) + ^ _DAT_181c5e1e0; + } + local_900[0x15] = uVar63; + iVar61 = iVar55 + 6; + if (iVar8 < iVar61) { + if (iVar58 < iVar61) { + if (iVar9 < iVar61) { + local_900[0x12] = + *(ulonglong *) + (param_3 + (longlong)((iVar30 - iVar45) + iVar41 + iVar49) * 8); + uVar63 = *(ulonglong *) + (param_3 + + (longlong)(((iVar32 + iVar44 * -6) - iVar41) - iVar49) * 8); + } + else { + local_900[0x12] = + *(ulonglong *) + (param_3 + (longlong)-(iVar31 + iVar44 * 6 + iVar41 + iVar49) * 8) + ^ _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)((iVar30 - iVar50) + iVar41 + iVar49) * 8 + ); + } + } + else { + local_900[0x12] = + *(ulonglong *) + (param_3 + (longlong)((iVar30 - iVar51) + iVar41 + iVar49) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + + (longlong)-(iVar53 + iVar44 * 6 + iVar41 + iVar49) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + local_900[0x12] = + *(ulonglong *) + (param_3 + (longlong)(((iVar21 + iVar44 * -6) - iVar41) - iVar49) * 8) + ; + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar30 + iVar41 + iVar49) * 8) + ^ _DAT_181c5e1e0; + } + iVar55 = iVar55 + 9; + local_900[0x16] = uVar63; + if (iVar8 < iVar55) { + if (iVar58 < iVar55) { + if (iVar9 < iVar55) { + local_900[0x13] = + *(ulonglong *) + (param_3 + (longlong)(iVar49 + iVar41 + (iVar23 - iVar45)) * 8); + uVar63 = *(ulonglong *) + (param_3 + + (longlong)(((iVar32 + iVar44 * -9) - iVar41) - iVar49) * 8); + } + else { + local_900[0x13] = + *(ulonglong *) + (param_3 + (longlong)-(iVar49 + iVar31 + iVar37 + iVar41) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)(iVar49 + (iVar23 - iVar50) + iVar41) * 8 + ); + } + } + else { + local_900[0x13] = + *(ulonglong *) + (param_3 + (longlong)(iVar49 + (iVar23 - iVar51) + iVar41) * 8) ^ + _DAT_181c5e1e0; + uVar63 = *(ulonglong *) + (param_3 + (longlong)-(iVar49 + iVar53 + iVar37 + iVar41) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + local_900[0x13] = + *(ulonglong *) + (param_3 + (longlong)(((iVar21 + iVar44 * -9) - iVar41) - iVar49) * 8) + ; + uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar49 + iVar23 + iVar41) * 8) + ^ _DAT_181c5e1e0; + } + uVar14 = uVar14 + 1; + local_900[0x17] = uVar63; + local_900 = local_900 + 0x18; + } while (uVar14 < uVar42); + } + uVar52 = uVar52 + 1; + } while (uVar52 < uVar26); + } + goto LAB_18003311c; + } + iVar12 = iVar44 + 3; + if (0 < (int)uVar26) { + iVar44 = 1 << ((byte)iVar12 & 0x1f); + iVar50 = 1 << (cVar6 + (char)(iVar16 + -3) & 0x1fU); + iVar7 = iVar15 * iVar50; + iVar34 = (int)(((uint)(iVar44 * 3 >> 1) >> 0x1e) + iVar44 * 3) >> 2; + iVar45 = iVar44 * iVar50 - iVar7; + iVar13 = iVar34 * iVar50; + iVar17 = iVar44 / 2; + iVar18 = iVar17 * iVar50; + iVar56 = iVar13 - iVar7; + iVar37 = (int)(((uint)(iVar44 >> 1) >> 0x1e) + iVar44) >> 2; + iVar29 = iVar37 * iVar50; + iVar57 = iVar18 - iVar7; + iVar44 = iVar50 * 3 + iVar7; + iVar32 = iVar7 + iVar50 * 2; + iVar1 = iVar50 + iVar7; + iVar30 = iVar29 - iVar7; + iVar39 = 0; + iVar47 = 0; + uVar52 = 0; + do { + uVar14 = 0; + iVar8 = 0; + if (0 < iVar33) { + iVar35 = -iVar39; + do { + iVar58 = -iVar8; + iVar20 = iVar44 + iVar39 + iVar8; + iVar21 = iVar1 + iVar39 + iVar8; + iVar22 = (iVar39 - iVar56) + iVar8; + iVar28 = (iVar39 - iVar57) + iVar8; + iVar23 = (iVar39 - iVar30) + iVar8; + iVar31 = iVar32 + iVar39 + iVar8; + iVar38 = iVar7 + iVar39 + iVar8; + iVar27 = iVar15 + iVar47 + uVar14 * 4; + uVar63 = 0; + do { + iVar40 = (int)uVar63; + iVar9 = iVar27 + iVar27 * iVar40; + if (iVar37 < iVar9) { + iVar51 = iVar38 * iVar40; + if (iVar17 < iVar9) { + if (iVar34 < iVar9) { + local_900[uVar63 * 8] = + *(ulonglong *)(param_3 + (longlong)(iVar22 + iVar51) * 8); + uVar62 = *(ulonglong *) + (param_3 + (longlong)((iVar45 + iVar35 + iVar58) - iVar51) * 8 + ); + } + else { + local_900[uVar63 * 8] = + *(ulonglong *)(param_3 + (longlong)-(iVar22 + iVar51) * 8) ^ + _DAT_181c5e1e0; + uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar51 + iVar28) * 8); + } + } + else { + local_900[uVar63 * 8] = + *(ulonglong *)(param_3 + (longlong)(iVar23 + iVar51) * 8) ^ + _DAT_181c5e1e0; + uVar62 = *(ulonglong *)(param_3 + (longlong)-(iVar51 + iVar28) * 8) ^ + _DAT_181c5e1e0; + } + } + else { + local_900[uVar63 * 8] = + *(ulonglong *)(param_3 + (longlong)-(iVar23 + iVar38 * iVar40) * 8); + uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar38 * iVar40 + iVar38) * 8) + ^ _DAT_181c5e1e0; + } + local_900[uVar63 * 8 + 4] = uVar62; + iVar51 = iVar27 + 1 + iVar27 * iVar40 + iVar40; + if (iVar37 < iVar51) { + iVar46 = iVar21 * iVar40; + if (iVar17 < iVar51) { + if (iVar34 < iVar51) { + local_900[uVar63 * 8 + 1] = + *(ulonglong *) + (param_3 + + (longlong)(iVar46 + (iVar1 - iVar13) + iVar39 + iVar8) * 8); + uVar62 = *(ulonglong *) + (param_3 + + (longlong)(((iVar45 - iVar50) + iVar35 + iVar58) - iVar46) * 8 + ); + } + else { + local_900[uVar63 * 8 + 1] = + *(ulonglong *) + (param_3 + + (longlong)(((iVar56 - iVar50) + iVar35 + iVar58) - iVar46) * 8) ^ + _DAT_181c5e1e0; + uVar62 = *(ulonglong *) + (param_3 + + (longlong)(iVar46 + (iVar1 - iVar18) + iVar39 + iVar8) * 8); + } + } + else { + local_900[uVar63 * 8 + 1] = + *(ulonglong *) + (param_3 + + (longlong)(iVar46 + (iVar1 - iVar29) + iVar39 + iVar8) * 8) ^ + _DAT_181c5e1e0; + uVar62 = *(ulonglong *) + (param_3 + + (longlong)(((iVar57 - iVar50) + iVar35 + iVar58) - iVar46) * 8) + ^ _DAT_181c5e1e0; + } + } + else { + local_900[uVar63 * 8 + 1] = + *(ulonglong *) + (param_3 + + (longlong)(((iVar30 - iVar50) + iVar35 + iVar58) - iVar21 * iVar40) * + 8); + uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar21 * iVar40 + iVar21) * 8) + ^ _DAT_181c5e1e0; + } + local_900[uVar63 * 8 + 5] = uVar62; + iVar51 = iVar9 + 2 + iVar40 * 2; + if (iVar37 < iVar51) { + iVar46 = iVar31 * iVar40; + if (iVar17 < iVar51) { + if (iVar34 < iVar51) { + local_900[uVar63 * 8 + 2] = + *(ulonglong *) + (param_3 + + (longlong)(iVar46 + (iVar32 - iVar13) + iVar39 + iVar8) * 8); + uVar62 = *(ulonglong *) + (param_3 + + (longlong)((iVar45 + iVar50 * -2 + iVar35 + iVar58) - iVar46) + * 8); + } + else { + local_900[uVar63 * 8 + 2] = + *(ulonglong *) + (param_3 + + (longlong)((iVar56 + iVar50 * -2 + iVar35 + iVar58) - iVar46) * 8) + ^ _DAT_181c5e1e0; + uVar62 = *(ulonglong *) + (param_3 + + (longlong)(iVar46 + (iVar32 - iVar18) + iVar39 + iVar8) * 8); + } + } + else { + local_900[uVar63 * 8 + 2] = + *(ulonglong *) + (param_3 + + (longlong)(iVar46 + (iVar32 - iVar29) + iVar39 + iVar8) * 8) ^ + _DAT_181c5e1e0; + uVar62 = *(ulonglong *) + (param_3 + + (longlong)((iVar57 + iVar50 * -2 + iVar35 + iVar58) - iVar46) * + 8) ^ _DAT_181c5e1e0; + } + } + else { + local_900[uVar63 * 8 + 2] = + *(ulonglong *) + (param_3 + + (longlong)((iVar50 * -2 + iVar30 + iVar35 + iVar58) - iVar31 * iVar40) + * 8); + uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar31 * iVar40 + iVar31) * 8) + ^ _DAT_181c5e1e0; + } + local_900[uVar63 * 8 + 6] = uVar62; + iVar9 = iVar9 + 3 + iVar40 * 3; + if (iVar37 < iVar9) { + iVar51 = iVar20 * iVar40; + if (iVar17 < iVar9) { + if (iVar34 < iVar9) { + local_900[uVar63 * 8 + 3] = + *(ulonglong *) + (param_3 + + (longlong)(iVar51 + (iVar44 - iVar13) + iVar39 + iVar8) * 8); + uVar62 = *(ulonglong *) + (param_3 + + (longlong)((iVar45 + iVar50 * -3 + iVar35 + iVar58) - iVar51) + * 8); + } + else { + local_900[uVar63 * 8 + 3] = + *(ulonglong *) + (param_3 + + (longlong)((iVar56 + iVar50 * -3 + iVar35 + iVar58) - iVar51) * 8) + ^ _DAT_181c5e1e0; + uVar62 = *(ulonglong *) + (param_3 + + (longlong)(iVar51 + (iVar44 - iVar18) + iVar39 + iVar8) * 8); + } + } + else { + local_900[uVar63 * 8 + 3] = + *(ulonglong *) + (param_3 + + (longlong)(iVar51 + (iVar44 - iVar29) + iVar39 + iVar8) * 8) ^ + _DAT_181c5e1e0; + uVar62 = *(ulonglong *) + (param_3 + + (longlong)((iVar57 + iVar50 * -3 + iVar35 + iVar58) - iVar51) * + 8) ^ _DAT_181c5e1e0; + } + } + else { + local_900[uVar63 * 8 + 3] = + *(ulonglong *) + (param_3 + + (longlong)((iVar58 + iVar35 + iVar50 * -3 + iVar30) - iVar20 * iVar40) + * 8); + uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar20 * iVar40 + iVar20) * 8) + ^ _DAT_181c5e1e0; + } + local_900[uVar63 * 8 + 7] = uVar62; + uVar63 = (ulonglong)(iVar40 + 1U); + } while (iVar40 + 1U < 7); + local_900 = local_900 + 0x38; + uVar14 = uVar14 + 1; + iVar8 = iVar8 + iVar50 * 4; + } while (uVar14 < uVar42); + } + uVar52 = uVar52 + 1; + iVar47 = iVar47 + iVar25; + iVar39 = iVar39 + iVar25 * iVar50; + } while (uVar52 < uVar26); + } + uVar26 = uVar26 << 3; + iVar16 = iVar16 + -3; + } + iVar44 = iVar12; + } while (iVar12 < param_2); + } + uVar24 = uVar24 + 1; + iVar43 = iVar43 + iVar33 * 3; + iVar15 = iVar15 + iVar33; + iVar11 = iVar11 + iVar33 * 2; + } while (uVar24 < (uint)((iVar25 + -1 + iVar33) / iVar33)); + } + iVar19 = (1 << ((byte)uVar3 & 0x1f)) << 4; + iVar2 = *(int *)(param_1 + 0x1c); + if (*(int *)(param_1 + 0x1c) <= iVar19) { + iVar2 = iVar19; + } + *(int *)(param_1 + 0x1c) = iVar2; + return puVar10 + (longlong)(1 << ((char)param_2 + 0x1fU & 0x1f)) * 2; +} + + + +############ FUN_ 180015380 size=1146 ############ diff --git a/giant2.txt b/giant2.txt new file mode 100644 index 0000000..756c516 --- /dev/null +++ b/giant2.txt @@ -0,0 +1,1339 @@ +############ FUN_ 1800246e0 size=14313 ############ + +/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ + +undefined8 * +FUN_1800246e0(longlong param_1,int param_2,longlong param_3,undefined4 param_4,int param_5, + undefined8 param_6,undefined8 param_7) + +{ + int iVar1; + int iVar2; + int iVar3; + undefined4 uVar4; + int iVar5; + char cVar6; + char cVar7; + int iVar8; + uint uVar9; + uint uVar10; + int iVar11; + int iVar12; + int iVar13; + int iVar14; + int iVar15; + int iVar16; + int iVar17; + int iVar18; + int iVar19; + int iVar20; + int iVar21; + int iVar22; + int iVar23; + int iVar24; + int iVar25; + int iVar26; + int iVar27; + int iVar28; + int iVar29; + int iVar30; + int iVar31; + int iVar32; + int iVar33; + int iVar34; + uint uVar35; + int iVar36; + int iVar37; + int iVar38; + int iVar39; + int iVar40; + int iVar41; + int iVar42; + uint uVar43; + int iVar44; + int iVar45; + int iVar46; + int iVar47; + int iVar48; + int iVar49; + int iVar50; + int iVar51; + int iVar52; + uint uVar53; + int iVar54; + int iVar55; + int iVar56; + int iVar57; + int iVar58; + int iVar59; + int iVar60; + int iVar61; + int iVar62; + int iVar63; + int iVar64; + int iVar65; + int iVar66; + int iVar67; + int iVar68; + int iVar69; + uint uVar70; + int iVar71; + int iVar72; + int iVar73; + int iVar74; + int iVar75; + int iVar76; + int iVar77; + uint uVar78; + int iVar79; + int iVar80; + int iVar81; + int iVar82; + int iVar83; + undefined8 uVar84; + undefined8 *local_c68; + undefined8 *local_3e8; + byte local_1b0; + + iVar3 = *(int *)(&DAT_181c5de7c + (longlong)param_2 * 4); + iVar49 = param_2 - iVar3; + if (iVar49 < 0x11) { + *(undefined8 *)(param_1 + 0x38) = param_6; + local_c68 = (undefined8 *)FUN_180023860(iVar49,param_3,param_4); + iVar44 = 1 << ((byte)iVar49 & 0x1f); + *(uint *)(param_1 + 0x1c) = iVar44 * 0x10 + 0x3fU & 0xffffffc0; + } + else { + local_c68 = (undefined8 *) + FUN_1800246e0(param_1,iVar49,param_3,param_4,param_5 + 1,param_6,param_7); + iVar44 = 1 << ((byte)iVar49 & 0x1f); + } + uVar4 = *(undefined4 *)(&DAT_181c5dedc + (longlong)param_2 * 4); + uVar43 = 0; + local_3e8 = local_c68; + *(undefined8 **)(param_1 + 0x78 + (longlong)param_5 * 8) = local_c68; + if (0 < iVar44) { + iVar5 = iVar44 * 2; + iVar8 = iVar44 * 3; + uVar53 = 1 << ((byte)uVar4 - (char)iVar3 & 0x1f); + uVar9 = (int)((uVar53 - ((int)(uVar53 + 1) >> 0x1f)) + 1) >> 1; + uVar10 = (iVar44 + uVar53) - 1; + if (((uVar10 | uVar53) & 0xffffff00) == 0) { + local_1b0 = (byte)uVar53; + uVar10 = (uint)(byte)((ushort)uVar10 / (ushort)local_1b0); + } + else { + uVar10 = (int)uVar10 / (int)uVar53; + } + iVar26 = 0; + iVar25 = 0; + iVar54 = 0; + iVar57 = 0; + iVar60 = 0; + iVar65 = 0; + iVar75 = iVar65; + do { + uVar35 = 1; + iVar45 = -iVar49; + iVar59 = iVar49; + if (-iVar3 < 0) { + do { + iVar27 = iVar59 + 2; + cVar6 = (char)(iVar45 + -2); + cVar7 = (char)param_4; + if (iVar27 == param_2) { + iVar59 = 1 << ((byte)iVar27 & 0x1f); + iVar64 = 1 << (cVar6 + cVar7 & 0x1fU); + if (0 < (int)uVar35 >> 1) { + iVar36 = iVar64 * iVar65; + iVar32 = iVar64 * iVar75; + iVar23 = (int)(((uint)(iVar59 >> 1) >> 0x1e) + iVar59) >> 2; + iVar39 = iVar64 * iVar23; + iVar28 = iVar64 + iVar36; + iVar52 = iVar59 / 2; + iVar31 = iVar64 * iVar52; + iVar24 = (int)(((uint)(iVar59 * 3 >> 1) >> 0x1e) + iVar59 * 3) >> 2; + iVar42 = iVar64 * iVar24; + iVar2 = iVar64 * 2; + iVar1 = iVar2 + iVar32; + iVar46 = iVar59 * iVar64 - iVar32; + iVar59 = iVar59 * iVar64 - iVar36; + iVar51 = iVar64 * 4; + uVar78 = 0; + do { + uVar70 = 0; + if (0 < (int)uVar53) { + iVar66 = iVar64 * iVar5 * uVar78; + iVar63 = iVar64 * iVar44 * uVar78; + iVar50 = (iVar32 - iVar31) + iVar66; + iVar55 = (iVar36 - iVar31) + iVar63; + iVar56 = (iVar36 - iVar42) + iVar63; + iVar58 = (iVar32 - iVar42) + iVar66; + iVar61 = iVar66 - (iVar39 - iVar32); + iVar62 = iVar63 - (iVar39 - iVar36); + do { + iVar67 = uVar70 * 2 + iVar44 * uVar78 + iVar65; + if (iVar23 < iVar67) { + iVar68 = iVar2 * uVar70; + if (iVar52 < iVar67) { + if (iVar24 < iVar67) { + *local_3e8 = *(undefined8 *)(param_3 + (longlong)(iVar56 + iVar68) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)((iVar59 - iVar63) - iVar68) * 8); + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar56 + iVar68) * 8); + *local_3e8 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar68 + iVar55) * 8); + } + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar68 + iVar62) * 8); + *local_3e8 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar68 + iVar55) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + *local_3e8 = *(undefined8 *) + (param_3 + (longlong)(int)-(iVar62 + iVar2 * uVar70) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(int)(iVar36 + iVar63 + iVar2 * uVar70) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + iVar68 = iVar2 * uVar70; + iVar67 = iVar67 + 1; + local_3e8[2] = uVar84; + if (iVar23 < iVar67) { + if (iVar52 < iVar67) { + if (iVar24 < iVar67) { + local_3e8[1] = *(undefined8 *) + (param_3 + + (longlong)(iVar68 + (iVar28 - iVar42) + iVar63) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(((iVar59 - iVar64) - iVar63) - iVar68) * 8 + ); + } + else { + uVar84 = *(undefined8 *) + (param_3 + + (longlong)-(iVar68 + iVar64 + (iVar36 - iVar42) + iVar63) * 8); + local_3e8[1] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64 + ,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar68 + (iVar28 - iVar31) + iVar63) * 8); + } + } + else { + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar68 + (iVar28 - iVar39) + iVar63) * 8); + local_3e8[1] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)-(iVar68 + iVar64 + (iVar36 - iVar31) + iVar63) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[1] = *(undefined8 *) + (param_3 + + (longlong)((((iVar39 - iVar36) - iVar64) - iVar63) - iVar68) * + 8); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar68 + iVar28 + iVar63) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + local_3e8[3] = uVar84; + iVar67 = uVar70 * 4 + iVar5 * uVar78 + iVar75; + if (iVar23 < iVar67) { + iVar68 = iVar51 * uVar70; + if (iVar52 < iVar67) { + if (iVar24 < iVar67) { + local_3e8[4] = *(undefined8 *)(param_3 + (longlong)(iVar58 + iVar68) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)((iVar46 - iVar66) - iVar68) * 8); + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar58 + iVar68) * 8); + local_3e8[4] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64 + ,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar68 + iVar50) * 8); + } + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar68 + iVar61) * 8); + local_3e8[4] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar68 + iVar50) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[4] = *(undefined8 *) + (param_3 + (longlong)(int)-(iVar61 + iVar51 * uVar70) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(int)(iVar32 + iVar66 + iVar51 * uVar70) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + iVar68 = iVar51 * uVar70; + iVar67 = iVar67 + 2; + local_3e8[6] = uVar84; + if (iVar23 < iVar67) { + if (iVar52 < iVar67) { + if (iVar24 < iVar67) { + local_3e8[5] = *(undefined8 *) + (param_3 + + (longlong)(iVar68 + (iVar1 - iVar42) + iVar66) * 8); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)(((iVar46 + iVar64 * -2) - iVar66) - iVar68) * 8); + } + else { + uVar84 = *(undefined8 *) + (param_3 + + (longlong)-(iVar68 + (iVar32 - iVar42) + iVar2 + iVar66) * 8); + local_3e8[5] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64 + ,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar68 + (iVar1 - iVar31) + iVar66) * 8); + } + } + else { + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar68 + (iVar1 - iVar39) + iVar66) * 8); + local_3e8[5] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)-(iVar68 + (iVar32 - iVar31) + iVar2 + iVar66) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[5] = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar39 - iVar32) + iVar64 * -2) - iVar66) - iVar68) * 8); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar68 + iVar1 + iVar66) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + uVar70 = uVar70 + 1; + local_3e8[7] = uVar84; + local_3e8 = local_3e8 + 8; + } while (uVar70 < uVar9); + } + uVar78 = uVar78 + 1; + } while (uVar78 < (uint)((int)uVar35 >> 1)); + } +LAB_180027d9d: + uVar35 = uVar35 << 2; + iVar45 = iVar45 + -2; + } + else { + if ((iVar59 + 4 == param_2) || (iVar59 + 6 == param_2)) { + iVar59 = 1 << ((byte)iVar27 & 0x1f); + iVar64 = 1 << (cVar6 + cVar7 & 0x1fU); + if (0 < (int)uVar35) { + iVar32 = (int)(((uint)(iVar59 >> 1) >> 0x1e) + iVar59) >> 2; + iVar46 = iVar64 * iVar65; + iVar23 = iVar64 * iVar32; + iVar51 = iVar64 * iVar75; + iVar56 = iVar64 + iVar46; + iVar36 = iVar59 / 2; + iVar39 = iVar64 * iVar36; + iVar31 = (int)(((uint)(iVar59 * 3 >> 1) >> 0x1e) + iVar59 * 3) >> 2; + iVar55 = iVar64 * iVar31; + iVar59 = iVar59 * iVar64; + iVar28 = iVar64 * iVar60; + iVar24 = iVar64 * 2; + iVar1 = iVar24 + iVar51; + iVar2 = iVar64 * 4; + iVar52 = iVar64 * 3; + iVar42 = iVar64 * 6; + iVar50 = iVar52 + iVar28; + uVar78 = 0; + do { + uVar70 = 0; + if (0 < (int)uVar53) { + iVar71 = iVar64 * iVar8 * uVar78; + iVar76 = iVar64 * iVar5 * uVar78; + iVar79 = iVar64 * iVar44 * uVar78; + iVar69 = iVar71 - (iVar23 - iVar28); + iVar11 = iVar76 - (iVar23 - iVar51); + iVar58 = (iVar28 - iVar39) + iVar71; + iVar68 = iVar79 - (iVar23 - iVar46); + iVar61 = (iVar51 - iVar39) + iVar76; + iVar62 = (iVar46 - iVar39) + iVar79; + iVar63 = (iVar51 - iVar55) + iVar76; + iVar66 = (iVar28 - iVar55) + iVar71; + iVar67 = (iVar46 - iVar55) + iVar79; + do { + iVar12 = uVar70 * 2 + iVar44 * uVar78 + iVar65; + if (iVar32 < iVar12) { + iVar13 = iVar24 * uVar70; + if (iVar36 < iVar12) { + if (iVar31 < iVar12) { + *local_3e8 = *(undefined8 *)(param_3 + (longlong)(iVar67 + iVar13) * 8); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)(((iVar59 - iVar46) - iVar79) - iVar13) * 8); + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar67 + iVar13) * 8); + *local_3e8 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64 + ,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar62) * 8); + } + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar68) * 8); + *local_3e8 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar13 + iVar62) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + *local_3e8 = *(undefined8 *) + (param_3 + (longlong)(int)-(iVar68 + iVar24 * uVar70) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(int)(iVar46 + iVar79 + iVar24 * uVar70) * 8) + ; + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + iVar13 = iVar24 * uVar70; + iVar12 = iVar12 + 1; + local_3e8[2] = uVar84; + if (iVar32 < iVar12) { + if (iVar36 < iVar12) { + if (iVar31 < iVar12) { + local_3e8[1] = *(undefined8 *) + (param_3 + + (longlong)(iVar13 + (iVar56 - iVar55) + iVar79) * 8); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)((((iVar59 - iVar46) - iVar64) - iVar79) - iVar13) * + 8); + } + else { + uVar84 = *(undefined8 *) + (param_3 + + (longlong)-(iVar13 + iVar64 + (iVar46 - iVar55) + iVar79) * 8) + ; + local_3e8[1] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ + _UNK_181c5df64,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar13 + (iVar56 - iVar39) + iVar79) * 8 + ); + } + } + else { + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar13 + (iVar56 - iVar23) + iVar79) * 8); + local_3e8[1] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64 + ,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)-(iVar13 + iVar64 + (iVar46 - iVar39) + iVar79) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[1] = *(undefined8 *) + (param_3 + + (longlong)((((iVar23 - iVar46) - iVar64) - iVar79) - iVar13) + * 8); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar56 + iVar79) * 8) + ; + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + local_3e8[3] = uVar84; + iVar12 = uVar70 * 4 + iVar5 * uVar78 + iVar75; + if (iVar32 < iVar12) { + iVar13 = iVar2 * uVar70; + if (iVar36 < iVar12) { + if (iVar31 < iVar12) { + local_3e8[4] = *(undefined8 *) + (param_3 + (longlong)(iVar63 + iVar13) * 8); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)(((iVar59 - iVar51) - iVar76) - iVar13) * 8); + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar63 + iVar13) * 8); + local_3e8[4] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ + _UNK_181c5df64,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar61) * 8); + } + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar11) * 8); + local_3e8[4] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64 + ,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar13 + iVar61) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[4] = *(undefined8 *) + (param_3 + (longlong)(int)-(iVar11 + iVar2 * uVar70) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(int)(iVar51 + iVar76 + iVar2 * uVar70) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + iVar13 = iVar2 * uVar70; + iVar12 = iVar12 + 2; + local_3e8[6] = uVar84; + if (iVar32 < iVar12) { + if (iVar36 < iVar12) { + if (iVar31 < iVar12) { + local_3e8[5] = *(undefined8 *) + (param_3 + + (longlong)(iVar13 + (iVar1 - iVar55) + iVar76) * 8); + uVar84 = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar59 - iVar51) + iVar64 * -2) - iVar76) - iVar13) * 8); + } + else { + uVar84 = *(undefined8 *) + (param_3 + + (longlong)-(iVar13 + (iVar51 - iVar55) + iVar24 + iVar76) * 8) + ; + local_3e8[5] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ + _UNK_181c5df64,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar13 + (iVar1 - iVar39) + iVar76) * 8) + ; + } + } + else { + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar13 + (iVar1 - iVar23) + iVar76) * 8); + local_3e8[5] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64 + ,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)-(iVar13 + (iVar51 - iVar39) + iVar24 + iVar76) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[5] = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar23 - iVar51) + iVar64 * -2) - iVar76) - iVar13) * 8) + ; + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar1 + iVar76) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + local_3e8[7] = uVar84; + iVar12 = uVar70 * 6 + iVar8 * uVar78 + iVar60; + if (iVar32 < iVar12) { + iVar13 = iVar42 * uVar70; + if (iVar36 < iVar12) { + if (iVar31 < iVar12) { + local_3e8[8] = *(undefined8 *) + (param_3 + (longlong)(iVar66 + iVar13) * 8); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)(((iVar59 - iVar28) - iVar71) - iVar13) * 8); + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar66 + iVar13) * 8); + local_3e8[8] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ + _UNK_181c5df64,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar58) * 8); + } + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar69) * 8); + local_3e8[8] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64 + ,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar13 + iVar58) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[8] = *(undefined8 *) + (param_3 + (longlong)(int)-(iVar69 + iVar42 * uVar70) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(int)(iVar28 + iVar71 + iVar42 * uVar70) * 8) + ; + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + iVar13 = iVar42 * uVar70; + iVar12 = iVar12 + 3; + local_3e8[10] = uVar84; + if (iVar32 < iVar12) { + if (iVar36 < iVar12) { + if (iVar31 < iVar12) { + local_3e8[9] = *(undefined8 *) + (param_3 + + (longlong)(iVar13 + iVar71 + (iVar50 - iVar55)) * 8); + uVar84 = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar59 - iVar28) + iVar64 * -3) - iVar71) - iVar13) * 8); + } + else { + uVar84 = *(undefined8 *) + (param_3 + + (longlong)-(iVar13 + (iVar28 - iVar55) + iVar52 + iVar71) * 8) + ; + local_3e8[9] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ + _UNK_181c5df64,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar13 + (iVar50 - iVar39) + iVar71) * 8 + ); + } + } + else { + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar13 + (iVar50 - iVar23) + iVar71) * 8); + local_3e8[9] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64 + ,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)-(iVar13 + (iVar28 - iVar39) + iVar52 + iVar71) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[9] = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar23 - iVar28) + iVar64 * -3) - iVar71) - iVar13) * 8) + ; + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar50 + iVar71) * 8) + ; + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + uVar70 = uVar70 + 1; + local_3e8[0xb] = uVar84; + local_3e8 = local_3e8 + 0xc; + } while (uVar70 < uVar9); + } + uVar78 = uVar78 + 1; + } while (uVar78 < uVar35); + } + goto LAB_180027d9d; + } + iVar27 = iVar59 + 3; + if (0 < (int)uVar35) { + iVar50 = 1 << ((byte)iVar27 & 0x1f); + iVar71 = 1 << (cVar7 + (char)(iVar45 + -3) & 0x1fU); + iVar66 = (int)(((uint)(iVar50 * 3 >> 1) >> 0x1e) + iVar50 * 3) >> 2; + iVar2 = iVar71 * 4; + iVar42 = iVar71 * 10; + iVar58 = iVar50 / 2; + iVar52 = iVar71 * 2; + iVar46 = iVar26 * iVar71; + iVar51 = iVar60 * iVar71; + iVar61 = (int)(((uint)(iVar50 >> 1) >> 0x1e) + iVar50) >> 2; + iVar36 = iVar71 * 0xc; + iVar67 = iVar71 * iVar61; + iVar32 = iVar25 * iVar71; + iVar23 = iVar71 * 0xe; + iVar39 = iVar54 * iVar71; + iVar31 = iVar71 * 6; + iVar69 = iVar71 * 3 + iVar51; + iVar59 = iVar2 + iVar46; + iVar62 = iVar71 * 5 + iVar32; + iVar76 = iVar57 * iVar71; + iVar28 = iVar71 * 8; + iVar64 = iVar31 + iVar39; + iVar55 = iVar75 * iVar71; + iVar79 = iVar71 * 7 + iVar76; + iVar68 = iVar71 * iVar58; + iVar50 = iVar50 * iVar71; + iVar1 = iVar52 + iVar55; + iVar63 = iVar71 * iVar66; + iVar56 = iVar65 * iVar71; + iVar24 = iVar71 + iVar56; + uVar78 = 0; + do { + uVar70 = 0; + if (0 < (int)uVar53) { + iVar72 = iVar44 * 7 * iVar71 * uVar78; + iVar40 = iVar44 * 5 * iVar71 * uVar78; + iVar47 = iVar44 * 6 * iVar71 * uVar78; + iVar29 = iVar8 * iVar71 * uVar78; + iVar37 = iVar44 * 4 * iVar71 * uVar78; + iVar33 = iVar5 * iVar71 * uVar78; + iVar11 = iVar72 - (iVar67 - iVar76); + iVar12 = iVar47 - (iVar67 - iVar39); + iVar13 = iVar40 - (iVar67 - iVar32); + iVar14 = iVar37 - (iVar67 - iVar46); + iVar80 = iVar33 - (iVar67 - iVar55); + iVar15 = iVar29 - (iVar67 - iVar51); + iVar16 = iVar33 - (iVar68 - iVar55); + iVar17 = iVar29 - (iVar68 - iVar51); + iVar18 = iVar37 - (iVar68 - iVar46); + iVar19 = iVar40 - (iVar68 - iVar32); + iVar20 = iVar47 - (iVar68 - iVar39); + iVar21 = iVar72 - (iVar68 - iVar76); + iVar22 = iVar44 * iVar71 * uVar78; + iVar34 = iVar33 - (iVar63 - iVar55); + iVar30 = iVar29 - (iVar63 - iVar51); + iVar38 = iVar37 - (iVar63 - iVar46); + iVar41 = iVar40 - (iVar63 - iVar32); + iVar48 = iVar47 - (iVar63 - iVar39); + iVar81 = iVar22 - (iVar63 - iVar56); + iVar82 = iVar22 - (iVar68 - iVar56); + iVar73 = iVar72 - (iVar63 - iVar76); + iVar83 = iVar22 - (iVar67 - iVar56); + do { + iVar77 = uVar70 * 2 + iVar44 * uVar78 + iVar65; + if (iVar61 < iVar77) { + iVar74 = iVar52 * uVar70; + if (iVar58 < iVar77) { + if (iVar66 < iVar77) { + *local_3e8 = *(undefined8 *)(param_3 + (longlong)(iVar81 + iVar74) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(((iVar50 - iVar56) - iVar22) - iVar74) * 8 + ); + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar81 + iVar74) * 8); + *local_3e8 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar82) * 8); + } + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar83) * 8); + *local_3e8 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar82) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + *local_3e8 = *(undefined8 *) + (param_3 + (longlong)(int)-(iVar83 + iVar52 * uVar70) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(int)(iVar22 + iVar56 + iVar52 * uVar70) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + iVar74 = iVar52 * uVar70; + iVar77 = iVar77 + 1; + local_3e8[2] = uVar84; + if (iVar61 < iVar77) { + if (iVar58 < iVar77) { + if (iVar66 < iVar77) { + local_3e8[1] = *(undefined8 *) + (param_3 + + (longlong)(iVar74 + (iVar24 - iVar63) + iVar22) * 8); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)((((iVar50 - iVar56) - iVar71) - iVar22) - iVar74) * 8 + ); + } + else { + uVar84 = *(undefined8 *) + (param_3 + + (longlong)((((iVar63 - iVar56) - iVar71) - iVar22) - iVar74) * 8 + ); + local_3e8[1] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64 + ,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar24 - iVar68) + iVar22) * 8); + } + } + else { + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar24 - iVar67) + iVar22) * 8); + local_3e8[1] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)((((iVar68 - iVar56) - iVar71) - iVar22) - iVar74) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[1] = *(undefined8 *) + (param_3 + + (longlong)((((iVar67 - iVar56) - iVar71) - iVar22) - iVar74) * + 8); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar24 + iVar22) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + local_3e8[3] = uVar84; + iVar77 = uVar70 * 4 + iVar5 * uVar78 + iVar75; + if (iVar61 < iVar77) { + iVar74 = iVar2 * uVar70; + if (iVar58 < iVar77) { + if (iVar66 < iVar77) { + local_3e8[4] = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar34) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(((iVar50 - iVar55) - iVar33) - iVar74) * 8 + ); + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar34) * 8); + local_3e8[4] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64 + ,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar16) * 8); + } + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar80) * 8); + local_3e8[4] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar16) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[4] = *(undefined8 *) + (param_3 + (longlong)(int)-(iVar80 + iVar2 * uVar70) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(int)(iVar55 + iVar33 + iVar2 * uVar70) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + iVar74 = iVar2 * uVar70; + iVar77 = iVar77 + 2; + local_3e8[6] = uVar84; + if (iVar61 < iVar77) { + if (iVar58 < iVar77) { + if (iVar66 < iVar77) { + local_3e8[5] = *(undefined8 *) + (param_3 + + (longlong)(iVar74 + (iVar1 - iVar63) + iVar33) * 8); + uVar84 = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar50 - iVar55) + iVar71 * -2) - iVar33) - iVar74) * 8); + } + else { + uVar84 = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar63 - iVar55) + iVar71 * -2) - iVar33) - iVar74) * 8); + local_3e8[5] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64 + ,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar1 - iVar68) + iVar33) * 8); + } + } + else { + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar1 - iVar67) + iVar33) * 8); + local_3e8[5] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)((((iVar68 - iVar55) + iVar71 * -2) - iVar33) - iVar74) + * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[5] = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar67 - iVar55) + iVar71 * -2) - iVar33) - iVar74) * 8); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar1 + iVar33) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + local_3e8[7] = uVar84; + iVar77 = uVar70 * 6 + iVar8 * uVar78 + iVar60; + if (iVar61 < iVar77) { + iVar74 = iVar31 * uVar70; + if (iVar58 < iVar77) { + if (iVar66 < iVar77) { + local_3e8[8] = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar30) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(((iVar50 - iVar51) - iVar29) - iVar74) * 8 + ); + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar30) * 8); + local_3e8[8] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64 + ,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar17) * 8); + } + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar15) * 8); + local_3e8[8] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar17) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[8] = *(undefined8 *) + (param_3 + (longlong)(int)-(iVar15 + iVar31 * uVar70) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(int)(iVar51 + iVar29 + iVar31 * uVar70) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + iVar74 = iVar31 * uVar70; + iVar77 = iVar77 + 3; + local_3e8[10] = uVar84; + if (iVar61 < iVar77) { + if (iVar58 < iVar77) { + if (iVar66 < iVar77) { + local_3e8[9] = *(undefined8 *) + (param_3 + + (longlong)(iVar74 + (iVar69 - iVar63) + iVar29) * 8); + uVar84 = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar50 - iVar51) + iVar71 * -3) - iVar29) - iVar74) * 8); + } + else { + uVar84 = *(undefined8 *) + (param_3 + + (longlong) + (((iVar71 * -3 + (iVar63 - iVar51)) - iVar29) - iVar74) * 8); + local_3e8[9] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64 + ,(uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar69 - iVar68) + iVar29) * 8); + } + } + else { + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar69 - iVar67) + iVar29) * 8); + local_3e8[9] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)((((iVar68 - iVar51) + iVar71 * -3) - iVar29) - iVar74) + * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[9] = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar67 - iVar51) + iVar71 * -3) - iVar29) - iVar74) * 8); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar69 + iVar29) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + local_3e8[0xb] = uVar84; + iVar77 = uVar70 * 8 + iVar44 * 4 * uVar78 + iVar26; + if (iVar61 < iVar77) { + iVar74 = iVar28 * uVar70; + if (iVar58 < iVar77) { + if (iVar66 < iVar77) { + local_3e8[0xc] = + *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar38) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(((iVar50 - iVar46) - iVar37) - iVar74) * 8 + ); + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar38) * 8); + local_3e8[0xc] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar18) * 8); + } + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar14) * 8); + local_3e8[0xc] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar18) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[0xc] = + *(undefined8 *)(param_3 + (longlong)(int)-(iVar14 + iVar28 * uVar70) * 8) + ; + uVar84 = *(undefined8 *) + (param_3 + (longlong)(int)(iVar46 + iVar37 + iVar28 * uVar70) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + iVar74 = iVar28 * uVar70; + iVar77 = iVar77 + 4; + local_3e8[0xe] = uVar84; + if (iVar61 < iVar77) { + if (iVar58 < iVar77) { + if (iVar66 < iVar77) { + local_3e8[0xd] = + *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar59 - iVar63) + iVar37) * 8); + uVar84 = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar50 - iVar46) + iVar71 * -4) - iVar37) - iVar74) * 8); + } + else { + uVar84 = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar63 - iVar46) + iVar71 * -4) - iVar37) - iVar74) * 8); + local_3e8[0xd] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar59 - iVar68) + iVar37) * 8); + } + } + else { + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar59 - iVar67) + iVar37) * 8); + local_3e8[0xd] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)((((iVar68 - iVar46) + iVar71 * -4) - iVar37) - iVar74) + * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[0xd] = + *(undefined8 *) + (param_3 + + (longlong)((((iVar67 - iVar46) + iVar71 * -4) - iVar37) - iVar74) * 8); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar59 + iVar37) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + local_3e8[0xf] = uVar84; + iVar77 = uVar70 * 10 + iVar44 * 5 * uVar78 + iVar25; + if (iVar61 < iVar77) { + iVar74 = iVar42 * uVar70; + if (iVar58 < iVar77) { + if (iVar66 < iVar77) { + local_3e8[0x10] = + *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar41) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(((iVar50 - iVar32) - iVar40) - iVar74) * 8 + ); + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar41) * 8); + local_3e8[0x10] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar19) * 8); + } + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar13) * 8); + local_3e8[0x10] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar19) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[0x10] = + *(undefined8 *)(param_3 + (longlong)(int)-(iVar13 + iVar42 * uVar70) * 8) + ; + uVar84 = *(undefined8 *) + (param_3 + (longlong)(int)(iVar32 + iVar40 + iVar42 * uVar70) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + iVar74 = iVar42 * uVar70; + iVar77 = iVar77 + 5; + local_3e8[0x12] = uVar84; + if (iVar61 < iVar77) { + if (iVar58 < iVar77) { + if (iVar66 < iVar77) { + local_3e8[0x11] = + *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar62 - iVar63) + iVar40) * 8); + uVar84 = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar50 - iVar32) + iVar71 * -5) - iVar40) - iVar74) * 8); + } + else { + uVar84 = *(undefined8 *) + (param_3 + + (longlong) + (((iVar71 * -5 + (iVar63 - iVar32)) - iVar40) - iVar74) * 8); + local_3e8[0x11] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar62 - iVar68) + iVar40) * 8); + } + } + else { + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar62 - iVar67) + iVar40) * 8); + local_3e8[0x11] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)((((iVar68 - iVar32) + iVar71 * -5) - iVar40) - iVar74) + * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[0x11] = + *(undefined8 *) + (param_3 + + (longlong)((((iVar67 - iVar32) + iVar71 * -5) - iVar40) - iVar74) * 8); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar62 + iVar40) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + local_3e8[0x13] = uVar84; + iVar77 = uVar70 * 0xc + iVar44 * 6 * uVar78 + iVar54; + if (iVar61 < iVar77) { + iVar74 = iVar36 * uVar70; + if (iVar58 < iVar77) { + if (iVar66 < iVar77) { + local_3e8[0x14] = + *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar48) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(((iVar50 - iVar39) - iVar47) - iVar74) * 8 + ); + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar48) * 8); + local_3e8[0x14] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar20) * 8); + } + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar12) * 8); + local_3e8[0x14] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar20) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[0x14] = + *(undefined8 *)(param_3 + (longlong)(int)-(iVar12 + iVar36 * uVar70) * 8) + ; + uVar84 = *(undefined8 *) + (param_3 + (longlong)(int)(iVar39 + iVar47 + iVar36 * uVar70) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + iVar74 = iVar36 * uVar70; + iVar77 = iVar77 + 6; + local_3e8[0x16] = uVar84; + if (iVar61 < iVar77) { + if (iVar58 < iVar77) { + if (iVar66 < iVar77) { + local_3e8[0x15] = + *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar64 - iVar63) + iVar47) * 8); + uVar84 = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar50 - iVar39) + iVar71 * -6) - iVar47) - iVar74) * 8); + } + else { + uVar84 = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar63 - iVar39) + iVar71 * -6) - iVar47) - iVar74) * 8); + local_3e8[0x15] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar64 - iVar68) + iVar47) * 8); + } + } + else { + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar64 - iVar67) + iVar47) * 8); + local_3e8[0x15] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)((((iVar68 - iVar39) + iVar71 * -6) - iVar47) - iVar74) + * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[0x15] = + *(undefined8 *) + (param_3 + + (longlong)((((iVar67 - iVar39) + iVar71 * -6) - iVar47) - iVar74) * 8); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar64 + iVar47) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + iVar77 = uVar70 * 0xe + iVar44 * 7 * uVar78 + iVar57; + local_3e8[0x17] = uVar84; + if (iVar61 < iVar77) { + iVar74 = iVar23 * uVar70; + if (iVar58 < iVar77) { + if (iVar66 < iVar77) { + local_3e8[0x18] = + *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar73) * 8); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(((iVar50 - iVar76) - iVar72) - iVar74) * 8 + ); + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar73) * 8); + local_3e8[0x18] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar21) * 8); + } + } + else { + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar11) * 8); + local_3e8[0x18] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar21) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[0x18] = + *(undefined8 *)(param_3 + (longlong)(int)-(iVar11 + iVar23 * uVar70) * 8) + ; + uVar84 = *(undefined8 *) + (param_3 + (longlong)(int)(iVar76 + iVar72 + iVar23 * uVar70) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + iVar74 = iVar23 * uVar70; + iVar77 = iVar77 + 7; + local_3e8[0x1a] = uVar84; + if (iVar61 < iVar77) { + if (iVar58 < iVar77) { + if (iVar66 < iVar77) { + local_3e8[0x19] = + *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar79 - iVar63) + iVar72) * 8); + uVar84 = *(undefined8 *) + (param_3 + + (longlong) + ((((iVar50 - iVar76) + iVar71 * -7) - iVar72) - iVar74) * 8); + } + else { + uVar84 = *(undefined8 *) + (param_3 + + (longlong) + (((iVar71 * -7 + (iVar63 - iVar76)) - iVar72) - iVar74) * 8); + local_3e8[0x19] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar79 - iVar68) + iVar72) * 8); + } + } + else { + uVar84 = *(undefined8 *) + (param_3 + (longlong)(iVar74 + (iVar79 - iVar67) + iVar72) * 8); + local_3e8[0x19] = + CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + uVar84 = *(undefined8 *) + (param_3 + + (longlong)((((iVar68 - iVar76) + iVar71 * -7) - iVar72) - iVar74) + * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + } + else { + local_3e8[0x19] = + *(undefined8 *) + (param_3 + + (longlong)((((iVar67 - iVar76) + iVar71 * -7) - iVar72) - iVar74) * 8); + uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar79 + iVar72) * 8); + uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64, + (uint)uVar84 ^ _DAT_181c5df60); + } + uVar70 = uVar70 + 1; + local_3e8[0x1b] = uVar84; + local_3e8 = local_3e8 + 0x1c; + } while (uVar70 < uVar9); + } + uVar78 = uVar78 + 1; + } while (uVar78 < uVar35); + } + uVar35 = uVar35 << 3; + iVar45 = iVar45 + -3; + } + iVar59 = iVar27; + } while (iVar27 < param_2); + } + uVar43 = uVar43 + 1; + iVar60 = iVar60 + uVar53 * 3; + iVar26 = iVar26 + uVar53 * 4; + iVar75 = iVar75 + uVar53 * 2; + iVar25 = iVar25 + uVar53 * 5; + iVar54 = iVar54 + uVar53 * 6; + iVar57 = iVar57 + uVar53 * 7; + iVar65 = iVar65 + uVar53; + } while (uVar43 < uVar10); + } + iVar49 = (1 << ((byte)uVar4 & 0x1f)) * 0x10; + iVar3 = *(int *)(param_1 + 0x1c); + if (*(int *)(param_1 + 0x1c) <= iVar49) { + iVar3 = iVar49; + } + *(int *)(param_1 + 0x1c) = iVar3; + return local_c68 + (longlong)(1 << ((char)param_2 + 0x1fU & 0x1f)) * 2; +} + + + diff --git a/giant3.txt b/giant3.txt new file mode 100644 index 0000000..e69de29 diff --git a/roadmap.md b/roadmap.md index 914d5d7..d58a5e0 100644 --- a/roadmap.md +++ b/roadmap.md @@ -121,3 +121,29 @@ в 18052*/18053* или через трассировку вызовов от `processBlock` спектрального процессора. 2. Окна/oversample детали — из декомпиляции (A.6) или требуется доп. замеры. 3. Стерео-верификация (M8) — приоритет mono-путь или сразу стерео-граф. + +## Phase A progress update (recap) + +### FFT transform (found) +- **Recursive FFT planners ("giants")**: 7 monolith funcs (~14.4K each) = type variants: + 18001f260, 1800246e0, 18002f980, 180029ca0, 180035980, 18003b900, 18004ff80 + Recurse on `log2 - factor` with `param_5+1` depth; build stage plan in `param_1+0x78` array. +- **Factor tables** (int, index=log2): `DAT_181c5e0fc` (small=4/8/9/13), `DAT_181c5e15c`, + `DAT_181c5e3fc` (nonzero => use giant path in FUN_18003b6c0). +- **FUN_18003b6c0** (bit-reverse+plan, N big): if `DAT_181c5e3fc[log2]!=0` call giant `FUN_18003b900`, + else small plan via DAT_181c5e4e0 XOR mask permute. +- **Base small FFT**: `FUN_18002e360` (radix2/3), `FUN_180023860` (float variant). +- **Twiddle**: copied from static base `DAT_182616800` into scratch by `FUN_180039b00`. +- **Spec init FUN_180008140** (from dispatch table `182615ef0`): builds plan; dispatch-only callers. +- Giants/planners = integer address gen (no float math) => executors are separate (dispatch kernels). + +### Spectral layer located (named C++ classes via RTTI): +- `SpectralProcessor` vtbl @180529610 (1154) + methods around 180529xxx/18052exxx. +- `Soothe2Module`, `Soothe2ModuleBase`, `IIRFilterExtended`, ModuleDecryptor. +- range 0x180500000-0x180530000 listed (1051 fns) -> funs_range.txt overwritten. + +### Block processor chain (audio->out): +- `FUN_18052e260(param_1, n)` : reads det? calls **FUN_180536300(param_1+0x3d8, in, out, det, n)** +- `FUN_180536300` (475): normalize `DAT_1824c4248/(freq)`, FUN_18052da00/db50/d990/dbc0 (smoothing), + FUN_180535880, FUN_180536f90 (249, detector update via dispatch). +- Param setup fns: FUN_18052e9b0 (3167), FUN_180529fe0 (2051) — float math on params (DAT_18262b700 block-sizes etc.). diff --git a/tmp_spec.txt b/tmp_spec.txt new file mode 100644 index 0000000..e69de29 diff --git a/xrefs.txt b/xrefs.txt index 0002cc7..9e2cb09 100644 --- a/xrefs.txt +++ b/xrefs.txt @@ -1,17 +1,42 @@ ### TARGET 180008140 from 18267c6d8 type=DATA from 182615ef0 type=DATA -### TARGET 180039aa0 - from 18267d674 type=DATA - from 1800081ac type=UNCONDITIONAL_CALL - from 18001474c type=UNCONDITIONAL_CALL -### TARGET 181c5cd10 - from 1800081ed type=READ - from 18000822c type=READ - from 1800082a1 type=READ +### TARGET 180039b00 + from 18267d680 type=DATA + from 18258be04 type=DATA + from 18258be14 type=DATA + from 18000832e type=UNCONDITIONAL_CALL +### TARGET 18003a2a0 + from 18267d6a4 type=DATA + from 180008363 type=UNCONDITIONAL_CALL + from 18003b730 type=UNCONDITIONAL_CALL + from 18003f165 type=UNCONDITIONAL_CALL +### TARGET 18003b6c0 + from 18267d6d4 type=DATA + from 18000839b type=UNCONDITIONAL_CALL +### TARGET 180034280 + from 18000804e type=UNCONDITIONAL_CALL + from 180035787 type=UNCONDITIONAL_CALL + from 18000834e type=UNCONDITIONAL_CALL + from 18003b707 type=UNCONDITIONAL_CALL + from 1800145f2 type=UNCONDITIONAL_CALL + from 1800682a7 type=UNCONDITIONAL_CALL + from 1800148f2 type=UNCONDITIONAL_CALL + from 18006ee67 type=UNCONDITIONAL_CALL ### TARGET 18003f1a0 from 18267d6ec type=DATA from 1800083b1 type=UNCONDITIONAL_CALL ### TARGET 18003f600 from 18267d6f8 type=DATA from 1800083c7 type=UNCONDITIONAL_CALL +### TARGET 1800356f0 + from 18267d62c type=DATA + from 18258bdc8 type=DATA + from 180034370 type=CONDITIONAL_JUMP +### TARGET 18052e130 + from 18269df3c type=DATA + from 18052970d type=UNCONDITIONAL_CALL + from 180530828 type=UNCONDITIONAL_CALL +### TARGET 18052df60 + from 18269df30 type=DATA + from 180529a01 type=UNCONDITIONAL_CALL