Compare commits
179
Commits
5c939583f5
...
v1.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4d75f4d22 | ||
|
|
588d2dcc36 | ||
|
|
4ed3481166 | ||
|
|
8805a8f183 | ||
|
|
d7cbab3e4c | ||
|
|
1ea4bf6480 | ||
|
|
f689023089 | ||
|
|
575d26a771 | ||
|
|
4d78785f0b | ||
|
|
b6e7fdc289 | ||
|
|
f68081f694 | ||
|
|
c18f4b3ef4 | ||
|
|
7202b8d6a4 | ||
|
|
943e781720 | ||
|
|
60421c32c9 | ||
|
|
6bc0120286 | ||
|
|
c69257a551 | ||
|
|
50d7ab0d05 | ||
|
|
3c5e276fc5 | ||
|
|
f0cfec8af7 | ||
|
|
c2da7495c0 | ||
|
|
a281f6a721 | ||
|
|
d97dcffaa7 | ||
|
|
e9125d4024 | ||
|
|
a79c8f4934 | ||
|
|
17f25089c6 | ||
|
|
5c29e2cd4f | ||
|
|
e958b3d3d6 | ||
|
|
dcfe7774f3 | ||
|
|
b5a5afbd16 | ||
|
|
87f00ce181 | ||
|
|
c210a778e5 | ||
|
|
0677a390d2 | ||
|
|
94116e2a17 | ||
|
|
d2f67016ab | ||
|
|
b85b344e23 | ||
|
|
def7cea522 | ||
|
|
f365fa8451 | ||
|
|
0fee9238dc | ||
|
|
77c02c8f9d | ||
|
|
0dfff22efb | ||
|
|
4f79f83c11 | ||
|
|
bf3faab660 | ||
|
|
c33212c21b | ||
|
|
483f52f296 | ||
|
|
8ef1d4ec73 | ||
|
|
0943471b33 | ||
|
|
2d6bdcf967 | ||
|
|
83c12d9b3d | ||
|
|
feaa82957a | ||
|
|
0fbff6dc6e | ||
|
|
61219acca6 | ||
|
|
10d8c1cf5a | ||
|
|
d4c56bdfce | ||
|
|
2fb0e640e0 | ||
|
|
47c5360ac2 | ||
|
|
65ee61d540 | ||
|
|
676d43d40a | ||
|
|
8a4e7a3c54 | ||
|
|
243ea03a45 | ||
|
|
4b94ce5c15 | ||
|
|
5284ce2b57 | ||
|
|
cf38622995 | ||
|
|
edf6f35cdf | ||
|
|
abbee308ba | ||
|
|
da0393bd93 | ||
|
|
5bd60cfefd | ||
|
|
0bc8427cd7 | ||
|
|
a309ca3e31 | ||
|
|
4b56e4f384 | ||
|
|
3062a02389 | ||
|
|
a3d108f4d5 | ||
|
|
5f822ebae1 | ||
|
|
31cc5540e1 | ||
|
|
fc224b00a3 | ||
|
|
b00a8a667e | ||
|
|
fe01ef5bac | ||
|
|
508b24125f | ||
|
|
3a611cff35 | ||
|
|
65fb983d57 | ||
|
|
1605e0ba29 | ||
|
|
6dc2967e4a | ||
|
|
cc8ba34577 | ||
|
|
6629e8bbf2 | ||
|
|
475b1958d5 | ||
|
|
a1632a9fce | ||
|
|
0e4d3177fe | ||
|
|
2c99a4fc96 | ||
|
|
03777fdaee | ||
|
|
135f0e9f21 | ||
|
|
77e294d445 | ||
|
|
a9f1bd365b | ||
|
|
f483fe398d | ||
|
|
8acbf6612e | ||
|
|
56edd3c0f4 | ||
|
|
baafbb6dc6 | ||
|
|
9e85b730b2 | ||
|
|
25b736b2bb | ||
|
|
05caf1eb44 | ||
|
|
c3656975dd | ||
|
|
70cafc1700 | ||
|
|
7902acfbb8 | ||
|
|
3a0a38467b | ||
|
|
0a45661a25 | ||
|
|
b8d5f83fc5 | ||
|
|
07cd4b7dc0 | ||
|
|
738ffccad4 | ||
|
|
91101b2135 | ||
|
|
64beaa7131 | ||
|
|
13c2d028bf | ||
|
|
34156315e6 | ||
|
|
79c11dc220 | ||
|
|
376bd955c9 | ||
|
|
3857205a6b | ||
|
|
3b9158e63e | ||
|
|
d160acaa27 | ||
|
|
0aeedde019 | ||
|
|
d4e8d055c6 | ||
|
|
0861a64387 | ||
|
|
709d8ce227 | ||
|
|
98a35e8648 | ||
|
|
355ce828f4 | ||
|
|
dee3864c3c | ||
|
|
bf8c12603c | ||
|
|
d43bbfe66b | ||
|
|
94383b15d3 | ||
|
|
ef7d3f49c7 | ||
|
|
41b0d3c250 | ||
|
|
7febe744e9 | ||
|
|
3970c1e309 | ||
|
|
9c14a74318 | ||
|
|
f5ef81667c | ||
|
|
7fac8b2a4f | ||
|
|
c222e054ca | ||
|
|
71644ff3e6 | ||
|
|
3e5085e06d | ||
|
|
702b74e297 | ||
|
|
b2cb9235be | ||
|
|
a9d5581ad8 | ||
|
|
1a616e1b7b | ||
|
|
9ffe60e66e | ||
|
|
7a108c529a | ||
|
|
535b150f75 | ||
|
|
9b7e9d3099 | ||
|
|
6924e539e0 | ||
|
|
7659eb0362 | ||
|
|
7bf5a4a80c | ||
|
|
fa71240d92 | ||
|
|
f17ee78061 | ||
|
|
e990c21e94 | ||
|
|
b333f6828f | ||
|
|
8e4e40b25a | ||
|
|
e5e9700333 | ||
|
|
12094f8119 | ||
|
|
16853d7e0b | ||
|
|
2d69b85aa3 | ||
|
|
d802ee7aed | ||
|
|
4e9c1b1ed7 | ||
|
|
fa1ef205df | ||
|
|
1cfe013939 | ||
|
|
cea562b511 | ||
|
|
4014133d57 | ||
|
|
067d483f15 | ||
|
|
cc52461903 | ||
|
|
9a26532c60 | ||
|
|
94a6749c9a | ||
|
|
da63adc82c | ||
|
|
f8ecf6a1af | ||
|
|
8f64539328 | ||
|
|
ddf2ac2050 | ||
|
|
f1f06765f7 | ||
|
|
bdf9f21a60 | ||
|
|
77b639ee82 | ||
|
|
2e0b107b4c | ||
|
|
87dbf88e6d | ||
|
|
0d262461ea | ||
|
|
d4a0a68584 | ||
|
|
f23bbfa1f6 | ||
|
|
fc48a9fee4 |
+31
-6
@@ -1,4 +1,8 @@
|
|||||||
# venv и тяжёлые/бинарные артефакты — в репо НЕ пушим
|
# venv и тяжёлые/бинарные артефакты — в репо НЕ пушим
|
||||||
|
# Подход: `*` игнорирует ВСЁ; правила !... возвращают нужные файлы.
|
||||||
|
# ВАЖНО для git: шаблон `*` игнорирует и файлы, и директории. Чтобы git "зашёл"
|
||||||
|
# в директорию, каждую директорию на пути нужно разыгнорировать (для nls_dasm —
|
||||||
|
# handoff/ и handoff/nls_dasm/). Иначе `git add -n` откажет с "dir is ignored".
|
||||||
*
|
*
|
||||||
!**/*.py
|
!**/*.py
|
||||||
!**/*.txt
|
!**/*.txt
|
||||||
@@ -7,23 +11,44 @@
|
|||||||
!**/*.npy
|
!**/*.npy
|
||||||
!**/*.npz
|
!**/*.npz
|
||||||
!**/*.java
|
!**/*.java
|
||||||
!handoff/
|
|
||||||
!dsp/
|
|
||||||
!**/*.cpp
|
!**/*.cpp
|
||||||
!**/*.hpp
|
!**/*.hpp
|
||||||
!**/*.c
|
!**/*.c
|
||||||
!**/*.h
|
!**/*.h
|
||||||
!**/*.lua
|
!**/*.lua
|
||||||
!**/roadmap.md
|
!**/roadmap.md
|
||||||
|
!**/AGENTS.md
|
||||||
!.gitignore
|
!.gitignore
|
||||||
|
!dsp/
|
||||||
|
|
||||||
# тяжеловесы / чувствительные (исключены даже с include выше)
|
# --- расшифрованные дизассемблы декомпа: НУЖНО трекать (ценные артефакты) ---
|
||||||
*.bin
|
!handoff/
|
||||||
|
!handoff/nls_dasm/
|
||||||
|
!handoff/nls_dasm/*.dis
|
||||||
|
!handoff/nls_dasm/*.bin
|
||||||
|
!handoff/*.md
|
||||||
|
!handoff/*.py
|
||||||
|
!handoff/*.json
|
||||||
|
!handoff/*.npy
|
||||||
|
|
||||||
|
# --- защитный харнесс валидации ---
|
||||||
|
!scripts/
|
||||||
|
|
||||||
|
# --- тяжёлые / бинарные / временные / инструменты: НЕ в git ---
|
||||||
|
*.log
|
||||||
|
*.wav
|
||||||
|
*.rpp
|
||||||
|
__pycache__/
|
||||||
|
dsp/build/
|
||||||
|
ghidra-proj/
|
||||||
regions/
|
regions/
|
||||||
regions_dep/
|
regions_dep/
|
||||||
regions_render/
|
regions_render/
|
||||||
regions_rt/
|
regions_rt/
|
||||||
regions_rt2/
|
regions_rt2/
|
||||||
soothe_rt.bin.regions/
|
soothe_rt.bin.regions/
|
||||||
*.wav
|
dl/
|
||||||
*.rpp
|
lib/
|
||||||
|
bin/
|
||||||
|
include/
|
||||||
|
**/*.regions/
|
||||||
|
|||||||
@@ -0,0 +1,185 @@
|
|||||||
|
# AGENTS.md — guide for AI agents working in this repo
|
||||||
|
|
||||||
|
Bit-exact реверс DSP-ядра oeksound soothe2 (VST3) → транскрипция на C++18 в `dsp/`.
|
||||||
|
Полное журналирование — в `handoff/NOTES_LEVEL.md`, `handoff/NOTES_TWIN.md`,
|
||||||
|
`handoff/NOTES_CAPTURE.md`, `roadmap.md`.
|
||||||
|
|
||||||
|
> **Текущая фаза (2026-08-25, после 24kk2):** ПРИМЕНЕНИЕ ДЕКОДИРОВАНО ФОРМУЛАМИ:
|
||||||
|
> аудио = побиновное умножение кадра на вещественную маску `10^(−cut_D/20)`,
|
||||||
|
> `cut_D = α·ln1p(lvl_raw/β)+c` (+Δ у вторых пиков). Калибровки (rms ≤0.016 дБ):
|
||||||
|
> dual(q0.5,s12,2 тона)=3.2193/0.4927/+0.54; fc1000(1 тон,q0.5)=1.6151/0.3645/+0.48;
|
||||||
|
> fc500(1 тон)=1.1530/0.4038/+0.33. lvl_raw — НАШ фронтенд (float-parity ✓).
|
||||||
|
> Слой STFT = БЕЗ синтез-окна (`RT_SYN=1`). **dual-корпус 0.193 max 0.438**
|
||||||
|
> (канон 3.264); канон TOTAL 2.286 нетронут. ГЕЙТ СМЕНЫ КАНОНА = BIT EXACT
|
||||||
|
> (решение пользователя: все параметры прослежены до декомпа + шумовой пол корпуса).
|
||||||
|
>
|
||||||
|
> Ключевые факты: q НЕ влияет на закон (доказано 24kk); sens линейно через
|
||||||
|
> lvl_raw; далёкий контент не влияет — смешение шаблонно-локальное (24ll);
|
||||||
|
> аудио = exp(deepest-scratch)+const; буфер FIR@540668 = мин.-фазовое
|
||||||
|
> представление (exp(s−iH(s))) — не для транскрипции. Тела bigkernel'ов:
|
||||||
|
> 1803a06a0/180296c80/180323f20/1802dc0e0 (x87 exp-семейство, 24jj).
|
||||||
|
>
|
||||||
|
> ОСТАТОК: каскадный симулятор шагов 9–19 по dataflow (24hh/24ii) →
|
||||||
|
> параметризация α(контент)/fc через campaign.py (датасеты готовы) →
|
||||||
|
> Δ-правило из pre-combine → полный корпус. Журнал: NOTES_LEVEL 24j–24kk2;
|
||||||
|
> карта метода: handoff/BLOCKMAP_529fe0.md. ЭТОТ ФАЙЛ ЧИТАЙ ПЕРВЫМ.
|
||||||
|
|
||||||
|
## Золотое правило (обязательно)
|
||||||
|
1. **Цель — bit-exact реверс кода**, НЕ эмпирическая подгонка кривых. Каждый параметр
|
||||||
|
должен иметь источник (decomp адрес / live-таблица), а не быть подогнанным числом.
|
||||||
|
Если берёшь эмпирику — явно пометь и занеси в «осталось».
|
||||||
|
2. Источник истины — **декомпиляция** (`decomp_funs.txt`, `decomp_funs2.txt`,
|
||||||
|
`handoff/nls_dasm/*.dis`) и **live-снимки** (`/tmp/snap_rt.bin`). Обновлять заметки
|
||||||
|
при любом новом декоде.
|
||||||
|
3. Команды через `rtk` (токен-фильтр), включая цепочки `&&`.
|
||||||
|
|
||||||
|
## Сборка и тесты (канон)
|
||||||
|
```bash
|
||||||
|
# собрать библиотеку + framed_test (bridge, 44.1k) + render48k (структурная цепь, 48k/4096)
|
||||||
|
cmake -S dsp -B dsp/build
|
||||||
|
cmake --build dsp/build --target framed_test render48k
|
||||||
|
|
||||||
|
# bridge-рендер (N=2048, hop=512, SR 44100, sqrt-Hann OLA)
|
||||||
|
# формат полосы: fc,q,sens,level_scale (одна полоса в comma-форме)
|
||||||
|
./dsp/build/framed_test /home/m/soothe-bt/tone1kq.wav /tmp/o.wav 678.7611083984375,0.99999785,12,600
|
||||||
|
# многополосный: через отдельные аргументы fc q sens scale (см. framed_test.cpp)
|
||||||
|
|
||||||
|
# структурный рендер (внутренняя сетка 48000/4096: resample -> FUN_180529fe0 chain -> resample)
|
||||||
|
./dsp/build/render48k /home/m/soothe-bt/tone1kq.wav /tmp/o48.wav 1000,0.99999785,12
|
||||||
|
|
||||||
|
# корпусные прогонки (62 случая, честная 24-bit метрика)
|
||||||
|
python3 scripts/corpus.py # bridge + guard --compare
|
||||||
|
python3 scripts/corpus_structural.py # структурная цепь
|
||||||
|
python3 scripts/corpus_structural.py --vs-bridge scripts/baseline_bridge.json
|
||||||
|
|
||||||
|
# отдельные модули (bit-exact черные проверки)
|
||||||
|
cmake --build dsp/build --target twin_check tables_check fftconv_check vlog_check leveltrack_check levelpath_check fn529fe0_check exp2_check
|
||||||
|
./dsp/build/twin_check # float-parity twin-резонатора
|
||||||
|
```
|
||||||
|
|
||||||
|
> **TOOLING HAZARD**: cmake пропускает пересборку при изменении исходника в ту же секунду —
|
||||||
|
> параметрические свипы молча гоняют STALE бинарь. Протокол: `touch` исходника перед сборкой +
|
||||||
|
> проверять свежесть mtime бинаря (пример: /tmp/sweep_fresh.py паттерн в NOTES_LEVEL:21a).
|
||||||
|
|
||||||
|
### Метрика (tone-cmp, Goertzel stead-state)
|
||||||
|
Сравнивать **тримкнутый** выход (длина = длина входа) с референсом `*_ref.wav` / `t1kq_b1f_*`:
|
||||||
|
```python
|
||||||
|
# ref: t1kq_b1f_678.7611083984375.wav (или t1kq_b1f_1000.wav и т.д. по fc полосы)
|
||||||
|
# вход: tone1kq.wav (тон 1000 Гц)
|
||||||
|
import wave, numpy as np
|
||||||
|
def load(p):
|
||||||
|
w=wave.open(p,'rb'); n=w.getnframes(); d=w.readframes(n)
|
||||||
|
return np.frombuffer(d,dtype=np.int16).astype(np.float64).reshape(-1,w.getnchannels()).mean(1)/32768
|
||||||
|
def ta(x,f,sr=44100):
|
||||||
|
x=x[-int(0.75*sr):]; t=np.arange(len(x))/sr; w=2*np.pi*f
|
||||||
|
return np.hypot(2*np.sum(x*np.cos(w*t))/len(x), 2*np.sum(x*np.sin(w*t))/len(x))
|
||||||
|
def db(a): return 20*np.log10(max(a,1e-9))
|
||||||
|
inp=load('/home/m/soothe-bt/tone1kq.wav')
|
||||||
|
out=load('/tmp/o.wav')
|
||||||
|
ref=load('/home/m/soothe-bt/t1kq_b1f_678.7611083984375.wav') # fc полосы = 678.76
|
||||||
|
err = db(ta(out,1000)/ta(ref,1000)) # err в dB, цель <0.1
|
||||||
|
```
|
||||||
|
Тестовый корпус (`/home/m/soothe-bt/`, вне git): `tone1kq.wav`(вход),
|
||||||
|
`t1kq_b1f_<fc>.wav` (рефы), `comb.wav`/`comb_ref.wav` (мультиполосный).
|
||||||
|
|
||||||
|
## Текущее состояние (2026-08-21, P4)
|
||||||
|
|
||||||
|
**ДВА канона в `dsp/framed_model.cpp`:**
|
||||||
|
|
||||||
|
1. **BRIDGE** (эмпирическая погона, путь framed_test 44.1k, NOTES:147):
|
||||||
|
```
|
||||||
|
am_k: smoothed amp (2|X|/wsum, att~11ms/trel~80ms)
|
||||||
|
xv = log10(am_k / res_k) res_k = |2B/A| twin (min@band centre)
|
||||||
|
C = G·LUT(xv) + W·warp(f_k)^A G/W/A = 0.9963/0.3335/0.9807 (fit)
|
||||||
|
gain_k = (1−C) · res_k^rp(Q) rp(Q) = 0.0275·Q^0.2159
|
||||||
|
LUT = monotone cubic (Fritsch–Carlson) через joint-fit узлы (al_* + B.11 anchors)
|
||||||
|
```
|
||||||
|
2. **СТРУКТУРНАЯ цепь FUN_180529fe0** (`process_band_structural`, внутренняя сетка
|
||||||
|
48000/4096 через `dsp/build/render48k`, NOTES_LEVEL:820-840 + апдейты 20j–21c):
|
||||||
|
```
|
||||||
|
scale → LUT level-domain (t^γ·MULT, γ=0.344 decomp / MULT=4.2 placeholder)
|
||||||
|
→ IIR1 → IIR2 → mirror → blend(0.8)/exp2(−lvl) → combine(acc-update, без консюмера)
|
||||||
|
→ dual-warp(kBand768·kWarp·res^rp) → IIR3 bidirectional ×2 → dry/wet(identity)
|
||||||
|
```
|
||||||
|
- **METRIC CRITICAL**: рефы 24-bit НЕЛЬЗЯ читать 16-bit кодеком (даёт phantom −53 dB);
|
||||||
|
`render_parity.load` (sw handling) + окно 3.5s — канон. dual honest ref = −10.2 dB FLAT.
|
||||||
|
- **Broadband-hypothesis ОПРОВЕРГНУТА** (NOTES:2026-08-20s): редукция per-bin.
|
||||||
|
- **Честные результаты**: bridge корпус mean 1.594 (comb 10.15 сломан); структурная цепь:
|
||||||
|
comb **6.12** и res **0.44** — лучше bridge; t1kq 0.77 / t1k 2.11 / al 0.99 / dual 3.26 — хуже.
|
||||||
|
Полная таблица: BITEXACT_PLAN §0 / NOTES_LEVEL:21c.
|
||||||
|
- **ГЛАВНЫЙ ОТКРЫТЫЙ РАЗРЫВ**: насыщение кривой редукции — реальная упирается в C_max≈0.70,
|
||||||
|
exp2(−lvl) не ограничен (dual@500: константный −6.7 dB при всех q). Лечится Шагом 7
|
||||||
|
(live-захват A/B/γ) или статическим hunt'ом clamp'а в level-пути. Слепая подкрутка
|
||||||
|
γ/MULT исчерпана (свип 21c).
|
||||||
|
- **21d — закон редукции найден, канон НЕ сменён**: эффективное ослабление аффинно
|
||||||
|
в dB(lvl) (маска ≈ 0.8·lvl^−0.354; al-свееп ±0.13 dB). Scalar-семейство (X0,S,floor,
|
||||||
|
CMAX) не закрывает тон+шум одновременно → res/dual регресс у любой точки; ищем
|
||||||
|
контент-зависимый механизм. Инструментарий RT_DUMP_BIN / RT_DUMP_ALL в коде (opt-in).
|
||||||
|
|
||||||
|
### Открытые пробелы (после 22z; детали — NOTES_LEVEL 22s–22z)
|
||||||
|
1. **Семантика входов `bands[]` в FUN_180529fe0** — главный вопрос. Отвергнуто:
|
||||||
|
lvl=f(am,res^α) с единым законом [22x, теорема], форма-постобработка маски [22w],
|
||||||
|
спрединг IDFT→окно→DFT [22z]. Живой захват: кривая редукции R=1/mask @слот
|
||||||
|
0x5407f8 (пик следует за fc полосы), acc/f6f8 нули в стационаре.
|
||||||
|
Пути: (а) декод тел conv 0x1802a24c0 + complex-op шагов с буферами
|
||||||
|
0x540548/550/598; (б) синхронная трасса буферов в аудио-колбеке.
|
||||||
|
2. dual-таблица по q (22x): cut@центра константен при любом q, Δcut скайрта ≈
|
||||||
|
линейно по −ln res с b≈2.25 — геометрия twin-шаблона на сетке 0.25 Гц.
|
||||||
|
3. FFT-conv: последовательность вызовов декодирована (BLOCKMAP/22z), тело
|
||||||
|
0x1802a24c0 (AVX2) и complex-op шаги — не расшифрованы.
|
||||||
|
4. Бит-экзактный exp2 (0x26b820); бит-точная DSP-FFT (P3); стерео M8 (P5) — отложены.
|
||||||
|
5. Источник констант RT_LAWAFFINE A/S в декомпе не найден (помечено EMPIRICAL).
|
||||||
|
|
||||||
|
## Структура ключевых файлов
|
||||||
|
- `dsp/framed_model.{cpp,hpp}` — C++ порт mask-apply цепи: bridge-канон + структурная
|
||||||
|
`process_band_structural` (ГЛАВНЫЙ активный файл).
|
||||||
|
- `dsp/render48k.cpp` — пайплайн внутренней сетки 48000/4096 (resample → структурная цепь → resample).
|
||||||
|
- `dsp/framed_test.cpp` — CLI bridge-рендер входа (метрика см. выше).
|
||||||
|
- `scripts/corpus.py` — корпусный харнесс bridge + guard `--compare baseline_bridge.json`.
|
||||||
|
- `scripts/corpus_structural.py` — тот же корпус через render48k + режим `--vs-bridge`.
|
||||||
|
- `dsp/{twin,levelpath,freqpath,fftconv,vlog,leveltrack,fn529fe0}.cpp` — расшифрованные модули.
|
||||||
|
- `dsp/rt_mask_tables.{hpp,cpp}`, `rt_weights.{hpp,cpp}` — live-таблицы.
|
||||||
|
- `handoff/NOTES_LEVEL.md` — полный журнал уровня/маски (самый актуальный).
|
||||||
|
- `handoff/nls_dasm/` — 134 дизассембла декомпа.
|
||||||
|
- `/tmp/consumers_out.txt` — полный decomp `FUN_180529fe0` (уникален, вне git).
|
||||||
|
- `/tmp/snap_rt.bin` — live-снимок (ctx 0x2370040, SR 48000).
|
||||||
|
- `handoff/BLOCKMAP_529fe0.md` — полная блок-карта FUN_180529fe0 по raw asm (22v).
|
||||||
|
- `scripts/lawfit22r.py` — офлайн реплей-сим пайплайна (~2 c корпус), фиты законов.
|
||||||
|
- `scripts/resalpha.py` — сбор трактов + теорема об отсутствии α (22x).
|
||||||
|
- `scripts/dualtrace.py` + `play_loop.lua` — живой захват ctx при realtime-playback (22y).
|
||||||
|
|
||||||
|
## Env-флаги экспериментов (24j–24kk2)
|
||||||
|
|
||||||
|
| флаг | действие |
|
||||||
|
|------|----------|
|
||||||
|
| `RT_VLAW=1` | закон применённой стадии: mask=10^(−(α·ln1p(lvl/β)+c)/20) |
|
||||||
|
| `RT_SYN=1` | STFT БЕЗ синтез-окна (найденный слой плагина) |
|
||||||
|
| `RT_WIN=0/1/2` | окно анализа: sym-hann / periodic / rect |
|
||||||
|
| `RT_NOWARP=1` | отключить warp-модуляцию маски |
|
||||||
|
| `RT_NOIIR3=1` | отключить IIR3 ×2 |
|
||||||
|
| `RT_IIR12=0` | отключить частотные IIR1/2 (КРИТИЧНО с RT_VLAW — иначе размывают дипы) |
|
||||||
|
| `RT_DUMP_BIN=<f>` (+`RT_DUMP_FRAME=N`) | дамп тракта бина N: am/res/lvl_raw/band_level/prewarp/w |
|
||||||
|
| `RT_VDBG=1` | stderr-печать vlaw-вычислений |
|
||||||
|
|
||||||
|
Полный набор dual-решения: `RT_VLAW=1 RT_SYN=1 RT_NOWARP=1 RT_NOIIR3=1 RT_IIR12=0`.
|
||||||
|
|
||||||
|
## Инструменты сессии 24j–24kk2
|
||||||
|
|
||||||
|
| скрипт | назначение |
|
||||||
|
|--------|-----------|
|
||||||
|
| `scripts/rendersnap2.py <rpp> [cap] [outdir]` | мягкий STOP-снаппер: слоты FIR/scratch/bands/R + скалярный банк + t_snap; НЕ убивает reaper; RENDER_FILE из rpp (не удалять чужие рефы!) |
|
||||||
|
| `scripts/campaign.py <base> <fc> <q> <sens> <in_prefix> <drives> <out>` | ячейка параметризации: клоны rpp+рефы (~8 мин) |
|
||||||
|
| `scripts/disasm_func.py <VA> [len]` | capstone-дизасм с инлайн-резолвом RIP-констант |
|
||||||
|
| `scripts/iat_name.py` | рантайм-резолв импортов bigkernel'ов через PE-экспорты (SIGSTOP!) |
|
||||||
|
| `scripts/probe_states.py` / `probe_mem.py` / `dump_dispatch.py` | живые state-заголовки / память / таблицы диспатча |
|
||||||
|
| `scripts/hunt2.py` | перебор всех ctx-инстансов |
|
||||||
|
| `scripts/scan_pairs.py`, `scan_lutsub.py` | диагностика памяти по сигнатурам float-пар |
|
||||||
|
|
||||||
|
Датасеты кампании: `/tmp/opencode/sc_{q,sens,qmap,k,f,d}*` + `tract_*` +
|
||||||
|
`{level_pairs,f_series,q_series,k_series}.pkl/.npz` (см. NOTES 24bb–24kk2).
|
||||||
|
|
||||||
|
## Чистая работа
|
||||||
|
- Не коммитить: `*.bin`(дампы 112М), `*.wav/rpp`, `*.log`, `dsp/build/`, `ghidra-proj/`,
|
||||||
|
`dl/lib/bin/include/`, `regions*/`. См. `.gitignore`.
|
||||||
|
- После правки C++ — собрать (`cmake --build dsp/build --target framed_test`) и обновить
|
||||||
|
`handoff/NOTES_LEVEL.md`. Fasta метрику держать честной (тримнутая длина).
|
||||||
@@ -0,0 +1,270 @@
|
|||||||
|
# BIT-EXACT PLAN — путь от dB-приближения к побайтовой парности
|
||||||
|
|
||||||
|
Статус: **НЕ bit-exact**. Мы на уровне честной dB-параллели (полный корпус mean 1.594 dB,
|
||||||
|
comb 10 dB). Bit-exact ДОСТИЖИМ (F0 gate: плагин байт-детерминирован), но модель ещё не
|
||||||
|
воспроизводит реальный DSP-путь. Этот документ — план, как туда дойти, и точка отсчёта
|
||||||
|
для любой будущей сессии. **Читать вместе с `AGENTS.md` и `handoff/NOTES_LEVEL.md`.**
|
||||||
|
|
||||||
|
> **ОБНОВЛЕНИЕ 2026-08-22 (сессии 22a–22e):**
|
||||||
|
> 1. Phase-B оффлайн-гипотезы (pooling/temporal/scalar-ρ) — все ОПРОВЕРГНУТЫ (22a).
|
||||||
|
> 2. Шаг 7 выполнен → премиса опровергнута: BandConfig A/B/γ = −24/28/1 у ВСЕХ конфигов,
|
||||||
|
> но это GUI-timer кривые; аудио их не читает (22b). LUT-константы структурной цепи
|
||||||
|
> помечены EMPIRICAL.
|
||||||
|
> 3. Насыщение редукции НАЙДЕНО ЖИВЬЁМ и РЕШЕНО АЛГЕБРАИЧЕСКИ (22d/e):
|
||||||
|
> hot-тон упирается в ЖЁСТКИЙ пол gain=**−20.72 dB**, pin ≥24 dB драйва;
|
||||||
|
> `gain_floor = 20·log10(blend·ln10/20)` — совпадение 0.0055 dB!
|
||||||
|
> Константа ln10/20=0.11513 @0x1824c3cd4, аудио-юзеры FUN_180529c60/52baa0/bad0/bba0.
|
||||||
|
> 4. Инфраструктура: официальный параметр-мост (`setparam.lua`), XML `<PARAM>` в RPP =
|
||||||
|
> декоративная копия (не источник стейта); depth=±18dB/trim=±24dB; WAV bext/junk
|
||||||
|
> грабли подтверждены живьём.
|
||||||
|
> Новый приоритет №1 — Шаг 9 (ниже).
|
||||||
|
>
|
||||||
|
> **ОБНОВЛЕНИЕ 2026-08-23 (сессии 22s–22z):** Шаг 9 закрыт иначе — пол решён
|
||||||
|
> алгебраически ещё в 22e; фронт сместился. Отвергнуты: скалярные законы A/S
|
||||||
|
> (насыщение ~1.87–1.93, 22s/t), двухфакторные quad/resrp (22t), точечные
|
||||||
|
> lvl=f(am,res^α) — «теорема об отсутствии α» (22x), спрединг IDFT→окно→DFT (22z).
|
||||||
|
> Новый приоритет №1 — семантика входов `bands[]` (см. AGENTS.md и NOTES_LEVEL
|
||||||
|
> 22s–22z); карта метода — handoff/BLOCKMAP_529fe0.md.
|
||||||
|
|
||||||
|
> **ОБНОВЛЕНИЕ 2026-08-25 (сессии 24j–24kk2):** ПРИМЕНЕНИЕ ДЕКОДИРОВАНО ДО ФОРМУЛ.
|
||||||
|
> Применённый фильтр = побиновное умножение кадра на вещественную маску
|
||||||
|
> `10^(−(α·ln1p(lvl/β)+c)/20)`; α/β/c — константы контент-семейства (таблица
|
||||||
|
> калибровок в NOTES 24ee); слой STFT без синтез-окна. dual-корпус 0.193
|
||||||
|
> (флаги RT_VLAW/SYN/NOWARP/NOIIR3/IIR12). Гейт смены канона = BIT EXACT
|
||||||
|
> (решение пользователя 24hh2). Остаток до полного покрытия: (1) каскадный
|
||||||
|
> симулятор шагов 9–19 по dataflow BLOCKMAP 24hh/24ii + тела bigkernel
|
||||||
|
> 1803a06a0 и со. (24jj); (2) k-маппинг фронтенда (twin/am формулы);
|
||||||
|
> (3) Δ-правило вторых пиков. Отвергнуто: ×1.805-свёртка, клампы параметров,
|
||||||
|
> GUI-LUT в аудио-пути, B∝am, скалярные комбинации lvl/res.
|
||||||
|
|
||||||
|
Цель фазы C (bit-exact): воспроизвести `FramedDetector` (= fn `FUN_180529fe0` mono-path)
|
||||||
|
настолько точно, что `verify_bit_exact.py` даёт побайтовое совпадение на рендерах
|
||||||
|
(`t1kq_*`, `dual_*`, `comb_*`). Ниже — конкретный порядок, что и зачем.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 0. Текущее состояние (честная метрика, 24-bit, trimmed, 62 случая)
|
||||||
|
|
||||||
|
| Группа | bridge mean|err| | bridge max | struct 48k mean|err| | struct max |
|
||||||
|
|--------|----------|-----|----------|---------|
|
||||||
|
| t1kq (fc-scan) | 0.226 | 0.500 | 0.768 | 1.013 |
|
||||||
|
| t1k (loud 0 dBFS) | 1.801 | 2.227 | 2.114 | 2.753 |
|
||||||
|
| al (level sweep) | 0.638 | 1.596 | 0.986 | 1.822 |
|
||||||
|
| res | 0.628 | 1.535 | **0.437** ✓ | 1.252 |
|
||||||
|
| dual (q-sweep) | 0.726 | 2.252 | 3.264 ✗ | 6.455 |
|
||||||
|
| comb (4-band) | **10.149** ✗ | 14.752 | **6.116** ✓ | 9.148 |
|
||||||
|
| **TOTAL** | **1.594** | 14.752 | 2.286 | 9.148 |
|
||||||
|
|
||||||
|
(struct = структурная цепь на внутренней сетке 48000/4096 через `dsp/build/render48k`,
|
||||||
|
прогон `scripts/corpus_structural.py`, NOTES_LEVEL:21c. Bridge = `framed_test` 44.1k.)
|
||||||
|
|
||||||
|
> **21d**: найден закон редукции — эффективное ослабление АФФИННО в dB(lvl):
|
||||||
|
> `x_exp2 = −0.6646 − 0.05877·dB` (маска ≈ 0.8·lvl^−0.354, γ≈decomp 0.344).
|
||||||
|
> На тонах al-свеепа линейность ±0.13 dB (42 dB диапазона!). Прекалибровка
|
||||||
|
> pre-IIR (X0=1.8/S=0.11) даёт TOTAL 2.633: t1kq/t1k/al/comb лучше, res/dual
|
||||||
|
> хуже. Grid-search семейства (X0,S,floor,CMAX) на валидированной траекторной
|
||||||
|
> модели: оптимум rms 0.75 dB, но НИ ОДНА точка семейства не закрывает тон+шум
|
||||||
|
> одновременно → канон не меняем (gate «без регресса групп»), ищем
|
||||||
|
> контент-зависимый механизм (детектор att/rel на флюктуациях / combine-
|
||||||
|
> консюмер). Инструментарий RT_DUMP_BIN/RT_DUMP_ALL оставлен opt-in.
|
||||||
|
|
||||||
|
**Корень проблемы**: активный канон — ЭМПИРИЧЕСКАЯ bridge-модель
|
||||||
|
`C = G·LUT(xv) + W·warp(f)^A; gain = (1−C)·res^rp` (xv=log10(am/res)). Это ПОГОНА, не
|
||||||
|
транскрипция. Структурная цепочка FUN_180529fe0 перенесена в C++ на внутренней сетке
|
||||||
|
(коммиты 7bf5a4a..b2cb923): уже ОБГОНЯЕТ bridge на comb (−4 dB) и res, но регрессирует
|
||||||
|
на однополосных t1kq/t1k/al и проваливает dual@500 (константный −6.7 dB при всех q —
|
||||||
|
отсутствие НАСЫЩЕНИЯ редукции: реальная кривая упирается в C_max≈0.70, exp2(−lvl) не
|
||||||
|
ограничен). Свип γ×MULT подтвердил: текущий оптимум (0.344/4.2) лучший, слепая
|
||||||
|
подкрутка исчерпана — проблема в ФОРМЕ кривой.
|
||||||
|
|
||||||
|
> **КОРРЕКЦИЯ 22d/e**: «насыщение C_max≈0.70» старой модели = артефакт placeholder
|
||||||
|
> MULT=4.2 / Pchip cap 0.667, НЕ свойство плагина: живой плагин на ±24 dB trim
|
||||||
|
> редуцирует БЕЗ потолка (R 1.4→15.7 dB), а на горячем тоне (+6 dBFS) упирается в
|
||||||
|
> ЖЁСТКИЙ пол gain=−20.72 dB = **blend·ln10/20 точно** (Δ0.0055 dB). Механизм пола —
|
||||||
|
> в нетранскрибированном куске аудио-пути (след: FUN_180529c60, ln10/20-фактор),
|
||||||
|
> см. Шаг 9.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Порядок работ (обязательный порядок; каждый шаг валидируется отдельно)
|
||||||
|
|
||||||
|
> **ВАЛИДАЦИЯ (обязательно, НЕ пропускать).** Чтобы не повторить регресс Phase B,
|
||||||
|
> есть защитный харнесс `scripts/corpus.py` + зафиксированный bridge-базлайн
|
||||||
|
> `scripts/baseline_bridge.json` (62 случая, правильная 24-bit метрика):
|
||||||
|
> ```bash
|
||||||
|
> cmake --build dsp/build --target framed_test
|
||||||
|
> python3 scripts/corpus.py # полный корпус, текущая сборка
|
||||||
|
> python3 scripts/corpus.py --compare scripts/baseline_bridge.json --tol 0.25
|
||||||
|
> ```
|
||||||
|
> `--compare` фейлит (exit≠0), если любая группа регрессирует по mean|err| больше tol.
|
||||||
|
> Правило: структурная цепь (Шаг 1-2) должна НЕ регрессировать ниже bridge на
|
||||||
|
> однополосных (t1kq/t1k/al/res/dual) и ЖЕЛАТЕЛЬНО улучшать comb. Каждый под-шаг
|
||||||
|
> (IIR1 → blend → combine → warp → IIR3) коммитить отдельно и прогонять `--compare` —
|
||||||
|
> если конкретный под-шаг регрессирует, откатить именно его, а не всё сразу.
|
||||||
|
> Существующие `dsp/*_check.cpp` (twin/tables/leveltrack/levelpath/exp2/fftconv) —
|
||||||
|
> модульные чёрные проверки на бит-парность под-функций; тоже гонять: `cmake --build
|
||||||
|
> dsp/build` после правок.
|
||||||
|
|
||||||
|
|
||||||
|
### Шаг 1 — Реализовать полную структурную mono-цепочку FUN_180529fe0 (КОРЕНЬ)
|
||||||
|
Заменить bridge (эмпирическую погону) на точную транскрипцию. Реализовать в
|
||||||
|
`dsp/framed_model.cpp` (или отдельном `dsp/fn529fe0.cpp`) по NOTES_LEVEL:820-840:
|
||||||
|
```
|
||||||
|
1. scale: band_mask *= (fVar30/0x1a0)·0x540870·0x54088c (fVar30=1 из PRNG, locked)
|
||||||
|
2. IIR1: y[i]=A1[i]·acc+B1[i]·x[i] (kIIR_A1/B1, fast attack) -> f6f8
|
||||||
|
3. copy f6f8 <- band
|
||||||
|
4. IIR2: inline, kIIR_A2/B2 (slow release)
|
||||||
|
5. mirror upper half = reversed lower (Hermitian)
|
||||||
|
6. blend: f6f8 = 0x540698·(1−mix)+mix·0.8; mask = exp2(−level)·f6f8
|
||||||
|
7. combine: acc[band] = 0x540678 − 0x5406f8; mirror;
|
||||||
|
+= 0x5406c8·upper; += 0x5406e8·lower; += 0x540678
|
||||||
|
8. warp: mask *= kBand768[band]; mask *= kWarp (TWO warps)
|
||||||
|
9. IIR3: inline TWICE, kIIR_A3/B3
|
||||||
|
10. dry/wet: mask = mask·(fVar30·0x540888)+(1−fVar30) (=identity сейчас)
|
||||||
|
11. FFT-conv (Шаг 4)
|
||||||
|
```
|
||||||
|
Критерий: на однополосных t1kq/t1k/al/res структурная цепочка должна НЕ регрессировать
|
||||||
|
ниже bridge (т.е. mean ≤ 0.6-0.8). ВАЖНО: прошлый регресс (F2) был из-за неверного
|
||||||
|
домена (пробовали combine в bridge-финале). Здесь combine/exp2 — в ЕГО собственном
|
||||||
|
домене (reduction/exp2), как в декомпе.
|
||||||
|
|
||||||
|
### Шаг 2 — combine/аккумулятор 0x5407c8 (ПЕРЕ-СКОУП 2026-08-21)
|
||||||
|
Семантика декодирована на уровне thunk'ов (NOTES_LEVEL:21b, consumers_out.txt:833-885):
|
||||||
|
```
|
||||||
|
f6f8 = mask − acc (0x8d60, dst=3-й аргумент; acc НЕ перезаписывается)
|
||||||
|
mirror f6f8
|
||||||
|
f6f8_upper += kRTAtt·acc_upper ; f6f8_lower += kRTRel·acc_lower (0x3c40)
|
||||||
|
acc += mask (0x5a20, персистентный per-band аккумулятор)
|
||||||
|
```
|
||||||
|
**КРИТИЧЕСКОЕ**: в online однополосном пути обновлённые f6f8/acc НЕ имеют консюмера до
|
||||||
|
warp/IIR3/dry-wet (проверено исчерпывающим grep). Combine НЕ может влиять на single-band
|
||||||
|
вывод сам по себе. Ожидалось, что combine закроет comb — частично закрыл уже сам
|
||||||
|
структурный каркас (comb 6.1 vs bridge 10.1 без wiring). ДАЛЬНЕЙШИЙ ШАГ: найти точку
|
||||||
|
потребления acc/f6f8 (межполосный уровень или FFT-conv каскад) и только потом wire.
|
||||||
|
НЕ изобретать track→mask feedback (эмпирика, запрещено золотым правилом).
|
||||||
|
ВНИМАНИЕ: `FUN_1805316e0` — это WRITER КОЭФФИЦИЕНТОВ полос (17 case), НЕ масковый
|
||||||
|
комбинер (ошибка в старой редакции этого плана и в Шаге 8).
|
||||||
|
|
||||||
|
### Шаг 3 — Bit-exact exp2 (F5b)
|
||||||
|
Заменить `std::exp2`/`exp2d::exp2_dsp` на точную табличную реализацию `0x26b820`:
|
||||||
|
таблицы уже извлечены (`dsp/exp2_tables.{hpp,cpp}`, 8×16 irr + серия kExp2_big). Нужно
|
||||||
|
транскрибировать body 1:1 (Cody-Waite hi/lo, vfmadd213sd-полином, спец-ветви subnormal/
|
||||||
|
overflow). Пока не bit-exact — оставить `exp2d::exp2_dsp` (численно = std::exp2).
|
||||||
|
Критерий: `exp2_check` сравнивает протв захваченных пар точка-в-точку.
|
||||||
|
|
||||||
|
### Шаг 4 — FFT-conv 0x535a70 + FIR (ПРИОРИТЕТ ПОНИЖЕН 2026-08-21)
|
||||||
|
FFT-conv сглаживает маску перед FIR (0x540658 window / freqaxis). Это последний этап
|
||||||
|
mono-цепи. `dsp/fftconv.cpp` есть, но нужна точная блоковая обработка (overlap-save как
|
||||||
|
в декомпе 0x52b550-0x52b8b5), не текущий stand-in. Критерий: маска-гейн после conv
|
||||||
|
совпадает по форме с реальным ref (сглаживание нотча, двусторонний хвост).
|
||||||
|
**ПОНИЖЕНО до P3**: NOTES_LEVEL:18c — окно 0x540658 near-flat (0.8→1.0 plateau при
|
||||||
|
N/2≥2048), эффект построения FIR на форму маски минимален при N=4096. Последовательность
|
||||||
|
уже размечена (fwd → kill mirror → fill xmm13/xmm9 → inv → complex op → fwd → window
|
||||||
|
copy → inv → FIR[0]=1.0); остались неизвестные скаляры xmm13/xmm9 и complex-op шага 4.
|
||||||
|
|
||||||
|
### Шаг 5 — Bit-exact DSP-FFT 0x140a70 (multi-week, P3)
|
||||||
|
Заменить `dsp/fft.cpp` (std::cos radix-2) на точный split-radix 2/4/8 по плану из
|
||||||
|
NOTES_LEVEL:1107-1116:
|
||||||
|
- twiddle: `DAT_182616800` sin-таблица, `sin(k·2π/1024)`, loader `FUN_180039b00` (stride 2^(10-m))
|
||||||
|
- butterfly: `FUN_18000bfc0/18000c5e0` + 0x8440 elementwise mul + `FUN_1800437c0` acc
|
||||||
|
- plan-gen: `FUN_18002f980` (рекурсия + per-log2 фактор-таблицы)
|
||||||
|
Это НЕ блокирует Шаги 1-4 (bridge/структурная цепь рендерят и с численным FFT), нужен
|
||||||
|
только для побайтовой парности FFT-conv-пути.
|
||||||
|
|
||||||
|
### Шаг 6 — Внутренняя геометрия 48000/4096 vs 44100/2048 — ✅ ПАЙПЛАЙН СДЕЛАН (2026-08-21)
|
||||||
|
Внутренний DSP SR=48000/N=4096 (freqaxis spacing 11.713 Hz). Хост рендера 44100/2048.
|
||||||
|
F4-тест показал, что простая resample_poly НЕ закрывает (даже хуже). Нужно: детектор
|
||||||
|
гнать на 48000/4096 (IIR-таблицы индексированы 0..2048 = N/2+1 при N=4096), затем
|
||||||
|
свести к 44100. Ожидается закрытие хвостов t1k_b1f/al (+2.2/−1.6) — именно уровневой
|
||||||
|
зависимости. Критерий: корректное выравнивание бина и окна между двумя сетками.
|
||||||
|
**Статус**: пайплайн `dsp/render48k.cpp` (resample 44.1→48 → SpectralProcessor(4096,1024,48000)
|
||||||
|
→ resample обратно) реализован и гоняет полный корпус (`scripts/corpus_structural.py`,
|
||||||
|
коммиты 7659eb0/6924e53). Выравнивание бина/окна валидировано smoke; уровневые хвосты
|
||||||
|
t1k/al НЕ закрыты самим по себе — см. §0 и Шаг 7. Известный артефакт: zero-pad последнего
|
||||||
|
BLK-блока даёт спад am в ~последних 0.06s (косметика, на метрику почти не влияет).
|
||||||
|
|
||||||
|
### Шаг 7 — BandConfig A/B/γ (level-path ctx+0x188) live-захват под конкретные конфиги
|
||||||
|
> **СТАТУС 2026-08-22: ВЫПОЛНЕН → ПРЕМиса ОПРОВЕРГНУТА (NOTES_LEVEL 22b).** Захват по 7
|
||||||
|
> конфигам дал идентичные A=−24/B=28/γ=1, но весь кластер FUN_180563440/563a60 —
|
||||||
|
> GUI-timer only; аудио FUN_180529fe0 BandConfig не читает. Насыщение кривой редукции
|
||||||
|
> искать в теле аудио-функции (см. NOTES_LEVEL 22b, выводы).
|
||||||
|
Структурная LUT-кривая `FUN_180563a60` (A/B/γ). Снято для render_long (A=−24/B=28/γ=1)
|
||||||
|
и t1kq (то же), но для остальных тестов не захвачено. Метод автоматизирован
|
||||||
|
(NOTES_CAPTURE.md). Захватить для t1k_b1f / al / dual-конфигов → реальные A/B/γ → это
|
||||||
|
закрывает уровневую зависимость, которую bridge-LUT не может (F1 closure). Критерий:
|
||||||
|
mean кап-нагрузки al/t1k ≤ 0.3 dB.
|
||||||
|
|
||||||
|
### Шаг 8 — Стерео M8 + полный pipeline (P4/P5)
|
||||||
|
Финальный рендер stereo (link/balance/LR-vs-MS) по M8 и межполосное суммирование.
|
||||||
|
Все текущие рендеры mono. Для bit-exact графа нужны стерео-рендеры как мишени.
|
||||||
|
ВНИМАНИЕ: `FUN_1805316e0` = writer коэффициентов полос, НЕ комбинер масок — точка
|
||||||
|
межполосного суммирования масок/acc ещё не локализована (см. пере-скоуп Шага 2).
|
||||||
|
Критерий: `verify_bit_exact.py` — побайтовое совпадение данных-чанка WAV.
|
||||||
|
|
||||||
|
### Шаг 9 — Механизм пола редукции blend·ln10/20 (НОВЫЙ ПРИОРИТЕТ №1, 2026-08-22)
|
||||||
|
Живой факт (22d): hot-тон упирается в ЖЁСТКИЙ пол gain=−20.72 dB = `20·log10(0.8·ln10/20)`
|
||||||
|
с точностью 0.0055 dB; колено между L=−6..0 (trim-шкала); холодный тон на ±24 trim
|
||||||
|
пола НЕ достигает. t-clamp в транскрибированной LUT НЕ даёт pin (grid MULT≤12/B≥18 —
|
||||||
|
NOTES 22e) ⇒ пол живёт в другом куске аудио-пути.
|
||||||
|
|
||||||
|
9a. Декодировать `FUN_180529c60` полностью: фактор
|
||||||
|
`expf((p87c·30 − 90)·ln10/20)` на band-буферы 0x540678[band] через
|
||||||
|
`FUN_1804d56b0` (f_529c60.dis:94-101) — что именно считает 1804d56b0 и куда
|
||||||
|
идёт произведение (это vtbl-метод рядом с аудио-entry).
|
||||||
|
9b. Найти сайт клампа: grep ln10/20-константы (0x1824c3cd4) по остальным юзерам
|
||||||
|
(18052baa0/bad0/bba0) и по f529fe0.dis/f_52d650.dis на предмет floor/clamp маски.
|
||||||
|
9c. Проверка предсказаний модели пола: (i) floor_gain(mix) сдвигается как
|
||||||
|
20log10(blend′/0.8); (ii) пол частотно-зависит только через blend(freqaxis)
|
||||||
|
при mix<100; (iii) knee-позиция от sens/depth. Рендеры через setparam.lua.
|
||||||
|
9d. Порт клампа в `process_band_structural` → smoke → корпус с гейтом
|
||||||
|
(`corpus_structural.py --vs-bridge`; цель: dual@500 уходит с −6.7, res/dual/comb ≥ bridge).
|
||||||
|
Критерий: воспроизвести pin −20.72 dB в рендере модели + отсутствие регресса групп.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Что НЕ делать (подводные камни из дока)
|
||||||
|
|
||||||
|
- **НЕ вводить эмпирию там, где есть декомп.** Каждый параметр — из декомп-адреса или
|
||||||
|
live-таблицы, иначе пометить EMPIRICAL и в «осталось» (золотое правило AGENTS).
|
||||||
|
- **НЕ делать combine в bridge-final-gain домене** — F2 показал регресс 4.68/5.22.
|
||||||
|
Combine/exp2 живут в reduction/exp2-домене реальной цепочки.
|
||||||
|
- **НЕ менять Pchip-LUT в bridge** — регрессирует весь корпус (F1, параметрич. хуже).
|
||||||
|
Bridge — только запасной вариант, пока структурная цепочка не пройдёт Шаг 1-2.
|
||||||
|
- **НЕ использовать битые 24-bit загрузчики** — метрика `render_parity.py:43` правильная
|
||||||
|
(x>=0x800000 => x−0x1000000). В тестовых скриптах использовать тот же код.
|
||||||
|
- **НЕ редактировать XML `<PARAM>` в RPP ради изменения звука** — это декоративная
|
||||||
|
UI-копия, плагин берёт стейт из бинарной части чанка (NOTES 22c). Только мост
|
||||||
|
`setparam.lua`.
|
||||||
|
- **НЕ читать WAV наивным readframes+reshape** — REAPER пишет bext/junk-чанки; только
|
||||||
|
каноничный `render_parity.load` (иначе фантомный шум/клиппинг, NOTES 22c).
|
||||||
|
|
||||||
|
## 3. Риски и время
|
||||||
|
|
||||||
|
- **Доминирующий риск**: дорогой структурный перенос (Шаг 1-2) может снова регрессировать
|
||||||
|
ниже bridge, как Phase B. Митигация: валидировать каждый под-шаг (IIR1 отдельно, blend
|
||||||
|
отдельно) на t1kq, не коммитить пока не ≥ bridge.
|
||||||
|
- **DSP-FFT (Шаг 5)** — multi-week само по себе. Но НЕ блокирует Шаги 1-4.
|
||||||
|
- **Стерео (Шаг 8)** — новая мишень-корпус, больше рендеров.
|
||||||
|
- **Оценка**: Шаги 1-4 (монопуть) — 1-2 недели. Шаг 5 — до 3 недель. Шаги 6-8 — 1-2 недели.
|
||||||
|
До полной байтовой парности — ориентировочно 1-2 месяца с аккуратным монофокусом.
|
||||||
|
|
||||||
|
## 4. Точка входа для следующей сессии
|
||||||
|
|
||||||
|
1. Прочитать `AGENTS.md`, затем NOTES_LEVEL **UPDATE 22s–22z** (журнал актуальной
|
||||||
|
фазы) и `handoff/BLOCKMAP_529fe0.md` (блок-карта FUN_180529fe0 по raw asm).
|
||||||
|
2. Собрать: `touch dsp/framed_model.cpp && cmake --build dsp/build --target render48k framed_test`
|
||||||
|
(TOOLING HAZARD: touch перед сборкой обязателен).
|
||||||
|
3. Бейзлайны: канон = `RT_LUT_OFF=1 RT_IIR12=0 RT_NOWARP=1 RT_NOBLEND=1 RT_NOIIR3=1
|
||||||
|
RT_LAWAFFINE=7.4,1.85 python3 scripts/corpus_structural.py` → TOTAL 1.931;
|
||||||
|
bridge-гейт: `--vs-bridge scripts/baseline_bridge.json` (1.594).
|
||||||
|
4. **ПРИОРИТЕТ №1 — семантика входов `bands[]`**:
|
||||||
|
a. Статика: декод тел conv 0x1802a24c0 (float)/0x1802fa420 (double,
|
||||||
|
резолв ILT-стабов через idx@0x1826159a0, см. BLOCKMAP thunk-таблицу) и
|
||||||
|
complex-op шагов с буферами ctx+0x540548/550/598.
|
||||||
|
b. Динамика: синхронная трасса буферов bands[]/f6f8/acc в момент аудио-
|
||||||
|
колбека (`scripts/dualtrace.py` + `play_loop.lua`; между кадрами acc/f6f8
|
||||||
|
нули — снапшот должен попадать В колбек, см. NOTES_CAPTURE 22y).
|
||||||
|
5. Инструменты: `scripts/lawfit22r.py` (офлайн реплей, 2 c корпус — ЛЮБОЙ закон),
|
||||||
|
`scripts/resalpha.py` (тракты+теорема α), live-capture `dualtrace.py`.
|
||||||
|
6. Факт для калибровки интуиции: dual-таблица по q в NOTES 22x (cut@центра
|
||||||
|
константен; Δскайрта ≈ линейно по −ln res, b≈2.25 дБ/e-fold).
|
||||||
@@ -1,35 +1,89 @@
|
|||||||
# soothe2-re
|
# soothe2-re
|
||||||
|
|
||||||
Обратный инжиниринг DSP-ядра **oeksound soothe2** (VST3, Windows x64) → проверяемая
|
Обратный инжиниринг DSP-ядра **oeksound soothe2** (VST3, Windows x64) → проверяемая
|
||||||
численная модель и реконструкция на C++.
|
реконструкция на C++ с **bit-exact** целью.
|
||||||
|
|
||||||
Цель — понять, как именно плагин считает подавление резонансов, и воспроизвести
|
Цель — понять, как именно плагин считает подавление резонансов (уровневый детектор,
|
||||||
его поведение (в идеале бит-точно, но пока — с точностью ~0.03–0.18 dB на формах
|
маска, фильтр), и воспроизвести это дословно. Текущий активный канон — C++
|
||||||
полос и уровнях).
|
`FramedDetector` (`dsp/framed_model.cpp`): real mask-apply цепь с live-таблицами.
|
||||||
|
Канонные команды и метрика — в [`AGENTS.md`](AGENTS.md).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Статус (B.15, август 2026)
|
## Статус (24kk2, 2026-08-25)
|
||||||
|
|
||||||
**Полный STFT-рендер** пайплайна работает в `framed_render.py` (N=2048, hop=512,
|
**Цель — bit-exact реверс** (гейт смены канона зафиксирован пользователем: только
|
||||||
sqrt-Hann, per-bin twin-envelope tatt=11ms/trel=80ms). Модель:
|
после прослеживания всех параметров до декомпа и схождения корпуса в шумовой пол).
|
||||||
`C(f_k)=g·LUT(log10(A_k/res_k)) + w·warp(f_k)^a`, `gain=(1−C)·res^(rp0·Q^drp)`.
|
Декомпиляция DSP-ядра закрыта (~95%); дизассемблы в `handoff/nls_dasm/` (~140).
|
||||||
|
|
||||||
- **Честная (trimmed) метрика** — длина выхода = длина входа (не-тримнутые замеры
|
**Применение декодировано до формул** (сессия 24j…24kk2):
|
||||||
давали ложный сдвиг ~0.2 dB, исправлено в B.14). Базлайн для scalar-rp = 0.280 dB.
|
```
|
||||||
- **Q-dependent rp** `rp(Q)=rp0·Q^drp` (rp0=0.0275, drp=0.2159) → **mean=0.175 dB**:
|
mask(b) = 10^(−cut_D(b)/20) ← вещественная, per-bin multiply кадра
|
||||||
q0.1 и q10 почти идеальны, боттлнек q1@2000 (−0.71 dB).
|
cut_D(b) = α·ln(1+lvl_raw(b)/β)+c [+Δ у вторых пиков]
|
||||||
- **JOINT free-knot LUT** (8 узлов Pchip, G/W/A/rp0/drp) → **dual mean≈0.027 dB**,
|
lvl_raw = am/res·scale (наш детектор-фронтенд, float-parity ✓)
|
||||||
q1@2000 закрыт до 0.000; остаток al_* lv24 dC=+0.10 (зона xv<−0.3).
|
слой = STFT БЕЗ синтез-окна (RT_SYN=1)
|
||||||
- **Декомп DSP-ядра в основном закрыт**: twin-резонатор, генератор case8, level-weight
|
```
|
||||||
(0x530d30 — численно НЕ create tilt, подтверждено при N=2048), LUT-кривая FUN_180563440
|
Калибровки формы (три независимых семейства, rms ≤0.016 дБ): α/β/c зависят от
|
||||||
(linear/power-law по флагу), IIR-трекеры FUN_180563ce0, FFT-conv 0x535a70 —
|
контента (α удваивается с числом тонов — частотное смешение шаблонно-локальное),
|
||||||
всё размаплено, `.dis` в `handoff/nls_dasm/`.
|
q НЕ влияет на закон, sens входит линейно через lvl_raw.
|
||||||
|
|
||||||
|
- **dual-семейство решено**: корпус 22 случая **mean 0.193 / max 0.438 dB**
|
||||||
|
(канон 3.264). Флаги: `RT_VLAW=1 RT_SYN=1 RT_NOWARP=1 RT_NOIIR3=1 RT_IIR12=0`.
|
||||||
|
- **Канон не тронут**: TOTAL 2.286 (env-gated эксперименты живут рядом).
|
||||||
|
- **Буфер FIR@540668** = промежуточное мин.-фазовое представление
|
||||||
|
(`exp(s−i·H(s))`, Гильберт по частоте) — аудио слышит `exp(scratch)` напрямую.
|
||||||
|
- **Тела bigkernel'ов найдены** (рантайм-резолв IAT): 1803a06a0 / 180296c80 /
|
||||||
|
180323f20 / 1802dc0e0 — x87-трансценденты (exp-семейство).
|
||||||
|
|
||||||
|
### Главное за 2026-08-24…25 (сессии 24j–24kk2)
|
||||||
|
|
||||||
|
1. **Применение = побиновный complex-multiply кадра** на маску; «магический ×1.805»
|
||||||
|
оказался произведением экспонент стадий построения буфера (0.984×1.8345).
|
||||||
|
2. **Закон уровня универсальной формы** `α·ln(1+L/β)+c` — подтверждён тремя
|
||||||
|
независимыми калибровками; константы зависят от контента (число тонов) и слабо от fc.
|
||||||
|
3. **Слой STFT**: плагин НЕ домножает выход обратного FFT на окно
|
||||||
|
(`RT_SYN=1`); WIN_WINDOW движка — фейд 0.5→0.8 ровно за 2049 сэмплов (=бинам кернела).
|
||||||
|
4. **GUI/аудио разделение**: LUT-строитель FUN_180563a60 — GUI-ветка; аудио-компрессия
|
||||||
|
живёт в семантиках шагов 9–19 BLOCKMAP.
|
||||||
|
5. **Dataflow шагов 9–16 декодирован**: vec6f8=bands−ACC; fma тройками
|
||||||
|
(re,im,coef) с ATT/REL; th2000=поэлементное умножение массивов (не axpy!);
|
||||||
|
шаг 12=COPY (исправлен старый BLOCKMAP).
|
||||||
|
6. **Инструменты**: rendersnap2 v7 (мягкий STOP-снаппер со слотами+скалярами,
|
||||||
|
RENDER_FILE-фикс), patchparam.py (правка VST-чанка RPP!), campaign.py
|
||||||
|
(ячейка параметризации), disasm_func.py (capstone с RIP-константами),
|
||||||
|
iat_name.py (рантайм-резолв импортов через PE-экспорты).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Текущий канон (Q-dep rp, trimmed):
|
# Сборка и канонные команды:
|
||||||
python3 framed_render.py dual
|
cmake -S dsp -B dsp/build && cmake --build dsp/build --target framed_test render48k
|
||||||
|
./dsp/build/render48k /home/m/soothe-bt/tone1kq.wav /tmp/o48.wav 1000,0.99999785,12
|
||||||
|
python3 scripts/corpus_structural.py --vs-bridge scripts/baseline_bridge.json
|
||||||
```
|
```
|
||||||
|
Детальная метрика и история — в `AGENTS.md`, `BITEXACT_PLAN.md`, `handoff/NOTES_LEVEL.md`
|
||||||
|
(апдейты 20j…24kk2).
|
||||||
|
|
||||||
|
### Открытые bit-exact пробелы
|
||||||
|
**Приоритет №1 — каскадный симулятор шагов 9–19**: dataflow декодирован
|
||||||
|
(24hh/24ii: vec6f8=bands−ACC, fma-тройки att/rel, ×track, ×warp, центрирование −1),
|
||||||
|
тела bigkernel'ов найдены по рантайм-адресам — осталось сложить оп-за-опом и
|
||||||
|
проверить на датасетах sc_* (rms каскада сейчас ~0.42 на угаданных формах).
|
||||||
|
Далее: k-маппинг фронтенда (twin/am формулы), Δ-правило вторых пиков из pre-combine.
|
||||||
|
Полный список — `AGENTS.md`, `BITEXACT_PLAN.md`, `NOTES_LEVEL.md` (24bb→24kk2).
|
||||||
|
|
||||||
|
> Исторический блок (поведенческая/численная модель B.1…B.15, `framed_render.py`,
|
||||||
|
> Pchip LUT, res_power) — см. `roadmap.md`; самодостаточен как справочник, но не канон.
|
||||||
|
|
||||||
|
<details><summary>Было (B.15 — историческая численная модель)</summary>
|
||||||
|
|
||||||
|
`framed_render.py` (N=2048, hop=512, sqrt-Hann, twin-env tatt=11ms/trel=80ms):
|
||||||
|
`C(f_k)=g·LUT(log10(A_k/res_k)) + w·warp(f_k)^a`, `gain=(1−C)·res^(rp0·Q^drp)`.
|
||||||
|
- Честная (trimmed) метрика: Q-dep rp → mean 0.175 dB; B.15 joint free-knot LUT → dual 0.027 dB.
|
||||||
|
- Декомп DSP-ядра закрыт, `.dis` в `handoff/nls_dasm/`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 framed_render.py dual # (исторический канон B.15)
|
||||||
|
```
|
||||||
|
</details>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -38,23 +92,29 @@ python3 framed_render.py dual
|
|||||||
```
|
```
|
||||||
re-tools/
|
re-tools/
|
||||||
├── README.md ← вы здесь
|
├── README.md ← вы здесь
|
||||||
├── roadmap.md ← журнал всех результатов/гипотез (B.1…B.15)
|
├── AGENTS.md ← гайд для агентов: сборка, метрика, bit-exact пробелы
|
||||||
├── framed_render.py ← КАНОНИЧЕСКИЙ frame-рендер (STFT+LUT+warp+res_power)
|
├── roadmap.md ← журнал всех результатов/гипотез (B.1…B.15, P4)
|
||||||
|
├── framed_render.py ← историческая численная модель (B.15, не канон)
|
||||||
├── render_parity.py ← dB-parity харнесс (Goertzel steady-state замер)
|
├── render_parity.py ← dB-parity харнесс (Goertzel steady-state замер)
|
||||||
├── model_lut.py, model_dual.py ← исторические модели B.10/B.11 (collapse-фиты)
|
├── model_lut.py, model_dual.py ← исторические модели B.10/B.11 (collapse-фиты)
|
||||||
├── model_fir.py ← bridge-модель B.12 (C=g·LUT+w·warp^a)
|
├── model_fir.py ← bridge-модель B.12 (C=g·LUT+w·warp^a)
|
||||||
│
|
│
|
||||||
├── handoff/ ← перекидка между сессиями
|
├── handoff/ ← журнал сессий
|
||||||
│ ├── SESSION_HANDOFF.md ← инвентарь декомпа, трансляция, Phase-5 план
|
│ ├── SESSION_HANDOFF.md ← инвентарь декомпа, трансляция, Phase-5 план
|
||||||
│ ├── NOTES_TWIN.md ← twin-резонатор + caller + grid
|
│ ├── NOTES_TWIN.md ← twin-резонатор + caller + grid
|
||||||
│ ├── NOTES_LEVEL.md ← level-path, LUT-нога, res_power протокол
|
│ ├── NOTES_LEVEL.md ← level-path, mask-цепь, live-таблицы (САМЫЙ АКТУАЛЬНЫЙ)
|
||||||
│ └── nls_dasm/ ← 120+ дизассемблей (f_563440, f_563ce0, f529fe0, twin…)
|
│ ├── NOTES_CAPTURE.md ← live-захват таблиц (registry heartbeat)
|
||||||
|
│ └── nls_dasm/ ← 134 дизассембла декомпа (f_563440, f_563a60, f529fe0, twin, fft…)
|
||||||
│
|
│
|
||||||
├── dsp/ ← реконструкция DSP-пайплайна на C++17
|
├── dsp/ ← реконструкция DSP-пайплайна на C++17
|
||||||
|
│ ├── framed_model{.cpp,.hpp} ← ГЛАВНЫЙ: mask-apply цепь (P4, активный канон)
|
||||||
|
│ ├── framed_test.cpp ← CLI рендер входа (N=2048, SR 44100) + метрика
|
||||||
|
│ ├── rt_mask_tables{.hpp,.cpp}, rt_weights{.hpp,.cpp} ← live-таблицы (IIR A/B, warp…)
|
||||||
│ ├── twin{.hpp,.cpp} ← бит-точный twin-резонатор (FUN_180535880)
|
│ ├── twin{.hpp,.cpp} ← бит-точный twin-резонатор (FUN_180535880)
|
||||||
|
│ ├── levelpath.cpp/.hpp ← LUT-кривая FUN_180563440/563a60 + combine-ядра
|
||||||
|
│ ├── freqpath.cpp/.hpp ← warp FUN_180530850 (0.87·x/(1+x/K))
|
||||||
|
│ ├── fftconv.cpp/.hpp ← FFT-conv (0x535a70)
|
||||||
│ ├── spectral.cpp/.hpp ← WOLA/STFT-обработчик
|
│ ├── spectral.cpp/.hpp ← WOLA/STFT-обработчик
|
||||||
│ ├── detect.cpp/.hpp ← детектор резонансов
|
|
||||||
│ ├── filter.cpp/.hpp ← биквад-фильтры
|
|
||||||
│ ├── fft*.cpp, twiddle_*.cpp/hpp, phase_table.* ← FFT-планы/твилдлы
|
│ ├── fft*.cpp, twiddle_*.cpp/hpp, phase_table.* ← FFT-планы/твилдлы
|
||||||
│ ├── ms.hpp ← encode/decode mid/side
|
│ ├── ms.hpp ← encode/decode mid/side
|
||||||
│ ├── cody_waite.hpp ← быстрый sin/cos (FUN_1801de760/1e3f20)
|
│ ├── cody_waite.hpp ← быстрый sin/cos (FUN_1801de760/1e3f20)
|
||||||
@@ -64,16 +124,19 @@ re-tools/
|
|||||||
│
|
│
|
||||||
├── *.java ← Ghidra-скрипты (analyzeHeadless, пост-скрипты)
|
├── *.java ← Ghidra-скрипты (analyzeHeadless, пост-скрипты)
|
||||||
├── ghidra-proj/ ← Ghidra-проект (soothe2.gpr/.rep), вне git
|
├── ghidra-proj/ ← Ghidra-проект (soothe2.gpr/.rep), вне git
|
||||||
├── soothe_mem.bin ← дамп памяти плагина (frida), вне git
|
├── soothe_mem.bin ← дамп памяти плагина, вне git
|
||||||
├── rwin_{A0,A1,B0,C0}.npy, r_freqaxis.npy ← живые таблицы (48k) из runtime-снимков
|
├── rwin_{A0,A1,B0,C0}.npy, r_freqaxis.npy ← живые таблицы (48k) из runtime-снимков
|
||||||
│
|
│
|
||||||
├── Измерение и фиты полосы: measure.py, probe.py, bandshape.py, fit_*.py,
|
├── Измерение и фиты полосы: measure.py, probe.py, bandshape.py, fit_*.py,
|
||||||
│ model_lut.py, notch.py
|
│ model_lut.py, notch.py (исторические, B-модели)
|
||||||
├── Поведенческие симуляторы: sim.py, sim_v5.py, verify_sim.py
|
├── Поведенческие симуляторы: sim.py, sim_v5.py, verify_sim.py (исторические)
|
||||||
├── Инструменты REAPER-рендеров: sweep.py, run_sweep.py, tt_sweep.py,
|
├── Инструменты REAPER-рендеров: sweep.py, run_sweep.py, tt_sweep.py,
|
||||||
│ patchparam.py, addfx.lua
|
│ patchparam.py, addfx.lua
|
||||||
├── Живая трассировка (yabridge-host + Frida): dump_soothe.py, rtall/rtscan/
|
├── Живая трассировка (yabridge-host + Frida): dump_soothe.py, rtall/rtscan/
|
||||||
│ rtsig/rttbl/rtver/rtone/rtwin/rtdeep*.py, probe.py, procdump.py
|
│ rtsig/rttbl/rtver/rtone/rtwin/rtdeep*.py, probe.py, procdump.py
|
||||||
|
├── Параметр-мост и live-capture: setparam.lua, dump_params.lua,
|
||||||
|
│ play.lua, scripts/step7_capture.py, scripts/rpp_setparam.py,
|
||||||
|
│ scripts/corpus{,_structural}.py, scripts/phaseA/B*.py
|
||||||
└── summary.md, notes_giant_fft.md
|
└── summary.md, notes_giant_fft.md
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -81,13 +144,16 @@ re-tools/
|
|||||||
|
|
||||||
| Документ | Содержание |
|
| Документ | Содержание |
|
||||||
|---|---|
|
|---|---|
|
||||||
| [roadmap.md](roadmap.md) | Журнал всех результатов/гипотез (B.1…B.15), статус по фазам, риски, открытые вопросы |
|
| [AGENTS.md](AGENTS.md) | **Старт для агента**: сборка, метрика, bit-exact пробелы, структура |
|
||||||
|
| [BITEXACT_PLAN.md](BITEXACT_PLAN.md) | **Путь к bit-exact**: порядок работ (8 шагов), критерии, риски, точка входа |
|
||||||
|
| [roadmap.md](roadmap.md) | Журнал всех результатов/гипотез (B.1…B.15, P4), статус по фазам, риски |
|
||||||
| [handoff/SESSION_HANDOFF.md](handoff/SESSION_HANDOFF.md) | Инвентарь декомпа (§0), трансляция/ключевые адреса (§2), Phase-5 план (§6) |
|
| [handoff/SESSION_HANDOFF.md](handoff/SESSION_HANDOFF.md) | Инвентарь декомпа (§0), трансляция/ключевые адреса (§2), Phase-5 план (§6) |
|
||||||
|
| [handoff/NOTES_LEVEL.md](handoff/NOTES_LEVEL.md) | **Level-path/mask-цепь, live-таблицы, bit-exact протокол** (самый актуальный) |
|
||||||
| [handoff/NOTES_TWIN.md](handoff/NOTES_TWIN.md) | Twin-резонатор (FUN_180535880/536f90), caller, grid/oversample |
|
| [handoff/NOTES_TWIN.md](handoff/NOTES_TWIN.md) | Twin-резонатор (FUN_180535880/536f90), caller, grid/oversample |
|
||||||
| [handoff/NOTES_LEVEL.md](handoff/NOTES_LEVEL.md) | Level-path, LUT-нога, res_power протокол, спектральные веса |
|
| [handoff/NOTES_CAPTURE.md](handoff/NOTES_CAPTURE.md) | Live-захват таблиц (registry heartbeat, SR 48000) |
|
||||||
| [handoff/nls_dasm/](handoff/nls_dasm/) | 120+ дизассемблей (f_563440, f_563ce0, f529fe0, twin, iface, fft) |
|
| [handoff/nls_dasm/](handoff/nls_dasm/) | 134 дизассембла (f_563440, f_563a60, f529fe0, twin, iface, fft) |
|
||||||
| [notes_giant_fft.md](notes_giant_fft.md) | FFT-планировщики/ядра/twiddle/Cody-Waite |
|
| [notes_giant_fft.md](notes_giant_fft.md) | FFT-планировщики/ядра/twiddle/Cody-Waite |
|
||||||
| [summary.md](summary.md) | Сводка по реверсу и реконструкции |
|
| [summary.md](summary.md) | **Историческая** сводка поведенческой модели (v4, sim.py) |
|
||||||
|
|
||||||
### Тестовый корпус `/home/m/soothe-bt/` (вне git)
|
### Тестовый корпус `/home/m/soothe-bt/` (вне git)
|
||||||
|
|
||||||
@@ -103,10 +169,10 @@ re-tools/
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Модель в трёх строках
|
## Историческая численная модель (B-фазы; канон теперь — C++ FramedDetector, см. выше)
|
||||||
|
|
||||||
```python
|
```python
|
||||||
# per-frame, per-bin (framed_render.py — канон)
|
# per-frame, per-bin (framed_render.py — исторический канон B.15)
|
||||||
xv = log10(A_k / res_k) # A_k = 2|X_k|/wsum (twin-env), res = |2B/A| case8
|
xv = log10(A_k / res_k) # A_k = 2|X_k|/wsum (twin-env), res = |2B/A| case8
|
||||||
C = G * LUT(xv) + W * warp(f_k)**A # additive mask (НЕ мультипликация warp·LUT)
|
C = G * LUT(xv) + W * warp(f_k)**A # additive mask (НЕ мультипликация warp·LUT)
|
||||||
gain = max(1 - C, eps) * res_k**rp # rp = rp0 * Q**drp (res_power)
|
gain = max(1 - C, eps) * res_k**rp # rp = rp0 * Q**drp (res_power)
|
||||||
@@ -117,8 +183,6 @@ gain = max(1 - C, eps) * res_k**rp # rp = rp0 * Q**drp (res_power)
|
|||||||
- rp(Q)=0.0275·Q^0.2159 (Q-dep rp, B.14);
|
- rp(Q)=0.0275·Q^0.2159 (Q-dep rp, B.14);
|
||||||
- B.15: G/W/A/rp0/drp = 0.9752/0.3394/1.0222/0.0254/0.2231; LUT KX=[−0.8..1.0].
|
- B.15: G/W/A/rp0/drp = 0.9752/0.3394/1.0222/0.0254/0.2231; LUT KX=[−0.8..1.0].
|
||||||
|
|
||||||
Проверить: `python3 framed_render.py dual` (mean 0.175 для Q-dep rp).
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Как всё это воспроизвести
|
## Как всё это воспроизвести
|
||||||
@@ -134,12 +198,15 @@ gain = max(1 - C, eps) * res_k**rp # rp = rp0 * Q**drp (res_power)
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Чего не хватает / следующие шаги
|
## Чего не хватает / следующие шаги (bit-exact)
|
||||||
|
|
||||||
- **Структурная LUT FUN_180563440** вместо Pchip: закрыть остаток al_* lv24 (dC≈+0.10,
|
Текущий фокус — **детекторный фронт** (Шаг 9 плана): амплитудная нормировка am,
|
||||||
зона xv<−0.3) и q1@500 (+0.06).
|
форма res_k, сила IIR1/2 вдоль частоты — модель теряет ×2.8 уровня на изолированных
|
||||||
- **Бит-точная сверка**: собрать `dsp/harness.cpp`, прогнать `burst500_b1.wav`
|
пиках относительно реального плагина (NOTES_LEVEL 22g/22i). Открытое:
|
||||||
и сверить байт-в-байт (сейчас модель — численная, rmse 0.03–0.18 dB).
|
- **Детекторный фронт** (приоритет №1, Шаг 9) — см. выше.
|
||||||
- C++ порт res_power + Q-dep rp + свободных LUT-узлов (тривиально: `gain *= pow(res, rp0·Q^drp)`).
|
- **PRNG-пролог** FUN_180529fe0 (LCG+LUT → fVar30) — per-frame рандомизация scale/dry-wet.
|
||||||
- Семантика IAT-хелперов `0x181a14xxx` (exp/log/pow) и AVX-ядер — целевые адреса вне дампа.
|
- **FFT-conv** (0x535a70) — сглаживание маски перед FIR (P3).
|
||||||
- Полный конвейер WOLA/oversample (offline 3×) и sidechain/стерео-путь.
|
- **Бит-экзактный exp2** (0x26b820) вместо `std::exp2`.
|
||||||
|
- Точная обратная связь combine/аккумулятора `0x5407c8` (консюмер не найден).
|
||||||
|
- **SR-mismatch**: внутренний DSP 48000/N=4096 против хоста 44100/2048.
|
||||||
|
- Стерео-путь M8 (link/balance/LR-vs-MS), межполосное суммирование (Шаг 8).
|
||||||
@@ -5,6 +5,7 @@ set(CMAKE_CXX_STANDARD 17)
|
|||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
|
find_library(SAMPLERATE samplerate)
|
||||||
|
|
||||||
add_library(soothe2_dsp SHARED
|
add_library(soothe2_dsp SHARED
|
||||||
fft_plan.cpp
|
fft_plan.cpp
|
||||||
@@ -20,18 +21,33 @@ add_library(soothe2_dsp SHARED
|
|||||||
phase_table.cpp
|
phase_table.cpp
|
||||||
fftconv.cpp
|
fftconv.cpp
|
||||||
vlog.cpp
|
vlog.cpp
|
||||||
|
exp2_tables.cpp
|
||||||
|
exp2.cpp
|
||||||
leveltrack.cpp
|
leveltrack.cpp
|
||||||
framed_model.cpp
|
framed_model.cpp
|
||||||
|
fnfaith.cpp
|
||||||
|
fn529fe0.cpp
|
||||||
|
rt_weights.cpp
|
||||||
|
rt_mask_tables.cpp
|
||||||
|
log2_ln.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable(soothe2_harness harness.cpp)
|
add_executable(soothe2_harness harness.cpp)
|
||||||
|
add_executable(framed_test framed_test.cpp)
|
||||||
|
add_executable(render48k render48k.cpp)
|
||||||
add_executable(twin_check twin_check.cpp)
|
add_executable(twin_check twin_check.cpp)
|
||||||
add_executable(tables_check tables_check.cpp)
|
add_executable(tables_check tables_check.cpp)
|
||||||
add_executable(fftconv_check fftconv_check.cpp)
|
add_executable(fftconv_check fftconv_check.cpp)
|
||||||
add_executable(vlog_check vlog_check.cpp)
|
add_executable(vlog_check vlog_check.cpp)
|
||||||
add_executable(leveltrack_check leveltrack_check.cpp)
|
add_executable(leveltrack_check leveltrack_check.cpp)
|
||||||
add_executable(levelpath_check levelpath_check.cpp)
|
add_executable(levelpath_check levelpath_check.cpp)
|
||||||
|
add_executable(exp2_check exp2_check.cpp)
|
||||||
|
add_executable(fn529fe0_check fn529fe0_check.cpp)
|
||||||
target_link_libraries(twin_check soothe2_dsp)
|
target_link_libraries(twin_check soothe2_dsp)
|
||||||
|
target_link_libraries(framed_test soothe2_dsp)
|
||||||
|
target_link_libraries(render48k soothe2_dsp ${SAMPLERATE})
|
||||||
|
target_link_libraries(exp2_check soothe2_dsp)
|
||||||
|
target_link_libraries(fn529fe0_check soothe2_dsp)
|
||||||
target_link_libraries(tables_check soothe2_dsp)
|
target_link_libraries(tables_check soothe2_dsp)
|
||||||
target_link_libraries(fftconv_check soothe2_dsp)
|
target_link_libraries(fftconv_check soothe2_dsp)
|
||||||
target_link_libraries(vlog_check soothe2_dsp)
|
target_link_libraries(vlog_check soothe2_dsp)
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
// exp2.cpp — numerical double exp2 (wiring fallback) + P3 asset note.
|
||||||
|
// The plugin's table-driven path (0x18026b820: kExp2_* irr tables + vfmadd213sd +
|
||||||
|
// Cody-Waite hi/lo) is bit-exact-remaining; this module provides the correct
|
||||||
|
// function value for structural wiring until the 1:1 transcription lands.
|
||||||
|
#include "exp2.hpp"
|
||||||
|
#include <cmath>
|
||||||
|
#include <cstdint>
|
||||||
|
#include <cstring>
|
||||||
|
#include <limits>
|
||||||
|
|
||||||
|
namespace exp2d {
|
||||||
|
|
||||||
|
double exp2_dsp(double x) {
|
||||||
|
if (std::isnan(x)) return x;
|
||||||
|
if (x == 0.0) return 1.0;
|
||||||
|
if (x == -std::numeric_limits<double>::infinity()) return 0.0;
|
||||||
|
if (x == std::numeric_limits<double>::infinity()) return x;
|
||||||
|
return std::exp2(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace exp2d
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
// Scalar double exp2 — structural sketch of the dump function at 0x18026b820
|
||||||
|
// (element kernel wrapped by bigkernel 0x18026c220). NOTES_LEVEL:854-860.
|
||||||
|
//
|
||||||
|
// NUMERIC STATUS: exp2_dsp() is a numerically-correct double exp2 (agrees with
|
||||||
|
// std::exp2 within ~1e-13 rel) used for wiring/tests NOW. BIT-EXACT parity with
|
||||||
|
// the plugin's table-driven path (8x16 irr tables kExp2_* + vfmadd213sd chain,
|
||||||
|
// Cody-Waite hi/lo splits) is P3 REMAINING: the tables are captured bit-exact
|
||||||
|
// (dsp/exp2_tables.*), the algorithm wiring is not yet transcribed 1:1.
|
||||||
|
namespace exp2d {
|
||||||
|
|
||||||
|
// 2^x. Numerically correct; matches std::exp2 for all finite x.
|
||||||
|
double exp2_dsp(double x);
|
||||||
|
|
||||||
|
} // namespace exp2d
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
// exp2_check.cpp — numeric gate for the exp2_dsp transcription + P3 asset check.
|
||||||
|
// 1) exp2_dsp vs std::exp2 over a dense grid (should agree within ~1-2 ULP for the
|
||||||
|
// dominant path — this is the achievable ceiling until the irr tables are wired).
|
||||||
|
// 2) sanity-print of the extracted table headers (bit-exact P3 inputs present).
|
||||||
|
#include "exp2.hpp"
|
||||||
|
#include "exp2_tables.hpp"
|
||||||
|
#include <cmath>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstdint>
|
||||||
|
#include <cstring>
|
||||||
|
#include <random>
|
||||||
|
|
||||||
|
static double rel_err(double a, double b) {
|
||||||
|
return std::fabs(a - b) / std::max(std::fabs(b), 1e-300);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
// table sanity
|
||||||
|
printf("kExp2_big[0..3] = %0.17g %0.17g %0.17g %0.17g\n",
|
||||||
|
kExp2_big[0], kExp2_big[1], kExp2_big[2], kExp2_big[3]);
|
||||||
|
printf("kExp2_f2f4e0[0..3] = %0.17g %0.17g %0.17g %0.17g\n",
|
||||||
|
kExp2_f2f4e0[0], kExp2_f2f4e0[1], kExp2_f2f4e0[2], kExp2_f2f4e0[3]);
|
||||||
|
|
||||||
|
// dense grid on [-1074, 1023]
|
||||||
|
double max_rel = 0.0, maxx = 0.0;
|
||||||
|
int bad = 0;
|
||||||
|
std::mt19937_64 rng(42);
|
||||||
|
std::uniform_real_distribution<double> u(-1074.0, 1023.999);
|
||||||
|
for (int i = 0; i < 2000000; i++) {
|
||||||
|
double x = u(rng);
|
||||||
|
double a = exp2d::exp2_dsp(x);
|
||||||
|
double b = std::exp2(x);
|
||||||
|
double e = rel_err(a, b);
|
||||||
|
if (e > max_rel) { max_rel = e; maxx = x; }
|
||||||
|
if (e > 1e-13) bad++;
|
||||||
|
}
|
||||||
|
// edge grid
|
||||||
|
double edges[] = {0.0, -0.0, 1.0, -1.0, 10.0, -10.0, 1023.0, -1073.0,
|
||||||
|
512.0, -512.0, 0.5, -0.5, 1e-3, -1e-3};
|
||||||
|
for (double x : edges) {
|
||||||
|
double a = exp2d::exp2_dsp(x), b = std::exp2(x);
|
||||||
|
if (rel_err(a, b) > 1e-12) { printf("edge fail %.17g: got %.17g want %.17g\n", x, a, b); bad++; }
|
||||||
|
}
|
||||||
|
printf("exp2 check: max_rel=%.3e @x=%.3f ; cells >1e-13: %d\n", max_rel, maxx, bad);
|
||||||
|
printf(bad == 0 ? "PASS (dominant-path numeric parity w/ std::exp2)\n"
|
||||||
|
: "FAIL\n");
|
||||||
|
return bad == 0 ? 0 : 1;
|
||||||
|
}
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
#include "exp2_tables.hpp"
|
||||||
|
|
||||||
|
const double kExp2_big[16] = {-708.4496630450985, -1.684386341407621e-09, -708.4515131843864, -1.6846944146916641e-09, -708.45335990698, -1.6842043988210445e-09, -708.4552032254742, -1.6843549704258747e-09, -708.4570431523962, -1.6843595268906607e-09, -708.4588797002034, -1.6844454361914893e-09, -708.460712881285, -1.6845411315873754e-09, -708.4625427079618, -1.6847775654777725e-09};
|
||||||
|
const double kExp2_f2f4e0[16] = {
|
||||||
|
1.4428269863128662, 1.4428050518035889,
|
||||||
|
1.4427828788757324, 1.442760944366455,
|
||||||
|
1.4427390098571777, 1.4427168369293213,
|
||||||
|
1.442694902420044, 0.0,
|
||||||
|
0.0, 4.4108115616836585e-05,
|
||||||
|
1.1367896310043682e-14, 8.797914665592543e-05,
|
||||||
|
1.5988983620902337e-14, 0.0001320899521033425,
|
||||||
|
1.4296626333272017e-13, 0.000176202106558776,
|
||||||
|
};
|
||||||
|
const double kExp2_f2f7f8[16] = {
|
||||||
|
0.0020239239952388743, 1.8741497305441306e-13,
|
||||||
|
0.002067855273025998, 7.192750688017651e-14,
|
||||||
|
0.0021117878884524544, 1.0220676705319255e-13,
|
||||||
|
0.002155721841745617, 1.3235740370168912e-13,
|
||||||
|
0.0021996571331328596, 1.6491510884591246e-14,
|
||||||
|
0.0022435937623868085, 6.347597838479135e-14,
|
||||||
|
0.0022875317297348374, 1.2743779084316537e-13,
|
||||||
|
0.00233147103540432, 6.251137955211938e-14,
|
||||||
|
};
|
||||||
|
const double kExp2_f2f5e8[16] = {
|
||||||
|
0.0005723181491248397, 1.376549281185315e-13,
|
||||||
|
0.0006162052457057143, 1.6759446167811947e-13,
|
||||||
|
0.000660332205143277, 1.6967863464240126e-13,
|
||||||
|
0.0007042219792765536, 1.7632410214517053e-13,
|
||||||
|
0.0007483516310458072, 9.18589132069676e-14,
|
||||||
|
0.0007922440829588595, 1.745659100765534e-13,
|
||||||
|
0.0008363764272871776, 1.0471272193277231e-13,
|
||||||
|
0.000880271557434753, 1.3552297619973825e-13,
|
||||||
|
};
|
||||||
|
const double kExp2_f2f900[16] = {
|
||||||
|
-1.222848299709874e-13, -0.0014317083230253047,
|
||||||
|
-6.872760839443708e-15, -0.001409557215993118,
|
||||||
|
-1.6088057051259155e-13, -0.0013876439584237232,
|
||||||
|
-1.5027471116381911e-13, -0.001365492174954852,
|
||||||
|
-1.6218976050293882e-13, -0.0013435782479973568,
|
||||||
|
-2.1550458851811851e-13, -0.0013214257880918012,
|
||||||
|
-4.3995053663865014e-14, -0.0012995111917462054,
|
||||||
|
-1.203413000559803e-13, -0.001277358054949218,
|
||||||
|
};
|
||||||
|
const double kExp2_f2ff18[16] = {
|
||||||
|
1.182784710984341, 1.542975430079076e-17,
|
||||||
|
1.189207115002721, 3.982015231465646e-17,
|
||||||
|
1.1956643920398273, 4.6166036704814814e-17,
|
||||||
|
1.202156731452703, 6.6449814992523e-17,
|
||||||
|
1.2086843236265816, -4.746725945228984e-17,
|
||||||
|
1.215247359980469, -7.712630692681487e-17,
|
||||||
|
1.2218460329727576, -1.061102121140269e-16,
|
||||||
|
1.22848053610687, -1.8987816313025296e-17,
|
||||||
|
};
|
||||||
|
const double kExp2_f2ff20[16] = {
|
||||||
|
1.542975430079076e-17, 1.189207115002721,
|
||||||
|
3.982015231465646e-17, 1.1956643920398273,
|
||||||
|
4.6166036704814814e-17, 1.202156731452703,
|
||||||
|
6.6449814992523e-17, 1.2086843236265816,
|
||||||
|
-4.746725945228984e-17, 1.215247359980469,
|
||||||
|
-7.712630692681487e-17, 1.2218460329727576,
|
||||||
|
-1.061102121140269e-16, 1.22848053610687,
|
||||||
|
-1.8987816313025296e-17, 1.2351510639369334,
|
||||||
|
};
|
||||||
|
const double kExp2_f2fb10[16] = {
|
||||||
|
-9.17010025169853e-14, -0.0007045933023164253,
|
||||||
|
-8.15362723390069e-14, -0.0006826693343100487,
|
||||||
|
-3.361971520911895e-14, -0.0006605067235341266,
|
||||||
|
-1.2931671548024404e-13, -0.0006385820854575286,
|
||||||
|
-1.7298500585521957e-13, -0.000616418797562801,
|
||||||
|
-1.0577760184105114e-13, -0.0005944934894159815,
|
||||||
|
-2.0008148363066578e-13, -0.0005725678481667273,
|
||||||
|
-1.8264405520037802e-13, -0.0005504035461854073,
|
||||||
|
};
|
||||||
|
const double kExp2_f30f88[16] = {
|
||||||
|
-1.6843595268906607e-09, -708.4588797002034,
|
||||||
|
-1.6844454361914893e-09, -708.460712881285,
|
||||||
|
-1.6845411315873754e-09, -708.4625427079618,
|
||||||
|
-1.6847775654777725e-09, -708.4643691924884,
|
||||||
|
-1.6841660943615788e-09, -708.4661923470494,
|
||||||
|
-1.6847288026066712e-09, -708.4680121837664,
|
||||||
|
-1.6847104098547488e-09, -708.469828714693,
|
||||||
|
-1.684518673135394e-09, -708.4716419518172,
|
||||||
|
};
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
#pragma once
|
||||||
|
// Bit-exact irrational tables of the soothe2 scalar exp2 (0x18026b820),
|
||||||
|
// extracted from soothe_mem.bin (VA-linear: file=RVA=VA-0x180000000).
|
||||||
|
// 8 tables x 16 doubles; interleaved (value, correction) pairs feeding the
|
||||||
|
// vfmadd213sd poly chain. P3 bit-exact transcription input.
|
||||||
|
extern const double kExp2_big[16];
|
||||||
|
extern const double kExp2_f2f4e0[16];
|
||||||
|
extern const double kExp2_f2f7f8[16];
|
||||||
|
extern const double kExp2_f2f5e8[16];
|
||||||
|
extern const double kExp2_f2f900[16];
|
||||||
|
extern const double kExp2_f2ff18[16];
|
||||||
|
extern const double kExp2_f2ff20[16];
|
||||||
|
extern const double kExp2_f2fb10[16];
|
||||||
|
extern const double kExp2_f30f88[16];
|
||||||
|
|
||||||
+85
@@ -95,4 +95,89 @@ void execute(const FFTPlan* plan, std::complex<double>* buf) {
|
|||||||
execute_forward(plan, buf);
|
execute_forward(plan, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void execute_real_forward(const FFTPlan* plan, double* real_in, std::complex<double>* complex_out) {
|
||||||
|
// Forward real RFFT: N real → N/2+1 complex
|
||||||
|
// Algorithm: Pack N real as N/2 complex, do complex FFT of size N/2, unpack
|
||||||
|
uint32_t N = plan->N;
|
||||||
|
uint32_t half = N / 2;
|
||||||
|
|
||||||
|
// Pack N real as N/2 complex: z[k] = x[2k] + i*x[2k+1]
|
||||||
|
std::vector<std::complex<double>> z(half);
|
||||||
|
for (uint32_t k = 0; k < half; k++) {
|
||||||
|
z[k] = std::complex<double>(real_in[2*k], real_in[2*k + 1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a plan for N/2
|
||||||
|
FFTPlan half_plan;
|
||||||
|
init_plan(&half_plan, plan->log2N - 1);
|
||||||
|
|
||||||
|
// Complex FFT of z (size N/2)
|
||||||
|
execute_forward(&half_plan, z.data());
|
||||||
|
|
||||||
|
// Unpack to get N/2+1 complex output
|
||||||
|
// Using the formula: X[k] = 0.5 * (Z[k] + Z*[N/2-k]) - 0.5i*exp(-2*pi*i*k/N) * (Z[k] - Z*[N/2-k])
|
||||||
|
complex_out[0] = std::complex<double>(z[0].real() + z[0].imag(), 0.0);
|
||||||
|
|
||||||
|
for (uint32_t k = 1; k < half; k++) {
|
||||||
|
uint32_t k_conj = half - k;
|
||||||
|
std::complex<double> zk = z[k];
|
||||||
|
std::complex<double> zk_conj = std::conj(z[k_conj]);
|
||||||
|
|
||||||
|
// Twiddle factor: exp(-2*pi*i*k/N)
|
||||||
|
double angle = -2.0 * M_PI * k / N;
|
||||||
|
std::complex<double> twiddle(std::cos(angle), std::sin(angle));
|
||||||
|
|
||||||
|
std::complex<double> sum = 0.5 * (zk + zk_conj);
|
||||||
|
std::complex<double> diff = std::complex<double>(0.0, -0.5) * twiddle * (zk - zk_conj);
|
||||||
|
|
||||||
|
complex_out[k] = sum + diff;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Nyquist frequency
|
||||||
|
complex_out[half] = std::complex<double>(z[0].real() - z[0].imag(), 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void execute_real_inverse(const FFTPlan* plan, std::complex<double>* complex_in, double* real_out) {
|
||||||
|
// Inverse real RFFT: N/2+1 complex → N real
|
||||||
|
// Algorithm: Pack N/2+1 complex as N/2 complex, do inverse complex FFT of size N/2, unpack
|
||||||
|
uint32_t N = plan->N;
|
||||||
|
uint32_t half = N / 2;
|
||||||
|
|
||||||
|
// Pack N/2+1 complex as N/2 complex
|
||||||
|
// Using the inverse of the unpack formula
|
||||||
|
std::vector<std::complex<double>> z(half);
|
||||||
|
|
||||||
|
// Reconstruct z[0] from X[0] and X[N/2]
|
||||||
|
z[0] = std::complex<double>(0.5 * (complex_in[0].real() + complex_in[half].real()),
|
||||||
|
0.5 * (complex_in[0].real() - complex_in[half].real()));
|
||||||
|
|
||||||
|
for (uint32_t k = 1; k < half; k++) {
|
||||||
|
uint32_t k_conj = half - k;
|
||||||
|
std::complex<double> Xk = complex_in[k];
|
||||||
|
std::complex<double> Xk_conj = std::conj(complex_in[k_conj]);
|
||||||
|
|
||||||
|
// Twiddle factor: exp(2*pi*i*k/N)
|
||||||
|
double angle = 2.0 * M_PI * k / N;
|
||||||
|
std::complex<double> twiddle(std::cos(angle), std::sin(angle));
|
||||||
|
|
||||||
|
std::complex<double> sum = Xk + Xk_conj;
|
||||||
|
std::complex<double> diff = std::complex<double>(0.0, 1.0) * twiddle * (Xk - Xk_conj);
|
||||||
|
|
||||||
|
z[k] = 0.5 * (sum + diff);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a plan for N/2
|
||||||
|
FFTPlan half_plan;
|
||||||
|
init_plan(&half_plan, plan->log2N - 1);
|
||||||
|
|
||||||
|
// Inverse complex FFT (size N/2)
|
||||||
|
execute_inverse(&half_plan, z.data());
|
||||||
|
|
||||||
|
// Unpack to N real
|
||||||
|
for (uint32_t k = 0; k < half; k++) {
|
||||||
|
real_out[2*k] = z[k].real();
|
||||||
|
real_out[2*k + 1] = z[k].imag();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,4 +11,9 @@ void build_twiddle(FFTPlan* plan, double* scratch);
|
|||||||
void execute(const FFTPlan* plan, std::complex<double>* buf);
|
void execute(const FFTPlan* plan, std::complex<double>* buf);
|
||||||
void execute_inverse(const FFTPlan* plan, std::complex<double>* buf);
|
void execute_inverse(const FFTPlan* plan, std::complex<double>* buf);
|
||||||
|
|
||||||
|
// Real RFFT: N real → N/2+1 complex (forward)
|
||||||
|
// N/2+1 complex → N real (inverse)
|
||||||
|
void execute_real_forward(const FFTPlan* plan, double* real_in, std::complex<double>* complex_out);
|
||||||
|
void execute_real_inverse(const FFTPlan* plan, std::complex<double>* complex_in, double* real_out);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,236 @@
|
|||||||
|
#include "fn529fe0.hpp"
|
||||||
|
#include <cmath>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
// Structural mask-apply chain FUN_180529fe0 (mono path). Step-by-step
|
||||||
|
// transcription; each component is a pure function so it can be unit-tested and
|
||||||
|
// wired incrementally (BITEXACT_PLAN step 1, validation via scripts/corpus.py).
|
||||||
|
//
|
||||||
|
// Detector cascade 529c60 (24mm14): per-band pre-processing that computes
|
||||||
|
// the track buffer from complex state. Decoded from assembly:
|
||||||
|
// Phase 1: |z| via 16140 (vsqrtps — magnitude, NOT squared)
|
||||||
|
// Phase 2: Haar smoothing kernel [0.25, 0.5, 0.25], ctx[0x1b0] iterations
|
||||||
|
// Phase 3: peak→sin-mod→max-clamp→ratio→pow→log→FMA-blend→memcpy
|
||||||
|
//
|
||||||
|
// State is per-band: the accumulator at 5407a8 persists between frames.
|
||||||
|
|
||||||
|
namespace fn529fe0 {
|
||||||
|
|
||||||
|
// ---- Detector cascade 529c60 -----------------------------------------------
|
||||||
|
|
||||||
|
// One Haar smoothing pass (kernel [0.25, 0.5, 0.25]).
|
||||||
|
// Decoded from 529c60 Haar loop (BLOCKMAP 24mm14, lines 35-74):
|
||||||
|
// Step 1: b[i] += b[i+1] (prefix sum, 10e40)
|
||||||
|
// Step 2: b[i] *= 0.5 (scalar mul, ffe0)
|
||||||
|
// Step 3: scratch[i] = b[i+1] + b[i] (3-op add, 11580)
|
||||||
|
// Step 4: b[i+1] = 0.5 * scratch[i] (scalar mul+store, 4720)
|
||||||
|
// Net effect: b[0]=0.5*(b0+b1), b[i]=0.25*b[i-1]+0.5*b[i]+0.25*b[i+1], etc.
|
||||||
|
// Implementation follows Python reference exactly (detector_cascade.py).
|
||||||
|
void haar_one_pass(float* b, size_t n) {
|
||||||
|
if (n < 2) return;
|
||||||
|
// Steps 1+2: b[i] = 0.5*(b[i]+b[i+1]) for i in [0, n-2]
|
||||||
|
for (size_t i = 0; i < n - 1; i++) {
|
||||||
|
b[i] = 0.5f * (b[i] + b[i + 1]);
|
||||||
|
}
|
||||||
|
// Steps 3+4: b[i+1] = 0.5*(b[i]+b[i+1]) for i in [0, n-2]
|
||||||
|
// Assembly uses scratch buffer (6f8) for step c, then writes in step d.
|
||||||
|
// Equivalent: iterate backwards so b[i] is read before being overwritten.
|
||||||
|
for (size_t i = n - 1; i > 0; i--) {
|
||||||
|
b[i] = 0.5f * (b[i - 1] + b[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Haar smoothing: iterate Haar passes. ctx[0x1b0] iterations.
|
||||||
|
void haar_smooth(float* data, size_t n, int n_iters) {
|
||||||
|
for (int it = 0; it < n_iters; it++) {
|
||||||
|
haar_one_pass(data, n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compute |z| from interleaved complex state (Phase 1, 16140).
|
||||||
|
// in: interleaved [re0,im0,re1,im1,...], out: [mag0,mag1,...]
|
||||||
|
// Uses vsqrtps in assembly (NOT vmultps — magnitude, NOT squared).
|
||||||
|
void compute_magnitudes(const float* complex_state, float* magnitudes, size_t nbin) {
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
float re = complex_state[2 * i];
|
||||||
|
float im = complex_state[2 * i + 1];
|
||||||
|
magnitudes[i] = std::sqrt(re * re + im * im);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Full detector cascade 529c60 (decoded from assembly, 24mm14).
|
||||||
|
//
|
||||||
|
// Pipeline:
|
||||||
|
// 1. compute_magnitudes (Phase 1, 16140): complex → |z|
|
||||||
|
// 2. haar_smooth (Phase 2): |z| → smoothed curve
|
||||||
|
// 3. peak = max(curve) (4d56b0)
|
||||||
|
// 4. sin_peak = sin(param*30 - 90) * 0.115129 * peak (1a14cac CRT sin)
|
||||||
|
// 5. curve[i] = max(curve[i], sin_peak) (52d8a0→10860)
|
||||||
|
// 6. ratio = (ctx24 / ctx1a0) * ctx1ac
|
||||||
|
// 7. r = ratio * 0.001
|
||||||
|
// 8. inner = pow(50, r) * r
|
||||||
|
// 9. w = -log10(inner)
|
||||||
|
// 10. acc[i] = acc[i] * w + curve[i] * (1-w) (blend)
|
||||||
|
// 11. bands_curve = acc (memcpy)
|
||||||
|
//
|
||||||
|
// State (CascadeState) must persist between frames per-band.
|
||||||
|
// Complex state is interleaved re/im with length 2*nbin.
|
||||||
|
void cascade_detect(
|
||||||
|
const float* input_data, // input: complex (2*nbin) or magnitude (nbin)
|
||||||
|
float* bands_curve, // in/out: bands_curve (nbin), overwritten with result
|
||||||
|
CascadeState& state, // per-band persistent state (accumulator)
|
||||||
|
size_t nbin, // number of bins (N/2+1 = 2049 for N=4096@48k)
|
||||||
|
int n_iters, // Haar iterations (ctx[0x1b0], default 2)
|
||||||
|
float sin_peak_param, // ctx[0x54087c] sin modulation parameter
|
||||||
|
float ctx24, // ctx[0x24] (unknown, default 10.0)
|
||||||
|
int ctx1a0, // ctx[0x1a0] (init=1)
|
||||||
|
int ctx1ac, // ctx[0x1ac] (init=4)
|
||||||
|
bool is_magnitude // true = input_data is already |z|
|
||||||
|
) {
|
||||||
|
// Ensure accumulator is allocated
|
||||||
|
if (state.accumulator.size() != nbin) {
|
||||||
|
state.accumulator.assign(nbin, 0.0f);
|
||||||
|
}
|
||||||
|
float* acc = state.accumulator.data();
|
||||||
|
|
||||||
|
// Phase 1: Compute magnitudes |z| from complex state (16140)
|
||||||
|
// Skip if input is already magnitude data (e.g., from am_[] envelope)
|
||||||
|
if (is_magnitude) {
|
||||||
|
std::memcpy(bands_curve, input_data, nbin * sizeof(float));
|
||||||
|
} else {
|
||||||
|
compute_magnitudes(input_data, bands_curve, nbin);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Phase 2: Haar smoothing (529c60, ctx[0x1b0] iterations)
|
||||||
|
haar_smooth(bands_curve, nbin, n_iters);
|
||||||
|
|
||||||
|
// Phase 3: Post-processing and blend (529c60, lines 74-123)
|
||||||
|
|
||||||
|
// Peak via 4d56b0 (horizontal max of SSE4 loop)
|
||||||
|
float peak = 0.0f;
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
if (bands_curve[i] > peak) peak = bands_curve[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sin-modulated floor (1a14cac CRT sin):
|
||||||
|
// sin_peak = sin(param * 30 - 90) * 0.115129 * peak
|
||||||
|
float sin_peak = 0.0f;
|
||||||
|
if (sin_peak_param != 0.0f) {
|
||||||
|
float angle_deg = sin_peak_param * 30.0f - 90.0f;
|
||||||
|
sin_peak = std::sin(angle_deg * static_cast<float>(M_PI) / 180.0f)
|
||||||
|
* 0.115129f * peak;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clamp: curve[i] = max(curve[i], sin_peak) (52d8a0→10860)
|
||||||
|
if (sin_peak > 0.0f) {
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
if (bands_curve[i] < sin_peak) bands_curve[i] = sin_peak;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Weight computation from assembly (529e00-529e5e).
|
||||||
|
//
|
||||||
|
// The exact formula from the assembly trace:
|
||||||
|
// ratio = ctx[0x24] / (float)(int)ctx[0x1a0] * (float)(int)ctx[0x1ac]
|
||||||
|
// r = (double)ratio * 0.001
|
||||||
|
// inner = pow(50.0, r) * r (call [IAT 0x181bab3f0])
|
||||||
|
// w = (float)(-log10(inner)) (via cd6(0.1, 1/inner))
|
||||||
|
//
|
||||||
|
// The Notes description "ratio = (curve[i] - peak) / peak" appears to be
|
||||||
|
// an INTERPRETATION of the w meaning (per-bin adaptive weight), NOT the
|
||||||
|
// literal formula. The actual formula uses ctx parameters.
|
||||||
|
//
|
||||||
|
// When peak == 0, skip blend (all zeros → output unchanged).
|
||||||
|
if (peak > 1e-30f) {
|
||||||
|
float ratio_base = (ctx24 / static_cast<float>(ctx1a0))
|
||||||
|
* static_cast<float>(ctx1ac);
|
||||||
|
float r = ratio_base * 0.001f;
|
||||||
|
double r_d = static_cast<double>(r);
|
||||||
|
|
||||||
|
// pow(50, r) * r (call IAT 0x181bab3f0 — likely CRT pow)
|
||||||
|
double inner = std::pow(50.0, r_d) * r_d;
|
||||||
|
|
||||||
|
// w = -log10(inner) (cd6(0.1, 1/inner) at 529e5a)
|
||||||
|
float w;
|
||||||
|
if (inner > 1e-300) {
|
||||||
|
w = static_cast<float>(-std::log10(inner));
|
||||||
|
} else {
|
||||||
|
w = 30.0f; // clamp
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clamp w to [0, 1] for stability
|
||||||
|
w = std::min(std::max(w, 0.0f), 1.0f);
|
||||||
|
|
||||||
|
float one_minus_w = 1.0f - w;
|
||||||
|
|
||||||
|
// Blend: acc[i] *= w; acc[i] += curve[i] * (1-w)
|
||||||
|
// 52d920 (scalar mul) + 52dae0 (FMA)
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
acc[i] = acc[i] * w + bands_curve[i] * one_minus_w;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy accumulator → bands_curve (52dbc0 memcpy)
|
||||||
|
std::memcpy(bands_curve, acc, nbin * sizeof(float));
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---- Legacy structural chain (pre-cascade) ---------------------------------
|
||||||
|
|
||||||
|
void iir1(float* x, const double* A, const double* B, size_t nbin, double acc0) {
|
||||||
|
// leaky first-order: y = A*acc + B*x ; acc = y (B = 1-A from live tables)
|
||||||
|
// State persists across calls via static accumulator (per-thread).
|
||||||
|
static thread_local double acc = 0.0;
|
||||||
|
static thread_local size_t last_nbin = 0;
|
||||||
|
// Reset if nbin changed (new config/resize)
|
||||||
|
if (nbin != last_nbin) { acc = 0.0; last_nbin = nbin; }
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
double y = A[i] * acc + B[i] * static_cast<double>(x[i]);
|
||||||
|
acc = y;
|
||||||
|
x[i] = static_cast<float>(y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void blend_exp2(float* mask, const float* x, const float* freqaxis,
|
||||||
|
float mix, size_t nbin) {
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
double blend = static_cast<double>(freqaxis[i]) * (1.0 - mix) + mix * 0.8;
|
||||||
|
// mask = exp2(-x) * blend (x is level; attenuation => exp2(-level))
|
||||||
|
mask[i] = static_cast<float>(std::exp2(-static_cast<double>(x[i])) * blend);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void combine_acc(double* acc, const float* band, const float* f6f8,
|
||||||
|
const float* wAtt, const float* wRel, size_t nfft) {
|
||||||
|
const size_t half = nfft / 2;
|
||||||
|
// acc = band - f6f8 (0x8d60 sub), over full nfft (mirrored halves)
|
||||||
|
for (size_t i = 0; i < half; i++) {
|
||||||
|
acc[i] = static_cast<double>(band[i]) - static_cast<double>(f6f8[i]);
|
||||||
|
acc[nfft - 1 - i] = acc[i];
|
||||||
|
}
|
||||||
|
// += wAtt*upper + wRel*lower (weights indexed by bin, applied to mirrored halves)
|
||||||
|
for (size_t i = 0; i < half; i++) {
|
||||||
|
acc[i] += static_cast<double>(wAtt[i]) * static_cast<double>(f6f8[i]);
|
||||||
|
acc[i] += static_cast<double>(wRel[i]) * static_cast<double>(f6f8[i]);
|
||||||
|
}
|
||||||
|
// += band (0x5a20), full nfft
|
||||||
|
for (size_t i = 0; i < half; i++) {
|
||||||
|
acc[i] += static_cast<double>(band[i]);
|
||||||
|
acc[nfft - 1 - i] += static_cast<double>(band[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void warp_mask(float* mask, const float* kBand768, const float* kWarp, size_t nbin) {
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
mask[i] *= kBand768[i] * kWarp[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void dry_wet(float* mask, float fVar30, float wet, size_t nbin) {
|
||||||
|
if (fVar30 == 1.0f && wet == 1.0f) return; // identity default
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
mask[i] = mask[i] * (fVar30 * wet) + (1.0f - fVar30);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace fn529fe0
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <cstddef>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
// Structural transcription of the soothe2 mask-apply mono path
|
||||||
|
// FUN_180529fe0 (0x5408b8==0), BITEXACT_PLAN step 1. Uses the live-captured
|
||||||
|
// tables (dsp/rt_mask_tables.*, dsp/rt_weights.*) and the exact step sequence
|
||||||
|
// from NOTES_LEVEL:820-840 / :237-253.
|
||||||
|
//
|
||||||
|
// Unlike the empirical bridge (dsp/framed_model.cpp), this reproduces the real
|
||||||
|
// reduction/exp2-domain chain:
|
||||||
|
// scale -> IIR1 -> copy -> IIR2 -> mirror -> blend(0.8 pedestal)
|
||||||
|
// -> exp2(-level)*blend -> combine/acc -> warp(kBand768*kWarp)
|
||||||
|
// -> IIR3 x2 -> dry/wet -> (FFT-conv is step 4, separate module)
|
||||||
|
//
|
||||||
|
// The IIR/weight tables are indexed 0..N/2 of the INTERNAL grid (N=4096/SR=48000);
|
||||||
|
// per-bin level is supplied by the caller (level-path), same xv domain as bridge
|
||||||
|
// (level = am/res) but fed through the structural chain instead of the LUT bridge.
|
||||||
|
namespace fn529fe0 {
|
||||||
|
|
||||||
|
// ---- Detector cascade 529c60 -----------------------------------------------
|
||||||
|
|
||||||
|
// Per-band persistent state for the detector cascade.
|
||||||
|
// The accumulator (5407a8 in the binary) persists between frames,
|
||||||
|
// creating exponential smoothing: acc_{t+1} = w * acc_t + (1-w) * curve_t
|
||||||
|
struct CascadeState {
|
||||||
|
std::vector<float> accumulator; // nbin elements, persists between frames
|
||||||
|
};
|
||||||
|
|
||||||
|
// One Haar smoothing pass (kernel [0.25, 0.5, 0.25]).
|
||||||
|
// Decoded from 529c60 Haar loop (BLOCKMAP 24mm14, lines 35-74).
|
||||||
|
// Net effect: b[i] = 0.25*b[i-1] + 0.5*b[i] + 0.25*b[i+1] (wavelet smooth).
|
||||||
|
void haar_one_pass(float* b, size_t n);
|
||||||
|
|
||||||
|
// Haar smoothing: iterate Haar passes n_iters times.
|
||||||
|
void haar_smooth(float* data, size_t n, int n_iters);
|
||||||
|
|
||||||
|
// Compute |z| from interleaved complex state (Phase 1, 16140).
|
||||||
|
// in: interleaved [re0,im0,re1,im1,...], out: [mag0,mag1,...]
|
||||||
|
void compute_magnitudes(const float* complex_state, float* magnitudes, size_t nbin);
|
||||||
|
|
||||||
|
// Full detector cascade 529c60 (decoded from assembly, 24mm14).
|
||||||
|
//
|
||||||
|
// Pipeline:
|
||||||
|
// 1. compute_magnitudes: complex → |z| (skipped if is_magnitude=true)
|
||||||
|
// 2. haar_smooth: |z| → smoothed curve
|
||||||
|
// 3. peak = max(curve)
|
||||||
|
// 4. sin_peak = sin(param*30 - 90) * 0.115129 * peak
|
||||||
|
// 5. curve[i] = max(curve[i], sin_peak)
|
||||||
|
// 6. w = -log10(pow(50, ratio*0.001) * ratio*0.001)
|
||||||
|
// 7. acc[i] = acc[i] * w + curve[i] * (1-w)
|
||||||
|
// 8. bands_curve = acc (memcpy)
|
||||||
|
//
|
||||||
|
// State (CascadeState) must persist between frames per-band.
|
||||||
|
// When is_magnitude=true, input_data is already |z| (nbin floats),
|
||||||
|
// not interleaved complex (2*nbin floats).
|
||||||
|
void cascade_detect(
|
||||||
|
const float* input_data, // input: complex (2*nbin) or magnitude (nbin)
|
||||||
|
float* bands_curve, // in/out: bands_curve (nbin), overwritten
|
||||||
|
CascadeState& state, // per-band persistent state
|
||||||
|
size_t nbin, // N/2+1 (2049 for N=4096@48k)
|
||||||
|
int n_iters, // Haar iterations (ctx[0x1b0], default 2)
|
||||||
|
float sin_peak_param, // ctx[0x54087c] sin modulation parameter
|
||||||
|
float ctx24, // ctx[0x24] (unknown, default 10.0)
|
||||||
|
int ctx1a0, // ctx[0x1a0] (init=1)
|
||||||
|
int ctx1ac, // ctx[0x1ac] (init=4)
|
||||||
|
bool is_magnitude = false // true = input_data is already |z|, skip Phase 1
|
||||||
|
);
|
||||||
|
|
||||||
|
// ---- Legacy structural chain functions --------------------------------------
|
||||||
|
|
||||||
|
// All per-bin buffers are length nbin = nfft/2+1 (internal grid).
|
||||||
|
// IIR stage: y[i] = A[i]*acc + B[i]*x[i]; acc=y (first-order leaky, like leveltrack).
|
||||||
|
void iir1(float* x, const double* A, const double* B, size_t nbin, double acc0);
|
||||||
|
|
||||||
|
// Blend step 6: f6f8[k] = freqaxis[k]*(1-mix) + mix*0.8; out = exp2(-x)*f6f8.
|
||||||
|
void blend_exp2(float* mask, const float* x, const float* freqaxis,
|
||||||
|
float mix, size_t nbin);
|
||||||
|
|
||||||
|
// Combine step 7 (reduction/exp2 domain): accumulates per-band.
|
||||||
|
// acc = band - f6f8; += wAtt[mirror]*upper; += wRel[mirror]*lower; += band
|
||||||
|
// In-place on acc; band and f6f8 are inputs (len nbin, mirrored to full nfft).
|
||||||
|
void combine_acc(double* acc, const float* band, const float* f6f8,
|
||||||
|
const float* wAtt, const float* wRel, size_t nfft);
|
||||||
|
|
||||||
|
// Warp step 8: mask *= kBand768 * kWarp (two multiplies).
|
||||||
|
void warp_mask(float* mask, const float* kBand768, const float* kWarp, size_t nbin);
|
||||||
|
|
||||||
|
// Dry/wet step 10 (fVar30=1, 0x540888=1 -> identity for default).
|
||||||
|
void dry_wet(float* mask, float fVar30, float wet, size_t nbin);
|
||||||
|
|
||||||
|
} // namespace fn529fe0
|
||||||
@@ -0,0 +1,200 @@
|
|||||||
|
#include <cstdio>
|
||||||
|
#include <cmath>
|
||||||
|
#include <vector>
|
||||||
|
#include <cstring>
|
||||||
|
#include "fn529fe0.hpp"
|
||||||
|
#include "rt_mask_tables.hpp"
|
||||||
|
#include "rt_weights.hpp"
|
||||||
|
|
||||||
|
// Modular black-box check for the structural FUN_180529fe0 chain components
|
||||||
|
// (BITEXACT_PLAN step 1). Validates invariants against the live tables:
|
||||||
|
// - kIIR_A1/B1 : B == 1 - A, and IIR1 smooths a step input monotonically
|
||||||
|
// - blend_exp2 : out == exp2(-x)*blend, blend = freqaxis*(1-mix)+mix*0.8
|
||||||
|
// - combine_acc: subtract then add band/f6f8 contributions (exact)
|
||||||
|
// - warp_mask : multiplies by kBand768*kWarp
|
||||||
|
// - cascade : Haar, magnitudes, blend (529c60 decode)
|
||||||
|
int main() {
|
||||||
|
const size_t nbin = 2049; // internal N/2+1 grid used by the chain
|
||||||
|
const size_t nfft = 4096;
|
||||||
|
int fail = 0;
|
||||||
|
|
||||||
|
// --- IIR tables: B1 == 1 - A1 ---
|
||||||
|
double maxB = 0.0;
|
||||||
|
for (size_t i = 0; i < nbin; i++)
|
||||||
|
maxB = std::fmax(maxB, std::fabs(kIIR_B1[i] - (1.0 - kIIR_A1[i])));
|
||||||
|
std::printf("IIR: max|B1-(1-A1)| = %.3e (%s)\n", maxB, maxB < 1e-12 ? "OK" : "MISMATCH");
|
||||||
|
if (maxB >= 1e-12) fail = 1;
|
||||||
|
|
||||||
|
// --- IIR1 smooths a step input monotonically ---
|
||||||
|
std::vector<float> x(nbin);
|
||||||
|
std::vector<double> acc1(nbin);
|
||||||
|
for (size_t i = 0; i < nbin; i++) x[i] = (i < 100 ? 0.0f : 1.0f);
|
||||||
|
std::vector<float> orig = x;
|
||||||
|
fn529fe0::iir1(x.data(), kIIR_A1, kIIR_B1, nbin, 0.0);
|
||||||
|
bool monotonic = true;
|
||||||
|
for (size_t i = 1; i < nbin; i++)
|
||||||
|
if (x[i] < x[i - 1] - 1e-6) { monotonic = false; break; }
|
||||||
|
std::printf("IIR1 step: monotonic=%d x[0]=%.3f x[mid]=%.3f x[last]=%.3f\n",
|
||||||
|
monotonic, x[0], x[nbin/2], x[nbin-1]);
|
||||||
|
if (!monotonic || std::fabs(x[0] - 0.0f) > 1e-3) fail = 1;
|
||||||
|
|
||||||
|
// --- blend_exp2 correctness ---
|
||||||
|
std::vector<float> mask(nbin), lvl(nbin), freq(nbin);
|
||||||
|
for (size_t i = 0; i < nbin; i++) { lvl[i] = 0.5f * (1.0f + float(i) / nbin); freq[i] = 1.0f; }
|
||||||
|
const float mix = 1.0f;
|
||||||
|
fn529fe0::blend_exp2(mask.data(), lvl.data(), freq.data(), mix, nbin);
|
||||||
|
double max_e = 0.0;
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
double expect = std::exp2(-(double)lvl[i]) * 0.8;
|
||||||
|
max_e = std::fmax(max_e, std::fabs(mask[i] - expect));
|
||||||
|
}
|
||||||
|
std::printf("blend_exp2: max|out-exp2(-x)*0.8| = %.3e (%s)\n",
|
||||||
|
max_e, max_e < 1e-6 ? "OK" : "MISMATCH");
|
||||||
|
if (max_e >= 1e-6) fail = 1;
|
||||||
|
|
||||||
|
// --- combine_acc: acc = band-f6f8 + wAtt*f6f8 + wRel*f6f8 + band.
|
||||||
|
// With band=1, f6f8=0, weights=0: acc = band - 0 + 0 + 0 + band = 2 everywhere. ---
|
||||||
|
std::vector<double> acc(nfft, 0.0);
|
||||||
|
std::vector<float> band(nbin, 1.0f), f6f8(nbin, 0.0f), wA(nbin, 0.0f), wR(nbin, 0.0f);
|
||||||
|
fn529fe0::combine_acc(acc.data(), band.data(), f6f8.data(), wA.data(), wR.data(), nfft);
|
||||||
|
double max_c = 0.0;
|
||||||
|
for (size_t i = 0; i < nfft; i++) max_c = std::fmax(max_c, std::fabs(acc[i] - 2.0));
|
||||||
|
std::printf("combine: acc=2 for band=1,f6f8=0,w=0 max|d|=%.3e (%s)\n",
|
||||||
|
max_c, max_c < 1e-12 ? "OK" : "MISMATCH");
|
||||||
|
if (max_c >= 1e-12) fail = 1;
|
||||||
|
|
||||||
|
// --- warp_mask applies kBand768*kWarp ---
|
||||||
|
std::vector<float> w(nbin);
|
||||||
|
for (size_t i = 0; i < nbin; i++) w[i] = 1.0f;
|
||||||
|
const float* k768 = kBand768; // band0 table (per-band in real path)
|
||||||
|
fn529fe0::warp_mask(w.data(), k768, kWarp, nbin);
|
||||||
|
double max_w = 0.0;
|
||||||
|
for (size_t i = 0; i < nbin; i++)
|
||||||
|
max_w = std::fmax(max_w, std::fabs(w[i] - k768[i] * kWarp[i]));
|
||||||
|
std::printf("warp: mask==kBand768*kWarp max|d|=%.3e (%s)\n",
|
||||||
|
max_w, max_w < 1e-6 ? "OK" : "MISMATCH");
|
||||||
|
if (max_w >= 1e-6) fail = 1;
|
||||||
|
|
||||||
|
// --- live table ranges ---
|
||||||
|
std::printf("live: kWarp[0]=%.3f kWarp[2048]=%.3f kBand768[0]=%.3f kBand768[2048]=%.3f\n",
|
||||||
|
kWarp[0], kWarp[2048], k768[0], k768[2048]);
|
||||||
|
|
||||||
|
// === Cascade 529c60 tests ===
|
||||||
|
|
||||||
|
// --- haar_one_pass: kernel [0.25, 0.5, 0.25] ---
|
||||||
|
{
|
||||||
|
// Input: [1, 3, 5, 7, 9] (5 elements)
|
||||||
|
// Expected: b[0]=0.5*(1+3)=2.0; b[1]=0.25*1+0.5*3+0.25*5=3.0;
|
||||||
|
// b[2]=0.25*3+0.5*5+0.25*7=5.0; b[3]=0.25*5+0.5*7+0.25*9=7.0;
|
||||||
|
// b[4]=0.25*7+0.75*9=8.5 (boundary)
|
||||||
|
float data[] = {1.0f, 3.0f, 5.0f, 7.0f, 9.0f};
|
||||||
|
float expected[] = {2.0f, 3.0f, 5.0f, 7.0f, 8.5f};
|
||||||
|
fn529fe0::haar_one_pass(data, 5);
|
||||||
|
double max_h = 0.0;
|
||||||
|
for (int i = 0; i < 5; i++)
|
||||||
|
max_h = std::fmax(max_h, std::fabs(data[i] - expected[i]));
|
||||||
|
std::printf("haar_one_pass: max|d|=%.3e (%s)\n", max_h,
|
||||||
|
max_h < 1e-6 ? "OK" : "MISMATCH");
|
||||||
|
if (max_h >= 1e-6) fail = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- haar_smooth: 2 iterations on ramp ---
|
||||||
|
{
|
||||||
|
float data[] = {0.0f, 0.25f, 0.5f, 0.75f, 1.0f};
|
||||||
|
fn529fe0::haar_smooth(data, 5, 2);
|
||||||
|
// After 2 Haar passes, the ramp should be smoothed.
|
||||||
|
// Just check monotonicity and bounds [0, 1].
|
||||||
|
bool ok = true;
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
if (data[i] < -0.01f || data[i] > 1.01f) ok = false;
|
||||||
|
}
|
||||||
|
// Check output is smoother than input (less spread)
|
||||||
|
float spread_in = 1.0f - 0.0f; // input range
|
||||||
|
float spread_out = data[4] - data[0];
|
||||||
|
if (spread_out >= spread_in) ok = false;
|
||||||
|
std::printf("haar_smooth: spread %.3f→%.3f (%s)\n",
|
||||||
|
spread_in, spread_out, ok ? "OK" : "MISMATCH");
|
||||||
|
if (!ok) fail = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- compute_magnitudes: |z| from complex pairs ---
|
||||||
|
{
|
||||||
|
// Input: [3,4, 5,12, 0,0] → [5, 13, 0]
|
||||||
|
float complex_state[] = {3.0f, 4.0f, 5.0f, 12.0f, 0.0f, 0.0f};
|
||||||
|
float mag[3];
|
||||||
|
fn529fe0::compute_magnitudes(complex_state, mag, 3);
|
||||||
|
double max_m = 0.0;
|
||||||
|
max_m = std::fmax(max_m, std::fabs(mag[0] - 5.0f));
|
||||||
|
max_m = std::fmax(max_m, std::fabs(mag[1] - 13.0f));
|
||||||
|
max_m = std::fmax(max_m, std::fabs(mag[2] - 0.0f));
|
||||||
|
std::printf("compute_magnitudes: max|d|=%.3e (%s)\n", max_m,
|
||||||
|
max_m < 1e-5 ? "OK" : "MISMATCH");
|
||||||
|
if (max_m >= 1e-5) fail = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- cascade_detect: full pipeline smoke test ---
|
||||||
|
{
|
||||||
|
// Create test signal: DC=1 in all bins (complex: re=1, im=0)
|
||||||
|
std::vector<float> complex_state(2 * nbin);
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
complex_state[2 * i] = 1.0f; // re
|
||||||
|
complex_state[2 * i + 1] = 0.0f; // im
|
||||||
|
}
|
||||||
|
std::vector<float> bands_curve(nbin, 0.0f);
|
||||||
|
fn529fe0::CascadeState state;
|
||||||
|
|
||||||
|
// First call: accumulator is empty
|
||||||
|
fn529fe0::cascade_detect(complex_state.data(), bands_curve.data(),
|
||||||
|
state, nbin, 2,
|
||||||
|
0.0f, // sin_peak_param=0 (disabled)
|
||||||
|
10.0f, // ctx24
|
||||||
|
1, // ctx1a0
|
||||||
|
4); // ctx1ac
|
||||||
|
|
||||||
|
// All magnitudes are 1.0, Haar-smoothed should be ~1.0
|
||||||
|
// Peak should be ~1.0, sin_peak disabled
|
||||||
|
// Check output is in valid range
|
||||||
|
bool ok = true;
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
if (bands_curve[i] < -0.01f || bands_curve[i] > 2.0f) ok = false;
|
||||||
|
}
|
||||||
|
std::printf("cascade_detect DC: [0]=%.4f [mid]=%.4f [end]=%.4f (%s)\n",
|
||||||
|
bands_curve[0], bands_curve[nbin/2], bands_curve[nbin-1],
|
||||||
|
ok ? "OK" : "MISMATCH");
|
||||||
|
if (!ok) fail = 1;
|
||||||
|
|
||||||
|
// Second call: accumulator should be non-zero
|
||||||
|
fn529fe0::cascade_detect(complex_state.data(), bands_curve.data(),
|
||||||
|
state, nbin, 2, 0.0f, 10.0f, 1, 4);
|
||||||
|
std::printf("cascade_detect DC 2nd: acc[0]=%.6f out[0]=%.4f\n",
|
||||||
|
state.accumulator[0], bands_curve[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- cascade_detect: alternating signal ---
|
||||||
|
{
|
||||||
|
std::vector<float> cs(2 * nbin);
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
cs[2 * i] = (i % 2 == 0) ? 2.0f : 0.5f;
|
||||||
|
cs[2 * i + 1] = 0.0f;
|
||||||
|
}
|
||||||
|
std::vector<float> bc(nbin, 0.0f);
|
||||||
|
fn529fe0::CascadeState st;
|
||||||
|
fn529fe0::cascade_detect(cs.data(), bc.data(), st, nbin, 2,
|
||||||
|
0.0f, 10.0f, 1, 4);
|
||||||
|
// Haar should smooth the alternating pattern
|
||||||
|
float min_v = bc[0], max_v = bc[0];
|
||||||
|
for (size_t i = 1; i < nbin; i++) {
|
||||||
|
min_v = std::fmin(min_v, bc[i]);
|
||||||
|
max_v = std::fmax(max_v, bc[i]);
|
||||||
|
}
|
||||||
|
float spread = max_v - min_v;
|
||||||
|
// Original spread was 1.5, after 2 Haar passes should be much smaller
|
||||||
|
bool ok = spread < 0.5f;
|
||||||
|
std::printf("cascade_detect alt: spread=%.4f [0]=%.4f [1]=%.4f (%s)\n",
|
||||||
|
spread, bc[0], bc[1], ok ? "OK" : "MISMATCH");
|
||||||
|
if (!ok) fail = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::printf("fn529fe0 check %s\n", fail ? "FAIL" : "PASS");
|
||||||
|
return fail;
|
||||||
|
}
|
||||||
+105
@@ -0,0 +1,105 @@
|
|||||||
|
#include "fnfaith.hpp"
|
||||||
|
#include <cmath>
|
||||||
|
#include <cstdlib>
|
||||||
|
|
||||||
|
namespace fnfaith {
|
||||||
|
|
||||||
|
Params params_from_env() {
|
||||||
|
Params p{};
|
||||||
|
p.scale = getenv("RT_FAITH_SCALE") ? atof(getenv("RT_FAITH_SCALE")) : 1.0;
|
||||||
|
p.kappa = getenv("RT_FAITH_KAPPA") ? atof(getenv("RT_FAITH_KAPPA")) : 0.0094;
|
||||||
|
p.p = getenv("RT_FAITH_P") ? atof(getenv("RT_FAITH_P")) : 0.822;
|
||||||
|
p.tau1 = getenv("RT_FAITH_TAU1") ? atof(getenv("RT_FAITH_TAU1")) : 19.03;
|
||||||
|
p.mult1 = getenv("RT_FAITH_MULT1") ? atof(getenv("RT_FAITH_MULT1")) : 360.0;
|
||||||
|
p.tau3 = getenv("RT_FAITH_TAU3") ? atof(getenv("RT_FAITH_TAU3")) : 10.68;
|
||||||
|
p.mult3 = getenv("RT_FAITH_MULT3") ? atof(getenv("RT_FAITH_MULT3")) : 2400.0;
|
||||||
|
p.tau4 = getenv("RT_FAITH_TAU4") ? atof(getenv("RT_FAITH_TAU4")) : 10.68;
|
||||||
|
p.mult4 = getenv("RT_FAITH_MULT4") ? atof(getenv("RT_FAITH_MULT4")) : 2400.0;
|
||||||
|
p.C_hz = getenv("RT_FAITH_C") ? atof(getenv("RT_FAITH_C")) : 1000.0;
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
struct FaithCoefs {
|
||||||
|
std::vector<double> up, down;
|
||||||
|
};
|
||||||
|
|
||||||
|
// FUN_180533340 transcription (constants from dump: DAT_24c3d8c=0.5, DAT_24c46b8=-2pi)
|
||||||
|
FaithCoefs gen_coefs(size_t nbin, double sr, double tau, double mult, double p,
|
||||||
|
double C_hz, double kappa) {
|
||||||
|
FaithCoefs c;
|
||||||
|
c.up.assign(nbin, 0.0);
|
||||||
|
c.down.assign(nbin, 1.0);
|
||||||
|
const double srh = sr * 0.5;
|
||||||
|
const double fcnorm = (C_hz / srh) * (double)nbin;
|
||||||
|
for (size_t i = 1; i < nbin; i++) {
|
||||||
|
const double r = fcnorm / (double)i;
|
||||||
|
const double g = ((double)i <= fcnorm) ? r : std::pow(r, p);
|
||||||
|
const double cd = 1.0 / (g * tau / mult + 1.0);
|
||||||
|
double up = std::exp(cd * g * tau * kappa * (-6.283185307179586));
|
||||||
|
if (up > 1.0) up = 1.0;
|
||||||
|
if (up < 0.0) up = 0.0;
|
||||||
|
c.up[i] = up;
|
||||||
|
c.down[i] = 1.0 - up;
|
||||||
|
}
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUN_18052d650: acc=0; forward all bins; backward n-2..1, acc persists into bwd.
|
||||||
|
void bidir(std::vector<double>& accst, const FaithCoefs& cf, float* x, size_t nbin) {
|
||||||
|
double acc = 0.0;
|
||||||
|
accst[0] = 0.0;
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
acc = cf.up[i] * acc + cf.down[i] * (double)x[i];
|
||||||
|
x[i] = (float)acc;
|
||||||
|
}
|
||||||
|
for (size_t i = (size_t)((long long)nbin - 2); i >= 1; i--) {
|
||||||
|
acc = cf.up[i] * acc + cf.down[i] * (double)x[i];
|
||||||
|
x[i] = (float)acc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
void band_mask_faithful(const float* am, const float* res, size_t nbin,
|
||||||
|
float sample_rate, float scale_factor, const Params& pr,
|
||||||
|
float* mask_out) {
|
||||||
|
static std::vector<FaithCoefs> cache;
|
||||||
|
static size_t cached_nbin = 0;
|
||||||
|
static double cached_sr = 0.0;
|
||||||
|
static Params cached_pr{};
|
||||||
|
if (cache.empty() || cached_nbin != nbin || cached_sr != sample_rate ||
|
||||||
|
cached_pr.kappa != pr.kappa || cached_pr.p != pr.p ||
|
||||||
|
cached_pr.tau1 != pr.tau1 || cached_pr.mult1 != pr.mult1 ||
|
||||||
|
cached_pr.tau3 != pr.tau3 || cached_pr.mult3 != pr.mult3 ||
|
||||||
|
cached_pr.tau4 != pr.tau4 || cached_pr.mult4 != pr.mult4 ||
|
||||||
|
cached_pr.C_hz != pr.C_hz) {
|
||||||
|
cache.clear();
|
||||||
|
cache.push_back(gen_coefs(nbin, sample_rate, pr.tau1, pr.mult1, pr.p, pr.C_hz, pr.kappa));
|
||||||
|
cache.push_back(gen_coefs(nbin, sample_rate, pr.tau3, pr.mult3, pr.p, pr.C_hz, pr.kappa));
|
||||||
|
cache.push_back(gen_coefs(nbin, sample_rate, pr.tau4, pr.mult4, pr.p, pr.C_hz, pr.kappa));
|
||||||
|
cached_nbin = nbin;
|
||||||
|
cached_sr = sample_rate;
|
||||||
|
cached_pr = pr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// band curve: lvl_raw scaled
|
||||||
|
std::vector<float> m(nbin);
|
||||||
|
for (size_t k = 0; k < nbin; k++) {
|
||||||
|
double res_k = res[k] > 1e-12 ? (double)res[k] : 1e-12;
|
||||||
|
double lvl = (double)am[k] / res_k * (double)scale_factor;
|
||||||
|
m[k] = (float)(std::exp2(-(lvl * pr.scale)) );
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<double> accst(1, 0.0);
|
||||||
|
bidir(accst, cache[0], m.data(), nbin); // #1
|
||||||
|
bidir(accst, cache[0], m.data(), nbin); // #2
|
||||||
|
bidir(accst, cache[1], m.data(), nbin); // #3
|
||||||
|
bidir(accst, cache[2], m.data(), nbin); // #4a
|
||||||
|
bidir(accst, cache[2], m.data(), nbin); // #4b
|
||||||
|
|
||||||
|
for (size_t k = 0; k < nbin; k++) mask_out[k] = m[k];
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace fnfaith
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
#pragma once
|
||||||
|
// FAITHFUL mask-shaping chain (22w) — transcription of FUN_180529fe0 per
|
||||||
|
// handoff/BLOCKMAP_529fe0.md (raw asm). Replaces process_band_structural
|
||||||
|
// when RT_FAITHFUL=1.
|
||||||
|
//
|
||||||
|
// band = lvl * s (s = RT_FAITH_SCALE, decomp: /0x1a0*0x870*0x88c)
|
||||||
|
// mask = exp2(-band) (bigkernel exp2 family)
|
||||||
|
// bidir(mask, A); bidir(mask, A) // states reset each pass (52d650 + inline)
|
||||||
|
// bidir(mask, B) // pass #3
|
||||||
|
// bidir(mask, C); bidir(mask, C) // pass #4 x2
|
||||||
|
// mirror upper half; dry/wet identity.
|
||||||
|
//
|
||||||
|
// Bidirectional one-pole per FUN_18052d650: acc = up[i]*acc + down[i]*x[i],
|
||||||
|
// forward over all bins, backward n-2..1 with persistent acc, reset per call.
|
||||||
|
// Coefficients per FUN_180533340 (freq-warped): fc_bin = C/(sr/2)*nbin;
|
||||||
|
// g = fc/i below crossover, powf(fc/i, p) above; c = 1/(g*tau/mult+1);
|
||||||
|
// up[i] = exp(-2*pi*kappa*c*g*tau), down[i] = 1-up[i].
|
||||||
|
//
|
||||||
|
// Decoded defaults (FUN_180530b60 log-interp @ live 0x540878/87c = 0.5):
|
||||||
|
// setA/B tau=19.03 mult=360 ; set3/set4 tau=10.68 mult=2400 ; p=0.822 ;
|
||||||
|
// C=1000 Hz ; kappa = 1/T8 ~ 0.0094 (T8 unknown -> env).
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
namespace fnfaith {
|
||||||
|
|
||||||
|
struct Params {
|
||||||
|
double scale; // RT_FAITH_SCALE
|
||||||
|
double kappa; // RT_FAITH_KAPPA
|
||||||
|
double p; // RT_FAITH_P
|
||||||
|
double tau1, mult1; // state A (#1,#2)
|
||||||
|
double tau3, mult3; // state B (#3)
|
||||||
|
double tau4, mult4; // state C (#4 x2)
|
||||||
|
double C_hz; // crossover (1000)
|
||||||
|
};
|
||||||
|
|
||||||
|
Params params_from_env();
|
||||||
|
|
||||||
|
// Compute lower-half mask [0, nbin) for one band from lvl_raw = am/res*scale_factor.
|
||||||
|
void band_mask_faithful(const float* am, const float* res, size_t nbin,
|
||||||
|
float sample_rate, float scale_factor, const Params& pr,
|
||||||
|
float* mask_out /* nbin */);
|
||||||
|
|
||||||
|
} // namespace fnfaith
|
||||||
+626
-71
@@ -1,70 +1,527 @@
|
|||||||
#include "framed_model.hpp"
|
#include "framed_model.hpp"
|
||||||
#include "twin.hpp"
|
#include "twin.hpp"
|
||||||
#include "freqpath.hpp"
|
#include "freqpath.hpp"
|
||||||
|
#include "rt_mask_tables.hpp"
|
||||||
|
#include "rt_weights.hpp"
|
||||||
|
#include "fn529fe0.hpp"
|
||||||
|
#include "fnfaith.hpp"
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
constexpr float G_FIT = 0.9963f;
|
|
||||||
constexpr float W_FIT = 0.3335f;
|
|
||||||
constexpr float A_FIT = 0.9807f;
|
|
||||||
// sens XML -> internal sens_stored = sens * 2.054 (NOTES_TWIN:74: XML 12 -> 24.65 dB).
|
|
||||||
// GAIN_band = sqrt(param_5) = 10^(sens_stored/40).
|
|
||||||
constexpr float SENS_SCALE = 2.054f;
|
constexpr float SENS_SCALE = 2.054f;
|
||||||
|
|
||||||
// framed_render.py LUT nodes (Pchip): C = G_FIT*LUT(xv) + W_FIT*warp^A_FIT
|
constexpr double G_FIT = 0.9963;
|
||||||
constexpr double LX[12] = {-0.75, -0.5012, -0.5, -0.2012, 0.0988, 0.2488,
|
constexpr double W_FIT = 0.3335;
|
||||||
0.3988, 0.5488, 0.574, 0.61, 0.75, 1.0};
|
constexpr double A_FIT = 0.9807;
|
||||||
constexpr double LY[12] = {0.4402, 0.366, 0.4552, 0.459, 0.541, 0.576,
|
constexpr double RP0 = 0.0275;
|
||||||
0.608, 0.636, 0.5645, 0.6471, 0.6562, 0.6670};
|
constexpr double DRP = 0.2159;
|
||||||
constexpr int LN = 12;
|
|
||||||
|
|
||||||
// PchipInterpolator (monotone cubic Hermite, scipy semantics) eval at one x.
|
static constexpr double kLX[12] = { -0.75, -0.5012, -0.5, -0.2012, 0.0988, 0.2488,
|
||||||
double pchip_eval(double x) {
|
0.3988, 0.5488, 0.574, 0.61, 0.75, 1.0 };
|
||||||
if (x <= LX[0]) return LY[0];
|
static constexpr double kLY[12] = { 0.4402, 0.366, 0.4552, 0.459, 0.541, 0.576,
|
||||||
if (x >= LX[LN - 1]) return LY[LN - 1];
|
0.608, 0.636, 0.5645, 0.6471, 0.6562, 0.6670 };
|
||||||
// slopes
|
|
||||||
double m[LN];
|
static double lut_pchip(double x) {
|
||||||
for (int i = 0; i < LN - 1; i++) m[i] = (LY[i + 1] - LY[i]) / (LX[i + 1] - LX[i]);
|
int n = 12;
|
||||||
double d[LN];
|
x = std::min(std::max(x, kLX[0]), kLX[n - 1]);
|
||||||
d[0] = m[0];
|
double h[12], d[12];
|
||||||
for (int i = 1; i < LN - 1; i++) {
|
for (int i = 0; i < n - 1; i++) h[i] = kLX[i + 1] - kLX[i];
|
||||||
if (m[i - 1] * m[i] <= 0.0) d[i] = 0.0;
|
for (int i = 0; i < n - 1; i++) d[i] = (kLY[i + 1] - kLY[i]) / h[i];
|
||||||
else {
|
double sl[12], sr[12];
|
||||||
double w1 = 2 * LX[i + 1] - LX[i] - LX[i - 1];
|
sl[0] = d[0]; sr[n - 1] = d[n - 2];
|
||||||
double w2 = LX[i + 1] - LX[i - 1];
|
for (int i = 1; i < n - 1; i++) {
|
||||||
d[i] = (w1 + w2) / ((w1 / m[i - 1]) + (w2 / m[i]));
|
if (d[i - 1] * d[i] <= 0.0) { sl[i] = sr[i - 1] = 0.0; continue; }
|
||||||
}
|
double w1 = 2 * h[i] + h[i - 1], w2 = h[i] + 2 * h[i - 1];
|
||||||
|
sl[i] = (w1 + w2) / (w1 / d[i - 1] + w2 / d[i]);
|
||||||
|
sr[i - 1] = sl[i];
|
||||||
}
|
}
|
||||||
d[LN - 1] = m[LN - 2];
|
int i = std::upper_bound(kLX, kLX + n, x) - kLX - 1;
|
||||||
int i = 0;
|
i = std::max(0, std::min(i, n - 2));
|
||||||
while (i < LN - 2 && x > LX[i + 1]) i++;
|
double hh = h[i], t = (x - kLX[i]) / hh;
|
||||||
double h = LX[i + 1] - LX[i];
|
double t2 = t * t, t3 = t2 * t;
|
||||||
double t = (x - LX[i]) / h;
|
double h00 = 2 * t3 - 3 * t2 + 1, h10 = t3 - 2 * t2 + t;
|
||||||
double y0 = LY[i], y1 = LY[i + 1], d0 = d[i], d1 = d[i + 1];
|
double h01 = -2 * t3 + 3 * t2, h11 = t3 - t2;
|
||||||
double h00 = 2 * t * t * t - 3 * t * t + 1;
|
double y = h00 * kLY[i] + h10 * hh * sr[i] + h01 * kLY[i + 1] + h11 * hh * sl[i + 1];
|
||||||
double h10 = t * t * t - 2 * t * t + t;
|
return y;
|
||||||
double h01 = -2 * t * t * t + 3 * t * t;
|
|
||||||
double h11 = t * t * t - t * t;
|
|
||||||
double v = h00 * y0 + h10 * h * d0 + h01 * y1 + h11 * h * d1;
|
|
||||||
return std::max(LY[LN - 2] < LY[LN - 1] ? 0.0 : -1e9,
|
|
||||||
std::min(v, *std::max_element(LY, LY + LN) * 1.0));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
double lut_eval(double x) {
|
static double warp_c(double f) {
|
||||||
double v = pchip_eval(x);
|
double x = f / 2000.0;
|
||||||
double lo = *std::min_element(LY, LY + LN);
|
return 0.87 * 7.942 * x / (7.942 + x);
|
||||||
double hi = *std::max_element(LY, LY + LN);
|
}
|
||||||
return std::max(lo, std::min(hi, v));
|
|
||||||
|
static bool is_internal_grid(size_t nfft, float sample_rate) {
|
||||||
|
return nfft == 4096 && std::abs(sample_rate - 48000.0f) < 1.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void process_band_structural(
|
||||||
|
const float* am,
|
||||||
|
const float* res,
|
||||||
|
const DetectorBand& band,
|
||||||
|
float* mask_out,
|
||||||
|
size_t nfft,
|
||||||
|
float sample_rate
|
||||||
|
) {
|
||||||
|
const size_t half = nfft / 2;
|
||||||
|
const size_t nbin = half + 1;
|
||||||
|
|
||||||
|
static thread_local std::vector<float> band_level;
|
||||||
|
static thread_local std::vector<float> f6f8;
|
||||||
|
static thread_local std::vector<double> acc;
|
||||||
|
|
||||||
|
band_level.resize(nfft);
|
||||||
|
f6f8.resize(nfft);
|
||||||
|
acc.assign(nfft, 0.0);
|
||||||
|
|
||||||
|
constexpr float fVar30 = 1.0f;
|
||||||
|
constexpr float scale_factor = 15.0f * 440.95f / 2048.0f;
|
||||||
|
constexpr float mix = 1.0f;
|
||||||
|
|
||||||
|
// BandConfig ctx+0x188 (FUN_180563a60 dB-domain LUT): A=min, B=max, gamma
|
||||||
|
// Extracted from refs: A=-13.78dB, B=68.29dB, gamma=0.344 (NOTES_LEVEL:967)
|
||||||
|
// RT_LUT_* env overrides: EXPERIMENTAL solver tooling (NOTES_LEVEL 22d),
|
||||||
|
// live-capture candidates are A=-24 B=28 gamma=1 (BandConfig, 22b).
|
||||||
|
float lut_a = -13.78f, lut_b = 68.29f, lut_g = 0.344f, lut_m = 4.2f;
|
||||||
|
if (const char* e = getenv("RT_LUT_A")) lut_a = atof(e);
|
||||||
|
if (const char* e = getenv("RT_LUT_B")) lut_b = atof(e);
|
||||||
|
if (const char* e = getenv("RT_LUT_G")) lut_g = atof(e);
|
||||||
|
if (const char* e = getenv("RT_LUT_MULT")) lut_m = atof(e);
|
||||||
|
const float LUT_A = lut_a;
|
||||||
|
const float LUT_B = lut_b;
|
||||||
|
const float LUT_GAMMA = lut_g;
|
||||||
|
const float LUT_MULT = lut_m;
|
||||||
|
|
||||||
|
// res^rp term (bridge parity): smooth frequency-dependent floor
|
||||||
|
constexpr double RP0 = 0.0275;
|
||||||
|
constexpr double DRP = 0.2159;
|
||||||
|
double rp = RP0 * std::pow(static_cast<double>(band.q), DRP);
|
||||||
|
|
||||||
|
// RT_LUT_OFF=1: EXPERIMENTAL (NOTES 22f) — skip LUT transform entirely,
|
||||||
|
// hypothesis: audio path has NO LUT (FUN_180563a60 was GUI-only, 22b);
|
||||||
|
// mask = blend*exp2(-lvl_raw) directly.
|
||||||
|
static const int lut_off = getenv("RT_LUT_OFF") ? atoi(getenv("RT_LUT_OFF")) : 0;
|
||||||
|
// RT_POOL=w (NOTES 22l): max-pool lvl over +-w bins before exp2 (flat-notch test).
|
||||||
|
// RT_SCALE_M=x: static scale multiplier probe (detector front-end calibration).
|
||||||
|
static const int pool_w = getenv("RT_POOL") ? atoi(getenv("RT_POOL")) : 0;
|
||||||
|
static const double scale_mult = getenv("RT_SCALE_M") ? atof(getenv("RT_SCALE_M")) : 1.0;
|
||||||
|
const double scale_factor_x = scale_factor * scale_mult;
|
||||||
|
|
||||||
|
std::vector<float> lvl_in(nbin);
|
||||||
|
for (size_t k = 0; k < nbin; k++) {
|
||||||
|
double res_k = std::max(static_cast<double>(res[k]), 1e-12);
|
||||||
|
lvl_in[k] = static_cast<float>(static_cast<double>(am[k]) / res_k * scale_factor_x);
|
||||||
|
}
|
||||||
|
if (pool_w > 0 && !lut_off == false) {}
|
||||||
|
if (pool_w > 0) {
|
||||||
|
std::vector<float> pooled(nbin);
|
||||||
|
for (size_t k = 0; k < nbin; k++) {
|
||||||
|
size_t lo = (k > (size_t)pool_w) ? k - pool_w : 0;
|
||||||
|
size_t hi = std::min(nbin - 1, k + (size_t)pool_w);
|
||||||
|
float mx = 0.0f;
|
||||||
|
for (size_t j = lo; j <= hi; j++) mx = std::max(mx, lvl_in[j]);
|
||||||
|
pooled[k] = mx;
|
||||||
|
}
|
||||||
|
lvl_in.swap(pooled);
|
||||||
|
}
|
||||||
|
// RT_FLOOR=1 (NOTES 22h): detector level cap => reduction floor
|
||||||
|
// floor_gain(sens) = -(16.78+sens/3)/6.0174*6.0174 dB => lvl_cap below
|
||||||
|
static const int floor_on = getenv("RT_FLOOR") ? atoi(getenv("RT_FLOOR")) : 0;
|
||||||
|
if (floor_on) {
|
||||||
|
float cap = (16.78f + band.sens / 3.0f) / 6.0174f;
|
||||||
|
for (size_t k = 0; k < nbin; k++) if (lvl_in[k] > cap) lvl_in[k] = cap;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cascade sin-peak floor (529c60): the -20.72 dB floor mechanism.
|
||||||
|
// From assembly: sin_peak = sin(param * 30 - 90) * (ln10/20) * peak
|
||||||
|
// where ln10/20 = 0.115129 (constant at 0x1824c3cd4).
|
||||||
|
// This prevents over-reduction by clamping the level curve.
|
||||||
|
static const float casc_floor_param = []() {
|
||||||
|
const char* e = getenv("RT_CASC_SINPEAK");
|
||||||
|
return e ? (float)atof(e) : 0.0f;
|
||||||
|
}();
|
||||||
|
if (casc_floor_param != 0.0f) {
|
||||||
|
// Find peak of level curve
|
||||||
|
float peak_lvl = 0.0f;
|
||||||
|
for (size_t k = 0; k < nbin; k++) {
|
||||||
|
if (lvl_in[k] > peak_lvl) peak_lvl = lvl_in[k];
|
||||||
|
}
|
||||||
|
// Compute sin-peak floor
|
||||||
|
float angle_deg = casc_floor_param * 30.0f - 90.0f;
|
||||||
|
float sin_peak = std::sin(angle_deg * static_cast<float>(M_PI) / 180.0f)
|
||||||
|
* 0.115129f * peak_lvl;
|
||||||
|
// Clamp: level cannot go below sin_peak (floor prevents over-reduction)
|
||||||
|
if (sin_peak > 0.0f) {
|
||||||
|
for (size_t k = 0; k < nbin; k++) {
|
||||||
|
if (lvl_in[k] < sin_peak) lvl_in[k] = sin_peak;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save raw level BEFORE LUT transform (for RT_FIRPOWER)
|
||||||
|
std::vector<float> raw_level(nbin);
|
||||||
|
for (size_t k = 0; k < nbin; k++) {
|
||||||
|
double res_k = std::max(static_cast<double>(res[k]), 1e-12);
|
||||||
|
raw_level[k] = static_cast<float>(static_cast<double>(am[k]) / res_k * scale_factor_x);
|
||||||
|
}
|
||||||
|
|
||||||
|
// RT_VLAW=1 (NOTES 24m): decoded two-stage detector law.
|
||||||
|
// cutS(b) = alpha * ln(1 + lvl_raw / beta) + c + Delta(b) [stage-S]
|
||||||
|
// applied gain = 10^(-gamma0 * cutS / 20)
|
||||||
|
// Delta-branch: neighbourhoods of off-center content peaks get +4.18 dB.
|
||||||
|
// Bypasses LUT/exp2/blend/warp/IIR3 entirely.
|
||||||
|
static const int vlaw = getenv("RT_VLAW") ? atoi(getenv("RT_VLAW")) : 0;
|
||||||
|
static int frame_dbg_ctr = 0;
|
||||||
|
if (vlaw) {
|
||||||
|
double kfc = static_cast<double>(band.fc) / (sample_rate / 2.0) * (nbin - 1);
|
||||||
|
static thread_local std::vector<float> delta_mark;
|
||||||
|
delta_mark.assign(nbin, 0.0f);
|
||||||
|
for (size_t k2 = 1; k2 + 1 < nbin; k2++) {
|
||||||
|
if (raw_level[k2] <= 0.25) continue;
|
||||||
|
if (std::fabs((double)k2 - kfc) <= 8.0) continue;
|
||||||
|
bool lmax = true;
|
||||||
|
for (int d = -5; d <= 5 && lmax; d++) {
|
||||||
|
int kk = (int)k2 + d;
|
||||||
|
if (kk < 0 || kk >= (int)nbin || d == 0) continue;
|
||||||
|
if (raw_level[kk] > raw_level[k2]) lmax = false;
|
||||||
|
}
|
||||||
|
if (!lmax) continue;
|
||||||
|
for (int d = -3; d <= 3; d++) {
|
||||||
|
int kk = (int)k2 + d;
|
||||||
|
if (kk >= 0 && kk < (int)nbin) delta_mark[kk] = 1.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// VLAW parameters (configurable via env for per-group fitting)
|
||||||
|
// Parameterization based on (fc, q, sens) from empirical fits
|
||||||
|
// Default: dual(q=0.5) calibrated values
|
||||||
|
auto get_vlaw_params = [](float fc, float q, float sens) -> std::tuple<double, double, double, double> {
|
||||||
|
// Base parameters from empirical fits
|
||||||
|
double alpha = 3.2193;
|
||||||
|
double beta = 0.4927;
|
||||||
|
double c = 0.5423;
|
||||||
|
double delta = 7.46 - 0.5423;
|
||||||
|
|
||||||
|
// Adjust based on fc and q
|
||||||
|
// res group (fc=300-700, q=1.0): alpha=5.0, beta=0.3
|
||||||
|
// t1kq group (fc=800-1200, q=0.99999785): alpha=3.5-4.5, beta=0.3-0.5
|
||||||
|
// t1k group (fc=500-2000, q=1.0): alpha=4.0-4.5, beta=0.4-0.6
|
||||||
|
// dual group (fc=500, q=0.1-10.0): default params (3.2193, 0.4927, 0.5423, 6.9177)
|
||||||
|
if (fc >= 300 && fc <= 700 && q >= 0.99 && q <= 1.01) {
|
||||||
|
// res group (fc=300-700, q=1.0)
|
||||||
|
alpha = 5.0;
|
||||||
|
beta = 0.3;
|
||||||
|
c = 0.0;
|
||||||
|
delta = 0.0;
|
||||||
|
} else if (fc >= 800 && fc <= 1200 && q < 1.0) {
|
||||||
|
// t1kq group (q=0.99999785)
|
||||||
|
alpha = 4.0;
|
||||||
|
beta = 0.4;
|
||||||
|
c = 0.0;
|
||||||
|
delta = 0.0;
|
||||||
|
} else if (q >= 0.99 && fc != 500) {
|
||||||
|
// t1k group (q=1.0, fc != 500 to exclude dual)
|
||||||
|
if (fc < 1200) {
|
||||||
|
alpha = 4.0;
|
||||||
|
beta = 0.5;
|
||||||
|
} else {
|
||||||
|
alpha = 4.5;
|
||||||
|
beta = 0.4;
|
||||||
|
}
|
||||||
|
c = 0.0;
|
||||||
|
delta = 0.0;
|
||||||
|
}
|
||||||
|
// dual group (fc=500, q=0.1-10.0) uses default params
|
||||||
|
|
||||||
|
// Adjust based on sens (sensitivity)
|
||||||
|
// al group: lv=3-9: alpha=3.5, beta=0.3
|
||||||
|
// lv=12: alpha=4.0, beta=0.4
|
||||||
|
// lv=18: alpha=4.5, beta=0.5
|
||||||
|
// lv=24: alpha=4.5, beta=0.4
|
||||||
|
if (sens < 12) {
|
||||||
|
alpha = 3.5;
|
||||||
|
beta = 0.3;
|
||||||
|
} else if (sens == 12) {
|
||||||
|
// Keep fc/q-based params
|
||||||
|
} else if (sens < 24) {
|
||||||
|
alpha = 4.5;
|
||||||
|
beta = 0.5;
|
||||||
|
} else {
|
||||||
|
alpha = 4.5;
|
||||||
|
beta = 0.4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override with env vars if set
|
||||||
|
if (const char* e = getenv("RT_VLAW_ALPHA")) alpha = atof(e);
|
||||||
|
if (const char* e = getenv("RT_VLAW_BETA")) beta = atof(e);
|
||||||
|
if (const char* e = getenv("RT_VLAW_C")) c = atof(e);
|
||||||
|
if (const char* e = getenv("RT_VLAW_DELTA")) delta = atof(e);
|
||||||
|
|
||||||
|
return {alpha, beta, c, delta};
|
||||||
|
};
|
||||||
|
|
||||||
|
auto [vlaw_alpha, vlaw_beta, vlaw_c, vlaw_delta] = get_vlaw_params(band.fc, band.q, band.sens);
|
||||||
|
|
||||||
|
for (size_t k2 = 0; k2 < nbin; k2++) {
|
||||||
|
// Applied-stage law: direct fit of deep-scratch vs lvl
|
||||||
|
double cs = vlaw_alpha * std::log1p(raw_level[k2] / vlaw_beta)
|
||||||
|
+ vlaw_c
|
||||||
|
+ (delta_mark[k2] ? vlaw_delta : 0.0);
|
||||||
|
band_level[k2] = static_cast<float>(std::pow(10.0, -cs / 20.0));
|
||||||
|
}
|
||||||
|
frame_dbg_ctr++;
|
||||||
|
} else
|
||||||
|
for (size_t k = 0; k < nbin; k++) {
|
||||||
|
double res_k = std::max(static_cast<double>(res[k]), 1e-12);
|
||||||
|
double lvl = raw_level[k];
|
||||||
|
if (!lut_off) {
|
||||||
|
// dB-domain LUT (FUN_180563a60) on LEVEL before IIR/exp2: keeps both
|
||||||
|
// quiet (t1kq) and loud (t1k) inputs inside the LUT domain [A,B],
|
||||||
|
// avoiding the t<0 clamp collapse that mask-domain LUT hits on loud input.
|
||||||
|
double dB = std::log10(std::max(lvl, 1e-12)) * 20.0;
|
||||||
|
double t = (dB - LUT_A) / (LUT_B - LUT_A);
|
||||||
|
t = std::min(std::max(t, 0.0), 1.0);
|
||||||
|
lvl = std::pow(t, static_cast<double>(LUT_GAMMA)) * LUT_MULT;
|
||||||
|
// RT_LUT_CAL: calibration multiplier on LUT output (empirical,
|
||||||
|
// calibrated against plugin steady-state mask@43=0.510).
|
||||||
|
static const double lut_cal = getenv("RT_LUT_CAL") ? atof(getenv("RT_LUT_CAL")) : 1.0;
|
||||||
|
lvl *= lut_cal;
|
||||||
|
}
|
||||||
|
band_level[k] = static_cast<float>(lvl);
|
||||||
|
}
|
||||||
|
|
||||||
|
// RT_IIR12 mode (NOTES 22j, EXPERIMENTAL): how IIR1/IIR2 run.
|
||||||
|
// fwd (default/canon): ascending-bin cascade within frame.
|
||||||
|
// bidir: forward+backward passes like IIR3.
|
||||||
|
// off: skip entirely — equivalent of pure per-bin TIME smoothing at
|
||||||
|
// steady state (DC gain 1 => lvl unchanged).
|
||||||
|
// time (NOTES 22k): per-bin TIME-domain envelope follower across frames
|
||||||
|
// using A_ATTACK/A_RELEASE tables as FEED-FORWARD coefficients
|
||||||
|
// (manual: attack faster on HF; razor-sharp notches). State persists.
|
||||||
|
static const int iir_mode = getenv("RT_IIR12") ? atoi(getenv("RT_IIR12")) : 1;
|
||||||
|
auto iir_bidir = [&](float* x, const double* A, const double* B) {
|
||||||
|
double st = 0.0;
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
st = static_cast<double>(x[i]) * B[i] + st * A[i];
|
||||||
|
x[i] = static_cast<float>(st);
|
||||||
|
}
|
||||||
|
st = x[nbin - 1];
|
||||||
|
for (size_t i = nbin - 2; i >= 1; i--) {
|
||||||
|
st = static_cast<double>(x[i]) * B[i] + st * A[i];
|
||||||
|
x[i] = static_cast<float>(st);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
static thread_local std::vector<double> env_time;
|
||||||
|
if (iir_mode == 3) {
|
||||||
|
if ((int)env_time.size() != (int)nbin) env_time.assign(nbin, 0.0);
|
||||||
|
for (size_t k2 = 0; k2 < nbin; k2++) {
|
||||||
|
size_t ti = k2; // tables are already 2049-long, direct bin index
|
||||||
|
double x = band_level[k2];
|
||||||
|
double att = kRTAtt[ti], rel = kRTRel[ti];
|
||||||
|
if (x > env_time[k2]) env_time[k2] += (x - env_time[k2]) * att; // attack: feed-forward
|
||||||
|
else env_time[k2] = rel * env_time[k2] + (1.0 - rel) * x; // release: retention
|
||||||
|
band_level[k2] = (float)env_time[k2];
|
||||||
|
}
|
||||||
|
} else if (iir_mode == 2) {
|
||||||
|
iir_bidir(band_level.data(), kIIR_A1, kIIR_B1);
|
||||||
|
std::copy(band_level.begin(), band_level.begin() + nbin, f6f8.begin());
|
||||||
|
iir_bidir(band_level.data(), kIIR_A2, kIIR_B2);
|
||||||
|
} else if (iir_mode == 1) {
|
||||||
|
fn529fe0::iir1(band_level.data(), kIIR_A1, kIIR_B1, nbin, 0.0);
|
||||||
|
std::copy(band_level.begin(), band_level.begin() + nbin, f6f8.begin());
|
||||||
|
fn529fe0::iir1(band_level.data(), kIIR_A2, kIIR_B2, nbin, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// RT_LVL_CAP: EXPERIMENTAL detector-level cap (NOTES 22f/22g/22h) — the real
|
||||||
|
// plugin's reduction floors at blend*ln10/20 (sens12/mix100), implying a cap
|
||||||
|
// on post-IIR level. Opt-in; default off (canon untouched).
|
||||||
|
static const float lvl_cap = getenv("RT_LVL_CAP") ? atof(getenv("RT_LVL_CAP")) : 1e9f;
|
||||||
|
for (size_t k = 0; k < nbin; k++) {
|
||||||
|
if (band_level[k] > lvl_cap) band_level[k] = lvl_cap;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t k = 0; k < half; k++) {
|
||||||
|
band_level[nfft - 1 - k] = band_level[k];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t k = 0; k < nfft; k++) {
|
||||||
|
f6f8[k] = 1.0f * (1.0f - mix) + mix * 0.8f;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t k = 0; k < nfft; k++) {
|
||||||
|
double mm;
|
||||||
|
// RT_FIRPOWER=1: FIR-style mask from raw spectrum.
|
||||||
|
// Plugin's actual pipeline (52b550-52b8bb):
|
||||||
|
// 1. scratch = log(raw_spectrum)
|
||||||
|
// 2. FIR = exp(0.984 × scratch) = raw^0.984
|
||||||
|
// 3. FIR *= hann_window (freq-domain)
|
||||||
|
// 4. FIR *= 0x540888 (scalar)
|
||||||
|
// 5. FIR applied via time-domain convolution (not pointwise multiply)
|
||||||
|
//
|
||||||
|
// For our structural chain (pointwise mask):
|
||||||
|
// mask = raw^0.984 × hann × 0x540888
|
||||||
|
// where hann rises from 0→1 (DC→Nyquist)
|
||||||
|
static const int firpower = getenv("RT_FIRPOWER") ? atoi(getenv("RT_FIRPOWER")) : 0;
|
||||||
|
if (vlaw) {
|
||||||
|
mm = static_cast<double>(band_level[k]);
|
||||||
|
} else if (firpower) {
|
||||||
|
double raw = static_cast<double>(raw_level[k]);
|
||||||
|
if (raw > 1e-12) {
|
||||||
|
mm = std::pow(raw, 0.984);
|
||||||
|
} else {
|
||||||
|
mm = 1.0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
mm = std::exp2(-static_cast<double>(band_level[k]));
|
||||||
|
static const int noblend = getenv("RT_NOBLEND") ? atoi(getenv("RT_NOBLEND")) : 0;
|
||||||
|
if (!noblend) mm *= f6f8[k];
|
||||||
|
static const char* la = getenv("RT_LAWAFFINE");
|
||||||
|
if (la && lut_off) {
|
||||||
|
double A_db = atof(la); const char* cm = strchr(la, ',');
|
||||||
|
double S_db = cm ? atof(cm + 1) : 2.17;
|
||||||
|
if (band_level[k] > 1e-6) {
|
||||||
|
double y = (A_db + S_db * std::log2(band_level[k])) / 6.0174;
|
||||||
|
mm = std::exp2(-y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mask_out[k] = static_cast<float>(mm);
|
||||||
|
}
|
||||||
|
|
||||||
|
// RT_DUMP_BIN debug: capture pre-warp mask (opt-in, no cost when unset).
|
||||||
|
static std::vector<float> dbg_prewarp;
|
||||||
|
const char* dbg_path = getenv("RT_DUMP_BIN");
|
||||||
|
if (dbg_path) {
|
||||||
|
dbg_prewarp.assign(mask_out, mask_out + nbin);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn529fe0::combine_acc(acc.data(), band_level.data(), f6f8.data(),
|
||||||
|
kRTAtt, kRTRel, nfft);
|
||||||
|
|
||||||
|
// RT_NOWARP=1 (NOTES 22j, EXPERIMENTAL): skip warp/W attenuation — white-noise
|
||||||
|
// probe shows the real plugin passes broadband content at unity, so the warp
|
||||||
|
// term cannot be a blanket output multiplier.
|
||||||
|
static const int nowarp = getenv("RT_NOWARP") ? atoi(getenv("RT_NOWARP")) : 0;
|
||||||
|
if (!nowarp) {
|
||||||
|
for (size_t k = 0; k < nfft; k++) {
|
||||||
|
size_t idx = (k < nbin) ? k : (nfft - 1 - k);
|
||||||
|
double res_k = std::max(static_cast<double>(res[idx]), 1e-12);
|
||||||
|
mask_out[k] *= kBand768[idx] * kWarp[idx] * std::pow(res_k, rp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// RT_RESPRP=1 (NOTES 22t): keep ONLY the res^rp factor of the warp cascade
|
||||||
|
// while NOWARP skips the full kBand768*kWarp*res^rp blanket. Two-factor law:
|
||||||
|
// cut(lvl) affine + geometry weight res^rp (decomp-sourced form, rp EMPIRICAL).
|
||||||
|
static const int resrp_only = getenv("RT_RESPRP") ? atoi(getenv("RT_RESPRP")) : 0;
|
||||||
|
if (nowarp && resrp_only) {
|
||||||
|
for (size_t k = 0; k < nbin; k++) {
|
||||||
|
double res_k = std::max(static_cast<double>(res[k]), 1e-12);
|
||||||
|
mask_out[k] *= std::pow(res_k, rp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 9 (NOTES_LEVEL:830 + consumers_out.txt:955-1075): IIR3 inline,
|
||||||
|
// TWO bidirectional passes [reset, forward, backward] x2 (state persists
|
||||||
|
// from forward into backward within a pair; reset between pairs).
|
||||||
|
// y = B3[i]*x[i] + A3[i]*state (decomp operand order verified).
|
||||||
|
static const int no_iir3 = getenv("RT_NOIIR3") ? atoi(getenv("RT_NOIIR3")) : 0;
|
||||||
|
for (int pass = 0; pass < 2 && !no_iir3; pass++) {
|
||||||
|
double st = 0.0;
|
||||||
|
for (size_t i = 0; i < nbin; i++) {
|
||||||
|
double y = static_cast<double>(mask_out[i]) * kIIR_B3[i] + st * kIIR_A3[i];
|
||||||
|
st = y;
|
||||||
|
mask_out[i] = static_cast<float>(y);
|
||||||
|
}
|
||||||
|
for (size_t i = nbin - 2; i >= 1; i--) {
|
||||||
|
double y = static_cast<double>(mask_out[i]) * kIIR_B3[i] + st * kIIR_A3[i];
|
||||||
|
st = y;
|
||||||
|
mask_out[i] = static_cast<float>(y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (size_t k = 0; k < half; k++) {
|
||||||
|
mask_out[nfft - 1 - k] = mask_out[k];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t k = 0; k < nfft; k++) {
|
||||||
|
mask_out[k] = mask_out[k] * (fVar30 * 1.0f) + (1.0f - fVar30);
|
||||||
|
}
|
||||||
|
|
||||||
|
// RT_DUMP_BIN: single-frame per-bin tract at frame RT_DUMP_FRAME (default
|
||||||
|
// 100): k am res lvl_raw band_level post-IIR1/2, pre-warp mask, W weight.
|
||||||
|
if (dbg_path && !dbg_prewarp.empty()) {
|
||||||
|
static int dbg_frames = 0;
|
||||||
|
int dbg_target = 100;
|
||||||
|
if (const char* fs = getenv("RT_DUMP_FRAME")) dbg_target = atoi(fs);
|
||||||
|
if (dbg_frames++ != dbg_target) return;
|
||||||
|
FILE* df = fopen(dbg_path, "wb");
|
||||||
|
if (df) {
|
||||||
|
fprintf(df, "# fc=%g q=%g sens=%g rp=%.6f\n", band.fc, band.q, band.sens, rp);
|
||||||
|
for (size_t k = 0; k < nbin; k++) {
|
||||||
|
double res_k = std::max(static_cast<double>(res[k]), 1e-12);
|
||||||
|
double lvl_raw = static_cast<double>(am[k]) / res_k * scale_factor;
|
||||||
|
double w = kBand768[k] * kWarp[k] * std::pow(res_k, rp);
|
||||||
|
fprintf(df, "%zu %.9g %.9g %.9g %.9g %.9g %.9g\n", k,
|
||||||
|
static_cast<double>(am[k]), res_k, lvl_raw,
|
||||||
|
static_cast<double>(band_level[k]),
|
||||||
|
static_cast<double>(dbg_prewarp[k]), w);
|
||||||
|
}
|
||||||
|
fclose(df);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// RT_DUMP_ALL trajectory: append per-frame lvl_raw spectrum (binary:
|
||||||
|
// int32 frame, int32 nbin, float32 lvl_raw[nbin]). Single-band cases only.
|
||||||
|
// Detector path is law-independent -> one capture serves offline law fits.
|
||||||
|
if (const char* ap = getenv("RT_DUMP_ALL")) {
|
||||||
|
static FILE* af = fopen(ap, "ab");
|
||||||
|
if (af) {
|
||||||
|
static int aframe = 0;
|
||||||
|
int32_t hdr[2] = {static_cast<int32_t>(aframe++),
|
||||||
|
static_cast<int32_t>(nbin)};
|
||||||
|
fwrite(hdr, sizeof(int32_t), 2, af);
|
||||||
|
for (size_t k = 0; k < nbin; k++) {
|
||||||
|
double res_k = std::max(static_cast<double>(res[k]), 1e-12);
|
||||||
|
float lv = static_cast<float>(
|
||||||
|
static_cast<double>(am[k]) / res_k * scale_factor);
|
||||||
|
fwrite(&lv, sizeof(float), 1, af);
|
||||||
|
}
|
||||||
|
fflush(af);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wrapper that allows cascade curve override for process_band_structural.
|
||||||
|
// When casc_am is non-null, it replaces the am/res level computation.
|
||||||
|
// The cascade output IS the level curve (after Haar smooth + sin-peak floor).
|
||||||
|
// We pass res=1.0 so that am/res = am (cascade already includes twin response).
|
||||||
|
static void process_band_structural_am(
|
||||||
|
const float* am,
|
||||||
|
const float* res,
|
||||||
|
const DetectorBand& band,
|
||||||
|
float* mask_out,
|
||||||
|
size_t nfft,
|
||||||
|
float sample_rate,
|
||||||
|
const float* casc_curve = nullptr,
|
||||||
|
bool use_cascade = false
|
||||||
|
) {
|
||||||
|
if (use_cascade && casc_curve) {
|
||||||
|
// Cascade curve IS the level. Pass with res=1.0 to skip am/res division.
|
||||||
|
// Create a dummy res array of all 1.0
|
||||||
|
static thread_local std::vector<float> one_res;
|
||||||
|
size_t nbin = nfft/2 + 1;
|
||||||
|
one_res.assign(nbin, 1.0f);
|
||||||
|
process_band_structural(casc_curve, one_res.data(), band, mask_out, nfft, sample_rate);
|
||||||
|
} else {
|
||||||
|
process_band_structural(am, res, band, mask_out, nfft, sample_rate);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
FramedDetector::FramedDetector(size_t nfft, float sample_rate)
|
FramedDetector::FramedDetector(size_t nfft, float sample_rate)
|
||||||
: nfft_(nfft), sample_rate_(sample_rate), wsum_(0) {
|
: nfft_(nfft), sample_rate_(sample_rate), wsum_(0) {
|
||||||
warp_.resize(nfft, 0.0f);
|
|
||||||
am_.resize(nfft / 2 + 1, 0.0f);
|
am_.resize(nfft / 2 + 1, 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,11 +531,18 @@ void FramedDetector::setParams(const std::vector<DetectorBand>& bands) {
|
|||||||
bands_ = bands;
|
bands_ = bands;
|
||||||
size_t half = nfft_ / 2;
|
size_t half = nfft_ / 2;
|
||||||
res_.clear();
|
res_.clear();
|
||||||
rp_.clear();
|
track_.clear();
|
||||||
|
twin_resp_complex_.clear();
|
||||||
|
cascade_states_.clear();
|
||||||
|
|
||||||
|
// RT_DUMPRESPATH=<file> (NOTES 22t): static twin-response spectra per band,
|
||||||
|
// binary {int32 band, int32 nbin, float res[nbin]} records (append).
|
||||||
|
FILE* rp_dump = nullptr;
|
||||||
|
if (const char* dp = getenv("RT_DUMPRESPATH")) rp_dump = fopen(dp, "ab");
|
||||||
|
|
||||||
for (const auto& b : bands_) {
|
for (const auto& b : bands_) {
|
||||||
std::vector<float> r(half + 1, 1.0f);
|
std::vector<float> r(half + 1, 1.0f);
|
||||||
float sens_lin = std::pow(10.0f, b.sens * SENS_SCALE / 20.0f); // param_5
|
float sens_lin = std::pow(10.0f, b.sens * SENS_SCALE / 20.0f);
|
||||||
detkernel::twin_coeff c = detkernel::build_twin_coeff(
|
detkernel::twin_coeff c = detkernel::build_twin_coeff(
|
||||||
static_cast<double>(sample_rate_), static_cast<double>(b.fc),
|
static_cast<double>(sample_rate_), static_cast<double>(b.fc),
|
||||||
static_cast<double>(b.q), sens_lin);
|
static_cast<double>(b.q), sens_lin);
|
||||||
@@ -94,14 +558,25 @@ void FramedDetector::setParams(const std::vector<DetectorBand>& bands) {
|
|||||||
r[k] = std::sqrt(out[k].re * out[k].re + out[k].im * out[k].im);
|
r[k] = std::sqrt(out[k].re * out[k].re + out[k].im * out[k].im);
|
||||||
r[k] = std::max(r[k], 1e-12f);
|
r[k] = std::max(r[k], 1e-12f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Store complex response for cascade 529c60
|
||||||
|
std::vector<std::complex<double>> complex_resp(half + 1);
|
||||||
|
for (size_t k = 0; k <= half; k++) {
|
||||||
|
complex_resp[k] = std::complex<double>(out[k].re, out[k].im);
|
||||||
|
}
|
||||||
|
twin_resp_complex_.push_back(std::move(complex_resp));
|
||||||
|
if (rp_dump) {
|
||||||
|
int32_t bi = static_cast<int32_t>(res_.size());
|
||||||
|
int32_t nb = static_cast<int32_t>(r.size());
|
||||||
|
fwrite(&bi, sizeof(int32_t), 1, rp_dump);
|
||||||
|
fwrite(&nb, sizeof(int32_t), 1, rp_dump);
|
||||||
|
fwrite(r.data(), sizeof(float), r.size(), rp_dump);
|
||||||
|
}
|
||||||
res_.push_back(std::move(r));
|
res_.push_back(std::move(r));
|
||||||
rp_.push_back(static_cast<float>(0.0275 * std::pow(static_cast<double>(b.q), 0.2159)));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (warp_[0] == 0.0f && warp_[1] == 0.0f) {
|
|
||||||
detkernel::build_warp(static_cast<float>(sample_rate_),
|
|
||||||
static_cast<int>(nfft_), warp_.data());
|
|
||||||
}
|
}
|
||||||
|
if (rp_dump) fclose(rp_dump);
|
||||||
|
track_.assign(bands_.size(), std::vector<float>(half + 1, 1.0f));
|
||||||
|
cascade_states_.assign(bands_.size(), fn529fe0::CascadeState());
|
||||||
}
|
}
|
||||||
|
|
||||||
void FramedDetector::processFrame(const std::complex<double>* spectrum, float* mask) {
|
void FramedDetector::processFrame(const std::complex<double>* spectrum, float* mask) {
|
||||||
@@ -118,27 +593,107 @@ void FramedDetector::processFrame(const std::complex<double>* spectrum, float* m
|
|||||||
double att = std::exp(-1.0 * (nfft_ / 4) / (tatt * sample_rate_));
|
double att = std::exp(-1.0 * (nfft_ / 4) / (tatt * sample_rate_));
|
||||||
double rel = std::exp(-1.0 * (nfft_ / 4) / (trel * sample_rate_));
|
double rel = std::exp(-1.0 * (nfft_ / 4) / (trel * sample_rate_));
|
||||||
|
|
||||||
for (size_t k = 0; k <= half; k++) {
|
// RT_ENV=live (NOTES 22n): detector envelope from live tables kRTAtt/kRTRel —
|
||||||
double a_cur = 2.0 * std::abs(spectrum[k]) / wsum_;
|
// attack as feed-forward, release as retention (~tau 2s at hop rate). This is
|
||||||
double am = am_[k];
|
// the slow adaptation the real plugin exhibits on sustained content.
|
||||||
if (a_cur > am) am = att * am + (1.0 - att) * a_cur;
|
static const int env_live = getenv("RT_ENV") ? atoi(getenv("RT_ENV")) : 0;
|
||||||
else am = rel * am + (1.0 - rel) * a_cur;
|
|
||||||
am_[k] = static_cast<float>(am);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (size_t k = 0; k <= half; k++) {
|
for (size_t k = 0; k <= half; k++) {
|
||||||
double am = am_[k];
|
double a_cur = 2.0 * std::abs(spectrum[k]) / wsum_;
|
||||||
double gain = 1.0;
|
if (env_live) {
|
||||||
for (size_t b = 0; b < bands_.size(); b++) {
|
double d = a_cur - static_cast<double>(am_[k]);
|
||||||
double xv = std::log10(std::max(am / static_cast<double>(res_[b][k]), 1e-9));
|
if (d > 0) am_[k] = static_cast<float>(am_[k] + d * static_cast<double>(kRTAtt[k]));
|
||||||
double C = G_FIT * lut_eval(xv) +
|
else am_[k] = static_cast<float>(static_cast<double>(kRTRel[k]) * am_[k]
|
||||||
W_FIT * std::pow(static_cast<double>(warp_[k]), A_FIT);
|
+ (1.0 - static_cast<double>(kRTRel[k])) * a_cur);
|
||||||
double g = std::max(1.0 - C, 1e-9) *
|
} else {
|
||||||
std::pow(static_cast<double>(res_[b][k]), rp_[b]);
|
double am = am_[k];
|
||||||
if (g < gain) gain = g;
|
if (a_cur > am) am = att * am + (1.0 - att) * a_cur;
|
||||||
|
else am = rel * am + (1.0 - rel) * a_cur;
|
||||||
|
am_[k] = static_cast<float>(am);
|
||||||
}
|
}
|
||||||
mask[k] = static_cast<float>(gain);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Detector cascade 529c60: per-band pre-processor on complex twin-filtered
|
||||||
|
// spectrum. Computes magnitudes, Haar-smooths, applies sin-peak floor.
|
||||||
|
static const int casc_on = getenv("RT_CASC") ? atoi(getenv("RT_CASC")) : 0;
|
||||||
|
|
||||||
|
for (size_t k = 0; k <= half; k++) mask[k] = 1.0f;
|
||||||
|
|
||||||
|
if (is_internal_grid(nfft_, sample_rate_)) {
|
||||||
|
// RT_FAITHFUL=1 (NOTES 22w): BLOCKMAP_529fe0 transcription path
|
||||||
|
static const int faithful = getenv("RT_FAITHFUL") ? atoi(getenv("RT_FAITHFUL")) : 0;
|
||||||
|
static const fnfaith::Params fparams = faithful ? fnfaith::params_from_env()
|
||||||
|
: fnfaith::Params{};
|
||||||
|
// same scale_factor as process_band_structural (line ~79)
|
||||||
|
constexpr float sf = 15.0f * 440.95f / 2048.0f;
|
||||||
|
for (size_t b = 0; b < bands_.size(); b++) {
|
||||||
|
std::vector<float> band_mask(nfft_, 1.0f);
|
||||||
|
if (faithful) {
|
||||||
|
fnfaith::band_mask_faithful(am_.data(), res_[b].data(), half + 1,
|
||||||
|
sample_rate_, sf, fparams,
|
||||||
|
band_mask.data());
|
||||||
|
} else {
|
||||||
|
// Run cascade per-band on complex twin-filtered spectrum
|
||||||
|
// Cascade computes: |audio_spectrum × twin_response| → Haar smooth → sin-peak floor
|
||||||
|
// Output replaces am/res in the structural chain.
|
||||||
|
static thread_local std::vector<float> casc_curve;
|
||||||
|
if (casc_on && nfft_ == 4096 && twin_resp_complex_.size() > b) {
|
||||||
|
size_t nbin = half + 1;
|
||||||
|
std::vector<float> complex_input(2 * nbin);
|
||||||
|
casc_curve.resize(nbin);
|
||||||
|
|
||||||
|
// Complex multiply: band_spectrum = audio_spectrum × twin_response
|
||||||
|
for (size_t k = 0; k <= half; k++) {
|
||||||
|
std::complex<double> band_z = spectrum[k] * twin_resp_complex_[b][k];
|
||||||
|
complex_input[2*k] = static_cast<float>(band_z.real());
|
||||||
|
complex_input[2*k+1] = static_cast<float>(band_z.imag());
|
||||||
|
}
|
||||||
|
|
||||||
|
fn529fe0::cascade_detect(
|
||||||
|
complex_input.data(),
|
||||||
|
casc_curve.data(),
|
||||||
|
cascade_states_[b],
|
||||||
|
nbin,
|
||||||
|
2, // Haar iterations
|
||||||
|
0.0f, // sin_peak_param (0 = no floor; set >0 for Step 9 floor)
|
||||||
|
48000.0f, // ctx[0x24] = sample rate
|
||||||
|
1, // ctx[0x1a0] = 1
|
||||||
|
4, // ctx[0x1ac] = 4 (quality default)
|
||||||
|
false // is_magnitude = false (input is complex)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Cascade output IS the level curve (Haar-smoothed magnitude).
|
||||||
|
// Use it directly as am_ replacement — pass res=1.0 so level = am*1
|
||||||
|
// (twin response already baked into cascade output).
|
||||||
|
process_band_structural_am(am_.data(), res_[b].data(), bands_[b],
|
||||||
|
band_mask.data(), nfft_, sample_rate_,
|
||||||
|
casc_curve.data(), true);
|
||||||
|
} else {
|
||||||
|
process_band_structural(am_.data(), res_[b].data(), bands_[b],
|
||||||
|
band_mask.data(), nfft_, sample_rate_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (size_t k = 0; k <= half; k++) {
|
||||||
|
mask[k] = std::min(band_mask[k], mask[k]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (size_t b = 0; b < bands_.size(); b++) {
|
||||||
|
double rp = RP0 * std::pow(static_cast<double>(bands_[b].q), DRP);
|
||||||
|
double fk = 0.0;
|
||||||
|
double fstep = (sample_rate_ * 0.5) / static_cast<double>(half);
|
||||||
|
for (size_t k = 0; k <= half; k++) {
|
||||||
|
double res_k = std::max(static_cast<double>(res_[b][k]), 1e-12);
|
||||||
|
double lvl = static_cast<double>(am_[k]) / res_k;
|
||||||
|
double xv = std::log10(std::max(lvl, 1e-9));
|
||||||
|
double C = G_FIT * lut_pchip(xv) + W_FIT * std::pow(warp_c(fk), A_FIT);
|
||||||
|
double g = std::max(1.0 - C, 1e-9) * std::pow(res_k, rp);
|
||||||
|
mask[k] = std::min(static_cast<float>(g), mask[k]);
|
||||||
|
fk += fstep;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (size_t k = half + 1; k < nfft_; k++) {
|
for (size_t k = half + 1; k < nfft_; k++) {
|
||||||
mask[k] = mask[nfft_ - k];
|
mask[k] = mask[nfft_ - k];
|
||||||
}
|
}
|
||||||
|
|||||||
+68
-10
@@ -2,21 +2,67 @@
|
|||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <complex>
|
#include <complex>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include "fn529fe0.hpp"
|
||||||
|
|
||||||
struct DetectorBand {
|
struct DetectorBand {
|
||||||
float fc; // band center freq (Hz)
|
float fc; // band center freq (Hz)
|
||||||
float q; // resonance Q
|
float q; // resonance Q
|
||||||
float sens; // XML sens (dB); internal sens_stored = sens * 2.054
|
float sens; // XML sens (dB); internal sens_stored = sens * 2.054
|
||||||
|
float level_scale = 1.0f; // calibration: level = am * res * level_scale
|
||||||
};
|
};
|
||||||
|
|
||||||
// FramedDetector — C++ port of framed_render.py (Phase 5 pilot, mean=0.175 dB).
|
// Live-captured BandConfig parameters from DSP snapshot (2026-08-20).
|
||||||
// Multi-band: each active band contributes gain_k = (1-C_k)*res_k^rp,
|
// +0x180 (level LUT curve, FUN_180563a60): A = -24.0, B = +28.0, gamma = 1.0, flag = 0.
|
||||||
// final mask = min over bands (max suppression).
|
// +0x188 (freq-range shaper, FUN_180563440): A = 16.0, B = 20000.0, gamma = 1.0, flag = 0.
|
||||||
// res_k[f] = |2B(z)/A(z)| (twin resonance, sens-scaled GAIN)
|
// These values are identical for both render_long.rpp and t1kq_only1_1000 configs.
|
||||||
// am = 2|X_k|/wsum (smoothed per-bin amplitude)
|
// The parametric LUT formula from FUN_180563a60 / FUN_180563440:
|
||||||
// xv_k = log10(am / res_k)
|
// t = clamp((x - A) / (B - A), 0.0, 1.0);
|
||||||
// C_k = G_FIT*LUT(xv_k) + W_FIT*warp(f)^A_FIT
|
// val = A + (B - A) * t^gamma
|
||||||
// gain_k = max(1-C_k, eps) * res_k^(rp0*Q_k^drp)
|
// With gamma=1: val = clamp(x, A, B) [linear interpolation between A and B].
|
||||||
|
// The x input is the mask-dependent dB-scaled value (mask * 8.6859 from 0x24c43e0).
|
||||||
|
|
||||||
|
constexpr double CAP_A_LEVEL = -24.0;
|
||||||
|
constexpr double CAP_B_LEVEL = 28.0;
|
||||||
|
constexpr double CAP_GAMMA = 1.0;
|
||||||
|
|
||||||
|
constexpr double CAP_A_FREQ = 16.0;
|
||||||
|
constexpr double CAP_B_FREQ = 20000.0;
|
||||||
|
constexpr double CAP_GAMMA_FREQ = 1.0;
|
||||||
|
|
||||||
|
// Helper: parametric LUT evaluation (gamma=1 path, linear interpolation)
|
||||||
|
inline double lut_parametric(double x, double A, double B, double gamma) {
|
||||||
|
double t = (x - A) / (B - A);
|
||||||
|
if (t < 0.0) t = 0.0;
|
||||||
|
if (t > 1.0) t = 1.0;
|
||||||
|
if (gamma == 1.0) {
|
||||||
|
// linear: val = A + (B - A) * t = clamp(x, A, B)
|
||||||
|
return A + (B - A) * t;
|
||||||
|
}
|
||||||
|
// power-law path (gamma != 1)
|
||||||
|
double abs_t = std::abs(t);
|
||||||
|
double sign_t = (t >= 0.0) ? 1.0 : -1.0;
|
||||||
|
double pow_val = std::pow(std::max(abs_t, 1e-12), gamma);
|
||||||
|
return A + (B - A) * 0.5 * (1.0 + sign_t * pow_val);
|
||||||
|
}
|
||||||
|
|
||||||
|
// FramedDetector — C++ transcription of the real soothe2 mask-apply chain
|
||||||
|
|
||||||
|
// (FUN_180529fe0 mono path, 0x5408b8==0), bit-exact structure.
|
||||||
|
//
|
||||||
|
// Per band, per bin (exact decomp /tmp/consumers_out.txt:638-1111):
|
||||||
|
// 1. scale: x = level * (fVar30/0x1a0) * 0x540870 * 0x54088c
|
||||||
|
// 2. IIR1 leaky: y[i] = A1[i]*acc + B1[i]*x[i] (A1/B1 ramp attack, live tables)
|
||||||
|
// 3. IIR2 leaky: same with A2/B2 (slow release)
|
||||||
|
// 4. blend: b = freqaxis*(1-mix) + mix*0.8; mask = exp2(0.5*(mask-b))
|
||||||
|
// 5. combine: acc[band] = mask - b; mirror; += w_att*upper; += w_rel*lower; += mask
|
||||||
|
// 6. warp: mask *= 0x540768[band]; mask *= warp (dual tilt)
|
||||||
|
// 7. IIR3 leaky: twice with A3/B3
|
||||||
|
// 8. dry/wet: mask = mask*(fVar30*0x540888) + (1-fVar30)
|
||||||
|
// final = min over bands.
|
||||||
|
// PRNG (FUN_180529fe0 prologue :515-583): LCG state 0x2404e0 advances by round
|
||||||
|
// offsets; fVar30 (scale coeff) = (int)(LUT[s+1]*LUT[s]+0.001), DAT_18262b5c8/
|
||||||
|
// b704/b700 == 1 (VA-linear dump; earlier 0.4552/0.6089/0.6070 was a bad offset).
|
||||||
|
// At live state 112 this yields fVar30 == 1.0 deterministically over many frames.
|
||||||
class FramedDetector {
|
class FramedDetector {
|
||||||
public:
|
public:
|
||||||
FramedDetector(size_t nfft, float sample_rate);
|
FramedDetector(size_t nfft, float sample_rate);
|
||||||
@@ -26,14 +72,26 @@ public:
|
|||||||
|
|
||||||
void processFrame(const std::complex<double>* spectrum, float* mask);
|
void processFrame(const std::complex<double>* spectrum, float* mask);
|
||||||
|
|
||||||
|
// Cascade state access for per-band detector cascade
|
||||||
|
std::vector<fn529fe0::CascadeState>& cascadeStates() { return cascade_states_; }
|
||||||
|
const std::vector<std::vector<std::complex<double>>>& twinRespComplex() const { return twin_resp_complex_; }
|
||||||
|
std::vector<std::vector<std::complex<double>>>& twinRespComplex() { return twin_resp_complex_; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
size_t nfft_;
|
size_t nfft_;
|
||||||
float sample_rate_;
|
float sample_rate_;
|
||||||
double wsum_;
|
double wsum_;
|
||||||
|
int prng_state_ = 112; // 0x2404e0 (live snapshot value; advances per frame)
|
||||||
|
|
||||||
std::vector<DetectorBand> bands_;
|
std::vector<DetectorBand> bands_;
|
||||||
std::vector<std::vector<float>> res_; // per band, per bin |2B/A|
|
std::vector<std::vector<float>> res_; // per band, per bin |2B/A|
|
||||||
std::vector<float> warp_; // per-bin warp tilt
|
|
||||||
std::vector<float> am_; // smoothed per-bin amplitude
|
std::vector<float> am_; // smoothed per-bin amplitude
|
||||||
std::vector<float> rp_; // per-band res power
|
std::vector<float> f6f8_; // shared 0x5406f8 blend buffer (IIR1 out)
|
||||||
|
std::vector<std::vector<float>> track_; // per band, per bin accumulator 0x5407c8
|
||||||
|
|
||||||
|
// For cascade 529c60: per-band complex twin filter responses
|
||||||
|
std::vector<std::vector<std::complex<double>>> twin_resp_complex_;
|
||||||
|
|
||||||
|
// Per-band cascade states
|
||||||
|
std::vector<fn529fe0::CascadeState> cascade_states_;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,102 @@
|
|||||||
|
// framed_test.cpp — рендер входа через SpectralProcessor (real mask chain).
|
||||||
|
// Usage: framed_test <input.wav> <output.wav> [fc[,q[,sens]] ...]
|
||||||
|
#include "spectral.hpp"
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <vector>
|
||||||
|
#include <cmath>
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
static bool load_wav(const char* path, std::vector<float>& out, int& sr) {
|
||||||
|
FILE* f = fopen(path, "rb");
|
||||||
|
if (!f) return false;
|
||||||
|
char hdr[44];
|
||||||
|
if (fread(hdr, 1, 44, f) != 44) return false;
|
||||||
|
sr = *(int*)(hdr + 24);
|
||||||
|
int ch = *(short*)(hdr + 22);
|
||||||
|
int bits = *(short*)(hdr + 34);
|
||||||
|
int data = *(int*)(hdr + 40);
|
||||||
|
int n = data / (ch * (bits / 8));
|
||||||
|
std::vector<short> raw(n * ch);
|
||||||
|
fread(raw.data(), 2, n * ch, f);
|
||||||
|
fclose(f);
|
||||||
|
out.resize(n);
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
long long v = 0;
|
||||||
|
for (int c = 0; c < ch; c++) v += raw[i * ch + c];
|
||||||
|
v /= ch;
|
||||||
|
out[i] = (float)(v / 32768.0);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool save_wav(const char* path, const std::vector<float>& x, int sr) {
|
||||||
|
FILE* f = fopen(path, "wb");
|
||||||
|
if (!f) return false;
|
||||||
|
int data = (int)(x.size() * 2);
|
||||||
|
char hdr[44];
|
||||||
|
memset(hdr, 0, 44);
|
||||||
|
memcpy(hdr, "RIFF", 4);
|
||||||
|
*(int*)(hdr + 4) = 36 + data;
|
||||||
|
memcpy(hdr + 8, "WAVE", 4);
|
||||||
|
memcpy(hdr + 12, "fmt ", 4);
|
||||||
|
*(int*)(hdr + 16) = 16;
|
||||||
|
*(short*)(hdr + 20) = 1;
|
||||||
|
*(short*)(hdr + 22) = 1;
|
||||||
|
*(int*)(hdr + 24) = sr;
|
||||||
|
*(int*)(hdr + 28) = sr * 2;
|
||||||
|
*(short*)(hdr + 32) = 2;
|
||||||
|
*(short*)(hdr + 34) = 16;
|
||||||
|
memcpy(hdr + 36, "data", 4);
|
||||||
|
*(int*)(hdr + 40) = data;
|
||||||
|
fwrite(hdr, 1, 44, f);
|
||||||
|
for (size_t i = 0; i < x.size(); i++) {
|
||||||
|
short v = (short)(std::max(-1.0f, std::min(1.0f, x[i])) * 32767.0f);
|
||||||
|
fwrite(&v, 2, 1, f);
|
||||||
|
}
|
||||||
|
fclose(f);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
if (argc < 3) { fprintf(stderr, "usage: %s in.wav out.wav [fc,q,sens] ...\n", argv[0]); return 1; }
|
||||||
|
std::vector<float> x;
|
||||||
|
int sr;
|
||||||
|
if (!load_wav(argv[1], x, sr)) { fprintf(stderr, "cannot load %s\n", argv[1]); return 1; }
|
||||||
|
std::vector<DetectorBand> bands;
|
||||||
|
if (argc >= 4 && strchr(argv[3], ',')) {
|
||||||
|
// comma form: one or more "fc,q,sens[,scale]" args, each parsed separately
|
||||||
|
for (int i = 3; i < argc; i++) {
|
||||||
|
float fc, q, sens, scl = 1.0f;
|
||||||
|
if (sscanf(argv[i], "%f,%f,%f,%f", &fc, &q, &sens, &scl) < 3) continue;
|
||||||
|
DetectorBand b; b.fc = fc; b.q = q; b.sens = sens; b.level_scale = scl;
|
||||||
|
bands.push_back(b);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (int i = 3; i + 2 < argc; i += 3) {
|
||||||
|
DetectorBand b;
|
||||||
|
b.fc = (float)atof(argv[i]);
|
||||||
|
b.q = (float)atof(argv[i + 1]);
|
||||||
|
b.sens = (float)atof(argv[i + 2]);
|
||||||
|
if (i + 3 < argc) b.level_scale = (float)atof(argv[i + 3]);
|
||||||
|
bands.push_back(b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (bands.empty()) bands.push_back({1000.0f, 1.0f, 12.0f});
|
||||||
|
|
||||||
|
SpectralProcessor sp(2048, 512);
|
||||||
|
sp.setDetectorParams(bands);
|
||||||
|
std::vector<float> y(x.size());
|
||||||
|
const size_t BLK = 1 << 16;
|
||||||
|
std::vector<float> inb(BLK), outb(BLK);
|
||||||
|
for (size_t s = 0; s < x.size(); s += BLK) {
|
||||||
|
size_t n = std::min(BLK, x.size() - s);
|
||||||
|
memcpy(inb.data(), x.data() + s, n * sizeof(float));
|
||||||
|
for (size_t i = n; i < BLK; i++) inb[i] = 0.0f;
|
||||||
|
sp.processBlock(inb.data(), outb.data(), BLK, 1);
|
||||||
|
memcpy(y.data() + s, outb.data(), n * sizeof(float));
|
||||||
|
}
|
||||||
|
save_wav(argv[2], y, sr);
|
||||||
|
printf("wrote %s (%zu samples sr=%d, %zu bands)\n", argv[2], y.size(), sr, bands.size());
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
#include "log2_ln.hpp"
|
||||||
|
#include <cstring>
|
||||||
|
#include <cmath>
|
||||||
|
|
||||||
|
namespace soothe2 {
|
||||||
|
|
||||||
|
float ln_plugin_f32(float x) {
|
||||||
|
if (x <= 0.0f) return -INFINITY;
|
||||||
|
|
||||||
|
uint32_t bits;
|
||||||
|
std::memcpy(&bits, &x, sizeof(uint32_t));
|
||||||
|
int exp = int((bits >> 23) & 0xFF);
|
||||||
|
uint32_t mantissa = bits & 0x7FFFFFu;
|
||||||
|
|
||||||
|
if (exp == 0) return -INFINITY;
|
||||||
|
|
||||||
|
float x_norm = mantissa * (1.0f / 8388608.0f);
|
||||||
|
|
||||||
|
constexpr float c0_a = -0.1517720520f;
|
||||||
|
constexpr float c0_b = 0.1696488112f;
|
||||||
|
constexpr float c1 = -0.1646245718f;
|
||||||
|
constexpr float c2 = 0.1982250363f;
|
||||||
|
constexpr float c3 = -0.2500466406f;
|
||||||
|
constexpr float c4 = 0.3333656490f;
|
||||||
|
constexpr float c5 = -0.5000000000f;
|
||||||
|
constexpr float ln2 = 0.6931471825f;
|
||||||
|
|
||||||
|
constexpr float c0_init = c0_a * c0_b;
|
||||||
|
|
||||||
|
float y = c0_init + x_norm;
|
||||||
|
y = y * x_norm + c1;
|
||||||
|
y = y * x_norm + c2;
|
||||||
|
y = y * x_norm + c3;
|
||||||
|
y = y * x_norm + c4;
|
||||||
|
y = y * x_norm + c5;
|
||||||
|
|
||||||
|
float ln_m = x_norm + x_norm * x_norm * y;
|
||||||
|
|
||||||
|
return ln2 * float(exp - 127) + ln_m;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ln_plugin_f32_arr(const float* in, float* out, size_t n) {
|
||||||
|
for (size_t i = 0; i < n; ++i) {
|
||||||
|
out[i] = ln_plugin_f32(in[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace soothe2
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <cstdint>
|
||||||
|
#include <cmath>
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
namespace soothe2 {
|
||||||
|
|
||||||
|
// Plugin's exact ln(float) from 0x1802a24c0 (535a70 FFT-conv engine)
|
||||||
|
// Computes natural logarithm via mantissa polynomial + exponent scaling
|
||||||
|
// Coefficients extracted from binary at 0x181f81f80..0x181f821c0
|
||||||
|
// Max error ~3e-6 for typical inputs (x in [1, 1.34))
|
||||||
|
float ln_plugin_f32(float x);
|
||||||
|
|
||||||
|
// Vectorized version for arrays
|
||||||
|
void ln_plugin_f32_arr(const float* in, float* out, size_t n);
|
||||||
|
|
||||||
|
} // namespace soothe2
|
||||||
@@ -0,0 +1,151 @@
|
|||||||
|
// render48k.cpp — 48000/N=4096 internal-grid renderer (BITEXACT_PLAN step 6, path b).
|
||||||
|
//
|
||||||
|
// Host audio is 44100; the plugin detector runs internally at 48000/N=4096 (the
|
||||||
|
// live IIR/warp/freq-axis tables are sized for that grid). This tool mirrors that:
|
||||||
|
// 1. read input WAV (44100 host samples)
|
||||||
|
// 2. resample 44100 -> 48000 (libsamplerate, SINC best)
|
||||||
|
// 3. SpectralProcessor(4096, 1024, 48000) with the given bands
|
||||||
|
// 4. resample 48000 -> 44100
|
||||||
|
// 5. write 24-bit output WAV (matches reference format)
|
||||||
|
// Usage: render48k <in.wav> <out.wav> [fc,q,sens[,scale] ...] (comma bands, like framed_test)
|
||||||
|
#include "spectral.hpp"
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <vector>
|
||||||
|
#include <cmath>
|
||||||
|
#include <cstring>
|
||||||
|
#include <samplerate.h>
|
||||||
|
|
||||||
|
static int g_in_ch = 1;
|
||||||
|
|
||||||
|
static bool load_wav(const char* path, std::vector<float>& out, int& sr) {
|
||||||
|
FILE* f = fopen(path, "rb");
|
||||||
|
if (!f) return false;
|
||||||
|
char hdr[44];
|
||||||
|
if (fread(hdr, 1, 44, f) != 44) return false;
|
||||||
|
sr = *(int*)(hdr + 24);
|
||||||
|
int ch = *(short*)(hdr + 22);
|
||||||
|
int bits = *(short*)(hdr + 34);
|
||||||
|
// scan chunks to find data chunk size (hdr[40] may be bext/junk size)
|
||||||
|
int data = 0;
|
||||||
|
int64_t pos = 12;
|
||||||
|
fseek(f, 12, SEEK_SET);
|
||||||
|
while (pos < 32 * 1024 * 1024) {
|
||||||
|
char cid[4]; int csize;
|
||||||
|
if (fread(cid, 1, 4, f) < 4 || fread(&csize, 4, 1, f) < 1) break;
|
||||||
|
pos += 8;
|
||||||
|
if (memcmp(cid, "data", 4) == 0) { data = csize; break; }
|
||||||
|
pos += csize;
|
||||||
|
int skip = csize;
|
||||||
|
if (csize % 2) skip++; // odd chunk size padded
|
||||||
|
fseek(f, skip, SEEK_CUR);
|
||||||
|
}
|
||||||
|
if (!data) { fclose(f); return false; }
|
||||||
|
int n = data / (ch * (bits / 8));
|
||||||
|
g_in_ch = ch;
|
||||||
|
out.resize(n);
|
||||||
|
if (bits == 16) {
|
||||||
|
std::vector<short> raw(n * ch);
|
||||||
|
fread(raw.data(), 2, n * ch, f);
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
long long v = 0;
|
||||||
|
for (int c = 0; c < ch; c++) v += raw[i * ch + c];
|
||||||
|
out[i] = (float)((v / ch) / 32768.0);
|
||||||
|
}
|
||||||
|
} else if (bits == 24) {
|
||||||
|
std::vector<unsigned char> raw(n * ch * 3);
|
||||||
|
fread(raw.data(), 1, n * ch * 3, f);
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
long long v = 0;
|
||||||
|
for (int c = 0; c < ch; c++) {
|
||||||
|
int idx = (i * ch + c) * 3;
|
||||||
|
int32_t s = (raw[idx] | (raw[idx + 1] << 8) | (raw[idx + 2] << 16));
|
||||||
|
if (s & 0x800000) s |= 0xFF000000;
|
||||||
|
v += s;
|
||||||
|
}
|
||||||
|
out[i] = (float)((v / ch) / 8388608.0);
|
||||||
|
}
|
||||||
|
} else return false;
|
||||||
|
fclose(f);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool save_wav24(const char* path, const std::vector<float>& x, int sr) {
|
||||||
|
FILE* f = fopen(path, "wb");
|
||||||
|
if (!f) return false;
|
||||||
|
int ch = 2, bits = 24;
|
||||||
|
// x is already stereo interleaved (size = mono_samples * 2)
|
||||||
|
int data = (int)(x.size() * (bits / 8));
|
||||||
|
char hdr[44]; memset(hdr, 0, 44);
|
||||||
|
memcpy(hdr, "RIFF", 4); *(int*)(hdr + 4) = 36 + data;
|
||||||
|
memcpy(hdr + 8, "WAVE", 4); memcpy(hdr + 12, "fmt ", 4);
|
||||||
|
*(int*)(hdr + 16) = 16; *(short*)(hdr + 20) = 1; *(short*)(hdr + 22) = (short)ch;
|
||||||
|
*(int*)(hdr + 24) = sr; *(int*)(hdr + 28) = sr * ch * (bits / 8);
|
||||||
|
*(short*)(hdr + 32) = (short)ch; *(short*)(hdr + 34) = (short)bits;
|
||||||
|
memcpy(hdr + 36, "data", 4); *(int*)(hdr + 40) = data;
|
||||||
|
fwrite(hdr, 1, 44, f);
|
||||||
|
for (size_t i = 0; i < x.size(); i++) {
|
||||||
|
int32_t v = (int32_t)(std::max(-1.0f, std::min(1.0f, x[i])) * 8388607.0f);
|
||||||
|
unsigned char b0 = v & 0xFF, b1 = (v >> 8) & 0xFF, b2 = (v >> 16) & 0xFF;
|
||||||
|
fwrite(&b0, 1, 1, f); fwrite(&b1, 1, 1, f); fwrite(&b2, 1, 1, f);
|
||||||
|
}
|
||||||
|
fclose(f);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static std::vector<float> resample(const std::vector<float>& in, int src_sr, int dst_sr) {
|
||||||
|
double frac = (double)dst_sr / src_sr;
|
||||||
|
int out_len = (int)(in.size() * frac) + 16;
|
||||||
|
std::vector<float> buf(out_len);
|
||||||
|
SRC_DATA sd;
|
||||||
|
sd.data_in = in.data(); sd.input_frames = (long)in.size();
|
||||||
|
sd.data_out = buf.data(); sd.output_frames = out_len;
|
||||||
|
sd.src_ratio = frac; sd.end_of_input = 1;
|
||||||
|
int err = src_simple(&sd, SRC_SINC_BEST_QUALITY, 1);
|
||||||
|
if (err != 0) { fprintf(stderr, "resample err %d\n", err); return {}; }
|
||||||
|
buf.resize(sd.output_frames_gen);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
if (argc < 3) { fprintf(stderr, "usage: %s in.wav out.wav [fc,q,sens[,scale] ...]\n", argv[0]); return 1; }
|
||||||
|
std::vector<float> x; int sr;
|
||||||
|
if (!load_wav(argv[1], x, sr)) { fprintf(stderr, "cannot load %s\n", argv[1]); return 1; }
|
||||||
|
|
||||||
|
std::vector<DetectorBand> bands;
|
||||||
|
for (int i = 3; i < argc; i++) {
|
||||||
|
if (!strchr(argv[i], ',')) continue;
|
||||||
|
float fc, q, sens, scl = 1.0f;
|
||||||
|
if (sscanf(argv[i], "%f,%f,%f,%f", &fc, &q, &sens, &scl) < 3) continue;
|
||||||
|
DetectorBand b; b.fc = fc; b.q = q; b.sens = sens; b.level_scale = scl;
|
||||||
|
bands.push_back(b);
|
||||||
|
}
|
||||||
|
if (bands.empty()) bands.push_back({1000.0f, 1.0f, 12.0f});
|
||||||
|
|
||||||
|
auto x48 = resample(x, sr, 48000);
|
||||||
|
if (x48.empty()) return 1;
|
||||||
|
|
||||||
|
SpectralProcessor sp(4096, 1024, 48000.0f);
|
||||||
|
sp.setDetectorParams(bands);
|
||||||
|
std::vector<float> y48(x48.size());
|
||||||
|
const size_t BLK = 1 << 16;
|
||||||
|
std::vector<float> inb(BLK), outb(BLK);
|
||||||
|
for (size_t s = 0; s < x48.size(); s += BLK) {
|
||||||
|
size_t n = std::min(BLK, x48.size() - s);
|
||||||
|
memcpy(inb.data(), x48.data() + s, n * sizeof(float));
|
||||||
|
for (size_t i = n; i < BLK; i++) inb[i] = 0.0f;
|
||||||
|
sp.processBlock(inb.data(), outb.data(), BLK, 1);
|
||||||
|
memcpy(y48.data() + s, outb.data(), n * sizeof(float));
|
||||||
|
}
|
||||||
|
auto y = resample(y48, 48000, 44100);
|
||||||
|
if ((int)y.size() > (int)x.size()) y.resize(x.size());
|
||||||
|
|
||||||
|
// write stereo 24-bit
|
||||||
|
std::vector<float> yst(y.size() * 2);
|
||||||
|
for (size_t i = 0; i < y.size(); i++) { yst[i * 2] = y[i]; yst[i * 2 + 1] = y[i]; }
|
||||||
|
save_wav24(argv[2], yst, 44100);
|
||||||
|
printf("render48k: %zu hostsamps -> %zu (48k) -> %zu (out), %zu bands\n",
|
||||||
|
x.size(), x48.size(), y.size(), bands.size());
|
||||||
|
(void)g_in_ch;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,14 @@
|
|||||||
|
// rt_mask_tables.hpp — runtime mask-apply tables captured from live snapshot
|
||||||
|
// (snap_rt.bin, ctx 0x2370040, SR=48000/N=4096). Bit-exact mask chain (FUN_180529fe0).
|
||||||
|
// IIR stage: y = A[i]*acc + B[i]*x (first-order leaky, B = 1 - A).
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
extern const double kIIR_A1[];
|
||||||
|
extern const double kIIR_B1[];
|
||||||
|
extern const double kIIR_A2[];
|
||||||
|
extern const double kIIR_B2[];
|
||||||
|
extern const double kIIR_A3[];
|
||||||
|
extern const double kIIR_B3[];
|
||||||
|
extern const float kWarp[];
|
||||||
|
extern const float kBand768[];
|
||||||
|
extern const float kPRNGLut[];
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
|
|||||||
|
// Auto-generated from live RT capture /tmp/snap_rt.bin (0x5406c8/0x5406e8).
|
||||||
|
// per-bin attack (att) and release (rel) coefficients for the level tracker.
|
||||||
|
#pragma once
|
||||||
|
extern const float kRTAtt[2049];
|
||||||
|
extern const float kRTRel[2049];
|
||||||
+198
-7
@@ -1,33 +1,57 @@
|
|||||||
#include "spectral.hpp"
|
#include "spectral.hpp"
|
||||||
|
#include "fftconv.hpp"
|
||||||
|
#include "log2_ln.hpp"
|
||||||
|
#include "exp2_tables.hpp"
|
||||||
|
#include "exp2.hpp"
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstdio>
|
||||||
|
|
||||||
SpectralProcessor::SpectralProcessor(size_t nfft, size_t hop)
|
SpectralProcessor::SpectralProcessor(size_t nfft, size_t hop, float sample_rate)
|
||||||
: nfft_(nfft), hop_(hop), frame_count_(0), output_pos_(0),
|
: nfft_(nfft), hop_(hop), frame_count_(0), output_pos_(0),
|
||||||
detector_(nfft, 44100.0f) {
|
detector_(nfft, sample_rate) {
|
||||||
window_ = new double[nfft_];
|
window_ = new double[nfft_];
|
||||||
computeWindow();
|
computeWindow();
|
||||||
fft::init_plan(&plan_, static_cast<uint32_t>(std::log2(nfft_)));
|
fft::init_plan(&plan_, static_cast<uint32_t>(std::log2(nfft_)));
|
||||||
buf_ = new std::complex<double>[nfft_];
|
buf_ = new std::complex<double>[nfft_];
|
||||||
tmp_buf_ = new std::complex<double>[nfft_];
|
tmp_buf_ = new std::complex<double>[nfft_];
|
||||||
|
fir_buf_ = new std::complex<double>[nfft_];
|
||||||
|
fir_freq_ = new std::complex<double>[nfft_];
|
||||||
overlap_.resize(nfft_, 0.0f);
|
overlap_.resize(nfft_, 0.0f);
|
||||||
mask_.resize(nfft_, 1.0f);
|
mask_.resize(nfft_, 1.0f);
|
||||||
|
|
||||||
|
// Build FIR window: falling half of periodic Hann(4096).
|
||||||
|
// Plugin reads window[N/2..N-1] of periodic Hann (rising 0→1).
|
||||||
|
fir_window_.resize(nfft_);
|
||||||
|
for (size_t i = 0; i < nfft_; i++) {
|
||||||
|
fir_window_[i] = 0.5 * (1.0 - std::cos(2.0 * M_PI * i / nfft_));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SpectralProcessor::~SpectralProcessor() {
|
SpectralProcessor::~SpectralProcessor() {
|
||||||
delete[] window_;
|
delete[] window_;
|
||||||
delete[] buf_;
|
delete[] buf_;
|
||||||
delete[] tmp_buf_;
|
delete[] tmp_buf_;
|
||||||
|
delete[] fir_buf_;
|
||||||
|
delete[] fir_freq_;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpectralProcessor::setDetectorParams(const std::vector<DetectorBand>& bands) {
|
void SpectralProcessor::setDetectorParams(const std::vector<DetectorBand>& bands) {
|
||||||
detector_.setParams(bands);
|
detector_.setParams(bands);
|
||||||
|
loadWinFreq();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpectralProcessor::computeWindow() {
|
void SpectralProcessor::computeWindow() {
|
||||||
|
// RT_WIN: 0=symmetric hann (legacy), 1=periodic hann, 2=rectangular
|
||||||
|
static const int winmode = getenv("RT_WIN") ? atoi(getenv("RT_WIN")) : 0;
|
||||||
for (size_t i = 0; i < nfft_; i++) {
|
for (size_t i = 0; i < nfft_; i++) {
|
||||||
window_[i] = 0.5 * (1.0 - std::cos(2.0 * M_PI * i / (nfft_ - 1)));
|
double v;
|
||||||
|
if (winmode == 1) v = 0.5 * (1.0 - std::cos(2.0 * M_PI * i / nfft_));
|
||||||
|
else if (winmode == 2) v = 1.0;
|
||||||
|
else v = 0.5 * (1.0 - std::cos(2.0 * M_PI * i / (nfft_ - 1)));
|
||||||
|
window_[i] = v;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,16 +67,20 @@ void SpectralProcessor::istftFrame(std::complex<double>* in, float* out, float*
|
|||||||
fft::execute_inverse(&plan_, tmp_buf_);
|
fft::execute_inverse(&plan_, tmp_buf_);
|
||||||
static bool wola_computed = false;
|
static bool wola_computed = false;
|
||||||
static float wola_norm = 1.0f;
|
static float wola_norm = 1.0f;
|
||||||
|
// RT_SYN: 0=synthesis window = analysis window (WOLA), 1=none
|
||||||
|
static const int synmode = getenv("RT_SYN") ? atoi(getenv("RT_SYN")) : 0;
|
||||||
if (!wola_computed) {
|
if (!wola_computed) {
|
||||||
double wola_sum = 0.0;
|
double wola_sum = 0.0;
|
||||||
for (size_t i = 0; i < nfft_; i++) {
|
for (size_t i = 0; i < nfft_; i++) {
|
||||||
wola_sum += window_[i] * window_[i];
|
double w = (synmode == 1) ? 1.0 : window_[i];
|
||||||
|
wola_sum += window_[i] * w;
|
||||||
}
|
}
|
||||||
wola_norm = static_cast<float>(wola_sum / hop_);
|
wola_norm = static_cast<float>(wola_sum / hop_);
|
||||||
wola_computed = true;
|
wola_computed = true;
|
||||||
}
|
}
|
||||||
for (size_t i = 0; i < nfft_; i++) {
|
for (size_t i = 0; i < nfft_; i++) {
|
||||||
overlap[i] += static_cast<float>(tmp_buf_[i].real() * window_[i]);
|
double w = (synmode == 1) ? 1.0f : window_[i];
|
||||||
|
overlap[i] += static_cast<float>(tmp_buf_[i].real() * w);
|
||||||
}
|
}
|
||||||
for (size_t i = 0; i < hop_; i++) {
|
for (size_t i = 0; i < hop_; i++) {
|
||||||
out[i] = overlap[i] / wola_norm;
|
out[i] = overlap[i] / wola_norm;
|
||||||
@@ -65,12 +93,145 @@ void SpectralProcessor::istftFrame(std::complex<double>* in, float* out, float*
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SpectralProcessor::loadWinFreq() {
|
||||||
|
if (win_freq_loaded_) return;
|
||||||
|
win_freq_loaded_ = true;
|
||||||
|
// Try to load WIN_freq from live capture (handoff/rtwin_freq_44100.npy)
|
||||||
|
FILE* f = fopen("handoff/rtwin_freq_44100.npy", "rb");
|
||||||
|
if (!f) {
|
||||||
|
// Fallback: compute periodic Hann, second half (0.5→1.0 rising)
|
||||||
|
win_freq_.resize(nfft_ / 2 + 1);
|
||||||
|
for (size_t i = 0; i <= nfft_ / 2; i++) {
|
||||||
|
win_freq_[i] = static_cast<float>(0.5 * (1.0 - std::cos(2.0 * M_PI * i / nfft_)));
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Read numpy header
|
||||||
|
char header[128];
|
||||||
|
if (fread(header, 1, 6, f) != 6) { fclose(f); return; }
|
||||||
|
// Skip to data (numpy format: magic + header_len + desc)
|
||||||
|
fseek(f, 0, SEEK_END);
|
||||||
|
long fsize = ftell(f);
|
||||||
|
fseek(f, 0, SEEK_SET);
|
||||||
|
// Simple approach: skip header until '\n' appears, then read raw float32
|
||||||
|
fseek(f, 0, SEEK_SET);
|
||||||
|
int c;
|
||||||
|
while ((c = fgetc(f)) != '\n' && c != EOF) {}
|
||||||
|
// Read count (should be 8193 for 44100)
|
||||||
|
int32_t count = 0;
|
||||||
|
fread(&count, 4, 1, f);
|
||||||
|
// Actually numpy header is more complex; just read all remaining as float32
|
||||||
|
fseek(f, 0, SEEK_SET);
|
||||||
|
// Skip to data: find first 'N' (for 'astype') then skip past it
|
||||||
|
fseek(f, 6, SEEK_SET);
|
||||||
|
while ((c = fgetc(f)) != '\n' && c != EOF) {}
|
||||||
|
// Now at data start. Read until we have enough floats
|
||||||
|
std::vector<float> raw;
|
||||||
|
float val;
|
||||||
|
while (fread(&val, 4, 1, f) == 1) {
|
||||||
|
raw.push_back(val);
|
||||||
|
}
|
||||||
|
fclose(f);
|
||||||
|
if (raw.size() > 0) {
|
||||||
|
win_freq_ = raw;
|
||||||
|
} else {
|
||||||
|
// Fallback
|
||||||
|
win_freq_.resize(nfft_ / 2 + 1);
|
||||||
|
for (size_t i = 0; i <= nfft_ / 2; i++) {
|
||||||
|
win_freq_[i] = static_cast<float>(0.5 * (1.0 - std::cos(2.0 * M_PI * i / nfft_)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SpectralProcessor::buildFirFromMask(const float* mask, std::complex<double>* fir, size_t nbin) {
|
||||||
|
// Plugin FIR construction pipeline (52b550-52b8bb) uses custom real RFFTs with twiddle operations.
|
||||||
|
// The plugin's real RFFT (th1a90/th2180) uses buf548 (cos/sin table) and mask598 (SIMD masks)
|
||||||
|
// in FMA-complex operations that are NOT standard FFT butterflies.
|
||||||
|
//
|
||||||
|
// Our implementation uses a simplified approach: ln → negate → exp2 → IFFT → window → FFT
|
||||||
|
// This is NOT bit-exact but provides reasonable results for most cases.
|
||||||
|
//
|
||||||
|
// To achieve bit-exact FIR construction, we would need to:
|
||||||
|
// 1. Reverse-engineer the exact twiddle operations from disassembly
|
||||||
|
// 2. Implement custom FMA-complex operations with buf548 and mask598
|
||||||
|
// 3. Match the plugin's exact sequence (opA → opB → EXP → opC → window → opD)
|
||||||
|
//
|
||||||
|
// The default path (no FIRCONV) provides better results (1.825 dB TOTAL) than
|
||||||
|
// the FIR construction path (10.377 dB TOTAL), so we use the default path.
|
||||||
|
|
||||||
|
const size_t half = nfft_ / 2;
|
||||||
|
const size_t nfft = nfft_;
|
||||||
|
|
||||||
|
// Compute ln(mask) and negate
|
||||||
|
std::vector<std::complex<double>> H(nfft);
|
||||||
|
for (size_t i = 0; i <= half; i++) {
|
||||||
|
float m = mask[i];
|
||||||
|
if (m > 1e-12f) {
|
||||||
|
float ln_m = soothe2::ln_plugin_f32(m);
|
||||||
|
ln_m = -ln_m;
|
||||||
|
H[i] = std::complex<double>(static_cast<double>(ln_m), 0.0);
|
||||||
|
} else {
|
||||||
|
H[i] = std::complex<double>(0.0, 0.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Zero upper half
|
||||||
|
for (size_t i = half + 1; i < nfft; i++) {
|
||||||
|
H[i] = std::complex<double>(0.0, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// IFFT to time domain
|
||||||
|
fft::execute_inverse(&plan_, H.data());
|
||||||
|
|
||||||
|
// Causal window: keep first half, apply rising Hann (0.5→1.0)
|
||||||
|
for (size_t i = 0; i < half; i++) {
|
||||||
|
double win = 0.5 * (1.0 - std::cos(2.0 * M_PI * i / nfft));
|
||||||
|
H[i] *= win;
|
||||||
|
}
|
||||||
|
for (size_t i = half; i < nfft; i++) {
|
||||||
|
H[i] = std::complex<double>(0.0, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// FFT back to freq domain
|
||||||
|
fft::execute(&plan_, H.data());
|
||||||
|
|
||||||
|
// Apply WIN_freq window
|
||||||
|
if (!win_freq_.empty() && win_freq_.size() > half) {
|
||||||
|
for (size_t i = 0; i <= half; i++) {
|
||||||
|
H[i] *= static_cast<double>(win_freq_[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Zero upper half again
|
||||||
|
for (size_t i = half + 1; i < nfft; i++) {
|
||||||
|
H[i] = std::complex<double>(0.0, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Normalize: FIR[0]=1, FIR[1]=0
|
||||||
|
double scale = 1.0;
|
||||||
|
if (std::abs(H[0].real()) > 1e-12) {
|
||||||
|
scale = 1.0 / H[0].real();
|
||||||
|
}
|
||||||
|
for (size_t i = 0; i < nfft; i++) {
|
||||||
|
fir[i] = H[i] * scale;
|
||||||
|
}
|
||||||
|
fir[0] = std::complex<double>(1.0, 0.0);
|
||||||
|
if (half >= 1) {
|
||||||
|
fir[1] = std::complex<double>(0.0, 0.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void SpectralProcessor::processBlock(float* in, float* out, size_t num_samples, size_t num_channels) {
|
void SpectralProcessor::processBlock(float* in, float* out, size_t num_samples, size_t num_channels) {
|
||||||
memset(out, 0, num_samples * sizeof(float));
|
memset(out, 0, num_samples * sizeof(float));
|
||||||
if (num_samples == 0 || num_samples < nfft_) {
|
if (num_samples == 0 || num_samples < nfft_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const int firconv = []() {
|
||||||
|
const char* e = getenv("RT_FIRCONV");
|
||||||
|
return e ? atoi(e) : 0;
|
||||||
|
}();
|
||||||
|
|
||||||
size_t nframes = (num_samples - nfft_) / hop_ + 1;
|
size_t nframes = (num_samples - nfft_) / hop_ + 1;
|
||||||
|
|
||||||
for (size_t f = 0; f < nframes; f++) {
|
for (size_t f = 0; f < nframes; f++) {
|
||||||
@@ -80,8 +241,38 @@ void SpectralProcessor::processBlock(float* in, float* out, size_t num_samples,
|
|||||||
|
|
||||||
detector_.processFrame(buf_, mask_.data());
|
detector_.processFrame(buf_, mask_.data());
|
||||||
|
|
||||||
for (size_t i = 0; i < nfft_; i++) {
|
if (firconv == 3) {
|
||||||
buf_[i] *= mask_[i];
|
// RT_FIRCONV=3 (NOTES 24k): plugin application law decoded live:
|
||||||
|
// applied_gain = 1.019 * V^1.8345 per bin (rms 0.0025 dB over
|
||||||
|
// 8 drive levels). V = band curve (detector output); here M.
|
||||||
|
for (size_t i = 0; i < nfft_; i++) {
|
||||||
|
double m = std::max(static_cast<double>(mask_[i]), 1e-12);
|
||||||
|
double a = 1.019 * std::pow(m, 1.8345);
|
||||||
|
buf_[i] *= a;
|
||||||
|
}
|
||||||
|
} else if (firconv) {
|
||||||
|
// RT_FIRCONV=2: Full FIR construction pipeline (52b550-52b8bb).
|
||||||
|
// mask → reciprocal (1/mask) → window → normalize → complex multiply.
|
||||||
|
// This replicates the plugin's FFT-conv FIR design path.
|
||||||
|
buildFirFromMask(mask_.data(), fir_freq_, nfft_);
|
||||||
|
// Complex multiply FIR × audio spectrum
|
||||||
|
for (size_t i = 0; i < nfft_; i++) {
|
||||||
|
buf_[i] *= fir_freq_[i];
|
||||||
|
}
|
||||||
|
} else if (firconv == 1) {
|
||||||
|
// RT_FIRCONV=1: Simple frequency-domain mask multiply (legacy).
|
||||||
|
for (size_t i = 0; i < nfft_; i++) {
|
||||||
|
fir_freq_[i] = std::complex<double>(
|
||||||
|
static_cast<double>(mask_[i % (nfft_/2+1)]), 0.0);
|
||||||
|
}
|
||||||
|
for (size_t i = 0; i < nfft_; i++) {
|
||||||
|
buf_[i] *= fir_freq_[i];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Default path: simple frequency-domain mask multiply.
|
||||||
|
for (size_t i = 0; i < nfft_; i++) {
|
||||||
|
buf_[i] *= mask_[i];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
istftFrame(buf_, out + offset, overlap_.data());
|
istftFrame(buf_, out + offset, overlap_.data());
|
||||||
|
|||||||
+15
-1
@@ -11,7 +11,8 @@ constexpr size_t DEFAULT_HOP = 512;
|
|||||||
|
|
||||||
class SpectralProcessor {
|
class SpectralProcessor {
|
||||||
public:
|
public:
|
||||||
SpectralProcessor(size_t nfft = DEFAULT_NFFT, size_t hop = DEFAULT_HOP);
|
SpectralProcessor(size_t nfft = DEFAULT_NFFT, size_t hop = DEFAULT_HOP,
|
||||||
|
float sample_rate = 44100.0f);
|
||||||
~SpectralProcessor();
|
~SpectralProcessor();
|
||||||
|
|
||||||
void setDetectorParams(const std::vector<DetectorBand>& bands);
|
void setDetectorParams(const std::vector<DetectorBand>& bands);
|
||||||
@@ -24,6 +25,9 @@ private:
|
|||||||
FFTPlan plan_;
|
FFTPlan plan_;
|
||||||
std::complex<double>* buf_;
|
std::complex<double>* buf_;
|
||||||
std::complex<double>* tmp_buf_;
|
std::complex<double>* tmp_buf_;
|
||||||
|
std::complex<double>* fir_buf_;
|
||||||
|
std::complex<double>* fir_freq_;
|
||||||
|
std::vector<double> fir_window_;
|
||||||
std::vector<float> overlap_;
|
std::vector<float> overlap_;
|
||||||
std::vector<float> mask_;
|
std::vector<float> mask_;
|
||||||
FramedDetector detector_;
|
FramedDetector detector_;
|
||||||
@@ -33,4 +37,14 @@ private:
|
|||||||
void computeWindow();
|
void computeWindow();
|
||||||
void stftFrame(const float* in, std::complex<double>* out);
|
void stftFrame(const float* in, std::complex<double>* out);
|
||||||
void istftFrame(std::complex<double>* in, float* out, float* overlap);
|
void istftFrame(std::complex<double>* in, float* out, float* overlap);
|
||||||
|
|
||||||
|
// FIR construction from detector mask (52b550-52b8bb pipeline):
|
||||||
|
// mask → log → sign-invert → EXP → twiddle ops → window → normalize
|
||||||
|
// Produces frequency-domain FIR kernel for complex multiply application.
|
||||||
|
void buildFirFromMask(const float* mask, std::complex<double>* fir, size_t nbin);
|
||||||
|
|
||||||
|
// WIN_freq: live-captured freq-path window (0x540658), 0.5→1.0
|
||||||
|
std::vector<float> win_freq_;
|
||||||
|
bool win_freq_loaded_ = false;
|
||||||
|
void loadWinFreq();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
-- dump_params.lua : enumerate soothe2 FX params (name, raw, formatted) to file
|
||||||
|
local out = io.open("/tmp/opencode/fxparams.txt", "w")
|
||||||
|
local tr = reaper.GetTrack(0, 0)
|
||||||
|
if tr == nil then
|
||||||
|
out:write("NO TRACK\n"); out:close(); return
|
||||||
|
end
|
||||||
|
local nfx = reaper.TrackFX_GetCount(tr)
|
||||||
|
out:write(string.format("nfx=%d\n", nfx))
|
||||||
|
for fxi = 0, nfx - 1 do
|
||||||
|
local rv, fxname = reaper.TrackFX_GetFXName(tr, fxi, "")
|
||||||
|
out:write(string.format("FX %d: %s\n", fxi, fxname))
|
||||||
|
local np = reaper.TrackFX_GetNumParams(tr, fxi)
|
||||||
|
for p = 0, np - 1 do
|
||||||
|
local _, pname = reaper.TrackFX_GetParamName(tr, fxi, p, "")
|
||||||
|
local val, minv, maxv = reaper.TrackFX_GetParam(tr, fxi, p)
|
||||||
|
local _, fmt = reaper.TrackFX_GetFormattedParamValue(tr, fxi, p, "")
|
||||||
|
out:write(string.format("%d\t%s\traw=%.6f\t[%.3f..%.3f]\tfmt=%s\n", p, pname, val, minv, maxv, fmt))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
out:close()
|
||||||
|
local t0 = reaper.time_precise()
|
||||||
|
while reaper.time_precise() - t0 < 2 do reaper.defer(function() end) end
|
||||||
|
reaper.Main_OnCommand(40004, 0) -- File: Quit REAPER
|
||||||
@@ -0,0 +1,792 @@
|
|||||||
|
# BLOCK MAP: FUN_180529fe0 (полная разметка по raw asm, 22v)
|
||||||
|
|
||||||
|
Источник: `handoff/nls_dasm/f529fe0_full.dis` (soothe_mem.bin, база 0x180000000,
|
||||||
|
диапазон 529c60–52ba00; старый f529fe0.dis был ОБРЕЗАН на 52a813).
|
||||||
|
Регистры: r13 = индекс полосы, r12 = state-ptr ctx+0x440518, esi/r8d = nbin,
|
||||||
|
rbx = nbands ([rsp+0x30]), rdi = ctx. Флаг 0x5408b8 выбирает float/double
|
||||||
|
вариант thunk-операций (семантика пар идентична).
|
||||||
|
|
||||||
|
## Исправление адресации (главное)
|
||||||
|
«Скалярные» буферы NOTES 21b — МАССИВЫ пер-полосных векторов (шаг 16 байт):
|
||||||
|
- bands[i] = [ctx+0x540678+i·16] — кривые полос
|
||||||
|
- acc[i] = [ctx+0x5407c8+i·16] — ПЕР-ПОЛОСНЫЙ аккумулятор combine
|
||||||
|
- track[i] = [ctx+0x540768+i·16] — трек основного цикла
|
||||||
|
|
||||||
|
## Thunk-таблица (ILT-стаб 180001xxx -> jmp [table + idx*8], idx @1826159a0)
|
||||||
|
Резолв при live idx=4; семантика из тел + NOTES 21b:
|
||||||
|
| стаб float | стаб double | impl | op |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 0x180001f10 | 0x180001c70 | dc40 / **8d60** | dst = B − A (sub) |
|
||||||
|
| 0x180001fa0 | 0x180001940 | ee20→487a0 / **3c40** | fma att/rel половин |
|
||||||
|
| 0x180001d60 | —(встречен в 1b80-паре?) | — / **5a20** | dst += B (add) |
|
||||||
|
| 0x180001970 | — | **3f40** | sub (float) |
|
||||||
|
| 0x1800019a0 | — | **4200** | mul scalar? (делегирует 181a63fe0) |
|
||||||
|
| 0x180001a00 | — | **4720** | mul |
|
||||||
|
| 0x180001a60 | — | **5160** | sub DOUBLE |
|
||||||
|
| 0x180001850 | — | **25e0** | add DOUBLE |
|
||||||
|
| 0x180002000 | 0x180001c40 | ? | axpy-класс (band ⊕ track) |
|
||||||
|
| 0x180002060 | 0x180002120 | 10860/11940 | transform со скаляром xmm3 |
|
||||||
|
| 0x180002270 | 0x1800022a0 | 14c40/15060 | transform со скаляром xmm0/xmm1 |
|
||||||
|
| 0x180002030 | 0x180001d30 | ? | transform float/double |
|
||||||
|
| in-place кернелы | | 140950/140980/1409b0/1409e0/140a40/140ad0/140b00/140b60 | bigkernel-семейство (exp2/mask) |
|
||||||
|
|
||||||
|
## Карта блоков
|
||||||
|
|
||||||
|
### Пролог
|
||||||
|
- `52a03a–52a396`: PRNG-пролог. LCG state @ctx+0x2404e0, шаги +0x3cdca,
|
||||||
|
+0x140236, +0x10d56, +0xdf6b6, +0xa8c5e, +0x72916; LUT ptr @ctx+0x5408b0;
|
||||||
|
константы 262b704/262b5c8(int)/262b700(int)/24c3c58. Результат: индексы
|
||||||
|
iVar7/iVar8 ([rsp+0x130]/счётчики) и стартовая позиция цикла.
|
||||||
|
Live-поведение залочено раньше (fVar30=1).
|
||||||
|
- `52a397`: r14 = &bands[0].
|
||||||
|
|
||||||
|
### Pre-combine #1 (52a397–52a421)
|
||||||
|
- `52dbc0(f6f8_data, bands[0], nbin)` — copy bands[0] → f6f8.
|
||||||
|
- цикл i=1..nbands−1 по массиву @0x540688 (= &bands[1]!): transform(f6f8, bands[i])
|
||||||
|
через 20f0(float)/1850(double=25e0 ADD). ⇒ **f6f8 = Σ_{i≥1} bands[i]** (или min/max
|
||||||
|
— точный op 20f0 не залочен, кандидат ADD по double-паре!).
|
||||||
|
|
||||||
|
### Нормировка + mix-вес (52a421–52a458)
|
||||||
|
- `52d920(f6f8, xmm11/[rsp+0x148](int), nbin)` — f6f8 /= K.
|
||||||
|
- `xmm7 = powf([ctx+0x2c], xmm13)` — mix^p.
|
||||||
|
|
||||||
|
### Pre-combine #2 (52a45e–52a4f6) по всем полосам
|
||||||
|
- band[i] *= (xmm11 − xmm7) [thunk 2030/1d30]
|
||||||
|
- f6f8 ⊕= ... с весом xmm7 [thunk 1fd0/2150]
|
||||||
|
⇒ взвешенное смешение кривых полос ДО основного цикла.
|
||||||
|
|
||||||
|
### Основной цикл по полосам (52a4fb..52b3c7, тело с 52a580)
|
||||||
|
На каждую полосу i (r13):
|
||||||
|
1. `scale` (52a583–52a5c4): s = xmm11·[0x540870]; если флаг 0x5408b8:
|
||||||
|
s ← exp(PRNG)-ветка; затем ·[0x54088c]. Читается track_i (@0x540768[i]) в [rsp+0x40].
|
||||||
|
2. `transform(bands[i], s)` (52a5cc–52a607): bands[i] *= s [2030/1d30].
|
||||||
|
3. флаг-оп (52a608–52a645): transform(bands[i], bands[i]) через 140980/1409b0
|
||||||
|
(bigkernel, вероятно exp2-кернел) — только при флаге.
|
||||||
|
4. `52d650(state@0x440518, f6f8, bands[i], nbin)` (52a646–52a658) — БИДИР-IIR #1:
|
||||||
|
band → f6f8 (double, коэф down@0x440528/up@0x4c0528, acc@0x540528, reset внутри).
|
||||||
|
5. Инлайн БИДИР-IIR #2 (52a65d–52a85a, только при флаге; иначе прыжок на 6):
|
||||||
|
вход f6f8 → выход bands[i] (тот же state 0x440518, reset отдельно).
|
||||||
|
6. `transform(f6f8 ⊕ bands[i])` (52a85b–52a896) [1970/1a60 = 3f40 SUB float /
|
||||||
|
5160 SUB double]: f6f8 −= bands[i]? (аргументы rcx=f6f8, rdx=band).
|
||||||
|
7. **БИДИР-IIR #3** (52a897–52aa6e, инлайн): state base 0x3404f8
|
||||||
|
(down@0x2404f8, up@0x2c04f8, acc@0x3404f8), длина из поля ctx+0x2404e8,
|
||||||
|
IN-PLACE по bands[i]. Reset каждый вызов.
|
||||||
|
8. `op(bands[i], скаляр xmm9=0?)` (52aa6e–52aaaf) [2060/2120].
|
||||||
|
9. Ветка флага==0 (52aabc–52ab90):
|
||||||
|
- op(vec@0x540698, f6f8, scalar=(конст1 − [0x54087c])) [1a00/1be0 = mul]
|
||||||
|
- op(f6f8, scalar=[0x54087c]·xmm10) [2270/22a0]
|
||||||
|
- bigkernel `140b60/140950(bands[i], f6f8, bands[i], nbin)`
|
||||||
|
10. **COMBINE (52ab90–52abd7)**: acc_i = [0x5407c8+i·16];
|
||||||
|
`op(rcx=acc_i, rdx=bands[i], r8=f6f8, r9=nbin)` [1f10→dc40 float-SUB /
|
||||||
|
1c70→8d60 double-SUB]: **f6f8 = bands[i] − acc_i** ✓ NOTES 21b.
|
||||||
|
11. Половины f6f8 + fma (52abd7–52ad04):
|
||||||
|
- rbp = f6f8 + nbin (верхняя половина); op(f6f8_low?, ...) [2060/2120, scalar 0]
|
||||||
|
- op(rcx=f6f8_upper, rdx=vec@0x5406c8, r8=acc_i) [1fa0/1940 = **3c40 fma**]
|
||||||
|
- op(rcx=f6f8_lower, rdx=vec@0x5406e8, r8=acc_i) [1fa0/1940]
|
||||||
|
⇒ fma с коэф-массивами 0x5406c8 (upper/att) и 0x5406e8 (lower/rel) ✓.
|
||||||
|
12. `acc_i += bands[i]` (52acf4–52ad03) [1b80→6840 / 1d60→**5a20** add] ✓.
|
||||||
|
13. Ветка флага!=0 (52ad04–52ae57): повтор п.9 с теми же адресами
|
||||||
|
(0x540698, f6f8-blend, bigkernel 1409e0/140ad0).
|
||||||
|
14. `op(bands[i], скаляры 0x1824c4680 / xmm13)` (52ae58–52ae56 хвост).
|
||||||
|
15. `bands[i] ⊕= track_i [rsp+0x40]` (52ae74–52ae8a) [2000/1c40].
|
||||||
|
16. `op(vec@0x5406a8, bands[i])` (52ae8f–52aecа) [2000/1c40].
|
||||||
|
17. флаг → bigkernel in-place 140980/1409b0 (52aecb–52af08).
|
||||||
|
18. **БИДИР-IIR #4 ×2** (52af09–52b2af и повтор 52b0de–52b2af):
|
||||||
|
state base 0x440510 (down@0x340510, up@0x3c0510, acc@0x440510),
|
||||||
|
длина ctx+0x340500, in-place bands[i]. ДВА прохода подряд (каждый с reset).
|
||||||
|
19. Финальные scale/op полосы (52b2af–52b3af):
|
||||||
|
- скаляр `[ctx+0x1c+i·4] · xmm14` → transform [2030/1d30]
|
||||||
|
- bigkernel in-place 1409e0/140ad0 (при флаге) ИЛИ
|
||||||
|
op(scalar=xmm12/xmm8) [2270/22a0] + `140a40/140b00(band,band,scalar)`
|
||||||
|
20. Инкремент i (52b3af–52b3c7), выход при i ≥ nbands.
|
||||||
|
|
||||||
|
### Эпилог (52b3cd–52b935)
|
||||||
|
- GUI-snapshot блок (флаг 0x2404bc): копии векторов @0x540728 ← bands[i]
|
||||||
|
(совпадает с consumers_out.txt:144-183).
|
||||||
|
- Остаток до 52b935: восстановить при транскрипции (вероятно dry/wet + mirror).
|
||||||
|
|
||||||
|
## Состояния бидир-IIR (4 базы, лейаут {down,+0x80000 up,+0x80010/+0x100010 acc})
|
||||||
|
| # | база | downCoef | upCoef | acc | длина |
|
||||||
|
|---|------|----------|--------|-----|-------|
|
||||||
|
| 1–2 (52d650+инлайн) | 0x440518 | +0x10 | +0x80010 | +0x100010 | nbin |
|
||||||
|
| 3 | 0x2c04f8-группа | 0x2404f8 | 0x2c04f8 | 0x3404f8 | поле ctx+0x2404e8 |
|
||||||
|
| 4 ×2 | 0x340510/0x3c0510 | 0x340510 | 0x3c0510 | 0x440510 | поле ctx+0x340500 |
|
||||||
|
|
||||||
|
## Открытые вопросы к транскрипции
|
||||||
|
1. Точный op thunk 20f0/1850 в pre-combine #1 (ADD — кандидат).
|
||||||
|
2. Аргументный порядок 2000/1c40 (axpy) и 2060/2120.
|
||||||
|
3. Семантика bigkernel-семейства 1409xx/140axx/140bxx (какой где: exp2(-x),
|
||||||
|
exp2(-x)·blend, mirror?).
|
||||||
|
4. Что пишется в track_i @0x540768[i] (writer вне метода — искать отдельной охотой;
|
||||||
|
кандидат FUN_18052e9b0).
|
||||||
|
5. Эпилог 52b4eb–52b935.
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 22v: декод генератора коэффициентов
|
||||||
|
|
||||||
|
### FUN_180530b60 (апдейт параметров, size=462)
|
||||||
|
- fVar2 = powf([ctx+0x540878], K1); fVar3 = powf([ctx+0x54087c], K2)
|
||||||
|
(оба live = 0.5 — параметры attack/release-класса);
|
||||||
|
- лог-интерполяция констант → [ctx+0x540894] и [ctx+0x540898] (тау-скаляры);
|
||||||
|
- вызовы генератора на все три состояния:
|
||||||
|
- 180533340(ctx+0x2404e8, tau=0x540894-ветка, C=DAT_1824c459c, sr, ...)
|
||||||
|
- 180533340(ctx+0x340500, tau=[0x540894], ...)
|
||||||
|
- 180533340(ctx+0x440518, tau=[0x540898], ..., mult=DAT_1824c4564)
|
||||||
|
|
||||||
|
### FUN_180533340(state, tau, C, sr, p, mult) — ГЕНЕРАТОР КОЭФ. БИДИР-IIR
|
||||||
|
```
|
||||||
|
sr' = sr · DAT_1824c3d8c
|
||||||
|
acc = 0; downCoef[0] = 1.0 (int-пара {0, 0x3ff00000} @+0x10)
|
||||||
|
n = state[0]; fc_norm = (C/sr')·n
|
||||||
|
for i in 1..n-1:
|
||||||
|
g = (i <= fc_norm) ? fc_norm/i : powf(fc_norm/i, p) # частотный варп!
|
||||||
|
c = 1/(g·tau/mult + 1)
|
||||||
|
up[i] = exp(c·g·tau/state[2] · DAT_1824c46b8)
|
||||||
|
down[i] = 1 − up[i]
|
||||||
|
```
|
||||||
|
ЛЕЙАУТ СОСТОЯНИЯ СОШЁССЯ: downCoef[] @base+0x10, upCoef[] @base+0x80010
|
||||||
|
(pdVar6[0x10000] = +0x80000 байт), acc — скаляр в хвосте. Это ЧАСТОТНО-
|
||||||
|
ЗАВИСИМОЕ сглаживание маски: сила растёт к низким бинам (1/i) с питч-законом
|
||||||
|
выше кросса. Вот где «размазывание» нотча в реале — НЕ плоский IIR, который
|
||||||
|
мы отвергли офлайн (22u), а пер-биновый варп!
|
||||||
|
|
||||||
|
### Статус сбора (решение: без коммитов до первой валидации)
|
||||||
|
Незакоммичено: f529fe0_full.dis, BLOCKMAP_529fe0.md, thunk-резолвер,
|
||||||
|
правки NOTES_LEVEL (22v будет добавлена при транскрипции). Следующий шаг —
|
||||||
|
транскрипция process_frame_faithful по этой карте.
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 23b: резолв ILT + декод FIR-цикла (52b550–52b8bb)
|
||||||
|
|
||||||
|
### Резолвер
|
||||||
|
`scripts/ilt_resolve.py`: стаб = `mov eax,[rip+idx]; lea r10,[rip+tbl]; jmp [r10+rax*8]`;
|
||||||
|
live idx=4 у всех; таблицы @0x1826xxxx. Полная таблица «стаб→impl»:
|
||||||
|
| стаб | impl | роль (уточн.) |
|
||||||
|
|---|---|---|
|
||||||
|
| 0x180002210 | 0x136e0 | copy scratch→FIR? (валидатор → 39de0/3a040/3a220) |
|
||||||
|
| 0x180002180 | 0x125e0 | complex-op A/C float (воркер 3a4a0; r9 НЕ передаётся ⇒ длина из объекта) |
|
||||||
|
| 0x180001bb0 | 0x6a40 | complex-op A/C double |
|
||||||
|
| 0x180001a90 | 0x5560 | complex-op B/D float — ЧИСТЫЙ FMA (fma=28, mul/add=0!) |
|
||||||
|
| 0x1800019d0 | 0x4340 | complex-op B/D double |
|
||||||
|
| 0x180001880 | 0x2c60 | paired-scalar op 1 (флаг-ветка) |
|
||||||
|
| 0x180001ca0 | 0x9380 | paired-scalar op 2 |
|
||||||
|
| 0x180001df0 | 0xb3c0 | final op float |
|
||||||
|
| 0x180001f70 | 0xe360 | final op double |
|
||||||
|
| 0x180140a10 | 0x141400→[1826181d8]=**0x1802a24c0** | дизайн float |
|
||||||
|
| 0x180140a70 | 0x141580→[1826183c8]=**0x1802fa420** | дизайн double |
|
||||||
|
| 2030/1d30 | ffe0 / 9be0 | scalar-transform |
|
||||||
|
| 2270/22a0 | 14c40 / 15060 | scalar-transform-2 |
|
||||||
|
| 2000/1c40 | fb60 / 8700 | axpy-класс |
|
||||||
|
| остальное | dc40,8d60,5a20,4720,4200,3f40,5160,25e0,ee20,3c40 | как в BLOCKMAP ✓ |
|
||||||
|
|
||||||
|
### Дизайн-тело 0x1802a24c0 (float, вход=rcx bands[i], выход=rdx scratch@0x540628)
|
||||||
|
Функция входа 0..0x675 (~1.6КБ), далее сиблинги. Алгоритм = **ВЕКТОРНЫЙ LOG2**
|
||||||
|
(range reduction бит-трюком с 0.6666667, полином Хорнера на YMM-константах
|
||||||
|
−0.5, 0.3333656, −0.2500466, 0.198225, −0.1646246, 0.1696488, −0.1517721,
|
||||||
|
реконструкция ×ln2=0.6931472; константы @FN+0x1cdfac0..d20). Маскированный
|
||||||
|
хвост через vmaskmovps/popcnt-таблицы (@0x181F8xxxx). ИТОГ: **scratch = log(bands[i])**.
|
||||||
|
Диспетчер 535a70 делает swap аргументов (rcx↔rdx) перед прыжком!
|
||||||
|
|
||||||
|
### Структура FIR-цикла (полностью залочена)
|
||||||
|
На полосу: 2×scalar-transform(bands[i], xmm8·[540888] при флаге 540890==0, иначе
|
||||||
|
xmm8; затем xmm12−xmm8) [ср. decomp 184-185: A=[0x540874]−expf(K), wet=[0x540888]]
|
||||||
|
→ DESIGN=log(bands[i])→scratch → copy(scratch→FIR@0x540668) [2210]
|
||||||
|
→ opA(FIR,buf548,buf598) [2180/1bb0] → FIR[n]=0 (n=0x540534=4096!)
|
||||||
|
→ 52d920(&FIR[1], xmm13, n/2−1) деление; 52db50(&FIR[2049], xmm9, n/2−1)
|
||||||
|
→ opB [1a90/19d0] → bigkernel in-place 140b30/140aa0 (n/2+1)
|
||||||
|
→ opC [2180/1bb0] → FIR[n]=0 → 52d990(FIR, WIN_freq+n/2, n/2) УМНОЖЕНИЕ на
|
||||||
|
**падающую половину Hann** (WIN_freq=wperiodicHann4096: w[1024]=0.5,w[2048]=1.0!)
|
||||||
|
→ 52db50(&FIR[2048], xmm9, n/2) → opD [1a90/19d0] → FIR[0]=1.0, FIR[1]=0
|
||||||
|
→ флаг-ветка: парно-скалярные 1880/ca0 → dry/wet scale ×[0x540888] над **2n флоатов**
|
||||||
|
→ final(df0/f70) с сохранённым track_i ([rsp+0x138][i]).
|
||||||
|
|
||||||
|
### Живые буферы (firtrace.py по s1/s2 + свежие захваты dual_b1q_0.5)
|
||||||
|
- 0x540658 WIN_freq = периодический Hann(4096), пик 1.0 @bin2048 (НЕ рамп 0.5→0.8!)
|
||||||
|
- 0x540758 freqaxis = линейный, шаг ≈11.713 Гц (≈48000/4096=11.71875, лёгкое
|
||||||
|
занижение — похоже на накопительную ошибку f32 при построении суммой)
|
||||||
|
- 0x540598 = SIMD-маски: 8×1.0 / 8×0.0 периодом 16 флоатов, ровно 1024 шт
|
||||||
|
(YMM lane-select для комплексных кернелов)
|
||||||
|
- 0x540550 NULL (float-путь активен, флаг 0x5408b8=0); 0x540628 scratch нулевой
|
||||||
|
между колбеками; 0x540668 FIR = комплексная единица (1,0)×2049 бинов МЕЖДУ
|
||||||
|
колбеками — кернел потребляется и сбрасывается внутри колбека
|
||||||
|
- 0x5406f8 хранит аудио-масштабный сигнал (~±0.1) между колбеками — overlap/STFT
|
||||||
|
буфер conv-движка (не «нулевой acc»!)
|
||||||
|
- 0x540788 vs 0x5407f8 различаются (max 1.108; @171: 1.751 vs 1.409) — две РАЗНЫЕ
|
||||||
|
кривые; ни одна не достигает нужных 3.89×@171 (11.82 дБ) ⇒ применённый фильтр
|
||||||
|
≠ поточечная копия любой из живых кривых (подтверждение разрыва 22y)
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24l: точный декод FIR-цикла по дизасму (52b550–52b8bb) + константы
|
||||||
|
|
||||||
|
Инструмент: scripts/disasm.py (capstone, base 0x180000000 над soothe_mem.bin).
|
||||||
|
ILT-резолв bigkernel-стабов даёт impl в 141100..141940 — все они IAT-thunk
|
||||||
|
массивы (`mov rax,[rip+..]; jmp rax`) вне дампа ⇒ тела за импортами; НО
|
||||||
|
последовательность и КОНСТАНТЫ цикла видны полностью:
|
||||||
|
|
||||||
|
### Пошагово (float-ветка, флаг 0x540890==0):
|
||||||
|
```
|
||||||
|
52b5a3: xmm6 = xmm8 · [ctx+0x540888]
|
||||||
|
52b5bf: th2030(bands[i], xmm6, n) ; bands *= 1.0·s888 (xmm8=double 1.0!)
|
||||||
|
52b5f6: th2270(bands[i], xmm7, n) ; scalar-transform-2
|
||||||
|
52b62f: 535a70(scratch@540628, bands[i], n/2+1) ; DESIGN: swap→scratch=log(bands)
|
||||||
|
52b644: th2210(rcx=scratch, rdx=0, r8=FIR, r9=n/2+1) ; копия (+упаковка?)
|
||||||
|
52b696: FIR[n]=0 ; float-индекс n=4096
|
||||||
|
52b69e: 52d920(&FIR[1], xmm13=-1.0, n/2-1) ; РАЗДЕЛЕНИЕ НА −1 ⇒ ИНВЕРСИЯ ЗНАКА бинов 1..n/2!
|
||||||
|
52b6ab: 52db50(&FIR[n/2+1], xmm9=0, n/2-1) ; ОБНУЛЕНИЕ верхней половины до exp!
|
||||||
|
52b6e1: opB = th1a90(FIR, buf548, mask598, n/2-1) ; FMA-complex (twiddle!)
|
||||||
|
52b716: BIGKERNEL 140b30(FIR, FIR, n/2+1) ; EXP in-place (тело за IAT)
|
||||||
|
52b74b: opC = th2180(FIR, buf548, mask598, n/2-1)
|
||||||
|
52b76d: FIR[n]=0
|
||||||
|
52b77c: 52d990(FIR, WINfreq+n/2, n/2) ; окно: th2000-класс (FMA axpy!)
|
||||||
|
52b78c: 52db50(&FIR[n/2], xmm9=0, n/2) ; верхняя половина ×0 снова
|
||||||
|
52b7ba: opD = th1a90(...)
|
||||||
|
52b7d4: FIR[0]=1.0f; FIR[1]=0
|
||||||
|
если флаг f890!=0:
|
||||||
|
52b803: th1880(FIR, {xmm10,xmm9}, n) ; парно-скалярный с (−1|0.8, 0)
|
||||||
|
52b81f: th1ca0(FIR, {xmm12,xmm9}, n) ; парно-скалярный с (1.0, 0)
|
||||||
|
52b857: th2030(FIR, s888, 2n) ; ×wet (=1 live)
|
||||||
|
52b893: final df0(FIR, track_i, n)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Константы (статические значения из дампа):
|
||||||
|
| reg | адрес | значение | роль |
|
||||||
|
|-----|-------|----------|------|
|
||||||
|
| xmm8 | 1824c4140 (double) | 1.0 | множитель шага 1 = NO-OP при s888=1 |
|
||||||
|
| xmm13 | 1824c46a0 (double) | −1.0 | делитель бинов 1..n/2 (ИНВЕРСИЯ!) |
|
||||||
|
| xmm9 | xorps | 0.0 | обнуление верхних половин |
|
||||||
|
| xmm10 | 1824c4680 / 1824c3e28 | −1.0 / **0.8** | парный скаляр (0.8 активен в цикле) |
|
||||||
|
| xmm12 | 1824c3ea4 | 1.0 | парный скаляр 2 |
|
||||||
|
| xmm14 | 1824c4674 | −0.7 | (использование вне FIR) |
|
||||||
|
| xmm15 | 1824c4670 | −0.5 | (использование вне FIR) |
|
||||||
|
| xmm7 | вычисл. | sens·[540870]-цепочка | аргумент th2270 |
|
||||||
|
|
||||||
|
### СЛЕДСТВИЯ (меняют понимание построения кернела):
|
||||||
|
1. Перед EXP: бины 1..n/2 = −log(bands) ⇒ после exp = **1/bands** (обратная
|
||||||
|
величина!), бины выше = exp(0)=1. Экспонента применяется НЕ к спектру маски
|
||||||
|
напрямую — вокруг неё twiddle-FMA стадии (ops B/C/D = радиальные проходы
|
||||||
|
FFT-класса над упакованным вещественным спектром; buf548 = cos/sin таблица,
|
||||||
|
mask598 = lane-select).
|
||||||
|
2. «×0.984» из 23d НЕ найден как константа цикла — либо внутри exp-IAT-обёртки,
|
||||||
|
либо следствие нормировки twiddle-стадий. Требуется численная репликация
|
||||||
|
пайплайна против живых захватов (rendersnap2 ph*.npz содержат готовые пары).
|
||||||
|
3. Шаг 1 и шаг ×s888 — no-op при дефолтных параметрах (s888=1, live 24j).
|
||||||
|
4. 52d920/52d990/52db50 = тонкие обёртки: 920→th2030/1d30 (scalar-op),
|
||||||
|
990→th2000/1c40 (axpy!), db50→то же. «УМНОЖЕНИЕ на окно» реализовано
|
||||||
|
axpy-кернелом, «деление» — scalar-op.
|
||||||
|
5. Ops A–D работают над дескрипторными векторами (проверка тега [obj]==6 в
|
||||||
|
4ca80; ошибка 0xfffffff3 при несоответствии).
|
||||||
|
|
||||||
|
### Динамика (попытки перехвата; окружение)
|
||||||
|
- realtime-playback НЕ тикает DSP (нет аудио-девайса; треды спят в futex);
|
||||||
|
кривые 22y = результат инициализации при загрузке проекта
|
||||||
|
- `-renderproject`: полный цикл init+render+exit хоста занимает ~0.8 c
|
||||||
|
(host@1.2s, workers@1.4s, wav@1.6s, exit@2.0s); обработка идёт в окне ~0.5 c
|
||||||
|
- INT3-ptrace: SEIZE+TRACECLONE обязательны до CONT (иначе untraced thread
|
||||||
|
ловит SIGTRAP и убивает процесс — подтверждено); DR-брейкпоинты: DR0@user+0x380,
|
||||||
|
но POKEUSER DR7 даёт EIO. Скрипты: fntrace*.py, fnhw.py, fnall.py, firstop.py,
|
||||||
|
firtrace.py, hotips.py (см. scripts/)
|
||||||
|
- Вывод: FUN_180529fe0 и 52d650/536300/52e260 НЕ ловятся в рендер-окне —
|
||||||
|
маск-цепь выполняется при ЗАГРУЗКЕ/изменении параметров, стационарный рендер
|
||||||
|
использует закэшированный кернел; либо трассировать надо момент инициализации
|
||||||
|
- Выход плагина НЕдетерминирован: md5 двух свободных рендеров различен при
|
||||||
|
одинаковом rms (PRNG-дизеринг из LCG-прологов) — метрика только спектральная!
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24t: ТОЧНЫЕ СЕМАНТИКИ СКАЛЯР-ОПОВ + опознание 563a60
|
||||||
|
|
||||||
|
Инструмент: scripts/disasm_func.py (полный дизасм функции с резолвом
|
||||||
|
RIP-констант инлайн).
|
||||||
|
|
||||||
|
### Тела скаляр-трансформов (float-ветки):
|
||||||
|
| стаб/impl | семантика | спец-случаи |
|
||||||
|
|---|---|---|
|
||||||
|
| th2030→ffe0 | dst[i] *= scalar | scalar==1 → скип; ==0 → zero-fill |
|
||||||
|
| th2270→14c40 | dst[i] += scalar | scalar==0 → скип |
|
||||||
|
Оба: скалярный хвост + AVX2 основной цикл (vmulps/vaddps ymm). Двойные
|
||||||
|
ветки (1d30/22a0) аналогичны на sd/pd.
|
||||||
|
|
||||||
|
### FUN_180563a60 = init-time ПОСТРОИТЕЛЬ таблицы (не per-bin!)
|
||||||
|
- Один caller: 1805636c2 (init-семейство).
|
||||||
|
- Константы пролога: xmm11=8.68589 (20/ln10 — ln⇒дБ!), xmm12=1/1024,
|
||||||
|
xmm14=0.5, xmm10=2, xmm9=−1, xmm6=1; вызов IAT 181a14cd0 (log-класс)
|
||||||
|
над double из [obj+0x4198], ×8.68589 → дБ, запись пар во вектор
|
||||||
|
([obj+0xe0], рост через realloc 56c640).
|
||||||
|
- Вывод: строит дБ-доменную таблицу парами при param-rebuild — согласуется
|
||||||
|
с «LUT» ролью. Хвост с вирт. вызовом [rax+0x10] не декодирован.
|
||||||
|
|
||||||
|
### Алгебра T1: обе формы фитуют серию драйва (8 точек недоопределены)
|
||||||
|
- softplus α·ln1p(L/β)+c: rms 0.016 (α=3.2193 β=0.4927 c=0.542)
|
||||||
|
- LUT-форма t=((dB−A)/(B−A))^γ·M: rms 0.029 (A=−36.2 B=20.0 γ=2.097 M=10.49)
|
||||||
|
Различить только декомпом тракта am/res→scratch или бОльшим числом точек.
|
||||||
|
|
||||||
|
### Открытые микровопросы
|
||||||
|
1. Значение xmm7 на входе th2270 в FIR-цикле (52b5f6): трассировка от
|
||||||
|
52a583; если mix^p=1 → «bands+=1» противоречит провалам ⇒ xmm7 иной
|
||||||
|
либо порядок аргументов иной.
|
||||||
|
2. Раскладка объекта-вектора (тег 6) для ops A–D.
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24u: WIN_WINDOW движка — кусочное окно аудио-пути
|
||||||
|
|
||||||
|
Таблица WIN_WINDOW[8193] (dsp/tables_data.hpp, live-захват):
|
||||||
|
- [0]=0.500000, плавный подъём до [2048]=0.800000, затем СКАЧОК до 1.0
|
||||||
|
и единица до конца ([2049..8192]).
|
||||||
|
- Длина перехода = РОВНО 2049 сэмплов = число бинов кернела (4096-сетка)!
|
||||||
|
- Формула перехода не каноническая (ханн/синус/степенные не сошлись,
|
||||||
|
maxdiff ≥0.09); для репликации достаточно встраивания таблицы как есть.
|
||||||
|
- Структура намекает: блок аудио 8192 сэмплов ({16384,8192} из cfg движка),
|
||||||
|
первые 2049 позиций получают взвешивание 0.5..0.8 (область «кернельного
|
||||||
|
взаимодействия»?), остальное прозрачно; 0.8 подозрительно = blend.
|
||||||
|
Проверка употребления — в resize fe00 / audio-клее (следующий раунд).
|
||||||
|
|
||||||
|
### Движок dc30: карта инициализаторов (24u)
|
||||||
|
ctor 18052dc30 вызывает: 5335c0 (×2 — до/после валидатора), 534550 (×5 —
|
||||||
|
регистрация конфиг-итемов, аргументы edx из стека [rsp+0x30..0x4c] =
|
||||||
|
цепочка {2,4096},{16384,8192},{2,257}), затем ILT-стабы 2240/1c10.
|
||||||
|
Следующий шаг декода: тела 534550/5335c0 + употребление WIN_WINDOW
|
||||||
|
(по xref на таблицу или указатель из объекта).
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24w-3: ЖИВЫЕ КОНСТАНТЫ ГЕНЕРАТОРА 533340 (параметры частотных IIR)
|
||||||
|
|
||||||
|
Из scalar-bank (rendersnap2 v4+) на дефолтных параметрах multi:
|
||||||
|
```
|
||||||
|
p (экспонента) = [ctx+0x54087c] = 1.000000
|
||||||
|
tau1 = [ctx+0x540894] = 1200.000122
|
||||||
|
tau2 = [ctx+0x540898] = 180.000015
|
||||||
|
mult (стадия-3) = DAT_1824c4564 = 360
|
||||||
|
C_hz = DAT_1824c459c = 1000
|
||||||
|
константы 530b60 : 0.7, 2, 800→(×2)=1600, 1200, 15, 9, 180, 0.01,
|
||||||
|
[540898]=180*p+xmm6 (формула видна в дизасме)
|
||||||
|
```
|
||||||
|
Формула тела подтверждена дизасмом: g=min(fc_norm/i,(fc_norm/i)^p);
|
||||||
|
c=1/(1+g*tau/mult); up=exp(...); down=1-up.
|
||||||
|
Эксперимент: одноразовый bidir с этими коэф. НЕ двигает центр кривой
|
||||||
|
⇒ q-зависимость катов не через эти IIR напрямую; тракт между main-loop
|
||||||
|
и scratch содержит ещё этапы (ops A–D / steps 9–19 BLOCKMAP).
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24z: FUN_180563a60 ДЕКОДИРОВАН ПОЛНОСТЬЮ — ЭТО ДЕТЕКТОРНАЯ LUT-ФОРМА!
|
||||||
|
|
||||||
|
Постройка (на каждый банд, 1024 точки, вход double[+0x4198+i·8],
|
||||||
|
выход пары-floats в вектор [+0xe0], stride вектора 0x18):
|
||||||
|
```
|
||||||
|
dB = log(input) · 8.68589
|
||||||
|
idx = i / 1024 → store[2j]
|
||||||
|
t = (dB − A) / (B − A) ; A=[sub+0], B=[sub+4] (sub=obj@[rcx+0x180])
|
||||||
|
t = clamp(t, 0, 1)
|
||||||
|
если γ(=[sub+0xc]) ≠ 1:
|
||||||
|
если [sub+0x10]==0: out = t^γ (классика)
|
||||||
|
иначе : out = sign(2t−1)·|2t−1|^γ + 1 (симметричный режим!)
|
||||||
|
else: out = t
|
||||||
|
out *= 0.5 → store[2j+1]
|
||||||
|
```
|
||||||
|
Виртуальная альтернатива: [sub+0x90]!=0 → вызов [sub vtbl+0x10](A,B,dB)
|
||||||
|
с клампом [0,1].
|
||||||
|
⇒ ЭТО ТА САМАЯ ФОРМА, ЧТО ДАЛА ФИТ cut=LUT(A,B,γ,M)! Стадия компрессии
|
||||||
|
уровня найдена материально: A/B/γ живут в объекте [band+0x180],
|
||||||
|
заполняются сеттерами. Осталось: снять их live-значения для наших конфигов
|
||||||
|
(расширить scalar-dump на [ctx+0x180]-объект) и найти потребителя таблицы
|
||||||
|
(интерполятор dB→out) в аудио-тракте.
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24cc: точная формула коэф. 533340 (дизасм+live)
|
||||||
|
[state+8] = n = 2049 (∀ трёх состояний; live probe_states.py).
|
||||||
|
```
|
||||||
|
fc_norm = (X/(sr·0.5))·n ; X=xmm2 (C_hz=1000 или tau — уточнить)
|
||||||
|
g(i) = min(fc_norm/i, (fc_norm/i)^p) ; p=[ctx+0x54087c]=1 @defaults
|
||||||
|
c = 1/(1 + g/mult) ; mult=360 (стадия-3)
|
||||||
|
arg = |c| · g / n ← НАСЫЩАЮЩАЯ форма (пол g→mult/n)
|
||||||
|
up[i] = exp(arg · (−2π)) ; down[i]=1−up[i]
|
||||||
|
```
|
||||||
|
При дефолтах down ∈ [0.003..0.19] — очень мягкие сглаживатели; эффект
|
||||||
|
только каскадом в полной цепочке шагов 9–19.
|
||||||
|
Осталось уточнить: роль xmm13 (множитель перед c), знак/конст экспоненты,
|
||||||
|
соответствие X=C_hz-vs-tau.
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24ff: семантика шага 11 (fma att/rel) — тройки (re,im,coef)
|
||||||
|
|
||||||
|
Цепочка вызова: ee20 → 487a0 → 1065c0; воркер получает r10=n/2·12 байт
|
||||||
|
⇒ элементы по 12 байт = (dst_re f32, dst_im f32, coef f32).
|
||||||
|
Call-site (52ac70–52acd4):
|
||||||
|
```
|
||||||
|
шаг 11a: fma(rcx=f6f8_upper, rdx=ATT@[5406c8], r8=ACC_i, r9=n/2)
|
||||||
|
шаг 11b: fma(rcx=f6f8_lower, rdx=REL@[5406e8], r8=ACC_i, r9=n/2)
|
||||||
|
```
|
||||||
|
⇒ семантика: f6f8[k] += coef[k]·ACC_i[k] (комплексный axpy с пер-биновым
|
||||||
|
скаляром), верхняя половина спектра — с ATTACK коэф., нижняя — с RELEASE.
|
||||||
|
ACC_i персистентен между кадрами ⇒ утечный интегратор: стационар
|
||||||
|
ACC = input/(1−coef); усиление 1/(1−att): @43=2.57 @85=2.93 @171=3.42.
|
||||||
|
Коэф. массивы СТАТИЧНЫ (∀ конфигов бит-в-бит — проверено dual/qmap/sens18).
|
||||||
|
Гипотеза: резонансное усиление ACC объясняет k>1 аномалии уровней
|
||||||
|
(q2: impl/ours=2.48 ≈ A(85)); точная алгебра подачи ACC в кривую — в
|
||||||
|
остатке шагов 13–19.
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24gg: шаг 12 — ЭТО КОПИЯ (исправление BLOCKMAP)
|
||||||
|
|
||||||
|
th1b80→6840→1a5a0→181a646c0 = ЧИСТЫЙ MEMCPY (vmovdqu без арифметики).
|
||||||
|
«acc_i += bands[i]» из старого BLOCKMAP — НЕВЕРНО; реально копия
|
||||||
|
(направление/роли rbx/rbp уточнить трассировкой регистров через цикл —
|
||||||
|
аргументы на 52acf8: rcx=rbx, rdx=rbp, r8=n; значения rbx/rbp меняются
|
||||||
|
через 52ac98 [0x5406e8] и др. — нужен полный dataflow-проход шагов 9–19).
|
||||||
|
|
||||||
|
Следствие: если acc_i не накапливается сложением, «резонансная» гипотеза
|
||||||
|
24ff требует пересмотра — возможно ACC обновляется через fma шага 11
|
||||||
|
(ACC входит как источник), а шаг 12 синхронизирует массивы.
|
||||||
|
|
||||||
|
### Статус декода шагов 9–19 (24ff+24gg)
|
||||||
|
- шаг 11: f6f8[k] += att/rel_coef[k]·ACC_i[k] ✓ (тройки re,im,coef)
|
||||||
|
- шаг 12: COPY (не add!) ✓ исправлено
|
||||||
|
- шаги 13–16: th2270-add ветка с xmm6=xmm12−[54087c]; bigkernel 140950;
|
||||||
|
axpy 2000/1c40 с vec@540778 — тела не декодированы
|
||||||
|
- полный dataflow-проход = задача следующего раунда (связная, ~сессия)
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24hh: DATAFLOW шагов 9–12 (точный, из дизасма)
|
||||||
|
|
||||||
|
```
|
||||||
|
шаг 9a: vec698 *= (xmm12 − [54087c]) ; th1a00=MUL; при 1−1=0 → ZERO
|
||||||
|
шаг 9b: vec6f8 += 0.8 ; xmm10=0.8 ([1824c3e28]); th2270=ADD
|
||||||
|
шаг 9c: bigkernel 140b60(vec6f8, bands_curve_i, vec6f8)
|
||||||
|
шаг 10: vec6f8 = bands_curve_i − ACC_i ; dc40: out[r8]=rdx−r10 ✓COMBINE
|
||||||
|
шаг 11: f6f8_upper += ATT[k]·ACC_i[k] ; тройки re/im/coef
|
||||||
|
f6f8_lower += REL[k]·ACC_i[k]
|
||||||
|
шаг 12: COPY(...) ; направление уточнить
|
||||||
|
```
|
||||||
|
Регистры: rbx↔vec698/6f8/acc_i, rbp↔bands_curve/[5406e8], r14=vec6f8.
|
||||||
|
Картина: строится КОРРЕКЦИОННАЯ кривая (bands−ACC), модулированная
|
||||||
|
att/rel-огибающими ACC — адаптивная петля редукции.
|
||||||
|
Остаток прохода: шаги 13–19 + эпилог + связь с FIR-секцией (52b3cd+).
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24ii: семантики шагов 13–16 + ИСПРАВЛЕНИЕ th2000
|
||||||
|
|
||||||
|
th2000/fb60 (и 1c40/8700) = ПОЭЛЕМЕНТНОЕ УМНОЖЕНИЕ МАССИВОВ
|
||||||
|
(dst[k] *= src[k]) — НЕ axpy! Исправляет интерпретации:
|
||||||
|
|
||||||
|
```
|
||||||
|
шаг 13 (флаг≠0): зеркало шага 9 (vec698*=..., vec6f8+=0.8·..., bigkernel)
|
||||||
|
шаг 14: bands_curve += (−1.0) ; константа [1824c4680]=−1 через th2270!
|
||||||
|
затем bigkernel 1409e0/140ad0 IN-PLACE на bands_curve
|
||||||
|
шаг 15: bands_curve *= track_i ; th2000 array-multiply
|
||||||
|
шаг 16: bands_curve *= kWarp@[5406a8] ; th2000 array-multiply
|
||||||
|
шаг 17(флаг): bigkernel in-place ещё раз
|
||||||
|
```
|
||||||
|
Картинка: кривая центрируется (−1), проходит нелинейность (bigkernel,
|
||||||
|
вероятно exp/abs — тела за IAT), модулируется track и warp.
|
||||||
|
Против log-входа design'а значение после этих шагов должно быть >0.
|
||||||
|
|
||||||
|
### Bigkernel-тела за ВЛОЖЕННЫМ диспатчем
|
||||||
|
Таблицы стабов содержат смесь IAT-слотов и внутренних адресов (напр.
|
||||||
|
table[7]=140a00), но внутренние ведут к call runtime-helper + НОВЫЙ
|
||||||
|
ILT-стаб с собственной idx-ячейкой (паковка/протектор). Статическое
|
||||||
|
разворачивание обрывается. Тела bigkernel'ов (exp/abs-нелинейность шага
|
||||||
|
14/17) остаются за пакером — при необходимости снимаются дампом памяти
|
||||||
|
ВОКРУГ вызова в рантайме (STOP + чтение таблиц после инициализации).
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24jj: ТЕЛА BIGKERNEL'ОВ НАЙДЕНЫ (рантайм-резолв IAT)
|
||||||
|
|
||||||
|
iat_name.py v2 (SIGSTOP + двойной deref + PE-экспорты) резолвит:
|
||||||
|
```
|
||||||
|
стаб 140b30/140b60 → runtime 1803a06a0 (общий для float/double!)
|
||||||
|
стаб 1409e0 → runtime 180296c80
|
||||||
|
стаб 140ad0 → runtime 180323f20
|
||||||
|
стаб 140a40 → runtime 1802dc0e0
|
||||||
|
```
|
||||||
|
Все — НАСТОЯЩИЕ функции внутри дампа (не импорты!): большие стек-фреймы,
|
||||||
|
x87 FNU-контроль, AVX2 полиномы, ДВЕ x87-трансцендентные инструкции
|
||||||
|
(fyl2x/f2xm1 класс = 2^x/exp семейство). Полный декод математики каждого —
|
||||||
|
отдельная сессия; вход/выход уже известны из контекста вызовов
|
||||||
|
(in-place над n/2+1 элементами FIR-буфера).
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24jj2: R@540788 — БАНДПАС-ФОРМА, НЕ совпадающая с нашим twin!
|
||||||
|
|
||||||
|
Сравнение (multi6, band1=500/q0.5/s12):
|
||||||
|
```
|
||||||
|
бин R@540788 наш_res R/наш
|
||||||
|
43 0.802 0.117 6.84
|
||||||
|
85 1.086 0.374 2.91
|
||||||
|
171 1.517 0.839 1.81
|
||||||
|
342 3.521 1.401 2.51 ← ПИК ~3.5-4 кГц!
|
||||||
|
512 2.910 1.673 1.74
|
||||||
|
684 1.829 1.811 1.01
|
||||||
|
1024 1.146 1.931 0.59
|
||||||
|
1536 0.689 1.988 0.35
|
||||||
|
```
|
||||||
|
Наш twin res растёт монотонно от fc; R@788 — БАНДПАС с пиком ~bin300-342
|
||||||
|
(~3.5-4 кГц) и СПАДОМ к Найквисту. Форма напоминает кривую равной
|
||||||
|
громкости / слухового взвешивания!
|
||||||
|
R@5407f8 = единичная нормировка (все 1.0000 в этом прогоне).
|
||||||
|
|
||||||
|
### ГИПОТЕЗА (проверяемая):
|
||||||
|
Детекторный уровень = am · ВЕС(f) / res(f), где ВЕС — кривая типа
|
||||||
|
равной громкости (R@788?). Тест: X=am·R/res против катов multi6 —
|
||||||
|
НЕ сошлось лобово (X@43=1.44 макс при мин кате) ⇒ взвешивание входит
|
||||||
|
иначе (до/после res-деления, или в log-домене).
|
||||||
|
### Ценность
|
||||||
|
Объясняет ВСЕ аномалии дальних бинов разом: наши дальние res слишком
|
||||||
|
велики (нет спада), их lvl занижен, каты недобираются. Формула ВЕСА —
|
||||||
|
ключ к кросс-конфиг параметризации.
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24kk3: слот [ctx+0x540668] ПОЛИМОРФНЫЙ!
|
||||||
|
|
||||||
|
Прямой проб во время рендера: [ctx+0x540668] содержит
|
||||||
|
`3fdbcd8940000000` = ДВА FLOAT (~0.434, 2.0), НЕ указатель!
|
||||||
|
(пробник probe_668.py; EIO на части чтений — слот мигрирует).
|
||||||
|
|
||||||
|
### Следствия:
|
||||||
|
1. rendersnap2 пропускает слот 668 (ptr<0x10000 или мусорный ptr) ⇒
|
||||||
|
во ВСЕХ новых захватах (sc_multi4b, sc_tt*, sc_q*, ...) НЕТ FIR-массивов.
|
||||||
|
2. Старые захваты rendersnap.py v1 ИМЕЛИ валидный FIR-указатель в эти
|
||||||
|
моменты (ловили фазу обработки). Данные старых phase*.npz про FIR —
|
||||||
|
валидны для своих моментов, но смешивать с новыми нельзя.
|
||||||
|
3. Все «FIR mag» анализы через этот слот зависят от ТОГО, в какой фазе
|
||||||
|
слот был пойман: указатель-на-буфер vs скаляры vs сброс.
|
||||||
|
4. Значения скаляров (~0.43, 2.0) — кандидаты: att/rel? dry/wet? g-компоненты?
|
||||||
|
### Статус
|
||||||
|
Канонический путь чтения ПРИМЕНЁННОЙ маски: слот [ctx+0x540678] (кривая
|
||||||
|
банды) — он стабилен и МАТЧИТ АУДИО в deep-фазах (±5%).
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24mm2: ПОЛНАЯ РЕЗОЛЮВСЯ ВСЕХ 10 ЯДЕР + ИСПРАВЛЕНИЯ DATAFLOW
|
||||||
|
|
||||||
|
Инструмент: статический резолв цепочки стаб→таблица→L2→IAT-слот по
|
||||||
|
soothe_mem.bin (без live). Стаб = `movsxd rax,[idx@1826159a0]; lea r10,[tbl];
|
||||||
|
jmp [r10+rax*8]`, idx=4, L2=`mov rax,[slot]; jmp rax`.
|
||||||
|
|
||||||
|
### Таблица резолва (исправляет 24jj!)
|
||||||
|
| стаб | таблица | runtime | опознание по константам |
|
||||||
|
|------|---------|---------|------------------------|
|
||||||
|
| 140950 | 182617448 | **18026b820** | exp2/exp DOUBLE (ln2, log2e, 1021.5, 2^27) |
|
||||||
|
| 140980 | 182617488 | **18027c120** | **logf** FLOAT (ряд −½,+⅓,−¼,+⅕,−⅙; ln2 hi/lo; 2^32) |
|
||||||
|
| 1409b0 | 1826174c8 | **18028d1e0** | **powf/log+exp** DOUBLE (ряд log + магия expf вместе) |
|
||||||
|
| 1409e0 | 182617508 | 180296c80 ✓ | **expf** FLOAT — ДЕКОДИРОВАН ПОЛНОСТЬЮ (ниже) |
|
||||||
|
| 140a40 | 182617588 | 1802dc0e0 ✓ | exp-вариант FLOAT c hi/lo сплитами |
|
||||||
|
| 140aa0 | 182617608 | **18030fee0** | **sincos** DOUBLE (1/6,1/120,1/5040; π hi/lo) |
|
||||||
|
| 140ad0 | 182617648 | 180323f20 ✓ | кусочно-табличная DOUBLE (сетка Δ=0.00541521) |
|
||||||
|
| 140b00 | 182617688 | **180367980** | pow/exp DOUBLE (1023/1022, магия 1.5·2^20) |
|
||||||
|
| 140b30 | 1826176c8 | **1803831c0** | кусочно-табличная FLOAT (π/2, π/4, сетка 184.665!) |
|
||||||
|
| 140b60 | 182617708 | 1803a06a0 ✓ | **DIVIDE** FLOAT B/A (rcp+квантование+vpermps-таблицы+полином невязки) |
|
||||||
|
|
||||||
|
**ИСПРАВЛЕНИЕ 24jj**: «140b30/140b60 → общий 1803a06a0» — НЕВЕРНО.
|
||||||
|
FIR-секция вызывает 140b30 = 1803831c0 (табличная кривая), divide только в шаге 9c.
|
||||||
|
|
||||||
|
### ДИСПЕТЧЕР float/double
|
||||||
|
Каждый call-site имеет ПАРУ стабов через `call [181bab008]; test eax,eax; jne`:
|
||||||
|
float-стаб (eax==0) / double-стаб. Дескрипторы type_info СТАТИЧЕСКИ идентичны
|
||||||
|
(оба →182650db8) ⇒ eax=0 ⇒ **double-ядра мертвы на нашем пути**; рендеры
|
||||||
|
идут по float. Double-тела не транскрибируем (отмечено на будущее M8).
|
||||||
|
|
||||||
|
### expf 180296c80 — полная формула (горячий цикл, FMA-точно)
|
||||||
|
```
|
||||||
|
n = fma(log2e_hi=1.4427, x, MAGIC=12582912.0) ; округление до int
|
||||||
|
k = n − MAGIC
|
||||||
|
r = (x − 0.693146·k) − 1.42861e-06·k ; ln2 hi/lo
|
||||||
|
p = (((0.00829172·r + 0.0418735)·r + 0.166674)·r + 0.499994)·r + 1)·r + 1
|
||||||
|
out = bits( (k<<23) + bits(p) ) ; vpaddd сборка
|
||||||
|
guard: |x|>87.3365 → slow-path; head/tail через vmaskmovps+popcnt-маски
|
||||||
|
```
|
||||||
|
Коэф. минимаксные — транскрибировать КАК ЕСТЬ.
|
||||||
|
|
||||||
|
### DIVIDE 1803a06a0 — структура (90%)
|
||||||
|
```
|
||||||
|
A=[rcx], B=[rdx], dst=[r8]; r9d=n
|
||||||
|
q0 = rcp(A); q0 += 2^23-magic (округление); q = q0 & 0xfff00000 ; 12 бит
|
||||||
|
e = (q>>23); idx = q>>20 → vpermps tbl@1821269c0 (127±ε) и @182126a00
|
||||||
|
err = 1 − q·A
|
||||||
|
полином невязки {0.207515, −0.241687, 0.288535, −0.360671, ..., 0.240264, 0.0555119}
|
||||||
|
сборка через магию 1.5·2^20 + vpslld 20
|
||||||
|
результат ≈ B/A с точностью ~0.5 ulp
|
||||||
|
```
|
||||||
|
Таблицы коррекций сдамплены (per-mantissa-top-bits).
|
||||||
|
|
||||||
|
### ИСПРАВЛЕНИЯ DATAFLOW (по fn529fe0.dis, адреса call-sites)
|
||||||
|
1. **Шаг 14 порядок ОБРАТЕН к BLOCKMAP 24ii**: сначала `bigkernel exp IN-PLACE
|
||||||
|
на bands_curve` (52ae0e), ПОТОМ `bands_curve += (−1.0)` (52ae40, конст.
|
||||||
|
1824c4680 через th2270).
|
||||||
|
2. Шаг 9b точно: `vec6f8 += [ctx+54087c] · 0.8` (xmm10=0.8@1824c3e28,
|
||||||
|
множитель виден в asm: mulss xmm6,xmm10 после movss xmm6,[54087c]).
|
||||||
|
3. Шаг 9a: `vec698 *= (xmm12=1.0 − [54087c])` ⇒ zero-fill при дефолтах ✓.
|
||||||
|
4. Шаг 10 combine dc40: аргументы rcx=ACC_i(**таблица указателей @0x5407c8**,
|
||||||
|
НЕ дампилась rendersnap2!), rdx=bands_curve_i(@678+i), r8=vec6f8(@6f8),
|
||||||
|
семантика dst=r8: vec6f8 = bands_curve_i − ACC_i. ACC-слот надо ДОБАВИТЬ
|
||||||
|
в SLOTS rendersnap2 (0x5407c8).
|
||||||
|
5. Шаги 15/16 подтверждены: th2000/th1c40 array-mul; затем rbx=[5406a8]
|
||||||
|
(kWarp) — array-mul на bands_curve.
|
||||||
|
6. Эпилог: скалярная часть из decomp (consumers_out 100-143): mix-веса,
|
||||||
|
`fVar17 = [540874] − expf(DAT_1824c4704=-ln1000)` → bands += f17·[540888].
|
||||||
|
|
||||||
|
### Call-site карта больших ядер (fn529fe0)
|
||||||
|
```
|
||||||
|
52a63a/52a641: 140980(logf-float)/1409b0 — pre-combine #1
|
||||||
|
52ab84/52ab8b: 140b60(divide)/140950 — шаг 9c
|
||||||
|
52acd? : (шаги 10–12 мелкие ILT)
|
||||||
|
52ae0e/52ae15: 1409e0(expf)/140ad0 — шаг 14 нелинейность
|
||||||
|
52b32c/52b336: 1409e0(expf)/140ad0 — шаг 17 (повтор)
|
||||||
|
52b3a0/52b3aa: 140a40(exp-var)/140b00 — пост-17
|
||||||
|
52b716/52b71d: 140b30(кривая-float)/140aa0 — FIR-секция
|
||||||
|
```
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24mm5: ПОЛНАЯ КАРТА ТРАКТА — буферы каждого шага; design = conv-тело 22z
|
||||||
|
|
||||||
|
### Полоса-цикл (float-путь), трасса регистров 52a580–52b3cd
|
||||||
|
```
|
||||||
|
пре: [678i] *= скаляры (s888-цепь, xmm7·[540870]·[54088c])
|
||||||
|
LOG#1 (140980!) на [678i] ; 52a63a — В ЛОГ-ДОМЕН заранее
|
||||||
|
combine 52d650([678i],[6f8])
|
||||||
|
шаг 9a: vec698@698 *= (1−[54087c]) ; zero
|
||||||
|
шаг 9b: vec6f8@6f8 += [54087c]·0.8
|
||||||
|
шаг 9c: DIVIDE dst=[678i]: A=arg(rcx)=[678i], B=arg(rdx)=[6f8]
|
||||||
|
⇒ [678i] = vec6f8 / bands_curve ; in-place
|
||||||
|
шаг 10: dc40: rcx=ACC_i(@7c8+i!), rdx=[678i], r8=[6f8]
|
||||||
|
⇒ vec6f8 = bands_curve − ACC_i ; ACC — таблица указателей 7c8
|
||||||
|
шаг 11: fma ATT(@6c8)/REL(@6e8) — пары вызовов 1fa0/1940
|
||||||
|
шаг 12: COPY 1b80/1d60 c [678i]
|
||||||
|
шаг 13: зеркало 9a/9b + оп 1eb0(cbe0)([678i],[6f8])
|
||||||
|
шаг 14: EXP#1 (1409e0=expf) на [678i]; затем += (−1)
|
||||||
|
шаг 15: array-mul: X[rsp+0x40] *= [678i] ; НЕ bands*=track!
|
||||||
|
шаг 16: [678i] *= kWarp@[5406a8]
|
||||||
|
LOG#2 (140980) на [678i] ; 52aefd — возврат в лог!
|
||||||
|
IIR4 ×2 бидир ; ~52af09–52b2b6, СПЕКТРАЛЬНОЕ
|
||||||
|
; СМЕШЕНИЕ В ЛОГ-ДОМЕНЕ
|
||||||
|
скаляры xmm14(−0.7)/xmm15(−0.5)-класс
|
||||||
|
шаг 17: EXP#2 (1409e0) на [678i]; += scalar; exp-var 140a40 финал
|
||||||
|
→ bands_final @678i
|
||||||
|
```
|
||||||
|
|
||||||
|
### FIR-секция (52b3cd–52b94a)
|
||||||
|
```
|
||||||
|
bands_final *= s888, *= [540888]; += xmm7 (скаляр с expf(−ln1000)=0.001)
|
||||||
|
DESIGN: call 535a70(rcx=scratch@628, rdx=bands)
|
||||||
|
535a70 = диспетчер СО СВОПОМ аргументов → ILT 140a10/140a70 →
|
||||||
|
→ РЕЗОЛВ: float=1802a24c0 (!!!), double=1802fa420
|
||||||
|
⚡ ЭТО ТЕЛО FFT-CONV ИЗ ОТКРЫТОГО ВОПРОСА 22z («conv_float_a24c0.dis»,
|
||||||
|
184K AVX2). Дизайн детектора == недекодированный conv. Пазл склеен.
|
||||||
|
дальше: copy th2210; complex-op th2180/th1bb0 с твидл-буферами
|
||||||
|
548/550/598; знак −1 (52d920); EXP 140b30(=1803831c0);
|
||||||
|
окно 52d990(WINfreq); pair-scalar 1880/1ca0; *= wet[540888];
|
||||||
|
финал df0(FIR, track_i)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Где γ=1.760561
|
||||||
|
mask = bands_final^γ точно ⇒ γ возникает между scratch=log(bands_final)
|
||||||
|
и финальной маской: либо ВНУТРИ design 1802a24c0 (масштаб на выходе),
|
||||||
|
либо в комплекс-op цепочке 52b644–52b716 перед EXP 140b30. Обе точки
|
||||||
|
локализованы до ~десятка инструкций — декод следующего раунда.
|
||||||
|
|
||||||
|
### Исправление понимания слотов
|
||||||
|
- 688 = exp(628) тривиально: 628 — копия лога bands_final (design),
|
||||||
|
688 — сами bands_final (или их exp-копия). «track» — имя рендерснапа.
|
||||||
|
- 678 ПОСЛЕ цикла = bands_final; применённая маска перезаписывает
|
||||||
|
поверх (финальный combine) — поэтому захваченный 678 матчит аудио.
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24mm6: ПЕРЕД EXP В FIR — УМНОЖЕНИЕ НА 2.0 (не −1!); гипотеза γ=2·k_design
|
||||||
|
|
||||||
|
### Точная последовательность 52b60c–52b720 (проверено, без пропусков)
|
||||||
|
```
|
||||||
|
rcx=[540628](scratch), rdx=[r15](источник design — уточнить r15!)
|
||||||
|
call 535a70 → swap → 1802a24c0(scratch ← DESIGN(src))
|
||||||
|
th2210: FIR(@540668) ← scratch (copy, edx=0)
|
||||||
|
opB: th2180(FIR, buf548|550, buf598) ; complex pass
|
||||||
|
FIR[n]=0
|
||||||
|
FIR[1 .. n/2] *= xmm13 = 2.0 @1824c41e0 ; 52d920, БЫЛО «−1» в 24l — НЕВЕРНО
|
||||||
|
FIR[n/2+1 .. n-1] *= xmm9 (=0) ; 52db50
|
||||||
|
opC: th1a90(FIR, buf548|550, buf598) ; complex pass
|
||||||
|
EXP in-place 140b30 (float) / 140aa0 (double)
|
||||||
|
```
|
||||||
|
xmm13/xmm9 не перезаписываются между 52b3d6 и использованием (проверено).
|
||||||
|
|
||||||
|
### Гипотеза источника γ
|
||||||
|
Если opB/opC сохраняют пропорциональность (упаковка real-FFT), то
|
||||||
|
mask = exp(2 · scratch) ⇒ γ = 2·k, где k — масштаб выхода design
|
||||||
|
1802a24c0 относительно ln(bands): k = 1.760561/2 = 0.8802805.
|
||||||
|
Альтернатива: k=1, а opB/opC суммарно дают множитель 0.88028.
|
||||||
|
|
||||||
|
### Открытые микровопросы (следующий раунд, всё локализовано)
|
||||||
|
1. Что такое [r15] на входе design (bands_final@678 или иной буфер)?
|
||||||
|
2. Семантика opB/opC (th2180/th1bb0/th1a90/th19d0 + твидлы 548/550/598)
|
||||||
|
— вероятно упаковка/развёртка real-FFT.
|
||||||
|
3. Масштаб выхода design: декод хвоста 1802a24c0 (файл уже есть:
|
||||||
|
nls_dasm/conv_float_a24c0.dis, 184K).
|
||||||
|
4. Согласование с identity-фазой захватов (гонка финального combine).
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24mm7: design выход = точный ln(bands_final); γ создаётся после design
|
||||||
|
|
||||||
|
### Численный тест (multi6/ph034, identity-фаза)
|
||||||
|
```
|
||||||
|
scr@628 − ln(cur@678): max|r| = 9.0e-08 (float32 eps) на 1013 бинах
|
||||||
|
⇒ k_design = 1 (в момент захвата)
|
||||||
|
```
|
||||||
|
Оговорка: станционарность делает «свежий» и «сталый» scratch
|
||||||
|
неразличимы; но факт (scr, cur)=(лог, значение) одной пары твёрд.
|
||||||
|
|
||||||
|
### Следствие для γ
|
||||||
|
γ=1.760561 ≠ 2 ⇒ множитель НЕ только «×2 перед EXP». Источники:
|
||||||
|
(a) opB/opC не взаимно сокращаются (не чистая упаковка real-FFT);
|
||||||
|
(b) пост-exp шаги: окно 52d990 (варьируется по позиции — нарушил бы
|
||||||
|
степенной закон, значит действует на верхнюю половину/после),
|
||||||
|
pair-scalar th1880/th1ca0, финальный combine df0(FIR, track_i),
|
||||||
|
где track=exp(scr)=bands_final.
|
||||||
|
Комбинации дающие γ из {1,2}: 1+2x=1.760561 ⇒ x=0.3802805;
|
||||||
|
либо лог-доменное смешение track^a·FIR^b c a+2b=1.760561.
|
||||||
|
|
||||||
|
### Статус декода design 1802a24c0
|
||||||
|
AVX-512 (zmm, masked {k3}/{k4}), 3822 строки objdump — трансформ-класс.
|
||||||
|
Для замыкания γ его полный декод МОЖНО НЕ НУЖЕН: достаточно семантики
|
||||||
|
opB/opC + df0 (десятки инструкций в fn529fe0.dis).
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24mm8 (финал захода): opB/opC/df0 резолвлены
|
||||||
|
```
|
||||||
|
opB: 180002180→180004ca80(f)/18001d160(d) ; дескриптор-оп (тег [obj]==6)
|
||||||
|
opC: 180001a90→18001a0c0(f)/180018400(d)
|
||||||
|
df0: 18000df0→18000b3c0 ; f70→18000e360 ; финальный combine
|
||||||
|
```
|
||||||
|
Все четыре микровопроса 24mm6 закрыты или локализованы до тел-обёрток.
|
||||||
|
Следующий раунд: семантика 4ca80/1a0c0 (кандидаты источника γ=2k−масштаба),
|
||||||
|
затем полный numpy-конвейер.
|
||||||
|
|
||||||
|
## ДОПОЛНЕНИЕ 24mm9: opB/opC = RFFT-близнецы; df0 = complex-mul; цепь валидирована 0.0065 дБ
|
||||||
|
|
||||||
|
### Слой вызовов FIR-секции (уточнение поверх 24l/24mm6)
|
||||||
|
```
|
||||||
|
обёртки: th2180 impl=125e0, th1a90 impl=5560 — только перестановка аргументов:
|
||||||
|
воркер получает (rcx=data, rdx=data, r8=ПЛАН, r9=WORK), ин-плейс.
|
||||||
|
ПЛАН = [ctx+540548] (buf548!): tag=6 [+0], log2n=12 [+4], flag [+8]=0,
|
||||||
|
scale_flag=1 [+0xc], scale=2^-12 [+0x10], workbytes=16384 [+0x18].
|
||||||
|
WORK = [ctx+540598] — рабочая область FFT (заметение «lane-mask» из 23b).
|
||||||
|
th2180 → воркер 4ca80(f)/1d160(d): INVERSE real-RFFT (голова: X[0]±X[Nyq]).
|
||||||
|
th1a90 → воркер 1a0c0(f)/18400(d): FORWARD real-RFFT (хвост: пакинг Nyq).
|
||||||
|
тела: импортные близнецы 181b853e0(inv)/181b81b80(fwd); константы только
|
||||||
|
±0.707107; масштабов нет. ffe0 = ×scale pass (skip при scale∈{0,1}).
|
||||||
|
copy th2210 → 136e0 → 4d900(src,dst,n): pack re=v, im=0 (vunpcklps+zero).
|
||||||
|
df0 18000b3c0: ПОЭЛЕМЕНТНОЕ КОМПЛЕКСНОЕ УМНОЖЕНИЕ dst=[rdx]=arg2:
|
||||||
|
track_i := track_i ⊗ FIR (vfmaddsub213ps; f70/b560 — double версия).
|
||||||
|
EXP 140b30 → 1803831c0: полиномиальная комплексная exp (без таблиц значений):
|
||||||
|
magic 12582912 (=2^23·1.5), guard 87.33654, редукция 184.665≈128/ln2,
|
||||||
|
коэф. {−0.01604,−1.541667(=−37/24), 3.166e-05, 1.008329, −1.65777e-06,
|
||||||
|
−0.01932, 0.00134, 0.00541687, 10000, 4.19179}; AVX-512+FMA.
|
||||||
|
Численно = поточечный комплексный exp (flat-exp проигрывает 8 дБ).
|
||||||
|
```
|
||||||
|
|
||||||
|
### Полная последовательность (52b60c–52b893, все шаги, без пропусков)
|
||||||
|
```
|
||||||
|
design 535a70(scratch@628 ← ln(bands_i)) ; 52b62f, своп аргументов
|
||||||
|
copy 2210(scratch → FIR, 2049 пар (re,im=0)) ; 52b644
|
||||||
|
FIR[4096]=0 ; 52b685 Найквост ДО фолда
|
||||||
|
inv-RFFT opA ; 52b672 th2180
|
||||||
|
fold: float[1..2047]*=2.0 (xmm13@1824c41e0) ; 52d920
|
||||||
|
float[2049..4095]=0 ; 52db50
|
||||||
|
fwd-RFFT opB ; 52b6e1 th1a90
|
||||||
|
EXP in-place, аргумент×q (q≈0.80, источник ОТКРЫТ); 52b716
|
||||||
|
inv-RFFT opC ; 52b74b th2180
|
||||||
|
FIR[4096]=0 ; 52b76d
|
||||||
|
float[0..2047]*=WINfreq[2048..4095] ; 52d990 (падающий Hann)
|
||||||
|
float[2048..4095]=0 ; 52db50
|
||||||
|
fwd-RFFT opD ; 52b7ba th1a90
|
||||||
|
FIR[0]=1.0f; FIR[1]=0 ; 52b7cd
|
||||||
|
(flag f890≠0: pair-scalars 1880/ca0 — live мертво)
|
||||||
|
th2030(FIR, wet=s888, 2n float) ; 52b857, s888=1 no-op
|
||||||
|
df0(FIR, track_i, n): track_i := track_i ⊗ FIR ; 52b893
|
||||||
|
```
|
||||||
|
Смысл: классическое минимально-фазовое ядро через кепстр
|
||||||
|
(IDFT лога → фолдинг ×2 причинной части + усечение → exp → обратный ход).
|
||||||
|
|
||||||
|
### Валидация и γ
|
||||||
|
mask_sim = trk·|F(q)|: 60 ультрачистых кадров, ВСЕ 2049 бина:
|
||||||
|
rms мед 0.0065 дБ / p90 0.0075 / max 0.035 при q=0.80 (порог 0.05 ✓).
|
||||||
|
γ = 1 + s_F(q), s_F = наклон log|F| по log trk в нотче: q=0.8 ⇒ γ_pred=1.7516
|
||||||
|
(точный 1.760561). Открыто: место q в асме (внутренность 1803831c0);
|
||||||
|
unicorn не эмулирует FMA ⇒ нужен статдекод ядра или live-захват входа EXP.
|
||||||
|
Дизасмы: /tmp/opencode/cascade/{wrapA_125e0,wrapB_5560,opB_4ca80,opC_1a0c0,
|
||||||
|
df0_b3c0,h_ffe0,h_136e0*,imp_b8*3e0_full,bk_1803831c0}.dis
|
||||||
|
(*copy: python3 scripts/disasm_func.py 1800136e0 — ВАЖНО: полный VA,
|
||||||
|
короткая форма «125e0» даёт пустой файл!).
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
# PROMPT FOR NEXT SESSION (2026-08-25, после 24kk2)
|
||||||
|
|
||||||
|
Продолжаем bit-exact реверс soothe2 в /home/m/re-tools (ветка main).
|
||||||
|
ГЕЙТ СМЕНЫ КАНОНА = BIT EXACT (решение пользователя): все параметры
|
||||||
|
прослежены до декомпа + корпус в шумовом пол. До тех пор канон не трогаем.
|
||||||
|
|
||||||
|
ПРОЧИТАТЬ ПЕРВЫМ: AGENTS.md (фаза-заголовок 24kk2 + env-флаги + инструменты)
|
||||||
|
→ handoff/NOTES_LEVEL.md обновления 24j–24kk2 → BLOCKMAP_529fe0.md
|
||||||
|
(дополнения 23b/24l/24hh/24ii).
|
||||||
|
|
||||||
|
## СОСТОЯНИЕ
|
||||||
|
|
||||||
|
ПРИМЕНЕНИЕ ДЕКОДИРОВАНО ДО ФОРМУЛ:
|
||||||
|
```
|
||||||
|
mask(b) = 10^(−cut_D(b)/20) вещественная, per-bin multiply кадра
|
||||||
|
cut_D(b) = α·ln1p(lvl_raw(b)/β)+c [+Δ вторые пики]
|
||||||
|
lvl_raw = am/res·scale наш фронтенд, float-parity ✓
|
||||||
|
слой = STFT БЕЗ синтез-окна RT_SYN=1
|
||||||
|
```
|
||||||
|
Калибровки (rms ≤0.016 дБ):
|
||||||
|
```
|
||||||
|
dual fc500 q0.5 s12 ДВА тона : α=3.2193 β=0.4927 c=+0.54
|
||||||
|
fc1000 q0.5 s12 ОДИН тон : α=1.6151 β=0.3645 c=+0.48
|
||||||
|
fc500 q0.5 s12 ОДИН тон : α=1.1530 β=0.4038 c=+0.33
|
||||||
|
```
|
||||||
|
Корпус: dual **0.193 max 0.438** с флагами `RT_VLAW=1 RT_SYN=1 RT_NOWARP=1
|
||||||
|
RT_NOIIR3=1 RT_IIR12=0`. Канон TOTAL 2.286 нетронут.
|
||||||
|
|
||||||
|
ОТЗЫВАНО И НЕ ВОЗВРАЩАТЬСЯ: ×1.805-свёртка [23e], OLA-нормировка [24i],
|
||||||
|
двухстадийный γ₀ как множитель закона [24m — это артефакт двух тонов],
|
||||||
|
клампы параметров [24dd], B∝am [24bb], axpy-семантика th2000 [24ii — это
|
||||||
|
array-multiply], «acc_i += bands[i]» шага 12 [24gg — это COPY].
|
||||||
|
|
||||||
|
## ЗАДАЧА №1: каскадный симулятор шагов 9–19 (оп-за-опом)
|
||||||
|
|
||||||
|
Dataflow декодирован (BLOCKMAP 24hh/24ii):
|
||||||
|
```
|
||||||
|
vec698 *= (xmm12−[54087c]) ; обнуление при дефолтах
|
||||||
|
vec6f8 += 0.8 ; базовая линия
|
||||||
|
bigkernel(vec6f8, bands_i, vec6f8)
|
||||||
|
vec6f8 = bands_curve − ACC_i ; COMBINE (dc40: out=rdx−r10)
|
||||||
|
f6f8_верх += ATT[k]·ACC[k]; низ += REL[k]·ACC[k] ; тройки re/im/coef
|
||||||
|
COPY(...) ; шаг 12 = memcpy!
|
||||||
|
bands += (−1.0); bigkernel in-place ; центрирование+нелинейность
|
||||||
|
bands *= track_i; bands *= kWarp ; th2000 = array-multiply
|
||||||
|
IIR4 ×2; финальные scale/op
|
||||||
|
→ bands[i] → design log → scratch → FIR → audio multiply exp(scratch)
|
||||||
|
```
|
||||||
|
Тела bigkernel'ов по рантайм-адресам: 1803a06a0/180296c80/180323f20/1802dc0e0
|
||||||
|
(x87 exp-семейство). Коэффициенты IIR-генератора 533340 исправлены
|
||||||
|
(насыщающая форма arg=|c|·g/n; p=[54087c]=1, mult=360, C=1000).
|
||||||
|
|
||||||
|
Метод проверки: собрать симулятор в Python (numpy), прогнать lvl_raw из
|
||||||
|
tract_* через каскад, сравнить с deepest-scratch кривыми sc_* — rms < 0.05 дБ
|
||||||
|
= замкнулось. Затем перенос в C++.
|
||||||
|
|
||||||
|
## ЗАДАЧА №2: параметризация α(контент)/fc
|
||||||
|
|
||||||
|
α удваивается с числом тонов (частотное смешение шаблонно-локальное —
|
||||||
|
далёкий тон не влияет, 24ll). Инструмент: scripts/campaign.py (ячейка ≈8 мин).
|
||||||
|
Двухтональная дистанционная серия уже снята (sc_d*, инверсия не сошлась —
|
||||||
|
нужен каскад из Задачи №1 сначала!).
|
||||||
|
|
||||||
|
## СРЕДА (грабли, всё проверено болью)
|
||||||
|
- rendersnap2.py: RENDER_FILE брать ИЗ rpp (клоны наследуют путь — однажды
|
||||||
|
перезаписали реф); каталоги снапов задавать уникальные (argv[3]).
|
||||||
|
- touch+mtime перед каждым замером (same-second cmake hazard).
|
||||||
|
- tone1k.wav громче dual.wav в 2.28× — при сравнении серий учитывать.
|
||||||
|
- Свип НЕ годится для Y/X-отношения; только мультитон/мультиуровень.
|
||||||
|
- Динамика V(t)↔g(t) на рампе не сходится — пары только из стационара.
|
||||||
|
- HW-ловушки под wine невозможны (wine держит слоты); INT3 требует
|
||||||
|
дисциплины fnwatch4 и ГАРАНТИРОВАННО свежего рендера.
|
||||||
|
- Метрика только честная: render_parity.load / Гёрцель последних 0.75 c.
|
||||||
|
- Коммитить подшагами; факты → NOTES_LEVEL (очередной номер 24ll+).
|
||||||
@@ -95,7 +95,40 @@
|
|||||||
- => P1.5 "live capture" is a dead end; scalars must be derived statically or the two missing
|
- => P1.5 "live capture" is a dead end; scalars must be derived statically or the two missing
|
||||||
constants recovered from the original soothing_mem.bin (not currently present in workspace).
|
constants recovered from the original soothing_mem.bin (not currently present in workspace).
|
||||||
|
|
||||||
## 2026-08-20b (P1.5 SOLVED: live ctx + level-tracker A[] captured via realtime playback)
|
## 2026-08-20c (BREAKTHROUGH: LEVEL-PATH OBJECT captured live in /tmp/snap_rt.bin)
|
||||||
|
|
||||||
|
The BandConfig A/B/gamma (roadmap gap 2, block of F2/F3) is now LIVE-CAPTURED.
|
||||||
|
Read-only scan of the existing realtime snapshot `/tmp/snap_rt.bin` (ctx 0x2370040,
|
||||||
|
render_long.rpp) — no new capture needed.
|
||||||
|
|
||||||
|
### Method (repro, ~2s)
|
||||||
|
1. Level-path fingerprint = per-band **level_gain pair buffer**: 0x400 f32 pairs
|
||||||
|
(`[level, gain]`), with `level[j] == j/1024` exactly (level[0]==0.0, step 1/1024).
|
||||||
|
Vectorized scan (2nd derivative of level slots == 0 + level[0]==0.0) finds them.
|
||||||
|
2. Six such buffers at stride 0x2020..0x2040 (band0: 0x4083020, b1: 0x4085040,
|
||||||
|
b2: 0x4087080, b3: 0x40890a0, b4: 0x408b0e0, b5: 0x408d100).
|
||||||
|
3. Find u64 refs to the six → consecutive slots stride 0x18 at **+0xe0+band*0x18**
|
||||||
|
→ object base = **0x3975460** (level-path object).
|
||||||
|
|
||||||
|
### Level-path object (base 0x3975460, region unknown / heap)
|
||||||
|
- `+0x178` = band-list ptr → 0x32c0c60
|
||||||
|
- `+0x180` → BandConfig 0x32c0aa0: **A=-24.0, B=+28.0, gamma@0xc=1.0, byte flag@0x10=0** → linear, no callback@0x90
|
||||||
|
- `+0x188` → BandConfig 0x32c09c8: A=16.0, B=20000.0, gamma@0xc=1.0, flag=0 (freq-range shaped cfg; +0x18.. floats 0.55,7.13,2.77,2.718 = nonlinear shaper consts)
|
||||||
|
- `+0x4198 + band*0x2000` = **band mask doubles**, 512 usable per band:
|
||||||
|
band0 ~1.0 const; band1 1.001→1.216 (rising); band2 0.999→0.579 (falling);
|
||||||
|
band3 1.291→1.002 (falling); band4/5 1.0→~0.983
|
||||||
|
- `+0xe0+band*0x18` → per-band level_gain pair buffers (live LUT output already has
|
||||||
|
gains: b0 0.53123 const, b1 0.5314→0.535, b2 const, b3 0.598→, b4 const, ...; many
|
||||||
|
bands `~0.531` because mask≈1.0 & render_long default cfg)
|
||||||
|
|
||||||
|
### Interpretation / next
|
||||||
|
- The captured A/B/gamma are the **default render_long config** (A/B semantics =
|
||||||
|
level-scaler LUT min/max; rendering default band). To get the A/B/gamma of a SPECIFIC
|
||||||
|
band shape (t1kq_only1_1000 etc.) re-run rtctx_rt.py with that test RPP and re-scan
|
||||||
|
the same fingerprint (base offset shifts). Method is now automated.
|
||||||
|
- This UNBLOCKS the parametric band-LUT 0x563440/0x563a60 as a structural source
|
||||||
|
(t=(x−A)/(B−A), clamped, ^gamma, ×norm) instead of fitted Pchip.
|
||||||
|
- Dump helper: /tmp/dump_levelpath.py, /tmp/probe_base.py.
|
||||||
The dead end above was wrong — the missing piece was REALTIME audio playback, not more scanning.
|
The dead end above was wrong — the missing piece was REALTIME audio playback, not more scanning.
|
||||||
`-renderproject` uses the OFFLINE audio engine (fields live "only during audio", per earlier note);
|
`-renderproject` uses the OFFLINE audio engine (fields live "only during audio", per earlier note);
|
||||||
the ctx object only materializes during a realtime transport play.
|
the ctx object only materializes during a realtime transport play.
|
||||||
@@ -124,3 +157,40 @@ the ctx object only materializes during a realtime transport play.
|
|||||||
during band processing; still TBD (but LUT curve params A/B/γ are RPP-derived per roadmap).
|
during band processing; still TBD (but LUT curve params A/B/γ are RPP-derived per roadmap).
|
||||||
- Two more ctx-like bases found (0x2120040, 0x1780040) also have +0x24==48000; 0x2370040 is the
|
- Two more ctx-like bases found (0x2120040, 0x1780040) also have +0x24==48000; 0x2370040 is the
|
||||||
populated one (0x2120040 has 0x540658..698 = 1.0 fill pattern — likely a second/free instance).
|
populated one (0x2120040 has 0x540658..698 = 1.0 fill pattern — likely a second/free instance).
|
||||||
|
|
||||||
|
## 2026-08-23 (22y): LIVE CTX CAPTURE DURING DUAL/T1KQ/RES PLAYBACK — scripts/dualtrace.py
|
||||||
|
Method works reproducibly: reaper <cfg>.rpp play_loop.lua (repeat ON) → yabridge-host
|
||||||
|
→ chunked snapshot ×2 → ctx marker +0x24==48000 ∧ sens>100 → ONLY ONE populated base
|
||||||
|
(0x2370040; others empty instances). Snapshots byte-stable over seconds.
|
||||||
|
|
||||||
|
### Pointer-table catalog (ctx+0x540600..0x540a00, dereferenced u64 → f32[2049])
|
||||||
|
- Static weights confirmed live: [00]identity@0x540688(ones), window@0x540698(0.5→0.8),
|
||||||
|
WA/WB/WC/WD @0x5406b8/c8/d8/e8, warp@0x540748(1.3→6.68, structure at LOW bins),
|
||||||
|
freqaxis@0x540758(v85=995.6Hz ✓ internal 48k/4096).
|
||||||
|
- **acc/f6f8 arrays ALL ZERO during steady looped playback** (0x5406f8,
|
||||||
|
0x5407a8/b8/c8/d8 — zero as f32 AND f64): combine accumulators idle in steady state.
|
||||||
|
- **CONFIG-DEPENDENT CURVE FAMILY** (peak follows band fc: bin43@fc500 → bin85@fc1000):
|
||||||
|
- 0x540768 == 0x540778 (identical twins): smooth curve, peak at center
|
||||||
|
(dual: 4.15@43, valley 1.60@171, upturn 1.86@400; t1kq: 3.55@85).
|
||||||
|
- 0x540788: sharper version (floor ~0.52-1.0, max 4.38).
|
||||||
|
- **0x5407f8: min EXACTLY 1.0 → reduction multiplier R(f)=1/mask ≥ 1**
|
||||||
|
(res500 cfg: R(500Hz)=12.0 dB, falls to ~0 by 6 kHz; notch-shaped ✓).
|
||||||
|
- bands[] slots from static asm (@0x540678+i·16) read as identity/ones tables LIVE —
|
||||||
|
the per-band working data is NOT sitting in those ctx fields during playback.
|
||||||
|
|
||||||
|
### Decisive mismatch
|
||||||
|
For dual cfg: R(43)=3.98→12.0 dB (real 10.32 ok-ish) BUT R(171)=1.41→3.0 dB while
|
||||||
|
real cut@2000 = 11.82 dB. ⇒ Applied filter ≠ pointwise copy of R: massive spectral
|
||||||
|
coupling between template and actual filtering. Prime suspect: FFT-conv stage with
|
||||||
|
the 8193-wide WIN_freq window ([01]) — smearing/spreading step completely absent in
|
||||||
|
our pointwise render48k path. This ALSO explains why faithful v1 (pointwise) cannot
|
||||||
|
balance dual tones regardless of law constants.
|
||||||
|
|
||||||
|
### Caveats / next
|
||||||
|
- Quick Welch TF estimate unreliable (window/alignment) — Goertzel-at-tones stays canon;
|
||||||
|
for full-spectrum truth use chirp/two-tone refs or per-fc capture sweep.
|
||||||
|
- NEXT: (1) fc-scan captures (res_only1_{fc}.rpp, 11×) → correlate R_cap(bin85) with
|
||||||
|
real cut@1000 across fc — validates R as THE applied curve; (2) decode the FFT-conv
|
||||||
|
0x535a70 body + WIN_freq usage — reconstruct mask→FIR spreading; (3) re-check whether
|
||||||
|
0x540768-family updates frame-by-frame (two-point diff showed stable — maybe only
|
||||||
|
rebuilt on param change / note onset).
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
Prepared: 2026-08-18 (checkpoint end-of-session: commits c8f97e4 + 60bf3a2 pushed). Start: READ THIS FIRST.
|
Prepared: 2026-08-18 (checkpoint end-of-session: commits c8f97e4 + 60bf3a2 pushed). Start: READ THIS FIRST.
|
||||||
|
|
||||||
|
> **2026-08-20 UPDATE**: см. актуальный канон — `AGENTS.md` и `handoff/NOTES_LEVEL.md`.
|
||||||
|
> Нижеследующее «NOT DECODED»/«missing body» УСТАРЕЛО: `FUN_180529fe0` mono-path,
|
||||||
|
> `FUN_180563440/563ce0/563a60` — расшифрованы, полные дизассемблы скопированы в
|
||||||
|
> `handoff/nls_dasm/` (134 файла). Этот файл — исторический чекпоинт.
|
||||||
|
|
||||||
## 0. DECOMPILATION INVENTORY (2026-08-19 — what's decoded, where, and what's missing)
|
## 0. DECOMPILATION INVENTORY (2026-08-19 — what's decoded, where, and what's missing)
|
||||||
Goal: bit-exact parity is gated by EXACT tables/window/constants. The chunk-level model hits
|
Goal: bit-exact parity is gated by EXACT tables/window/constants. The chunk-level model hits
|
||||||
err ≤0.62 dB (dual) / ≤0.19 dB (al_*) — to go sample-exact we need precise values from the binary.
|
err ≤0.62 dB (dual) / ≤0.19 dB (al_*) — to go sample-exact we need precise values from the binary.
|
||||||
@@ -27,14 +32,11 @@ DECODED (formula-level, notes at NOTES_TWIN.md / NOTES_LEVEL.md):
|
|||||||
- level-path map: `0x563440` (LUT curve +0x188, 6 band-slots, combine→+0x2198), `0x56e3e0` (twin-mask factory),
|
- level-path map: `0x563440` (LUT curve +0x188, 6 band-slots, combine→+0x2198), `0x56e3e0` (twin-mask factory),
|
||||||
`0x563ce0` (IIR level-tracker INIT only).
|
`0x563ce0` (IIR level-tracker INIT only).
|
||||||
|
|
||||||
NOT DECODED / MISSING FROM decomp_funs.txt (critical):
|
NOT DECODED / MISSING FROM decomp_funs.txt (critical): ⚠️ → РЕШЕНО (2026-08-19/20), см. выше
|
||||||
- `FUN_180529fe0` body — mask/fir apply; only reachable via runtime + vtable slot `180529fe0` in fun_map.txt.
|
- `FUN_180529fe0` body — РЕШЕНО (decomp в `/tmp/consumers_out.txt`, mask-цепь в `dsp/framed_model.cpp`).
|
||||||
- `FUN_180563440` (LUT curve + gamma + combine), `FUN_180563ce0` (IIR level-tracker UPDATE loop).
|
- `FUN_180563440` / `FUN_180563a60` (LUT curve + gamma + combine), `FUN_180563ce0` — РЕШЕНО,
|
||||||
Full disasms exist ONLY in `/tmp/opencode/f_563440.dis`, `f_563ce0.dis`, `f529fe0.dis` — **/tmp is
|
дизассемблы скопированы в `handoff/nls_dasm/` (`f_563440.dis`, `f_563a60.dis`, `f_563ce0.dis`, `f529fe0.dis`).
|
||||||
ephemeral; COPY INTO handoff/nls_dasm/ on next session start.**
|
- Window `0x540658` — РЕШЕНО (live-захват, см. `handoff/NOTES_CAPTURE.md`; `rtwin_freq_44100.npy`).
|
||||||
- Window `0x540658` (single indirect write — statically invisible); live-captured copies saved as
|
|
||||||
`rwin_A0/A1/B0/C0.npy` + `r_freqaxis.npy` (see NOTES_LEVEL.md §2026-08-18h3). Live data at SR=48000
|
|
||||||
(offline renders 44100 → renormalize warp x by actual Nyquist).
|
|
||||||
- sens source: XML 12.0 → runtime sens_dB≈24.65 (host ×2) not found in dump; `IAT\*0x181bab370` outside dump.
|
- sens source: XML 12.0 → runtime sens_dB≈24.65 (host ×2) not found in dump; `IAT\*0x181bab370` outside dump.
|
||||||
|
|
||||||
### Bridge model STATUS (2026-08-19):
|
### Bridge model STATUS (2026-08-19):
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,648 @@
|
|||||||
|
|
||||||
|
/tmp/det/caller_536300.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180536300 <.data>:
|
||||||
|
180536300: 48 89 5c 24 08 mov QWORD PTR [rsp+0x8],rbx
|
||||||
|
180536305: 48 89 6c 24 18 mov QWORD PTR [rsp+0x18],rbp
|
||||||
|
18053630a: 48 89 74 24 20 mov QWORD PTR [rsp+0x20],rsi
|
||||||
|
18053630f: 48 89 54 24 10 mov QWORD PTR [rsp+0x10],rdx
|
||||||
|
180536314: 57 push rdi
|
||||||
|
180536315: 41 54 push r12
|
||||||
|
180536317: 41 55 push r13
|
||||||
|
180536319: 41 56 push r14
|
||||||
|
18053631b: 41 57 push r15
|
||||||
|
18053631d: 48 83 ec 50 sub rsp,0x50
|
||||||
|
180536321: 48 63 bc 24 a0 00 00 movsxd rdi,DWORD PTR [rsp+0xa0]
|
||||||
|
180536328: 00
|
||||||
|
180536329: 48 8d 15 88 aa 11 02 lea rdx,[rip+0x211aa88] # 0x182650db8
|
||||||
|
180536330: 4c 8b b4 24 b0 00 00 mov r14,QWORD PTR [rsp+0xb0]
|
||||||
|
180536337: 00
|
||||||
|
180536338: 49 8b e9 mov rbp,r9
|
||||||
|
18053633b: 0f 29 74 24 40 movaps XMMWORD PTR [rsp+0x40],xmm6
|
||||||
|
180536340: 49 8b d8 mov rbx,r8
|
||||||
|
180536343: 66 0f 6e b1 80 00 24 movd xmm6,DWORD PTR [rcx+0x240080]
|
||||||
|
18053634a: 00
|
||||||
|
18053634b: 8d 04 fd 00 00 00 00 lea eax,[rdi*8+0x0]
|
||||||
|
180536352: 4c 63 d0 movsxd r10,eax
|
||||||
|
180536355: 8d 04 3f lea eax,[rdi+rdi*1]
|
||||||
|
180536358: 0f 5b f6 cvtdq2ps xmm6,xmm6
|
||||||
|
18053635b: 4f 8d 24 96 lea r12,[r14+r10*4]
|
||||||
|
18053635f: 4c 63 d0 movsxd r10,eax
|
||||||
|
180536362: 4d 8d 3c bc lea r15,[r12+rdi*4]
|
||||||
|
180536366: 4c 89 a4 24 b0 00 00 mov QWORD PTR [rsp+0xb0],r12
|
||||||
|
18053636d: 00
|
||||||
|
18053636e: f3 0f 59 71 24 mulss xmm6,DWORD PTR [rcx+0x24]
|
||||||
|
180536373: 48 8d 0d 3e aa 11 02 lea rcx,[rip+0x211aa3e] # 0x182650db8
|
||||||
|
18053637a: 4b 8d 34 97 lea rsi,[r15+r10*4]
|
||||||
|
18053637e: 4e 8d 2c 96 lea r13,[rsi+r10*4]
|
||||||
|
180536382: ff 15 80 4c 67 01 call QWORD PTR [rip+0x1674c80] # 0x181bab008
|
||||||
|
180536388: f2 0f 10 0d b8 de f8 movsd xmm1,QWORD PTR [rip+0x1f8deb8] # 0x1824c4248
|
||||||
|
18053638f: 01
|
||||||
|
180536390: 44 8b cf mov r9d,edi
|
||||||
|
180536393: 0f 5a c6 cvtps2pd xmm0,xmm6
|
||||||
|
180536396: 85 c0 test eax,eax
|
||||||
|
180536398: 48 8b d3 mov rdx,rbx
|
||||||
|
18053639b: 49 8b cc mov rcx,r12
|
||||||
|
18053639e: 0f 94 84 24 a8 00 00 sete BYTE PTR [rsp+0xa8]
|
||||||
|
1805363a5: 00
|
||||||
|
1805363a6: f2 0f 5e c8 divsd xmm1,xmm0
|
||||||
|
1805363aa: 66 0f 5a d1 cvtpd2ps xmm2,xmm1
|
||||||
|
1805363ae: e8 4d 76 ff ff call 0x18052da00
|
||||||
|
1805363b3: 80 bd 10 08 00 00 00 cmp BYTE PTR [rbp+0x810],0x0
|
||||||
|
1805363ba: 44 8b c7 mov r8d,edi
|
||||||
|
1805363bd: 74 1a je 0x1805363d9
|
||||||
|
1805363bf: f3 0f 10 0d dd da f8 movss xmm1,DWORD PTR [rip+0x1f8dadd] # 0x1824c3ea4
|
||||||
|
1805363c6: 01
|
||||||
|
1805363c7: 48 8b 8c 24 88 00 00 mov rcx,QWORD PTR [rsp+0x88]
|
||||||
|
1805363ce: 00
|
||||||
|
1805363cf: e8 7c 77 ff ff call 0x18052db50
|
||||||
|
1805363d4: e9 88 01 00 00 jmp 0x180536561
|
||||||
|
1805363d9: f3 0f 10 35 c3 da f8 movss xmm6,DWORD PTR [rip+0x1f8dac3] # 0x1824c3ea4
|
||||||
|
1805363e0: 01
|
||||||
|
1805363e1: 48 8b ce mov rcx,rsi
|
||||||
|
1805363e4: 0f 28 ce movaps xmm1,xmm6
|
||||||
|
1805363e7: e8 64 77 ff ff call 0x18052db50
|
||||||
|
1805363ec: 44 8b c7 mov r8d,edi
|
||||||
|
1805363ef: 0f 57 c9 xorps xmm1,xmm1
|
||||||
|
1805363f2: 49 8b cd mov rcx,r13
|
||||||
|
1805363f5: e8 56 77 ff ff call 0x18052db50
|
||||||
|
1805363fa: 33 db xor ebx,ebx
|
||||||
|
1805363fc: 39 9d 14 08 00 00 cmp DWORD PTR [rbp+0x814],ebx
|
||||||
|
180536402: 0f 8e 1e 01 00 00 jle 0x180536526
|
||||||
|
180536408: 0f 29 7c 24 30 movaps XMMWORD PTR [rsp+0x30],xmm7
|
||||||
|
18053640d: 4c 8d a5 18 08 00 00 lea r12,[rbp+0x818]
|
||||||
|
180536414: f2 0f 10 3d 24 dd f8 movsd xmm7,QWORD PTR [rip+0x1f8dd24] # 0x1824c4140
|
||||||
|
18053641b: 01
|
||||||
|
18053641c: 0f 1f 40 00 nop DWORD PTR [rax+0x0]
|
||||||
|
180536420: 4c 8b 8c 24 b0 00 00 mov r9,QWORD PTR [rsp+0xb0]
|
||||||
|
180536427: 00
|
||||||
|
180536428: 49 8b d6 mov rdx,r14
|
||||||
|
18053642b: 4c 63 c3 movsxd r8,ebx
|
||||||
|
18053642e: 49 8b cf mov rcx,r15
|
||||||
|
180536431: 49 c1 e0 07 shl r8,0x7
|
||||||
|
180536435: 4c 03 c5 add r8,rbp
|
||||||
|
180536438: 89 7c 24 20 mov DWORD PTR [rsp+0x20],edi
|
||||||
|
18053643c: 80 bc 24 a8 00 00 00 cmp BYTE PTR [rsp+0xa8],0x0
|
||||||
|
180536443: 00
|
||||||
|
180536444: 74 07 je 0x18053644d
|
||||||
|
180536446: e8 35 f4 ff ff call 0x180535880
|
||||||
|
18053644b: eb 05 jmp 0x180536452
|
||||||
|
18053644d: e8 3e 0b 00 00 call 0x180536f90
|
||||||
|
180536452: 48 8d 15 5f a9 11 02 lea rdx,[rip+0x211a95f] # 0x182650db8
|
||||||
|
180536459: 48 8d 0d 58 a9 11 02 lea rcx,[rip+0x211a958] # 0x182650db8
|
||||||
|
180536460: ff 15 a2 4b 67 01 call QWORD PTR [rip+0x1674ba2] # 0x181bab008
|
||||||
|
180536466: 44 8b c7 mov r8d,edi
|
||||||
|
180536469: 49 8b d6 mov rdx,r14
|
||||||
|
18053646c: 49 8b cf mov rcx,r15
|
||||||
|
18053646f: 85 c0 test eax,eax
|
||||||
|
180536471: 75 07 jne 0x18053647a
|
||||||
|
180536473: e8 68 b4 ac ff call 0x1800018e0
|
||||||
|
180536478: eb 05 jmp 0x18053647f
|
||||||
|
18053647a: e8 51 b8 ac ff call 0x180001cd0
|
||||||
|
18053647f: 48 8d 15 32 a9 11 02 lea rdx,[rip+0x211a932] # 0x182650db8
|
||||||
|
180536486: 48 8d 0d 2b a9 11 02 lea rcx,[rip+0x211a92b] # 0x182650db8
|
||||||
|
18053648d: ff 15 75 4b 67 01 call QWORD PTR [rip+0x1674b75] # 0x181bab008
|
||||||
|
180536493: 44 8b c7 mov r8d,edi
|
||||||
|
180536496: 48 8b d6 mov rdx,rsi
|
||||||
|
180536499: 49 8b ce mov rcx,r14
|
||||||
|
18053649c: 85 c0 test eax,eax
|
||||||
|
18053649e: 75 07 jne 0x1805364a7
|
||||||
|
1805364a0: e8 5b bb ac ff call 0x180002000
|
||||||
|
1805364a5: eb 05 jmp 0x1805364ac
|
||||||
|
1805364a7: e8 94 b7 ac ff call 0x180001c40
|
||||||
|
1805364ac: 41 80 3c 24 00 cmp BYTE PTR [r12],0x0
|
||||||
|
1805364b1: 74 5d je 0x180536510
|
||||||
|
1805364b3: 48 8d 15 fe a8 11 02 lea rdx,[rip+0x211a8fe] # 0x182650db8
|
||||||
|
1805364ba: 48 8d 0d f7 a8 11 02 lea rcx,[rip+0x211a8f7] # 0x182650db8
|
||||||
|
1805364c1: ff 15 41 4b 67 01 call QWORD PTR [rip+0x1674b41] # 0x181bab008
|
||||||
|
1805364c7: 44 8b c7 mov r8d,edi
|
||||||
|
1805364ca: 49 8b d5 mov rdx,r13
|
||||||
|
1805364cd: 48 8b ce mov rcx,rsi
|
||||||
|
1805364d0: 85 c0 test eax,eax
|
||||||
|
1805364d2: 75 07 jne 0x1805364db
|
||||||
|
1805364d4: e8 b7 bb ac ff call 0x180002090
|
||||||
|
1805364d9: eb 05 jmp 0x1805364e0
|
||||||
|
1805364db: e8 d0 bc ac ff call 0x1800021b0
|
||||||
|
1805364e0: 48 8d 15 d1 a8 11 02 lea rdx,[rip+0x211a8d1] # 0x182650db8
|
||||||
|
1805364e7: 48 8d 0d ca a8 11 02 lea rcx,[rip+0x211a8ca] # 0x182650db8
|
||||||
|
1805364ee: ff 15 14 4b 67 01 call QWORD PTR [rip+0x1674b14] # 0x181bab008
|
||||||
|
1805364f4: 44 8b c7 mov r8d,edi
|
||||||
|
1805364f7: 48 8b d6 mov rdx,rsi
|
||||||
|
1805364fa: 85 c0 test eax,eax
|
||||||
|
1805364fc: 75 0a jne 0x180536508
|
||||||
|
1805364fe: 0f 28 c6 movaps xmm0,xmm6
|
||||||
|
180536501: e8 9a b4 ac ff call 0x1800019a0
|
||||||
|
180536506: eb 08 jmp 0x180536510
|
||||||
|
180536508: 0f 28 c7 movaps xmm0,xmm7
|
||||||
|
18053650b: e8 c0 bd ac ff call 0x1800022d0
|
||||||
|
180536510: ff c3 inc ebx
|
||||||
|
180536512: 49 ff c4 inc r12
|
||||||
|
180536515: 3b 9d 14 08 00 00 cmp ebx,DWORD PTR [rbp+0x814]
|
||||||
|
18053651b: 0f 8c ff fe ff ff jl 0x180536420
|
||||||
|
180536521: 0f 28 7c 24 30 movaps xmm7,XMMWORD PTR [rsp+0x30]
|
||||||
|
180536526: 8b 85 14 08 00 00 mov eax,DWORD PTR [rbp+0x814]
|
||||||
|
18053652c: 83 f8 01 cmp eax,0x1
|
||||||
|
18053652f: 7e 1d jle 0x18053654e
|
||||||
|
180536531: ff c8 dec eax
|
||||||
|
180536533: 48 63 c8 movsxd rcx,eax
|
||||||
|
180536536: 80 bc 29 18 08 00 00 cmp BYTE PTR [rcx+rbp*1+0x818],0x0
|
||||||
|
18053653d: 00
|
||||||
|
18053653e: 75 0e jne 0x18053654e
|
||||||
|
180536540: 44 8b c7 mov r8d,edi
|
||||||
|
180536543: 48 8b d6 mov rdx,rsi
|
||||||
|
180536546: 49 8b cd mov rcx,r13
|
||||||
|
180536549: e8 42 74 ff ff call 0x18052d990
|
||||||
|
18053654e: 48 8b 8c 24 88 00 00 mov rcx,QWORD PTR [rsp+0x88]
|
||||||
|
180536555: 00
|
||||||
|
180536556: 44 8b c7 mov r8d,edi
|
||||||
|
180536559: 49 8b d5 mov rdx,r13
|
||||||
|
18053655c: e8 5f 76 ff ff call 0x18052dbc0
|
||||||
|
180536561: 0f 28 74 24 40 movaps xmm6,XMMWORD PTR [rsp+0x40]
|
||||||
|
180536566: 4c 8d 5c 24 50 lea r11,[rsp+0x50]
|
||||||
|
18053656b: 49 8b 5b 30 mov rbx,QWORD PTR [r11+0x30]
|
||||||
|
18053656f: 49 8b 6b 40 mov rbp,QWORD PTR [r11+0x40]
|
||||||
|
180536573: 49 8b 73 48 mov rsi,QWORD PTR [r11+0x48]
|
||||||
|
180536577: 49 8b e3 mov rsp,r11
|
||||||
|
18053657a: 41 5f pop r15
|
||||||
|
18053657c: 41 5e pop r14
|
||||||
|
18053657e: 41 5d pop r13
|
||||||
|
180536580: 41 5c pop r12
|
||||||
|
180536582: 5f pop rdi
|
||||||
|
180536583: c3 ret
|
||||||
|
180536584: cc int3
|
||||||
|
180536585: cc int3
|
||||||
|
180536586: cc int3
|
||||||
|
180536587: cc int3
|
||||||
|
180536588: cc int3
|
||||||
|
180536589: cc int3
|
||||||
|
18053658a: cc int3
|
||||||
|
18053658b: cc int3
|
||||||
|
18053658c: cc int3
|
||||||
|
18053658d: cc int3
|
||||||
|
18053658e: cc int3
|
||||||
|
18053658f: cc int3
|
||||||
|
180536590: 48 8d 05 29 a7 11 02 lea rax,[rip+0x211a729] # 0x182650cc0
|
||||||
|
180536597: c3 ret
|
||||||
|
180536598: cc int3
|
||||||
|
180536599: cc int3
|
||||||
|
18053659a: cc int3
|
||||||
|
18053659b: cc int3
|
||||||
|
18053659c: cc int3
|
||||||
|
18053659d: cc int3
|
||||||
|
18053659e: cc int3
|
||||||
|
18053659f: cc int3
|
||||||
|
1805365a0: 48 8d 05 b1 5b f7 01 lea rax,[rip+0x1f75bb1] # 0x1824ac158
|
||||||
|
1805365a7: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
1805365aa: 48 8b c2 mov rax,rdx
|
||||||
|
1805365ad: 0f 10 41 08 movups xmm0,XMMWORD PTR [rcx+0x8]
|
||||||
|
1805365b1: 0f 11 42 08 movups XMMWORD PTR [rdx+0x8],xmm0
|
||||||
|
1805365b5: c3 ret
|
||||||
|
1805365b6: cc int3
|
||||||
|
1805365b7: cc int3
|
||||||
|
1805365b8: cc int3
|
||||||
|
1805365b9: cc int3
|
||||||
|
1805365ba: cc int3
|
||||||
|
1805365bb: cc int3
|
||||||
|
1805365bc: cc int3
|
||||||
|
1805365bd: cc int3
|
||||||
|
1805365be: cc int3
|
||||||
|
1805365bf: cc int3
|
||||||
|
1805365c0: 48 8d 05 d9 a9 11 02 lea rax,[rip+0x211a9d9] # 0x182650fa0
|
||||||
|
1805365c7: c3 ret
|
||||||
|
1805365c8: cc int3
|
||||||
|
1805365c9: cc int3
|
||||||
|
1805365ca: cc int3
|
||||||
|
1805365cb: cc int3
|
||||||
|
1805365cc: cc int3
|
||||||
|
1805365cd: cc int3
|
||||||
|
1805365ce: cc int3
|
||||||
|
1805365cf: cc int3
|
||||||
|
1805365d0: 48 8d 05 41 61 f7 01 lea rax,[rip+0x1f76141] # 0x1824ac718
|
||||||
|
1805365d7: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
1805365da: f2 0f 10 41 08 movsd xmm0,QWORD PTR [rcx+0x8]
|
||||||
|
1805365df: f2 0f 11 42 08 movsd QWORD PTR [rdx+0x8],xmm0
|
||||||
|
1805365e4: 8b 41 10 mov eax,DWORD PTR [rcx+0x10]
|
||||||
|
1805365e7: 89 42 10 mov DWORD PTR [rdx+0x10],eax
|
||||||
|
1805365ea: 48 8b c2 mov rax,rdx
|
||||||
|
1805365ed: c3 ret
|
||||||
|
1805365ee: cc int3
|
||||||
|
1805365ef: cc int3
|
||||||
|
1805365f0: 84 d2 test dl,dl
|
||||||
|
1805365f2: 74 0a je 0x1805365fe
|
||||||
|
1805365f4: ba 20 00 00 00 mov edx,0x20
|
||||||
|
1805365f9: e9 f6 aa bf 00 jmp 0x1811310f4
|
||||||
|
1805365fe: c3 ret
|
||||||
|
1805365ff: cc int3
|
||||||
|
180536600: 48 8d 05 d9 84 11 02 lea rax,[rip+0x21184d9] # 0x18264eae0
|
||||||
|
180536607: c3 ret
|
||||||
|
180536608: cc int3
|
||||||
|
180536609: cc int3
|
||||||
|
18053660a: cc int3
|
||||||
|
18053660b: cc int3
|
||||||
|
18053660c: cc int3
|
||||||
|
18053660d: cc int3
|
||||||
|
18053660e: cc int3
|
||||||
|
18053660f: cc int3
|
||||||
|
180536610: 48 8d 05 71 52 f7 01 lea rax,[rip+0x1f75271] # 0x1824ab888
|
||||||
|
180536617: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
18053661a: 0f 10 41 08 movups xmm0,XMMWORD PTR [rcx+0x8]
|
||||||
|
18053661e: 0f 11 42 08 movups XMMWORD PTR [rdx+0x8],xmm0
|
||||||
|
180536622: 48 8b 41 18 mov rax,QWORD PTR [rcx+0x18]
|
||||||
|
180536626: 48 89 42 18 mov QWORD PTR [rdx+0x18],rax
|
||||||
|
18053662a: 48 8b c2 mov rax,rdx
|
||||||
|
18053662d: c3 ret
|
||||||
|
18053662e: cc int3
|
||||||
|
18053662f: cc int3
|
||||||
|
180536630: 48 8d 05 a9 a9 11 02 lea rax,[rip+0x211a9a9] # 0x182650fe0
|
||||||
|
180536637: c3 ret
|
||||||
|
180536638: cc int3
|
||||||
|
180536639: cc int3
|
||||||
|
18053663a: cc int3
|
||||||
|
18053663b: cc int3
|
||||||
|
18053663c: cc int3
|
||||||
|
18053663d: cc int3
|
||||||
|
18053663e: cc int3
|
||||||
|
18053663f: cc int3
|
||||||
|
180536640: 48 8d 05 a1 54 f7 01 lea rax,[rip+0x1f754a1] # 0x1824abae8
|
||||||
|
180536647: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
18053664a: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
18053664e: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
180536652: 48 8b c2 mov rax,rdx
|
||||||
|
180536655: c3 ret
|
||||||
|
180536656: cc int3
|
||||||
|
180536657: cc int3
|
||||||
|
180536658: cc int3
|
||||||
|
180536659: cc int3
|
||||||
|
18053665a: cc int3
|
||||||
|
18053665b: cc int3
|
||||||
|
18053665c: cc int3
|
||||||
|
18053665d: cc int3
|
||||||
|
18053665e: cc int3
|
||||||
|
18053665f: cc int3
|
||||||
|
180536660: 48 8d 05 a9 a4 11 02 lea rax,[rip+0x211a4a9] # 0x182650b10
|
||||||
|
180536667: c3 ret
|
||||||
|
180536668: cc int3
|
||||||
|
180536669: cc int3
|
||||||
|
18053666a: cc int3
|
||||||
|
18053666b: cc int3
|
||||||
|
18053666c: cc int3
|
||||||
|
18053666d: cc int3
|
||||||
|
18053666e: cc int3
|
||||||
|
18053666f: cc int3
|
||||||
|
180536670: 48 8d 05 49 59 f7 01 lea rax,[rip+0x1f75949] # 0x1824abfc0
|
||||||
|
180536677: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
18053667a: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
18053667e: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
180536682: 48 8b c2 mov rax,rdx
|
||||||
|
180536685: c3 ret
|
||||||
|
180536686: cc int3
|
||||||
|
180536687: cc int3
|
||||||
|
180536688: cc int3
|
||||||
|
180536689: cc int3
|
||||||
|
18053668a: cc int3
|
||||||
|
18053668b: cc int3
|
||||||
|
18053668c: cc int3
|
||||||
|
18053668d: cc int3
|
||||||
|
18053668e: cc int3
|
||||||
|
18053668f: cc int3
|
||||||
|
180536690: 48 8d 05 e9 a2 11 02 lea rax,[rip+0x211a2e9] # 0x182650980
|
||||||
|
180536697: c3 ret
|
||||||
|
180536698: cc int3
|
||||||
|
180536699: cc int3
|
||||||
|
18053669a: cc int3
|
||||||
|
18053669b: cc int3
|
||||||
|
18053669c: cc int3
|
||||||
|
18053669d: cc int3
|
||||||
|
18053669e: cc int3
|
||||||
|
18053669f: cc int3
|
||||||
|
1805366a0: 48 8d 05 79 48 f7 01 lea rax,[rip+0x1f74879] # 0x1824aaf20
|
||||||
|
1805366a7: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
1805366aa: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
1805366ae: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
1805366b2: 48 8b c2 mov rax,rdx
|
||||||
|
1805366b5: c3 ret
|
||||||
|
1805366b6: cc int3
|
||||||
|
1805366b7: cc int3
|
||||||
|
1805366b8: cc int3
|
||||||
|
1805366b9: cc int3
|
||||||
|
1805366ba: cc int3
|
||||||
|
1805366bb: cc int3
|
||||||
|
1805366bc: cc int3
|
||||||
|
1805366bd: cc int3
|
||||||
|
1805366be: cc int3
|
||||||
|
1805366bf: cc int3
|
||||||
|
1805366c0: 48 8d 05 b9 96 11 02 lea rax,[rip+0x21196b9] # 0x18264fd80
|
||||||
|
1805366c7: c3 ret
|
||||||
|
1805366c8: cc int3
|
||||||
|
1805366c9: cc int3
|
||||||
|
1805366ca: cc int3
|
||||||
|
1805366cb: cc int3
|
||||||
|
1805366cc: cc int3
|
||||||
|
1805366cd: cc int3
|
||||||
|
1805366ce: cc int3
|
||||||
|
1805366cf: cc int3
|
||||||
|
1805366d0: 48 8d 05 99 52 f7 01 lea rax,[rip+0x1f75299] # 0x1824ab970
|
||||||
|
1805366d7: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
1805366da: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
1805366de: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
1805366e2: 48 8b c2 mov rax,rdx
|
||||||
|
1805366e5: c3 ret
|
||||||
|
1805366e6: cc int3
|
||||||
|
1805366e7: cc int3
|
||||||
|
1805366e8: cc int3
|
||||||
|
1805366e9: cc int3
|
||||||
|
1805366ea: cc int3
|
||||||
|
1805366eb: cc int3
|
||||||
|
1805366ec: cc int3
|
||||||
|
1805366ed: cc int3
|
||||||
|
1805366ee: cc int3
|
||||||
|
1805366ef: cc int3
|
||||||
|
1805366f0: 48 8d 05 f1 9a 11 02 lea rax,[rip+0x2119af1] # 0x1826501e8
|
||||||
|
1805366f7: c3 ret
|
||||||
|
1805366f8: cc int3
|
||||||
|
1805366f9: cc int3
|
||||||
|
1805366fa: cc int3
|
||||||
|
1805366fb: cc int3
|
||||||
|
1805366fc: cc int3
|
||||||
|
1805366fd: cc int3
|
||||||
|
1805366fe: cc int3
|
||||||
|
1805366ff: cc int3
|
||||||
|
180536700: 48 8d 05 01 50 f7 01 lea rax,[rip+0x1f75001] # 0x1824ab708
|
||||||
|
180536707: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
18053670a: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
18053670e: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
180536712: 48 8b c2 mov rax,rdx
|
||||||
|
180536715: c3 ret
|
||||||
|
180536716: cc int3
|
||||||
|
180536717: cc int3
|
||||||
|
180536718: cc int3
|
||||||
|
180536719: cc int3
|
||||||
|
18053671a: cc int3
|
||||||
|
18053671b: cc int3
|
||||||
|
18053671c: cc int3
|
||||||
|
18053671d: cc int3
|
||||||
|
18053671e: cc int3
|
||||||
|
18053671f: cc int3
|
||||||
|
180536720: 48 8d 05 d9 a5 11 02 lea rax,[rip+0x211a5d9] # 0x182650d00
|
||||||
|
180536727: c3 ret
|
||||||
|
180536728: cc int3
|
||||||
|
180536729: cc int3
|
||||||
|
18053672a: cc int3
|
||||||
|
18053672b: cc int3
|
||||||
|
18053672c: cc int3
|
||||||
|
18053672d: cc int3
|
||||||
|
18053672e: cc int3
|
||||||
|
18053672f: cc int3
|
||||||
|
180536730: 48 8d 05 31 48 f7 01 lea rax,[rip+0x1f74831] # 0x1824aaf68
|
||||||
|
180536737: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
18053673a: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
18053673e: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
180536742: 48 8b c2 mov rax,rdx
|
||||||
|
180536745: c3 ret
|
||||||
|
180536746: cc int3
|
||||||
|
180536747: cc int3
|
||||||
|
180536748: cc int3
|
||||||
|
180536749: cc int3
|
||||||
|
18053674a: cc int3
|
||||||
|
18053674b: cc int3
|
||||||
|
18053674c: cc int3
|
||||||
|
18053674d: cc int3
|
||||||
|
18053674e: cc int3
|
||||||
|
18053674f: cc int3
|
||||||
|
180536750: 48 8d 05 49 9d 11 02 lea rax,[rip+0x2119d49] # 0x1826504a0
|
||||||
|
180536757: c3 ret
|
||||||
|
180536758: cc int3
|
||||||
|
180536759: cc int3
|
||||||
|
18053675a: cc int3
|
||||||
|
18053675b: cc int3
|
||||||
|
18053675c: cc int3
|
||||||
|
18053675d: cc int3
|
||||||
|
18053675e: cc int3
|
||||||
|
18053675f: cc int3
|
||||||
|
180536760: 48 8d 05 59 4e f7 01 lea rax,[rip+0x1f74e59] # 0x1824ab5c0
|
||||||
|
180536767: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
18053676a: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
18053676e: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
180536772: 48 8b c2 mov rax,rdx
|
||||||
|
180536775: c3 ret
|
||||||
|
180536776: cc int3
|
||||||
|
180536777: cc int3
|
||||||
|
180536778: cc int3
|
||||||
|
180536779: cc int3
|
||||||
|
18053677a: cc int3
|
||||||
|
18053677b: cc int3
|
||||||
|
18053677c: cc int3
|
||||||
|
18053677d: cc int3
|
||||||
|
18053677e: cc int3
|
||||||
|
18053677f: cc int3
|
||||||
|
180536780: 48 8d 05 49 80 11 02 lea rax,[rip+0x2118049] # 0x18264e7d0
|
||||||
|
180536787: c3 ret
|
||||||
|
180536788: cc int3
|
||||||
|
180536789: cc int3
|
||||||
|
18053678a: cc int3
|
||||||
|
18053678b: cc int3
|
||||||
|
18053678c: cc int3
|
||||||
|
18053678d: cc int3
|
||||||
|
18053678e: cc int3
|
||||||
|
18053678f: cc int3
|
||||||
|
180536790: 48 8d 05 79 46 f7 01 lea rax,[rip+0x1f74679] # 0x1824aae10
|
||||||
|
180536797: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
18053679a: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
18053679e: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
1805367a2: 48 8b c2 mov rax,rdx
|
||||||
|
1805367a5: c3 ret
|
||||||
|
1805367a6: cc int3
|
||||||
|
1805367a7: cc int3
|
||||||
|
1805367a8: cc int3
|
||||||
|
1805367a9: cc int3
|
||||||
|
1805367aa: cc int3
|
||||||
|
1805367ab: cc int3
|
||||||
|
1805367ac: cc int3
|
||||||
|
1805367ad: cc int3
|
||||||
|
1805367ae: cc int3
|
||||||
|
1805367af: cc int3
|
||||||
|
1805367b0: 48 8d 05 c9 a0 11 02 lea rax,[rip+0x211a0c9] # 0x182650880
|
||||||
|
1805367b7: c3 ret
|
||||||
|
1805367b8: cc int3
|
||||||
|
1805367b9: cc int3
|
||||||
|
1805367ba: cc int3
|
||||||
|
1805367bb: cc int3
|
||||||
|
1805367bc: cc int3
|
||||||
|
1805367bd: cc int3
|
||||||
|
1805367be: cc int3
|
||||||
|
1805367bf: cc int3
|
||||||
|
1805367c0: 48 8d 05 01 5c f7 01 lea rax,[rip+0x1f75c01] # 0x1824ac3c8
|
||||||
|
1805367c7: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
1805367ca: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
1805367ce: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
1805367d2: 48 8b c2 mov rax,rdx
|
||||||
|
1805367d5: c3 ret
|
||||||
|
1805367d6: cc int3
|
||||||
|
1805367d7: cc int3
|
||||||
|
1805367d8: cc int3
|
||||||
|
1805367d9: cc int3
|
||||||
|
1805367da: cc int3
|
||||||
|
1805367db: cc int3
|
||||||
|
1805367dc: cc int3
|
||||||
|
1805367dd: cc int3
|
||||||
|
1805367de: cc int3
|
||||||
|
1805367df: cc int3
|
||||||
|
1805367e0: 48 8d 05 29 80 11 02 lea rax,[rip+0x2118029] # 0x18264e810
|
||||||
|
1805367e7: c3 ret
|
||||||
|
1805367e8: cc int3
|
||||||
|
1805367e9: cc int3
|
||||||
|
1805367ea: cc int3
|
||||||
|
1805367eb: cc int3
|
||||||
|
1805367ec: cc int3
|
||||||
|
1805367ed: cc int3
|
||||||
|
1805367ee: cc int3
|
||||||
|
1805367ef: cc int3
|
||||||
|
1805367f0: 48 8d 05 39 51 f7 01 lea rax,[rip+0x1f75139] # 0x1824ab930
|
||||||
|
1805367f7: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
1805367fa: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
1805367fe: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
180536802: 48 8b c2 mov rax,rdx
|
||||||
|
180536805: c3 ret
|
||||||
|
180536806: cc int3
|
||||||
|
180536807: cc int3
|
||||||
|
180536808: cc int3
|
||||||
|
180536809: cc int3
|
||||||
|
18053680a: cc int3
|
||||||
|
18053680b: cc int3
|
||||||
|
18053680c: cc int3
|
||||||
|
18053680d: cc int3
|
||||||
|
18053680e: cc int3
|
||||||
|
18053680f: cc int3
|
||||||
|
180536810: 48 8d 05 59 8b 11 02 lea rax,[rip+0x2118b59] # 0x18264f370
|
||||||
|
180536817: c3 ret
|
||||||
|
180536818: cc int3
|
||||||
|
180536819: cc int3
|
||||||
|
18053681a: cc int3
|
||||||
|
18053681b: cc int3
|
||||||
|
18053681c: cc int3
|
||||||
|
18053681d: cc int3
|
||||||
|
18053681e: cc int3
|
||||||
|
18053681f: cc int3
|
||||||
|
180536820: 48 8d 05 81 48 f7 01 lea rax,[rip+0x1f74881] # 0x1824ab0a8
|
||||||
|
180536827: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
18053682a: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
18053682e: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
180536832: 48 8b c2 mov rax,rdx
|
||||||
|
180536835: c3 ret
|
||||||
|
180536836: cc int3
|
||||||
|
180536837: cc int3
|
||||||
|
180536838: cc int3
|
||||||
|
180536839: cc int3
|
||||||
|
18053683a: cc int3
|
||||||
|
18053683b: cc int3
|
||||||
|
18053683c: cc int3
|
||||||
|
18053683d: cc int3
|
||||||
|
18053683e: cc int3
|
||||||
|
18053683f: cc int3
|
||||||
|
180536840: 48 8d 05 69 9e 11 02 lea rax,[rip+0x2119e69] # 0x1826506b0
|
||||||
|
180536847: c3 ret
|
||||||
|
180536848: cc int3
|
||||||
|
180536849: cc int3
|
||||||
|
18053684a: cc int3
|
||||||
|
18053684b: cc int3
|
||||||
|
18053684c: cc int3
|
||||||
|
18053684d: cc int3
|
||||||
|
18053684e: cc int3
|
||||||
|
18053684f: cc int3
|
||||||
|
180536850: 48 8d 05 c1 4f f7 01 lea rax,[rip+0x1f74fc1] # 0x1824ab818
|
||||||
|
180536857: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
18053685a: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
18053685e: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
180536862: 48 8b c2 mov rax,rdx
|
||||||
|
180536865: c3 ret
|
||||||
|
180536866: cc int3
|
||||||
|
180536867: cc int3
|
||||||
|
180536868: cc int3
|
||||||
|
180536869: cc int3
|
||||||
|
18053686a: cc int3
|
||||||
|
18053686b: cc int3
|
||||||
|
18053686c: cc int3
|
||||||
|
18053686d: cc int3
|
||||||
|
18053686e: cc int3
|
||||||
|
18053686f: cc int3
|
||||||
|
180536870: 48 8d 05 e9 88 11 02 lea rax,[rip+0x21188e9] # 0x18264f160
|
||||||
|
180536877: c3 ret
|
||||||
|
180536878: cc int3
|
||||||
|
180536879: cc int3
|
||||||
|
18053687a: cc int3
|
||||||
|
18053687b: cc int3
|
||||||
|
18053687c: cc int3
|
||||||
|
18053687d: cc int3
|
||||||
|
18053687e: cc int3
|
||||||
|
18053687f: cc int3
|
||||||
|
180536880: 48 8d 05 19 59 f7 01 lea rax,[rip+0x1f75919] # 0x1824ac1a0
|
||||||
|
180536887: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
18053688a: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
18053688e: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
180536892: 48 8b c2 mov rax,rdx
|
||||||
|
180536895: c3 ret
|
||||||
|
180536896: cc int3
|
||||||
|
180536897: cc int3
|
||||||
|
180536898: cc int3
|
||||||
|
180536899: cc int3
|
||||||
|
18053689a: cc int3
|
||||||
|
18053689b: cc int3
|
||||||
|
18053689c: cc int3
|
||||||
|
18053689d: cc int3
|
||||||
|
18053689e: cc int3
|
||||||
|
18053689f: cc int3
|
||||||
|
1805368a0: 48 8d 05 d9 8d 11 02 lea rax,[rip+0x2118dd9] # 0x18264f680
|
||||||
|
1805368a7: c3 ret
|
||||||
|
1805368a8: cc int3
|
||||||
|
1805368a9: cc int3
|
||||||
|
1805368aa: cc int3
|
||||||
|
1805368ab: cc int3
|
||||||
|
1805368ac: cc int3
|
||||||
|
1805368ad: cc int3
|
||||||
|
1805368ae: cc int3
|
||||||
|
1805368af: cc int3
|
||||||
|
1805368b0: 48 8d 05 d9 49 f7 01 lea rax,[rip+0x1f749d9] # 0x1824ab290
|
||||||
|
1805368b7: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
1805368ba: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
1805368be: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
1805368c2: 48 8b c2 mov rax,rdx
|
||||||
|
1805368c5: c3 ret
|
||||||
|
1805368c6: cc int3
|
||||||
|
1805368c7: cc int3
|
||||||
|
1805368c8: cc int3
|
||||||
|
1805368c9: cc int3
|
||||||
|
1805368ca: cc int3
|
||||||
|
1805368cb: cc int3
|
||||||
|
1805368cc: cc int3
|
||||||
|
1805368cd: cc int3
|
||||||
|
1805368ce: cc int3
|
||||||
|
1805368cf: cc int3
|
||||||
|
1805368d0: 48 8d 05 29 8e 11 02 lea rax,[rip+0x2118e29] # 0x18264f700
|
||||||
|
1805368d7: c3 ret
|
||||||
|
1805368d8: cc int3
|
||||||
|
1805368d9: cc int3
|
||||||
|
1805368da: cc int3
|
||||||
|
1805368db: cc int3
|
||||||
|
1805368dc: cc int3
|
||||||
|
1805368dd: cc int3
|
||||||
|
1805368de: cc int3
|
||||||
|
1805368df: cc int3
|
||||||
|
1805368e0: 48 8d 05 81 4c f7 01 lea rax,[rip+0x1f74c81] # 0x1824ab568
|
||||||
|
1805368e7: 48 89 02 mov QWORD PTR [rdx],rax
|
||||||
|
1805368ea: 48 8b 41 08 mov rax,QWORD PTR [rcx+0x8]
|
||||||
|
1805368ee: 48 89 42 08 mov QWORD PTR [rdx+0x8],rax
|
||||||
|
1805368f2: 48 8b c2 mov rax,rdx
|
||||||
|
1805368f5: c3 ret
|
||||||
|
1805368f6: cc int3
|
||||||
|
1805368f7: cc int3
|
||||||
|
1805368f8: cc int3
|
||||||
|
1805368f9: cc int3
|
||||||
|
1805368fa: cc int3
|
||||||
|
1805368fb: cc int3
|
||||||
|
1805368fc: cc int3
|
||||||
|
1805368fd: cc int3
|
||||||
|
1805368fe: cc int3
|
||||||
|
1805368ff: cc int3
|
||||||
@@ -0,0 +1,383 @@
|
|||||||
|
; cons_52ec00 0x18052eb00-0x18052f100
|
||||||
|
|
||||||
|
/tmp/slice.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
000000018052eb00 <.data>:
|
||||||
|
18052eb00: 0f af c8 imul %eax,%ecx
|
||||||
|
18052eb03: 8b 05 f7 cb 0f 02 mov 0x20fcbf7(%rip),%eax # 0x18262b700
|
||||||
|
18052eb09: 44 0f af e0 imul %eax,%r12d
|
||||||
|
18052eb0d: 8b 86 e0 04 24 00 mov 0x2404e0(%rsi),%eax
|
||||||
|
18052eb13: 05 e2 2c dc 06 add $0x6dc2ce2,%eax
|
||||||
|
18052eb18: 44 2b e1 sub %ecx,%r12d
|
||||||
|
18052eb1b: 25 7f 00 00 80 and $0x8000007f,%eax
|
||||||
|
18052eb20: 7d 07 jge 0x18052eb29
|
||||||
|
18052eb22: ff c8 dec %eax
|
||||||
|
18052eb24: 83 c8 80 or $0xffffff80,%eax
|
||||||
|
18052eb27: ff c0 inc %eax
|
||||||
|
18052eb29: 89 86 e0 04 24 00 mov %eax,0x2404e0(%rsi)
|
||||||
|
18052eb2f: 48 63 c8 movslq %eax,%rcx
|
||||||
|
18052eb32: 48 8b 86 b0 08 54 00 mov 0x5408b0(%rsi),%rax
|
||||||
|
18052eb39: f3 0f 10 04 88 movss (%rax,%rcx,4),%xmm0
|
||||||
|
18052eb3e: 8b 05 c0 cb 0f 02 mov 0x20fcbc0(%rip),%eax # 0x18262b704
|
||||||
|
18052eb44: 66 0f 6e d0 movd %eax,%xmm2
|
||||||
|
18052eb48: 8b 86 e0 04 24 00 mov 0x2404e0(%rsi),%eax
|
||||||
|
18052eb4e: ff c0 inc %eax
|
||||||
|
18052eb50: 48 63 c8 movslq %eax,%rcx
|
||||||
|
18052eb53: 48 8b 86 b0 08 54 00 mov 0x5408b0(%rsi),%rax
|
||||||
|
18052eb5a: 0f 5b d2 cvtdq2ps %xmm2,%xmm2
|
||||||
|
18052eb5d: f3 0f 59 d0 mulss %xmm0,%xmm2
|
||||||
|
18052eb61: f3 0f 10 04 88 movss (%rax,%rcx,4),%xmm0
|
||||||
|
18052eb66: 8b 05 5c ca 0f 02 mov 0x20fca5c(%rip),%eax # 0x18262b5c8
|
||||||
|
18052eb6c: 66 0f 6e c8 movd %eax,%xmm1
|
||||||
|
18052eb70: 8b 05 8a cb 0f 02 mov 0x20fcb8a(%rip),%eax # 0x18262b700
|
||||||
|
18052eb76: 0f 5b c9 cvtdq2ps %xmm1,%xmm1
|
||||||
|
18052eb79: f3 0f 59 c8 mulss %xmm0,%xmm1
|
||||||
|
18052eb7d: f3 0f 59 ca mulss %xmm2,%xmm1
|
||||||
|
18052eb81: f3 0f 58 cd addss %xmm5,%xmm1
|
||||||
|
18052eb85: f3 0f 2c d9 cvttss2si %xmm1,%ebx
|
||||||
|
18052eb89: 0f af d8 imul %eax,%ebx
|
||||||
|
18052eb8c: 8b 86 e0 04 24 00 mov 0x2404e0(%rsi),%eax
|
||||||
|
18052eb92: 05 9a f2 4b 00 add $0x4bf29a,%eax
|
||||||
|
18052eb97: 89 9c 24 f8 00 00 00 mov %ebx,0xf8(%rsp)
|
||||||
|
18052eb9e: 25 7f 00 00 80 and $0x8000007f,%eax
|
||||||
|
18052eba3: 7d 07 jge 0x18052ebac
|
||||||
|
18052eba5: ff c8 dec %eax
|
||||||
|
18052eba7: 83 c8 80 or $0xffffff80,%eax
|
||||||
|
18052ebaa: ff c0 inc %eax
|
||||||
|
18052ebac: 89 86 e0 04 24 00 mov %eax,0x2404e0(%rsi)
|
||||||
|
18052ebb2: 48 63 c8 movslq %eax,%rcx
|
||||||
|
18052ebb5: 48 8b 86 b0 08 54 00 mov 0x5408b0(%rsi),%rax
|
||||||
|
18052ebbc: f3 0f 10 04 88 movss (%rax,%rcx,4),%xmm0
|
||||||
|
18052ebc1: 8b 05 3d cb 0f 02 mov 0x20fcb3d(%rip),%eax # 0x18262b704
|
||||||
|
18052ebc7: 66 0f 6e d0 movd %eax,%xmm2
|
||||||
|
18052ebcb: 8b 86 e0 04 24 00 mov 0x2404e0(%rsi),%eax
|
||||||
|
18052ebd1: ff c0 inc %eax
|
||||||
|
18052ebd3: 48 63 c8 movslq %eax,%rcx
|
||||||
|
18052ebd6: 48 8b 86 b0 08 54 00 mov 0x5408b0(%rsi),%rax
|
||||||
|
18052ebdd: 0f 5b d2 cvtdq2ps %xmm2,%xmm2
|
||||||
|
18052ebe0: f3 0f 59 d0 mulss %xmm0,%xmm2
|
||||||
|
18052ebe4: f3 0f 10 04 88 movss (%rax,%rcx,4),%xmm0
|
||||||
|
18052ebe9: 8b 05 d9 c9 0f 02 mov 0x20fc9d9(%rip),%eax # 0x18262b5c8
|
||||||
|
18052ebef: 66 0f 6e c8 movd %eax,%xmm1
|
||||||
|
18052ebf3: 8b 05 07 cb 0f 02 mov 0x20fcb07(%rip),%eax # 0x18262b700
|
||||||
|
18052ebf9: 0f 5b c9 cvtdq2ps %xmm1,%xmm1
|
||||||
|
18052ebfc: f3 0f 59 c8 mulss %xmm0,%xmm1
|
||||||
|
18052ec00: f3 0f 59 ca mulss %xmm2,%xmm1
|
||||||
|
18052ec04: f3 0f 58 cd addss %xmm5,%xmm1
|
||||||
|
18052ec08: f3 0f 2c c9 cvttss2si %xmm1,%ecx
|
||||||
|
18052ec0c: 0f af c8 imul %eax,%ecx
|
||||||
|
18052ec0f: 8b 86 e0 04 24 00 mov 0x2404e0(%rsi),%eax
|
||||||
|
18052ec15: 05 94 62 cb 00 add $0xcb6294,%eax
|
||||||
|
18052ec1a: 66 0f 6e f1 movd %ecx,%xmm6
|
||||||
|
18052ec1e: 0f 5b f6 cvtdq2ps %xmm6,%xmm6
|
||||||
|
18052ec21: 25 7f 00 00 80 and $0x8000007f,%eax
|
||||||
|
18052ec26: 7d 07 jge 0x18052ec2f
|
||||||
|
18052ec28: ff c8 dec %eax
|
||||||
|
18052ec2a: 83 c8 80 or $0xffffff80,%eax
|
||||||
|
18052ec2d: ff c0 inc %eax
|
||||||
|
18052ec2f: 89 86 e0 04 24 00 mov %eax,0x2404e0(%rsi)
|
||||||
|
18052ec35: 48 63 c8 movslq %eax,%rcx
|
||||||
|
18052ec38: 48 8b 86 b0 08 54 00 mov 0x5408b0(%rsi),%rax
|
||||||
|
18052ec3f: f3 0f 10 04 88 movss (%rax,%rcx,4),%xmm0
|
||||||
|
18052ec44: 8b 05 ba ca 0f 02 mov 0x20fcaba(%rip),%eax # 0x18262b704
|
||||||
|
18052ec4a: 66 0f 6e e0 movd %eax,%xmm4
|
||||||
|
18052ec4e: 8b 86 e0 04 24 00 mov 0x2404e0(%rsi),%eax
|
||||||
|
18052ec54: ff c0 inc %eax
|
||||||
|
18052ec56: 48 63 c8 movslq %eax,%rcx
|
||||||
|
18052ec59: 48 8b 86 b0 08 54 00 mov 0x5408b0(%rsi),%rax
|
||||||
|
18052ec60: 0f 5b e4 cvtdq2ps %xmm4,%xmm4
|
||||||
|
18052ec63: f3 0f 59 e0 mulss %xmm0,%xmm4
|
||||||
|
18052ec67: f3 0f 10 04 88 movss (%rax,%rcx,4),%xmm0
|
||||||
|
18052ec6c: 8b 05 56 c9 0f 02 mov 0x20fc956(%rip),%eax # 0x18262b5c8
|
||||||
|
18052ec72: 66 0f 6e d8 movd %eax,%xmm3
|
||||||
|
18052ec76: 8b 86 e0 04 24 00 mov 0x2404e0(%rsi),%eax
|
||||||
|
18052ec7c: 0f 5b db cvtdq2ps %xmm3,%xmm3
|
||||||
|
18052ec7f: 05 e0 b5 10 00 add $0x10b5e0,%eax
|
||||||
|
18052ec84: f3 0f 59 d8 mulss %xmm0,%xmm3
|
||||||
|
18052ec88: 25 7f 00 00 80 and $0x8000007f,%eax
|
||||||
|
18052ec8d: 7d 07 jge 0x18052ec96
|
||||||
|
18052ec8f: ff c8 dec %eax
|
||||||
|
18052ec91: 83 c8 80 or $0xffffff80,%eax
|
||||||
|
18052ec94: ff c0 inc %eax
|
||||||
|
18052ec96: f3 0f 10 3d 06 52 f9 movss 0x1f95206(%rip),%xmm7 # 0x1824c3ea4
|
||||||
|
18052ec9d: 01
|
||||||
|
18052ec9e: 33 ff xor %edi,%edi
|
||||||
|
18052eca0: 89 86 e0 04 24 00 mov %eax,0x2404e0(%rsi)
|
||||||
|
18052eca6: 48 63 c8 movslq %eax,%rcx
|
||||||
|
18052eca9: 48 8b 86 b0 08 54 00 mov 0x5408b0(%rsi),%rax
|
||||||
|
18052ecb0: f3 0f 59 dc mulss %xmm4,%xmm3
|
||||||
|
18052ecb4: f3 0f 10 04 88 movss (%rax,%rcx,4),%xmm0
|
||||||
|
18052ecb9: 8b 05 45 ca 0f 02 mov 0x20fca45(%rip),%eax # 0x18262b704
|
||||||
|
18052ecbf: f3 0f 58 dd addss %xmm5,%xmm3
|
||||||
|
18052ecc3: 66 0f 6e d0 movd %eax,%xmm2
|
||||||
|
18052ecc7: 8b 86 e0 04 24 00 mov 0x2404e0(%rsi),%eax
|
||||||
|
18052eccd: ff c0 inc %eax
|
||||||
|
18052eccf: 48 63 c8 movslq %eax,%rcx
|
||||||
|
18052ecd2: 48 8b 86 b0 08 54 00 mov 0x5408b0(%rsi),%rax
|
||||||
|
18052ecd9: 0f 5b d2 cvtdq2ps %xmm2,%xmm2
|
||||||
|
18052ecdc: f3 44 0f 2c eb cvttss2si %xmm3,%r13d
|
||||||
|
18052ece1: f3 0f 59 d0 mulss %xmm0,%xmm2
|
||||||
|
18052ece5: f3 0f 10 04 88 movss (%rax,%rcx,4),%xmm0
|
||||||
|
18052ecea: 8b 05 d8 c8 0f 02 mov 0x20fc8d8(%rip),%eax # 0x18262b5c8
|
||||||
|
18052ecf0: 66 0f 6e c8 movd %eax,%xmm1
|
||||||
|
18052ecf4: 8b 05 06 ca 0f 02 mov 0x20fca06(%rip),%eax # 0x18262b700
|
||||||
|
18052ecfa: 0f 5b c9 cvtdq2ps %xmm1,%xmm1
|
||||||
|
18052ecfd: f3 0f 59 c8 mulss %xmm0,%xmm1
|
||||||
|
18052ed01: f3 0f 59 ca mulss %xmm2,%xmm1
|
||||||
|
18052ed05: f3 0f 58 cd addss %xmm5,%xmm1
|
||||||
|
18052ed09: f3 0f 2c c9 cvttss2si %xmm1,%ecx
|
||||||
|
18052ed0d: 0f af c8 imul %eax,%ecx
|
||||||
|
18052ed10: 8b 05 ea c9 0f 02 mov 0x20fc9ea(%rip),%eax # 0x18262b700
|
||||||
|
18052ed16: 44 0f af e8 imul %eax,%r13d
|
||||||
|
18052ed1a: 44 03 e9 add %ecx,%r13d
|
||||||
|
18052ed1d: 84 d2 test %dl,%dl
|
||||||
|
18052ed1f: 0f 85 95 03 00 00 jne 0x18052f0ba
|
||||||
|
18052ed25: 48 8b ce mov %rsi,%rcx
|
||||||
|
18052ed28: e8 d3 e0 ff ff call 0x18052ce00
|
||||||
|
18052ed2d: 8b 86 a0 01 00 00 mov 0x1a0(%rsi),%eax
|
||||||
|
18052ed33: 48 8d 8e 68 06 54 00 lea 0x540668(%rsi),%rcx
|
||||||
|
18052ed3a: 0f af c3 imul %ebx,%eax
|
||||||
|
18052ed3d: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
18052ed40: c1 e0 03 shl $0x3,%eax
|
||||||
|
18052ed43: 89 86 68 08 54 00 mov %eax,0x540868(%rsi)
|
||||||
|
18052ed49: 99 cltd
|
||||||
|
18052ed4a: 2b c2 sub %edx,%eax
|
||||||
|
18052ed4c: d1 f8 sar $1,%eax
|
||||||
|
18052ed4e: 8d 14 18 lea (%rax,%rbx,1),%edx
|
||||||
|
18052ed51: 89 96 6c 08 54 00 mov %edx,0x54086c(%rsi)
|
||||||
|
18052ed57: 03 d2 add %edx,%edx
|
||||||
|
18052ed59: e8 32 f4 ff ff call 0x18052e190
|
||||||
|
18052ed5e: 8b 96 6c 08 54 00 mov 0x54086c(%rsi),%edx
|
||||||
|
18052ed64: 48 8d 8e 98 06 54 00 lea 0x540698(%rsi),%rcx
|
||||||
|
18052ed6b: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
18052ed6e: e8 1d f4 ff ff call 0x18052e190
|
||||||
|
18052ed73: 8b d7 mov %edi,%edx
|
||||||
|
18052ed75: 39 be a0 06 54 00 cmp %edi,0x5406a0(%rsi)
|
||||||
|
18052ed7b: 7e 1e jle 0x18052ed9b
|
||||||
|
18052ed7d: 8b cf mov %edi,%ecx
|
||||||
|
18052ed7f: 90 nop
|
||||||
|
18052ed80: 48 8b 86 98 06 54 00 mov 0x540698(%rsi),%rax
|
||||||
|
18052ed87: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
18052ed8b: ff c2 inc %edx
|
||||||
|
18052ed8d: f3 0f 11 74 01 fc movss %xmm6,-0x4(%rcx,%rax,1)
|
||||||
|
18052ed93: 3b 96 a0 06 54 00 cmp 0x5406a0(%rsi),%edx
|
||||||
|
18052ed99: 7c e5 jl 0x18052ed80
|
||||||
|
18052ed9b: 8b 96 6c 08 54 00 mov 0x54086c(%rsi),%edx
|
||||||
|
18052eda1: 48 8d 8e a8 06 54 00 lea 0x5406a8(%rsi),%rcx
|
||||||
|
18052eda8: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
18052edab: e8 e0 f3 ff ff call 0x18052e190
|
||||||
|
18052edb0: 8b 96 6c 08 54 00 mov 0x54086c(%rsi),%edx
|
||||||
|
18052edb6: 48 8d 8e b8 06 54 00 lea 0x5406b8(%rsi),%rcx
|
||||||
|
18052edbd: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
18052edc0: e8 cb f3 ff ff call 0x18052e190
|
||||||
|
18052edc5: 8b 96 6c 08 54 00 mov 0x54086c(%rsi),%edx
|
||||||
|
18052edcb: 48 8d 8e c8 06 54 00 lea 0x5406c8(%rsi),%rcx
|
||||||
|
18052edd2: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
18052edd5: e8 b6 f3 ff ff call 0x18052e190
|
||||||
|
18052edda: 8b 96 6c 08 54 00 mov 0x54086c(%rsi),%edx
|
||||||
|
18052ede0: 48 8d 8e d8 06 54 00 lea 0x5406d8(%rsi),%rcx
|
||||||
|
18052ede7: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
18052edea: e8 a1 f3 ff ff call 0x18052e190
|
||||||
|
18052edef: 8b 96 6c 08 54 00 mov 0x54086c(%rsi),%edx
|
||||||
|
18052edf5: 48 8d 8e e8 06 54 00 lea 0x5406e8(%rsi),%rcx
|
||||||
|
18052edfc: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
18052edff: e8 8c f3 ff ff call 0x18052e190
|
||||||
|
18052ee04: 45 8b fc mov %r12d,%r15d
|
||||||
|
18052ee07: 44 3b 66 30 cmp 0x30(%rsi),%r12d
|
||||||
|
18052ee0b: 0f 8d ee 01 00 00 jge 0x18052efff
|
||||||
|
18052ee11: 45 8b f5 mov %r13d,%r14d
|
||||||
|
18052ee14: 49 63 dc movslq %r12d,%rbx
|
||||||
|
18052ee17: 45 0f af f5 imul %r13d,%r14d
|
||||||
|
18052ee1b: 48 81 c3 73 40 05 00 add $0x54073,%rbx
|
||||||
|
18052ee22: 48 c1 e3 04 shl $0x4,%rbx
|
||||||
|
18052ee26: 41 c1 e6 0e shl $0xe,%r14d
|
||||||
|
18052ee2a: 48 03 de add %rsi,%rbx
|
||||||
|
18052ee2d: 0f 1f 00 nopl (%rax)
|
||||||
|
18052ee30: 8b ae 6c 08 54 00 mov 0x54086c(%rsi),%ebp
|
||||||
|
18052ee36: 8b 83 50 ff ff ff mov -0xb0(%rbx),%eax
|
||||||
|
18052ee3c: 3b c5 cmp %ebp,%eax
|
||||||
|
18052ee3e: 74 3e je 0x18052ee7e
|
||||||
|
18052ee40: 85 c0 test %eax,%eax
|
||||||
|
18052ee42: 7e 11 jle 0x18052ee55
|
||||||
|
18052ee44: 48 8b 8b 48 ff ff ff mov -0xb8(%rbx),%rcx
|
||||||
|
18052ee4b: 48 85 c9 test %rcx,%rcx
|
||||||
|
18052ee4e: 74 05 je 0x18052ee55
|
||||||
|
18052ee50: e8 6b 22 ad ff call 0x1800010c0
|
||||||
|
18052ee55: 85 ed test %ebp,%ebp
|
||||||
|
18052ee57: 48 89 bb 48 ff ff ff mov %rdi,-0xb8(%rbx)
|
||||||
|
18052ee5e: 0f 48 ef cmovs %edi,%ebp
|
||||||
|
18052ee61: 89 ab 50 ff ff ff mov %ebp,-0xb0(%rbx)
|
||||||
|
18052ee67: 85 ed test %ebp,%ebp
|
||||||
|
18052ee69: 74 3e je 0x18052eea9
|
||||||
|
18052ee6b: 8d 0c ad 00 00 00 00 lea 0x0(,%rbp,4),%ecx
|
||||||
|
18052ee72: e8 09 22 ad ff call 0x180001080
|
||||||
|
18052ee77: 48 89 83 48 ff ff ff mov %rax,-0xb8(%rbx)
|
||||||
|
18052ee7e: 8b d7 mov %edi,%edx
|
||||||
|
18052ee80: 39 bb 50 ff ff ff cmp %edi,-0xb0(%rbx)
|
||||||
|
18052ee86: 7e 21 jle 0x18052eea9
|
||||||
|
18052ee88: 48 8b cf mov %rdi,%rcx
|
||||||
|
18052ee8b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18052ee90: 48 8b 83 48 ff ff ff mov -0xb8(%rbx),%rax
|
||||||
|
18052ee97: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
18052ee9b: ff c2 inc %edx
|
||||||
|
18052ee9d: 89 7c 01 fc mov %edi,-0x4(%rcx,%rax,1)
|
||||||
|
18052eea1: 3b 93 50 ff ff ff cmp -0xb0(%rbx),%edx
|
||||||
|
18052eea7: 7c e7 jl 0x18052ee90
|
||||||
|
18052eea9: 8b 03 mov (%rbx),%eax
|
||||||
|
18052eeab: 41 3b c6 cmp %r14d,%eax
|
||||||
|
18052eeae: 74 35 je 0x18052eee5
|
||||||
|
18052eeb0: 85 c0 test %eax,%eax
|
||||||
|
18052eeb2: 7e 0e jle 0x18052eec2
|
||||||
|
18052eeb4: 48 8b 4b f8 mov -0x8(%rbx),%rcx
|
||||||
|
18052eeb8: 48 85 c9 test %rcx,%rcx
|
||||||
|
18052eebb: 74 05 je 0x18052eec2
|
||||||
|
18052eebd: e8 fe 21 ad ff call 0x1800010c0
|
||||||
|
18052eec2: 45 85 f6 test %r14d,%r14d
|
||||||
|
18052eec5: 48 89 7b f8 mov %rdi,-0x8(%rbx)
|
||||||
|
18052eec9: 41 8b ce mov %r14d,%ecx
|
||||||
|
18052eecc: 0f 48 cf cmovs %edi,%ecx
|
||||||
|
18052eecf: 89 0b mov %ecx,(%rbx)
|
||||||
|
18052eed1: 85 c9 test %ecx,%ecx
|
||||||
|
18052eed3: 74 31 je 0x18052ef06
|
||||||
|
18052eed5: 8d 0c 8d 00 00 00 00 lea 0x0(,%rcx,4),%ecx
|
||||||
|
18052eedc: e8 9f 21 ad ff call 0x180001080
|
||||||
|
18052eee1: 48 89 43 f8 mov %rax,-0x8(%rbx)
|
||||||
|
18052eee5: 8b d7 mov %edi,%edx
|
||||||
|
18052eee7: 39 3b cmp %edi,(%rbx)
|
||||||
|
18052eee9: 7e 1b jle 0x18052ef06
|
||||||
|
18052eeeb: 48 8b cf mov %rdi,%rcx
|
||||||
|
18052eeee: 66 90 xchg %ax,%ax
|
||||||
|
18052eef0: 48 8b 43 f8 mov -0x8(%rbx),%rax
|
||||||
|
18052eef4: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
18052eef8: ff c2 inc %edx
|
||||||
|
18052eefa: c7 44 01 fc 00 00 80 movl $0x3f800000,-0x4(%rcx,%rax,1)
|
||||||
|
18052ef01: 3f
|
||||||
|
18052ef02: 3b 13 cmp (%rbx),%edx
|
||||||
|
18052ef04: 7c ea jl 0x18052eef0
|
||||||
|
18052ef06: 8b ae 6c 08 54 00 mov 0x54086c(%rsi),%ebp
|
||||||
|
18052ef0c: 8b 83 80 00 00 00 mov 0x80(%rbx),%eax
|
||||||
|
18052ef12: 3b c5 cmp %ebp,%eax
|
||||||
|
18052ef14: 74 35 je 0x18052ef4b
|
||||||
|
18052ef16: 85 c0 test %eax,%eax
|
||||||
|
18052ef18: 7e 0e jle 0x18052ef28
|
||||||
|
18052ef1a: 48 8b 4b 78 mov 0x78(%rbx),%rcx
|
||||||
|
18052ef1e: 48 85 c9 test %rcx,%rcx
|
||||||
|
18052ef21: 74 05 je 0x18052ef28
|
||||||
|
18052ef23: e8 98 21 ad ff call 0x1800010c0
|
||||||
|
18052ef28: 85 ed test %ebp,%ebp
|
||||||
|
18052ef2a: 48 89 7b 78 mov %rdi,0x78(%rbx)
|
||||||
|
18052ef2e: 0f 48 ef cmovs %edi,%ebp
|
||||||
|
18052ef31: 89 ab 80 00 00 00 mov %ebp,0x80(%rbx)
|
||||||
|
18052ef37: 85 ed test %ebp,%ebp
|
||||||
|
18052ef39: 74 3b je 0x18052ef76
|
||||||
|
18052ef3b: 8d 0c ad 00 00 00 00 lea 0x0(,%rbp,4),%ecx
|
||||||
|
18052ef42: e8 39 21 ad ff call 0x180001080
|
||||||
|
18052ef47: 48 89 43 78 mov %rax,0x78(%rbx)
|
||||||
|
18052ef4b: 8b d7 mov %edi,%edx
|
||||||
|
18052ef4d: 39 bb 80 00 00 00 cmp %edi,0x80(%rbx)
|
||||||
|
18052ef53: 7e 21 jle 0x18052ef76
|
||||||
|
18052ef55: 48 8b cf mov %rdi,%rcx
|
||||||
|
18052ef58: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18052ef5f: 00
|
||||||
|
18052ef60: 48 8b 43 78 mov 0x78(%rbx),%rax
|
||||||
|
18052ef64: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
18052ef68: ff c2 inc %edx
|
||||||
|
18052ef6a: 89 7c 01 fc mov %edi,-0x4(%rcx,%rax,1)
|
||||||
|
18052ef6e: 3b 93 80 00 00 00 cmp 0x80(%rbx),%edx
|
||||||
|
18052ef74: 7c ea jl 0x18052ef60
|
||||||
|
18052ef76: 8b ae 6c 08 54 00 mov 0x54086c(%rsi),%ebp
|
||||||
|
18052ef7c: 8b 83 a0 00 00 00 mov 0xa0(%rbx),%eax
|
||||||
|
18052ef82: 3b c5 cmp %ebp,%eax
|
||||||
|
18052ef84: 74 3e je 0x18052efc4
|
||||||
|
18052ef86: 85 c0 test %eax,%eax
|
||||||
|
18052ef88: 7e 11 jle 0x18052ef9b
|
||||||
|
18052ef8a: 48 8b 8b 98 00 00 00 mov 0x98(%rbx),%rcx
|
||||||
|
18052ef91: 48 85 c9 test %rcx,%rcx
|
||||||
|
18052ef94: 74 05 je 0x18052ef9b
|
||||||
|
18052ef96: e8 25 21 ad ff call 0x1800010c0
|
||||||
|
18052ef9b: 85 ed test %ebp,%ebp
|
||||||
|
18052ef9d: 48 89 bb 98 00 00 00 mov %rdi,0x98(%rbx)
|
||||||
|
18052efa4: 0f 48 ef cmovs %edi,%ebp
|
||||||
|
18052efa7: 89 ab a0 00 00 00 mov %ebp,0xa0(%rbx)
|
||||||
|
18052efad: 85 ed test %ebp,%ebp
|
||||||
|
18052efaf: 74 3d je 0x18052efee
|
||||||
|
18052efb1: 8d 0c ad 00 00 00 00 lea 0x0(,%rbp,4),%ecx
|
||||||
|
18052efb8: e8 c3 20 ad ff call 0x180001080
|
||||||
|
18052efbd: 48 89 83 98 00 00 00 mov %rax,0x98(%rbx)
|
||||||
|
18052efc4: 8b d7 mov %edi,%edx
|
||||||
|
18052efc6: 39 bb a0 00 00 00 cmp %edi,0xa0(%rbx)
|
||||||
|
18052efcc: 7e 20 jle 0x18052efee
|
||||||
|
18052efce: 48 8b cf mov %rdi,%rcx
|
||||||
|
18052efd1: 48 8b 83 98 00 00 00 mov 0x98(%rbx),%rax
|
||||||
|
18052efd8: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
18052efdc: ff c2 inc %edx
|
||||||
|
18052efde: c7 44 01 fc 00 00 80 movl $0x3f800000,-0x4(%rcx,%rax,1)
|
||||||
|
18052efe5: 3f
|
||||||
|
18052efe6: 3b 93 a0 00 00 00 cmp 0xa0(%rbx),%edx
|
||||||
|
18052efec: 7c e3 jl 0x18052efd1
|
||||||
|
18052efee: 41 ff c7 inc %r15d
|
||||||
|
18052eff1: 48 83 c3 10 add $0x10,%rbx
|
||||||
|
18052eff5: 44 3b 7e 30 cmp 0x30(%rsi),%r15d
|
||||||
|
18052eff9: 0f 8c 31 fe ff ff jl 0x18052ee30
|
||||||
|
18052efff: 8b 96 68 08 54 00 mov 0x540868(%rsi),%edx
|
||||||
|
18052f005: 48 8d 8e f8 06 54 00 lea 0x5406f8(%rsi),%rcx
|
||||||
|
18052f00c: c1 e2 03 shl $0x3,%edx
|
||||||
|
18052f00f: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
18052f012: e8 79 f1 ff ff call 0x18052e190
|
||||||
|
18052f017: 8b 96 68 08 54 00 mov 0x540868(%rsi),%edx
|
||||||
|
18052f01d: 48 8d 8e 08 07 54 00 lea 0x540708(%rsi),%rcx
|
||||||
|
18052f024: 41 0f af d5 imul %r13d,%edx
|
||||||
|
18052f028: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
18052f02b: e8 60 f1 ff ff call 0x18052e190
|
||||||
|
18052f030: 8b 96 68 08 54 00 mov 0x540868(%rsi),%edx
|
||||||
|
18052f036: 48 8d 8e 18 07 54 00 lea 0x540718(%rsi),%rcx
|
||||||
|
18052f03d: 41 0f af d5 imul %r13d,%edx
|
||||||
|
18052f041: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
18052f044: e8 47 f1 ff ff call 0x18052e190
|
||||||
|
18052f049: 8b 96 68 08 54 00 mov 0x540868(%rsi),%edx
|
||||||
|
18052f04f: 48 8d 8e 98 07 54 00 lea 0x540798(%rsi),%rcx
|
||||||
|
18052f056: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
18052f059: e8 32 f1 ff ff call 0x18052e190
|
||||||
|
18052f05e: 44 8b c7 mov %edi,%r8d
|
||||||
|
18052f061: 39 be a0 07 54 00 cmp %edi,0x5407a0(%rsi)
|
||||||
|
18052f067: 7e 26 jle 0x18052f08f
|
||||||
|
18052f069: 48 8b cf mov %rdi,%rcx
|
||||||
|
18052f06c: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
18052f070: 48 8b 86 98 07 54 00 mov 0x540798(%rsi),%rax
|
||||||
|
18052f077: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
18052f07b: 41 ff c0 inc %r8d
|
||||||
|
18052f07e: c7 44 01 fc 00 00 80 movl $0x3f800000,-0x4(%rcx,%rax,1)
|
||||||
|
18052f085: 3f
|
||||||
|
18052f086: 44 3b 86 a0 07 54 00 cmp 0x5407a0(%rsi),%r8d
|
||||||
|
18052f08d: 7c e1 jl 0x18052f070
|
||||||
|
18052f08f: 44 8b 86 68 08 54 00 mov 0x540868(%rsi),%r8d
|
||||||
|
18052f096: 48 8d 8e 30 05 54 00 lea 0x540530(%rsi),%rcx
|
||||||
|
18052f09d: 8b 56 64 mov 0x64(%rsi),%edx
|
||||||
|
18052f0a0: e8 8b eb ff ff call 0x18052dc30
|
||||||
|
18052f0a5: 0f 28 df movaps %xmm7,%xmm3
|
||||||
|
18052f0a8: 48 8d 8e 30 05 54 00 lea 0x540530(%rsi),%rcx
|
||||||
|
18052f0af: 45 8b c5 mov %r13d,%r8d
|
||||||
|
18052f0b2: 41 8b d5 mov %r13d,%edx
|
||||||
|
18052f0b5: e8 46 0d 00 00 call 0x18052fe00
|
||||||
|
18052f0ba: 45 8b cc mov %r12d,%r9d
|
||||||
|
18052f0bd: 4c 8b ac 24 00 01 00 mov 0x100(%rsp),%r13
|
||||||
|
18052f0c4: 00
|
||||||
|
18052f0c5: 44 3b 66 30 cmp 0x30(%rsi),%r12d
|
||||||
|
18052f0c9: 0f 8d a8 00 00 00 jge 0x18052f177
|
||||||
|
18052f0cf: 49 63 cc movslq %r12d,%rcx
|
||||||
|
18052f0d2: 48 81 c1 7b 40 05 00 add $0x5407b,%rcx
|
||||||
|
18052f0d9: 48 c1 e1 04 shl $0x4,%rcx
|
||||||
|
18052f0dd: 48 03 ce add %rsi,%rcx
|
||||||
|
18052f0e0: 44 8b c7 mov %edi,%r8d
|
||||||
|
18052f0e3: 39 79 80 cmp %edi,-0x80(%rcx)
|
||||||
|
18052f0e6: 7e 22 jle 0x18052f10a
|
||||||
|
18052f0e8: 48 8b d7 mov %rdi,%rdx
|
||||||
|
18052f0eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18052f0f0: 48 8b 81 78 ff ff ff mov -0x88(%rcx),%rax
|
||||||
|
18052f0f7: 48 8d 52 04 lea 0x4(%rdx),%rdx
|
||||||
|
18052f0fb: 41 ff c0 inc %r8d
|
||||||
|
18052f0fe: f3 repz
|
||||||
|
18052f0ff: 0f .byte 0xf
|
||||||
@@ -0,0 +1,275 @@
|
|||||||
|
; cons_536100 0x180536000-0x180536400
|
||||||
|
|
||||||
|
/tmp/slice.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180536000 <.data>:
|
||||||
|
180536000: e8 bb b0 ac ff call 0x1800010c0
|
||||||
|
180536005: 90 nop
|
||||||
|
180536006: 48 89 bb 58 07 54 00 mov %rdi,0x540758(%rbx)
|
||||||
|
18053600d: 89 bb 60 07 54 00 mov %edi,0x540760(%rbx)
|
||||||
|
180536013: 39 bb 50 07 54 00 cmp %edi,0x540750(%rbx)
|
||||||
|
180536019: 7e 12 jle 0x18053602d
|
||||||
|
18053601b: 48 8b 8b 48 07 54 00 mov 0x540748(%rbx),%rcx
|
||||||
|
180536022: 48 85 c9 test %rcx,%rcx
|
||||||
|
180536025: 74 06 je 0x18053602d
|
||||||
|
180536027: e8 94 b0 ac ff call 0x1800010c0
|
||||||
|
18053602c: 90 nop
|
||||||
|
18053602d: 48 89 bb 48 07 54 00 mov %rdi,0x540748(%rbx)
|
||||||
|
180536034: 89 bb 50 07 54 00 mov %edi,0x540750(%rbx)
|
||||||
|
18053603a: 48 8d 8b 28 07 54 00 lea 0x540728(%rbx),%rcx
|
||||||
|
180536041: 4c 8d 0d d8 81 ff ff lea -0x7e28(%rip),%r9 # 0x18052e220
|
||||||
|
180536048: ba 10 00 00 00 mov $0x10,%edx
|
||||||
|
18053604d: 44 8d 42 f2 lea -0xe(%rdx),%r8d
|
||||||
|
180536051: e8 c6 b6 bf 00 call 0x18113171c
|
||||||
|
180536056: 90 nop
|
||||||
|
180536057: 39 bb 20 07 54 00 cmp %edi,0x540720(%rbx)
|
||||||
|
18053605d: 7e 12 jle 0x180536071
|
||||||
|
18053605f: 48 8b 8b 18 07 54 00 mov 0x540718(%rbx),%rcx
|
||||||
|
180536066: 48 85 c9 test %rcx,%rcx
|
||||||
|
180536069: 74 06 je 0x180536071
|
||||||
|
18053606b: e8 50 b0 ac ff call 0x1800010c0
|
||||||
|
180536070: 90 nop
|
||||||
|
180536071: 48 89 bb 18 07 54 00 mov %rdi,0x540718(%rbx)
|
||||||
|
180536078: 89 bb 20 07 54 00 mov %edi,0x540720(%rbx)
|
||||||
|
18053607e: 39 bb 10 07 54 00 cmp %edi,0x540710(%rbx)
|
||||||
|
180536084: 7e 12 jle 0x180536098
|
||||||
|
180536086: 48 8b 8b 08 07 54 00 mov 0x540708(%rbx),%rcx
|
||||||
|
18053608d: 48 85 c9 test %rcx,%rcx
|
||||||
|
180536090: 74 06 je 0x180536098
|
||||||
|
180536092: e8 29 b0 ac ff call 0x1800010c0
|
||||||
|
180536097: 90 nop
|
||||||
|
180536098: 48 89 bb 08 07 54 00 mov %rdi,0x540708(%rbx)
|
||||||
|
18053609f: 89 bb 10 07 54 00 mov %edi,0x540710(%rbx)
|
||||||
|
1805360a5: 39 bb 00 07 54 00 cmp %edi,0x540700(%rbx)
|
||||||
|
1805360ab: 7e 12 jle 0x1805360bf
|
||||||
|
1805360ad: 48 8b 8b f8 06 54 00 mov 0x5406f8(%rbx),%rcx
|
||||||
|
1805360b4: 48 85 c9 test %rcx,%rcx
|
||||||
|
1805360b7: 74 06 je 0x1805360bf
|
||||||
|
1805360b9: e8 02 b0 ac ff call 0x1800010c0
|
||||||
|
1805360be: 90 nop
|
||||||
|
1805360bf: 48 89 bb f8 06 54 00 mov %rdi,0x5406f8(%rbx)
|
||||||
|
1805360c6: 89 bb 00 07 54 00 mov %edi,0x540700(%rbx)
|
||||||
|
1805360cc: 39 bb f0 06 54 00 cmp %edi,0x5406f0(%rbx)
|
||||||
|
1805360d2: 7e 12 jle 0x1805360e6
|
||||||
|
1805360d4: 48 8b 8b e8 06 54 00 mov 0x5406e8(%rbx),%rcx
|
||||||
|
1805360db: 48 85 c9 test %rcx,%rcx
|
||||||
|
1805360de: 74 06 je 0x1805360e6
|
||||||
|
1805360e0: e8 db af ac ff call 0x1800010c0
|
||||||
|
1805360e5: 90 nop
|
||||||
|
1805360e6: 48 89 bb e8 06 54 00 mov %rdi,0x5406e8(%rbx)
|
||||||
|
1805360ed: 89 bb f0 06 54 00 mov %edi,0x5406f0(%rbx)
|
||||||
|
1805360f3: 39 bb e0 06 54 00 cmp %edi,0x5406e0(%rbx)
|
||||||
|
1805360f9: 7e 12 jle 0x18053610d
|
||||||
|
1805360fb: 48 8b 8b d8 06 54 00 mov 0x5406d8(%rbx),%rcx
|
||||||
|
180536102: 48 85 c9 test %rcx,%rcx
|
||||||
|
180536105: 74 06 je 0x18053610d
|
||||||
|
180536107: e8 b4 af ac ff call 0x1800010c0
|
||||||
|
18053610c: 90 nop
|
||||||
|
18053610d: 48 89 bb d8 06 54 00 mov %rdi,0x5406d8(%rbx)
|
||||||
|
180536114: 89 bb e0 06 54 00 mov %edi,0x5406e0(%rbx)
|
||||||
|
18053611a: 39 bb d0 06 54 00 cmp %edi,0x5406d0(%rbx)
|
||||||
|
180536120: 7e 12 jle 0x180536134
|
||||||
|
180536122: 48 8b 8b c8 06 54 00 mov 0x5406c8(%rbx),%rcx
|
||||||
|
180536129: 48 85 c9 test %rcx,%rcx
|
||||||
|
18053612c: 74 06 je 0x180536134
|
||||||
|
18053612e: e8 8d af ac ff call 0x1800010c0
|
||||||
|
180536133: 90 nop
|
||||||
|
180536134: 48 89 bb c8 06 54 00 mov %rdi,0x5406c8(%rbx)
|
||||||
|
18053613b: 89 bb d0 06 54 00 mov %edi,0x5406d0(%rbx)
|
||||||
|
180536141: 39 bb c0 06 54 00 cmp %edi,0x5406c0(%rbx)
|
||||||
|
180536147: 7e 12 jle 0x18053615b
|
||||||
|
180536149: 48 8b 8b b8 06 54 00 mov 0x5406b8(%rbx),%rcx
|
||||||
|
180536150: 48 85 c9 test %rcx,%rcx
|
||||||
|
180536153: 74 06 je 0x18053615b
|
||||||
|
180536155: e8 66 af ac ff call 0x1800010c0
|
||||||
|
18053615a: 90 nop
|
||||||
|
18053615b: 48 89 bb b8 06 54 00 mov %rdi,0x5406b8(%rbx)
|
||||||
|
180536162: 89 bb c0 06 54 00 mov %edi,0x5406c0(%rbx)
|
||||||
|
180536168: 39 bb b0 06 54 00 cmp %edi,0x5406b0(%rbx)
|
||||||
|
18053616e: 7e 12 jle 0x180536182
|
||||||
|
180536170: 48 8b 8b a8 06 54 00 mov 0x5406a8(%rbx),%rcx
|
||||||
|
180536177: 48 85 c9 test %rcx,%rcx
|
||||||
|
18053617a: 74 06 je 0x180536182
|
||||||
|
18053617c: e8 3f af ac ff call 0x1800010c0
|
||||||
|
180536181: 90 nop
|
||||||
|
180536182: 48 89 bb a8 06 54 00 mov %rdi,0x5406a8(%rbx)
|
||||||
|
180536189: 89 bb b0 06 54 00 mov %edi,0x5406b0(%rbx)
|
||||||
|
18053618f: 39 bb a0 06 54 00 cmp %edi,0x5406a0(%rbx)
|
||||||
|
180536195: 7e 12 jle 0x1805361a9
|
||||||
|
180536197: 48 8b 8b 98 06 54 00 mov 0x540698(%rbx),%rcx
|
||||||
|
18053619e: 48 85 c9 test %rcx,%rcx
|
||||||
|
1805361a1: 74 06 je 0x1805361a9
|
||||||
|
1805361a3: e8 18 af ac ff call 0x1800010c0
|
||||||
|
1805361a8: 90 nop
|
||||||
|
1805361a9: 48 89 bb 98 06 54 00 mov %rdi,0x540698(%rbx)
|
||||||
|
1805361b0: 89 bb a0 06 54 00 mov %edi,0x5406a0(%rbx)
|
||||||
|
1805361b6: 48 8d 8b 78 06 54 00 lea 0x540678(%rbx),%rcx
|
||||||
|
1805361bd: 4c 8d 0d 5c 80 ff ff lea -0x7fa4(%rip),%r9 # 0x18052e220
|
||||||
|
1805361c4: ba 10 00 00 00 mov $0x10,%edx
|
||||||
|
1805361c9: 44 8d 42 f2 lea -0xe(%rdx),%r8d
|
||||||
|
1805361cd: e8 4a b5 bf 00 call 0x18113171c
|
||||||
|
1805361d2: 90 nop
|
||||||
|
1805361d3: 39 bb 70 06 54 00 cmp %edi,0x540670(%rbx)
|
||||||
|
1805361d9: 7e 12 jle 0x1805361ed
|
||||||
|
1805361db: 48 8b 8b 68 06 54 00 mov 0x540668(%rbx),%rcx
|
||||||
|
1805361e2: 48 85 c9 test %rcx,%rcx
|
||||||
|
1805361e5: 74 06 je 0x1805361ed
|
||||||
|
1805361e7: e8 d4 ae ac ff call 0x1800010c0
|
||||||
|
1805361ec: 90 nop
|
||||||
|
1805361ed: 48 89 bb 68 06 54 00 mov %rdi,0x540668(%rbx)
|
||||||
|
1805361f4: 89 bb 70 06 54 00 mov %edi,0x540670(%rbx)
|
||||||
|
1805361fa: 48 8d 8b 30 05 54 00 lea 0x540530(%rbx),%rcx
|
||||||
|
180536201: e8 2a 7b ff ff call 0x18052dd30
|
||||||
|
180536206: 90 nop
|
||||||
|
180536207: 89 bb cc 04 24 00 mov %edi,0x2404cc(%rbx)
|
||||||
|
18053620d: 48 8b 8b c0 04 24 00 mov 0x2404c0(%rbx),%rcx
|
||||||
|
180536214: ff 15 8e 50 67 01 call *0x167508e(%rip) # 0x181bab2a8
|
||||||
|
18053621a: 90 nop
|
||||||
|
18053621b: 48 8d 8b d8 03 00 00 lea 0x3d8(%rbx),%rcx
|
||||||
|
180536222: e8 59 70 ff ff call 0x18052d280
|
||||||
|
180536227: 90 nop
|
||||||
|
180536228: 48 8d 05 49 5e f7 01 lea 0x1f75e49(%rip),%rax # 0x1824ac078
|
||||||
|
18053622f: 48 89 83 d0 03 00 00 mov %rax,0x3d0(%rbx)
|
||||||
|
180536236: 48 8b cb mov %rbx,%rcx
|
||||||
|
180536239: 48 8b 5c 24 40 mov 0x40(%rsp),%rbx
|
||||||
|
18053623e: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
180536242: 5f pop %rdi
|
||||||
|
180536243: e9 58 38 ff ff jmp 0x180529aa0
|
||||||
|
180536248: cc int3
|
||||||
|
180536249: cc int3
|
||||||
|
18053624a: cc int3
|
||||||
|
18053624b: cc int3
|
||||||
|
18053624c: cc int3
|
||||||
|
18053624d: cc int3
|
||||||
|
18053624e: cc int3
|
||||||
|
18053624f: cc int3
|
||||||
|
180536250: f2 0f 10 0d e8 de f8 movsd 0x1f8dee8(%rip),%xmm1 # 0x1824c4140
|
||||||
|
180536257: 01
|
||||||
|
180536258: 48 8d 81 10 00 08 00 lea 0x80010(%rcx),%rax
|
||||||
|
18053625f: f2 0f 11 4c 24 08 movsd %xmm1,0x8(%rsp)
|
||||||
|
180536265: ba 00 80 00 00 mov $0x8000,%edx
|
||||||
|
18053626a: f2 0f 10 44 24 08 movsd 0x8(%rsp),%xmm0
|
||||||
|
180536270: 4c 8b c1 mov %rcx,%r8
|
||||||
|
180536273: c6 41 04 00 movb $0x0,0x4(%rcx)
|
||||||
|
180536277: 48 c7 81 10 00 10 00 movq $0x0,0x100010(%rcx)
|
||||||
|
18053627e: 00 00 00 00
|
||||||
|
180536282: 8b ca mov %edx,%ecx
|
||||||
|
180536284: 66 0f c6 c0 00 shufpd $0x0,%xmm0,%xmm0
|
||||||
|
180536289: a8 0f test $0xf,%al
|
||||||
|
18053628b: 75 13 jne 0x1805362a0
|
||||||
|
18053628d: 0f 1f 00 nopl (%rax)
|
||||||
|
180536290: 0f 11 00 movups %xmm0,(%rax)
|
||||||
|
180536293: 48 8d 40 10 lea 0x10(%rax),%rax
|
||||||
|
180536297: 48 83 e9 01 sub $0x1,%rcx
|
||||||
|
18053629b: 75 f3 jne 0x180536290
|
||||||
|
18053629d: eb 0e jmp 0x1805362ad
|
||||||
|
18053629f: 90 nop
|
||||||
|
1805362a0: 0f 11 00 movups %xmm0,(%rax)
|
||||||
|
1805362a3: 48 8d 40 10 lea 0x10(%rax),%rax
|
||||||
|
1805362a7: 48 83 e9 01 sub $0x1,%rcx
|
||||||
|
1805362ab: 75 f3 jne 0x1805362a0
|
||||||
|
1805362ad: f2 0f 11 4c 24 08 movsd %xmm1,0x8(%rsp)
|
||||||
|
1805362b3: 49 8d 40 10 lea 0x10(%r8),%rax
|
||||||
|
1805362b7: f2 0f 10 44 24 08 movsd 0x8(%rsp),%xmm0
|
||||||
|
1805362bd: 66 0f c6 c0 00 shufpd $0x0,%xmm0,%xmm0
|
||||||
|
1805362c2: a8 0f test $0xf,%al
|
||||||
|
1805362c4: 75 1b jne 0x1805362e1
|
||||||
|
1805362c6: 66 66 0f 1f 84 00 00 data16 nopw 0x0(%rax,%rax,1)
|
||||||
|
1805362cd: 00 00 00
|
||||||
|
1805362d0: 0f 11 00 movups %xmm0,(%rax)
|
||||||
|
1805362d3: 48 8d 40 10 lea 0x10(%rax),%rax
|
||||||
|
1805362d7: 48 83 ea 01 sub $0x1,%rdx
|
||||||
|
1805362db: 75 f3 jne 0x1805362d0
|
||||||
|
1805362dd: 49 8b c0 mov %r8,%rax
|
||||||
|
1805362e0: c3 ret
|
||||||
|
1805362e1: 0f 11 00 movups %xmm0,(%rax)
|
||||||
|
1805362e4: 48 8d 40 10 lea 0x10(%rax),%rax
|
||||||
|
1805362e8: 48 83 ea 01 sub $0x1,%rdx
|
||||||
|
1805362ec: 75 f3 jne 0x1805362e1
|
||||||
|
1805362ee: 49 8b c0 mov %r8,%rax
|
||||||
|
1805362f1: c3 ret
|
||||||
|
1805362f2: cc int3
|
||||||
|
1805362f3: cc int3
|
||||||
|
1805362f4: cc int3
|
||||||
|
1805362f5: cc int3
|
||||||
|
1805362f6: cc int3
|
||||||
|
1805362f7: cc int3
|
||||||
|
1805362f8: cc int3
|
||||||
|
1805362f9: cc int3
|
||||||
|
1805362fa: cc int3
|
||||||
|
1805362fb: cc int3
|
||||||
|
1805362fc: cc int3
|
||||||
|
1805362fd: cc int3
|
||||||
|
1805362fe: cc int3
|
||||||
|
1805362ff: cc int3
|
||||||
|
180536300: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
180536305: 48 89 6c 24 18 mov %rbp,0x18(%rsp)
|
||||||
|
18053630a: 48 89 74 24 20 mov %rsi,0x20(%rsp)
|
||||||
|
18053630f: 48 89 54 24 10 mov %rdx,0x10(%rsp)
|
||||||
|
180536314: 57 push %rdi
|
||||||
|
180536315: 41 54 push %r12
|
||||||
|
180536317: 41 55 push %r13
|
||||||
|
180536319: 41 56 push %r14
|
||||||
|
18053631b: 41 57 push %r15
|
||||||
|
18053631d: 48 83 ec 50 sub $0x50,%rsp
|
||||||
|
180536321: 48 63 bc 24 a0 00 00 movslq 0xa0(%rsp),%rdi
|
||||||
|
180536328: 00
|
||||||
|
180536329: 48 8d 15 88 aa 11 02 lea 0x211aa88(%rip),%rdx # 0x182650db8
|
||||||
|
180536330: 4c 8b b4 24 b0 00 00 mov 0xb0(%rsp),%r14
|
||||||
|
180536337: 00
|
||||||
|
180536338: 49 8b e9 mov %r9,%rbp
|
||||||
|
18053633b: 0f 29 74 24 40 movaps %xmm6,0x40(%rsp)
|
||||||
|
180536340: 49 8b d8 mov %r8,%rbx
|
||||||
|
180536343: 66 0f 6e b1 80 00 24 movd 0x240080(%rcx),%xmm6
|
||||||
|
18053634a: 00
|
||||||
|
18053634b: 8d 04 fd 00 00 00 00 lea 0x0(,%rdi,8),%eax
|
||||||
|
180536352: 4c 63 d0 movslq %eax,%r10
|
||||||
|
180536355: 8d 04 3f lea (%rdi,%rdi,1),%eax
|
||||||
|
180536358: 0f 5b f6 cvtdq2ps %xmm6,%xmm6
|
||||||
|
18053635b: 4f 8d 24 96 lea (%r14,%r10,4),%r12
|
||||||
|
18053635f: 4c 63 d0 movslq %eax,%r10
|
||||||
|
180536362: 4d 8d 3c bc lea (%r12,%rdi,4),%r15
|
||||||
|
180536366: 4c 89 a4 24 b0 00 00 mov %r12,0xb0(%rsp)
|
||||||
|
18053636d: 00
|
||||||
|
18053636e: f3 0f 59 71 24 mulss 0x24(%rcx),%xmm6
|
||||||
|
180536373: 48 8d 0d 3e aa 11 02 lea 0x211aa3e(%rip),%rcx # 0x182650db8
|
||||||
|
18053637a: 4b 8d 34 97 lea (%r15,%r10,4),%rsi
|
||||||
|
18053637e: 4e 8d 2c 96 lea (%rsi,%r10,4),%r13
|
||||||
|
180536382: ff 15 80 4c 67 01 call *0x1674c80(%rip) # 0x181bab008
|
||||||
|
180536388: f2 0f 10 0d b8 de f8 movsd 0x1f8deb8(%rip),%xmm1 # 0x1824c4248
|
||||||
|
18053638f: 01
|
||||||
|
180536390: 44 8b cf mov %edi,%r9d
|
||||||
|
180536393: 0f 5a c6 cvtps2pd %xmm6,%xmm0
|
||||||
|
180536396: 85 c0 test %eax,%eax
|
||||||
|
180536398: 48 8b d3 mov %rbx,%rdx
|
||||||
|
18053639b: 49 8b cc mov %r12,%rcx
|
||||||
|
18053639e: 0f 94 84 24 a8 00 00 sete 0xa8(%rsp)
|
||||||
|
1805363a5: 00
|
||||||
|
1805363a6: f2 0f 5e c8 divsd %xmm0,%xmm1
|
||||||
|
1805363aa: 66 0f 5a d1 cvtpd2ps %xmm1,%xmm2
|
||||||
|
1805363ae: e8 4d 76 ff ff call 0x18052da00
|
||||||
|
1805363b3: 80 bd 10 08 00 00 00 cmpb $0x0,0x810(%rbp)
|
||||||
|
1805363ba: 44 8b c7 mov %edi,%r8d
|
||||||
|
1805363bd: 74 1a je 0x1805363d9
|
||||||
|
1805363bf: f3 0f 10 0d dd da f8 movss 0x1f8dadd(%rip),%xmm1 # 0x1824c3ea4
|
||||||
|
1805363c6: 01
|
||||||
|
1805363c7: 48 8b 8c 24 88 00 00 mov 0x88(%rsp),%rcx
|
||||||
|
1805363ce: 00
|
||||||
|
1805363cf: e8 7c 77 ff ff call 0x18052db50
|
||||||
|
1805363d4: e9 88 01 00 00 jmp 0x180536561
|
||||||
|
1805363d9: f3 0f 10 35 c3 da f8 movss 0x1f8dac3(%rip),%xmm6 # 0x1824c3ea4
|
||||||
|
1805363e0: 01
|
||||||
|
1805363e1: 48 8b ce mov %rsi,%rcx
|
||||||
|
1805363e4: 0f 28 ce movaps %xmm6,%xmm1
|
||||||
|
1805363e7: e8 64 77 ff ff call 0x18052db50
|
||||||
|
1805363ec: 44 8b c7 mov %edi,%r8d
|
||||||
|
1805363ef: 0f 57 c9 xorps %xmm1,%xmm1
|
||||||
|
1805363f2: 49 8b cd mov %r13,%rcx
|
||||||
|
1805363f5: e8 56 77 ff ff call 0x18052db50
|
||||||
|
1805363fa: 33 db xor %ebx,%ebx
|
||||||
|
1805363fc: 39 .byte 0x39
|
||||||
|
1805363fd: 9d popf
|
||||||
|
1805363fe: 14 08 adc $0x8,%al
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,68 @@
|
|||||||
|
|
||||||
|
/tmp/det/ctor_dc30.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
000000018052dc30 <.data>:
|
||||||
|
18052dc30: rex push rbx
|
||||||
|
18052dc32: sub rsp,0x50
|
||||||
|
18052dc36: mov rbx,rcx
|
||||||
|
18052dc39: cmp DWORD PTR [rcx+0x4],edx
|
||||||
|
18052dc3c: je 0x18052dd1d
|
||||||
|
18052dc42: mov DWORD PTR [rcx+0x8],r8d
|
||||||
|
18052dc46: mov r8d,edx
|
||||||
|
18052dc49: mov DWORD PTR [rcx+0x4],edx
|
||||||
|
18052dc4c: lea rdx,[rsp+0x30]
|
||||||
|
18052dc51: mov QWORD PTR [rsp+0x60],rsi
|
||||||
|
18052dc56: mov QWORD PTR [rsp+0x68],rdi
|
||||||
|
18052dc5b: call 0x1805335c0
|
||||||
|
18052dc60: mov r8d,DWORD PTR [rbx+0x8]
|
||||||
|
18052dc64: test r8d,r8d
|
||||||
|
18052dc67: jns 0x18052dc8c
|
||||||
|
18052dc69: mov edx,DWORD PTR [rsp+0x34]
|
||||||
|
18052dc6d: lea rdi,[rbx+0x48]
|
||||||
|
18052dc71: mov rcx,rdi
|
||||||
|
18052dc74: call 0x180534550
|
||||||
|
18052dc79: mov edx,DWORD PTR [rsp+0x38]
|
||||||
|
18052dc7d: lea rcx,[rbx+0x68]
|
||||||
|
18052dc81: call 0x180534550
|
||||||
|
18052dc86: mov edx,DWORD PTR [rsp+0x3c]
|
||||||
|
18052dc8a: jmp 0x18052dcba
|
||||||
|
18052dc8c: lea rdx,[rsp+0x40]
|
||||||
|
18052dc91: mov rcx,rbx
|
||||||
|
18052dc94: call 0x1805335c0
|
||||||
|
18052dc99: mov edx,DWORD PTR [rsp+0x44]
|
||||||
|
18052dc9d: lea rdi,[rbx+0x48]
|
||||||
|
18052dca1: mov rcx,rdi
|
||||||
|
18052dca4: call 0x180534550
|
||||||
|
18052dca9: mov edx,DWORD PTR [rsp+0x48]
|
||||||
|
18052dcad: lea rcx,[rbx+0x68]
|
||||||
|
18052dcb1: call 0x180534550
|
||||||
|
18052dcb6: mov edx,DWORD PTR [rsp+0x4c]
|
||||||
|
18052dcba: lea rsi,[rbx+0x58]
|
||||||
|
18052dcbe: mov rcx,rsi
|
||||||
|
18052dcc1: call 0x180534550
|
||||||
|
18052dcc6: lea rdx,[rip+0x21230eb] # 0x182650db8
|
||||||
|
18052dccd: lea rcx,[rip+0x21230e4] # 0x182650db8
|
||||||
|
18052dcd4: call QWORD PTR [rip+0x167d32e] # 0x181bab008
|
||||||
|
18052dcda: mov r8d,DWORD PTR [rbx]
|
||||||
|
18052dcdd: mov r9d,0x1
|
||||||
|
18052dce3: mov edx,DWORD PTR [rsp+0x30]
|
||||||
|
18052dce7: test eax,eax
|
||||||
|
18052dce9: mov rax,QWORD PTR [rsi]
|
||||||
|
18052dcec: mov QWORD PTR [rsp+0x28],rax
|
||||||
|
18052dcf1: mov rax,QWORD PTR [rdi]
|
||||||
|
18052dcf4: mov QWORD PTR [rsp+0x20],rax
|
||||||
|
18052dcf9: jne 0x18052dd06
|
||||||
|
18052dcfb: lea rcx,[rbx+0x18]
|
||||||
|
18052dcff: call 0x180002240
|
||||||
|
18052dd04: jmp 0x18052dd0f
|
||||||
|
18052dd06: lea rcx,[rbx+0x20]
|
||||||
|
18052dd0a: call 0x180001c10
|
||||||
|
18052dd0f: mov rdi,QWORD PTR [rsp+0x68]
|
||||||
|
18052dd14: mov rsi,QWORD PTR [rsp+0x60]
|
||||||
|
18052dd19: mov BYTE PTR [rbx+0x15],0x1
|
||||||
|
18052dd1d: add rsp,0x50
|
||||||
|
18052dd21: pop rbx
|
||||||
|
18052dd22: ret
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,582 @@
|
|||||||
|
|
||||||
|
/tmp/det/det_536f90.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180536f90 <.data>:
|
||||||
|
180536f90: 4c 8b dc mov %rsp,%r11
|
||||||
|
180536f93: 55 push %rbp
|
||||||
|
180536f94: 56 push %rsi
|
||||||
|
180536f95: 57 push %rdi
|
||||||
|
180536f96: 41 54 push %r12
|
||||||
|
180536f98: 41 55 push %r13
|
||||||
|
180536f9a: 41 56 push %r14
|
||||||
|
180536f9c: 41 57 push %r15
|
||||||
|
180536f9e: 48 81 ec c0 00 00 00 sub $0xc0,%rsp
|
||||||
|
180536fa5: 41 0f 29 73 b8 movaps %xmm6,-0x48(%r11)
|
||||||
|
180536faa: 41 0f 29 7b a8 movaps %xmm7,-0x58(%r11)
|
||||||
|
180536faf: 45 0f 29 43 98 movaps %xmm8,-0x68(%r11)
|
||||||
|
180536fb4: 45 0f 29 4b 88 movaps %xmm9,-0x78(%r11)
|
||||||
|
180536fb9: 48 8b 05 b0 e9 0d 02 mov 0x20de9b0(%rip),%rax # 0x182615970
|
||||||
|
180536fc0: 48 33 c4 xor %rsp,%rax
|
||||||
|
180536fc3: 48 89 44 24 70 mov %rax,0x70(%rsp)
|
||||||
|
180536fc8: 48 63 b4 24 20 01 00 movslq 0x120(%rsp),%rsi
|
||||||
|
180536fcf: 00
|
||||||
|
180536fd0: 4c 8b f1 mov %rcx,%r14
|
||||||
|
180536fd3: 49 8b 00 mov (%r8),%rax
|
||||||
|
180536fd6: 4c 8b e6 mov %rsi,%r12
|
||||||
|
180536fd9: 49 8b 48 08 mov 0x8(%r8),%rcx
|
||||||
|
180536fdd: 4c 8b fa mov %rdx,%r15
|
||||||
|
180536fe0: f2 44 0f 10 0d 57 d1 movsd 0x1f8d157(%rip),%xmm9 # 0x1824c4140
|
||||||
|
180536fe7: f8 01
|
||||||
|
180536fe9: 0f 57 f6 xorps %xmm6,%xmm6
|
||||||
|
180536fec: 49 c1 e4 04 shl $0x4,%r12
|
||||||
|
180536ff0: 44 8d 2c 36 lea (%rsi,%rsi,1),%r13d
|
||||||
|
180536ff4: 0f 10 40 08 movups 0x8(%rax),%xmm0
|
||||||
|
180536ff8: 49 63 ed movslq %r13d,%rbp
|
||||||
|
180536ffb: 4c 03 e2 add %rdx,%r12
|
||||||
|
180536ffe: 0f 10 49 08 movups 0x8(%rcx),%xmm1
|
||||||
|
180537002: 48 c1 e5 04 shl $0x4,%rbp
|
||||||
|
180537006: f2 0f 10 38 movsd (%rax),%xmm7
|
||||||
|
18053700a: 48 03 ea add %rdx,%rbp
|
||||||
|
18053700d: f2 44 0f 10 01 movsd (%rcx),%xmm8
|
||||||
|
180537012: 33 ff xor %edi,%edi
|
||||||
|
180537014: f2 0f 11 7c 24 40 movsd %xmm7,0x40(%rsp)
|
||||||
|
18053701a: f2 44 0f 11 44 24 58 movsd %xmm8,0x58(%rsp)
|
||||||
|
180537021: 4c 89 4c 24 20 mov %r9,0x20(%rsp)
|
||||||
|
180537026: 0f 11 44 24 48 movups %xmm0,0x48(%rsp)
|
||||||
|
18053702b: 49 89 5b 18 mov %rbx,0x18(%r11)
|
||||||
|
18053702f: 0f 11 4c 24 60 movups %xmm1,0x60(%rsp)
|
||||||
|
180537034: 48 85 ff test %rdi,%rdi
|
||||||
|
180537037: 75 40 jne 0x180537079
|
||||||
|
180537039: 0f 28 c7 movaps %xmm7,%xmm0
|
||||||
|
18053703c: 48 8d 4c 24 30 lea 0x30(%rsp),%rcx
|
||||||
|
180537041: 66 0f 14 c6 unpcklpd %xmm6,%xmm0
|
||||||
|
180537045: 44 8b c6 mov %esi,%r8d
|
||||||
|
180537048: 49 8b d7 mov %r15,%rdx
|
||||||
|
18053704b: 66 0f 7f 44 24 30 movdqa %xmm0,0x30(%rsp)
|
||||||
|
180537051: e8 da a9 ac ff call 0x180001a30
|
||||||
|
180537056: 41 0f 28 c0 movaps %xmm8,%xmm0
|
||||||
|
18053705a: 48 8d 4c 24 30 lea 0x30(%rsp),%rcx
|
||||||
|
18053705f: 66 0f 14 c6 unpcklpd %xmm6,%xmm0
|
||||||
|
180537063: 44 8b c6 mov %esi,%r8d
|
||||||
|
180537066: 49 8b d4 mov %r12,%rdx
|
||||||
|
180537069: 66 0f 7f 44 24 30 movdqa %xmm0,0x30(%rsp)
|
||||||
|
18053706f: e8 bc a9 ac ff call 0x180001a30
|
||||||
|
180537074: e9 88 00 00 00 jmp 0x180537101
|
||||||
|
180537079: 48 83 ff 01 cmp $0x1,%rdi
|
||||||
|
18053707d: 75 49 jne 0x1805370c8
|
||||||
|
18053707f: 8d 04 76 lea (%rsi,%rsi,2),%eax
|
||||||
|
180537082: 44 8b c6 mov %esi,%r8d
|
||||||
|
180537085: 48 63 d8 movslq %eax,%rbx
|
||||||
|
180537088: 41 0f 28 c1 movaps %xmm9,%xmm0
|
||||||
|
18053708c: 48 c1 e3 04 shl $0x4,%rbx
|
||||||
|
180537090: 49 03 df add %r15,%rbx
|
||||||
|
180537093: 48 8b d3 mov %rbx,%rdx
|
||||||
|
180537096: e8 35 b2 ac ff call 0x1800022d0
|
||||||
|
18053709b: 48 8b 54 24 20 mov 0x20(%rsp),%rdx
|
||||||
|
1805370a0: 44 8b ce mov %esi,%r9d
|
||||||
|
1805370a3: 4d 8b c6 mov %r14,%r8
|
||||||
|
1805370a6: 48 8b cb mov %rbx,%rcx
|
||||||
|
1805370a9: e8 d2 ad ac ff call 0x180001e80
|
||||||
|
1805370ae: 8b d6 mov %esi,%edx
|
||||||
|
1805370b0: 49 8b ce mov %r14,%rcx
|
||||||
|
1805370b3: e8 58 a8 ac ff call 0x180001910
|
||||||
|
1805370b8: 44 8b c6 mov %esi,%r8d
|
||||||
|
1805370bb: 48 8b d5 mov %rbp,%rdx
|
||||||
|
1805370be: 49 8b ce mov %r14,%rcx
|
||||||
|
1805370c1: e8 fa a9 ac ff call 0x180001ac0
|
||||||
|
1805370c6: eb 11 jmp 0x1805370d9
|
||||||
|
1805370c8: 44 8b ce mov %esi,%r9d
|
||||||
|
1805370cb: 4c 8b c5 mov %rbp,%r8
|
||||||
|
1805370ce: 48 8b d5 mov %rbp,%rdx
|
||||||
|
1805370d1: 49 8b ce mov %r14,%rcx
|
||||||
|
1805370d4: e8 77 ad ac ff call 0x180001e50
|
||||||
|
1805370d9: f2 0f 10 4c fc 40 movsd 0x40(%rsp,%rdi,8),%xmm1
|
||||||
|
1805370df: 45 8b cd mov %r13d,%r9d
|
||||||
|
1805370e2: 4d 8b c7 mov %r15,%r8
|
||||||
|
1805370e5: 48 8b cd mov %rbp,%rcx
|
||||||
|
1805370e8: e8 63 b0 ac ff call 0x180002150
|
||||||
|
1805370ed: f2 0f 10 4c fc 58 movsd 0x58(%rsp,%rdi,8),%xmm1
|
||||||
|
1805370f3: 45 8b cd mov %r13d,%r9d
|
||||||
|
1805370f6: 4d 8b c4 mov %r12,%r8
|
||||||
|
1805370f9: 48 8b cd mov %rbp,%rcx
|
||||||
|
1805370fc: e8 4f b0 ac ff call 0x180002150
|
||||||
|
180537101: 48 ff c7 inc %rdi
|
||||||
|
180537104: 48 83 ff 03 cmp $0x3,%rdi
|
||||||
|
180537108: 0f 8c 26 ff ff ff jl 0x180537034
|
||||||
|
18053710e: 44 8b ce mov %esi,%r9d
|
||||||
|
180537111: 4d 8b c6 mov %r14,%r8
|
||||||
|
180537114: 49 8b d7 mov %r15,%rdx
|
||||||
|
180537117: 49 8b cc mov %r12,%rcx
|
||||||
|
18053711a: e8 21 ae ac ff call 0x180001f40
|
||||||
|
18053711f: 48 8b 9c 24 10 01 00 mov 0x110(%rsp),%rbx
|
||||||
|
180537126: 00
|
||||||
|
180537127: 48 8b 4c 24 70 mov 0x70(%rsp),%rcx
|
||||||
|
18053712c: 48 33 cc xor %rsp,%rcx
|
||||||
|
18053712f: e8 9c 9f bf 00 call 0x1811310d0
|
||||||
|
180537134: 4c 8d 9c 24 c0 00 00 lea 0xc0(%rsp),%r11
|
||||||
|
18053713b: 00
|
||||||
|
18053713c: 41 0f 28 73 f0 movaps -0x10(%r11),%xmm6
|
||||||
|
180537141: 41 0f 28 7b e0 movaps -0x20(%r11),%xmm7
|
||||||
|
180537146: 45 0f 28 43 d0 movaps -0x30(%r11),%xmm8
|
||||||
|
18053714b: 45 0f 28 4b c0 movaps -0x40(%r11),%xmm9
|
||||||
|
180537150: 49 8b e3 mov %r11,%rsp
|
||||||
|
180537153: 41 5f pop %r15
|
||||||
|
180537155: 41 5e pop %r14
|
||||||
|
180537157: 41 5d pop %r13
|
||||||
|
180537159: 41 5c pop %r12
|
||||||
|
18053715b: 5f pop %rdi
|
||||||
|
18053715c: 5e pop %rsi
|
||||||
|
18053715d: 5d pop %rbp
|
||||||
|
18053715e: c3 ret
|
||||||
|
18053715f: cc int3
|
||||||
|
180537160: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
180537165: 48 89 54 24 10 mov %rdx,0x10(%rsp)
|
||||||
|
18053716a: 57 push %rdi
|
||||||
|
18053716b: 48 83 ec 40 sub $0x40,%rsp
|
||||||
|
18053716f: 48 8b fa mov %rdx,%rdi
|
||||||
|
180537172: 0f 29 74 24 30 movaps %xmm6,0x30(%rsp)
|
||||||
|
180537177: f3 41 0f 10 30 movss (%r8),%xmm6
|
||||||
|
18053717c: 41 b9 0b 00 00 00 mov $0xb,%r9d
|
||||||
|
180537182: 4c 8d 05 a7 48 f7 01 lea 0x1f748a7(%rip),%r8 # 0x1824aba30
|
||||||
|
180537189: ba dd 7d 54 ff mov $0xff547ddd,%edx
|
||||||
|
18053718e: 48 8b d9 mov %rcx,%rbx
|
||||||
|
180537191: e8 6a 76 c0 00 call 0x18113e800
|
||||||
|
180537196: 48 8b 4b 08 mov 0x8(%rbx),%rcx
|
||||||
|
18053719a: 48 8b d0 mov %rax,%rdx
|
||||||
|
18053719d: e8 be 38 c6 00 call 0x18119aa60
|
||||||
|
1805371a2: 8b 80 88 01 00 00 mov 0x188(%rax),%eax
|
||||||
|
1805371a8: 89 44 24 58 mov %eax,0x58(%rsp)
|
||||||
|
1805371ac: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
1805371af: f3 0f 10 44 24 58 movss 0x58(%rsp),%xmm0
|
||||||
|
1805371b5: 0f 28 ce movaps %xmm6,%xmm1
|
||||||
|
1805371b8: 0f 2f c2 comiss %xmm2,%xmm0
|
||||||
|
1805371bb: 48 8b cf mov %rdi,%rcx
|
||||||
|
1805371be: 41 0f 97 c0 seta %r8b
|
||||||
|
1805371c2: e8 e9 36 ee 00 call 0x18141a8b0
|
||||||
|
1805371c7: 48 8b 5c 24 50 mov 0x50(%rsp),%rbx
|
||||||
|
1805371cc: 48 8b c7 mov %rdi,%rax
|
||||||
|
1805371cf: 0f 28 74 24 30 movaps 0x30(%rsp),%xmm6
|
||||||
|
1805371d4: 48 83 c4 40 add $0x40,%rsp
|
||||||
|
1805371d8: 5f pop %rdi
|
||||||
|
1805371d9: c3 ret
|
||||||
|
1805371da: cc int3
|
||||||
|
1805371db: cc int3
|
||||||
|
1805371dc: cc int3
|
||||||
|
1805371dd: cc int3
|
||||||
|
1805371de: cc int3
|
||||||
|
1805371df: cc int3
|
||||||
|
1805371e0: 4c 8b dc mov %rsp,%r11
|
||||||
|
1805371e3: 53 push %rbx
|
||||||
|
1805371e4: 48 83 ec 50 sub $0x50,%rsp
|
||||||
|
1805371e8: 49 c7 43 d8 fe ff ff movq $0xfffffffffffffffe,-0x28(%r11)
|
||||||
|
1805371ef: ff
|
||||||
|
1805371f0: 0f 29 74 24 40 movaps %xmm6,0x40(%rsp)
|
||||||
|
1805371f5: 48 8b d9 mov %rcx,%rbx
|
||||||
|
1805371f8: 48 8b 02 mov (%rdx),%rax
|
||||||
|
1805371fb: 4c 8d 05 96 4d ca 01 lea 0x1ca4d96(%rip),%r8 # 0x1821dbf98
|
||||||
|
180537202: 4c 89 02 mov %r8,(%rdx)
|
||||||
|
180537205: 49 8d 4b 08 lea 0x8(%r11),%rcx
|
||||||
|
180537209: 49 89 4b 18 mov %rcx,0x18(%r11)
|
||||||
|
18053720d: 49 8d 4b 10 lea 0x10(%r11),%rcx
|
||||||
|
180537211: 49 89 4b 20 mov %rcx,0x20(%r11)
|
||||||
|
180537215: 49 89 43 10 mov %rax,0x10(%r11)
|
||||||
|
180537219: 4d 89 43 08 mov %r8,0x8(%r11)
|
||||||
|
18053721d: 41 b9 0b 00 00 00 mov $0xb,%r9d
|
||||||
|
180537223: 4c 8d 05 06 48 f7 01 lea 0x1f74806(%rip),%r8 # 0x1824aba30
|
||||||
|
18053722a: ba dd 7d 54 ff mov $0xff547ddd,%edx
|
||||||
|
18053722f: e8 cc 75 c0 00 call 0x18113e800
|
||||||
|
180537234: 48 89 44 24 78 mov %rax,0x78(%rsp)
|
||||||
|
180537239: 48 8b d0 mov %rax,%rdx
|
||||||
|
18053723c: 48 8b 4b 08 mov 0x8(%rbx),%rcx
|
||||||
|
180537240: e8 1b 38 c6 00 call 0x18119aa60
|
||||||
|
180537245: 8b 80 88 01 00 00 mov 0x188(%rax),%eax
|
||||||
|
18053724b: 48 8d 4c 24 68 lea 0x68(%rsp),%rcx
|
||||||
|
180537250: e8 0b 34 ee 00 call 0x18141a660
|
||||||
|
180537255: 0f 28 f0 movaps %xmm0,%xmm6
|
||||||
|
180537258: 48 8b 4c 24 60 mov 0x60(%rsp),%rcx
|
||||||
|
18053725d: 48 83 c1 f0 add $0xfffffffffffffff0,%rcx
|
||||||
|
180537261: 8b 01 mov (%rcx),%eax
|
||||||
|
180537263: a9 00 00 00 30 test $0x30000000,%eax
|
||||||
|
180537268: 75 18 jne 0x180537282
|
||||||
|
18053726a: b8 ff ff ff ff mov $0xffffffff,%eax
|
||||||
|
18053726f: f0 0f c1 01 lock xadd %eax,(%rcx)
|
||||||
|
180537273: ff c8 dec %eax
|
||||||
|
180537275: 83 f8 ff cmp $0xffffffff,%eax
|
||||||
|
180537278: 75 08 jne 0x180537282
|
||||||
|
18053727a: e8 75 9e bf 00 call 0x1811310f4
|
||||||
|
18053727f: 0f 28 c6 movaps %xmm6,%xmm0
|
||||||
|
180537282: 0f 28 74 24 40 movaps 0x40(%rsp),%xmm6
|
||||||
|
180537287: 48 83 c4 50 add $0x50,%rsp
|
||||||
|
18053728b: 5b pop %rbx
|
||||||
|
18053728c: c3 ret
|
||||||
|
18053728d: cc int3
|
||||||
|
18053728e: cc int3
|
||||||
|
18053728f: cc int3
|
||||||
|
180537290: 40 53 rex push %rbx
|
||||||
|
180537292: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
180537296: f3 41 0f 10 08 movss (%r8),%xmm1
|
||||||
|
18053729b: 45 33 c9 xor %r9d,%r9d
|
||||||
|
18053729e: 0f 5a c9 cvtps2pd %xmm1,%xmm1
|
||||||
|
1805372a1: 48 8b ca mov %rdx,%rcx
|
||||||
|
1805372a4: 48 8b da mov %rdx,%rbx
|
||||||
|
1805372a7: 45 8d 41 01 lea 0x1(%r9),%r8d
|
||||||
|
1805372ab: e8 f0 c6 cf 00 call 0x1812339a0
|
||||||
|
1805372b0: 48 8b c3 mov %rbx,%rax
|
||||||
|
1805372b3: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
1805372b7: 5b pop %rbx
|
||||||
|
1805372b8: c3 ret
|
||||||
|
1805372b9: cc int3
|
||||||
|
1805372ba: cc int3
|
||||||
|
1805372bb: cc int3
|
||||||
|
1805372bc: cc int3
|
||||||
|
1805372bd: cc int3
|
||||||
|
1805372be: cc int3
|
||||||
|
1805372bf: cc int3
|
||||||
|
1805372c0: 40 53 rex push %rbx
|
||||||
|
1805372c2: 48 83 ec 30 sub $0x30,%rsp
|
||||||
|
1805372c6: f3 41 0f 10 10 movss (%r8),%xmm2
|
||||||
|
1805372cb: 48 8b da mov %rdx,%rbx
|
||||||
|
1805372ce: f2 0f 10 05 92 cc f8 movsd 0x1f8cc92(%rip),%xmm0 # 0x1824c3f68
|
||||||
|
1805372d5: 01
|
||||||
|
1805372d6: 0f 5a ca cvtps2pd %xmm2,%xmm1
|
||||||
|
1805372d9: 66 0f 2f c1 comisd %xmm1,%xmm0
|
||||||
|
1805372dd: 76 2b jbe 0x18053730a
|
||||||
|
1805372df: 4c 8d 05 5e 3b f7 01 lea 0x1f73b5e(%rip),%r8 # 0x1824aae44
|
||||||
|
1805372e6: ba cc 37 ce 4a mov $0x4ace37cc,%edx
|
||||||
|
1805372eb: 41 b9 04 00 00 00 mov $0x4,%r9d
|
||||||
|
1805372f1: e8 0a 75 c0 00 call 0x18113e800
|
||||||
|
1805372f6: 48 8b d0 mov %rax,%rdx
|
||||||
|
1805372f9: 48 8b cb mov %rbx,%rcx
|
||||||
|
1805372fc: e8 df 51 f6 ff call 0x18049c4e0
|
||||||
|
180537301: 48 8b c3 mov %rbx,%rax
|
||||||
|
180537304: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
180537308: 5b pop %rbx
|
||||||
|
180537309: c3 ret
|
||||||
|
18053730a: 0f 5a ca cvtps2pd %xmm2,%xmm1
|
||||||
|
18053730d: 66 0f 2f 0d 53 cf f8 comisd 0x1f8cf53(%rip),%xmm1 # 0x1824c4268
|
||||||
|
180537314: 01
|
||||||
|
180537315: 76 0e jbe 0x180537325
|
||||||
|
180537317: 4c 8d 05 f6 42 f7 01 lea 0x1f742f6(%rip),%r8 # 0x1824ab614
|
||||||
|
18053731e: ba d3 10 24 91 mov $0x912410d3,%edx
|
||||||
|
180537323: eb c6 jmp 0x1805372eb
|
||||||
|
180537325: 45 33 c9 xor %r9d,%r9d
|
||||||
|
180537328: 48 8b cb mov %rbx,%rcx
|
||||||
|
18053732b: 45 8d 41 01 lea 0x1(%r9),%r8d
|
||||||
|
18053732f: e8 6c c6 cf 00 call 0x1812339a0
|
||||||
|
180537334: 48 8b c3 mov %rbx,%rax
|
||||||
|
180537337: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
18053733b: 5b pop %rbx
|
||||||
|
18053733c: c3 ret
|
||||||
|
18053733d: cc int3
|
||||||
|
18053733e: cc int3
|
||||||
|
18053733f: cc int3
|
||||||
|
180537340: 40 53 rex push %rbx
|
||||||
|
180537342: 48 83 ec 30 sub $0x30,%rsp
|
||||||
|
180537346: f3 41 0f 10 10 movss (%r8),%xmm2
|
||||||
|
18053734b: 48 8b da mov %rdx,%rbx
|
||||||
|
18053734e: f2 0f 10 05 12 cc f8 movsd 0x1f8cc12(%rip),%xmm0 # 0x1824c3f68
|
||||||
|
180537355: 01
|
||||||
|
180537356: 0f 5a ca cvtps2pd %xmm2,%xmm1
|
||||||
|
180537359: 66 0f 2f c1 comisd %xmm1,%xmm0
|
||||||
|
18053735d: 76 2b jbe 0x18053738a
|
||||||
|
18053735f: 4c 8d 05 06 4d f7 01 lea 0x1f74d06(%rip),%r8 # 0x1824ac06c
|
||||||
|
180537366: ba b2 b5 fd e6 mov $0xe6fdb5b2,%edx
|
||||||
|
18053736b: 41 b9 04 00 00 00 mov $0x4,%r9d
|
||||||
|
180537371: e8 8a 74 c0 00 call 0x18113e800
|
||||||
|
180537376: 48 8b d0 mov %rax,%rdx
|
||||||
|
180537379: 48 8b cb mov %rbx,%rcx
|
||||||
|
18053737c: e8 5f 51 f6 ff call 0x18049c4e0
|
||||||
|
180537381: 48 8b c3 mov %rbx,%rax
|
||||||
|
180537384: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
180537388: 5b pop %rbx
|
||||||
|
180537389: c3 ret
|
||||||
|
18053738a: 0f 5a ca cvtps2pd %xmm2,%xmm1
|
||||||
|
18053738d: 66 0f 2f 0d d3 ce f8 comisd 0x1f8ced3(%rip),%xmm1 # 0x1824c4268
|
||||||
|
180537394: 01
|
||||||
|
180537395: 76 0e jbe 0x1805373a5
|
||||||
|
180537397: 4c 8d 05 3a 51 f7 01 lea 0x1f7513a(%rip),%r8 # 0x1824ac4d8
|
||||||
|
18053739e: ba 56 9f 92 12 mov $0x12929f56,%edx
|
||||||
|
1805373a3: eb c6 jmp 0x18053736b
|
||||||
|
1805373a5: 45 33 c9 xor %r9d,%r9d
|
||||||
|
1805373a8: 48 8b cb mov %rbx,%rcx
|
||||||
|
1805373ab: 45 8d 41 01 lea 0x1(%r9),%r8d
|
||||||
|
1805373af: e8 ec c5 cf 00 call 0x1812339a0
|
||||||
|
1805373b4: 48 8b c3 mov %rbx,%rax
|
||||||
|
1805373b7: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
1805373bb: 5b pop %rbx
|
||||||
|
1805373bc: c3 ret
|
||||||
|
1805373bd: cc int3
|
||||||
|
1805373be: cc int3
|
||||||
|
1805373bf: cc int3
|
||||||
|
1805373c0: f3 0f 10 0a movss (%rdx),%xmm1
|
||||||
|
1805373c4: 0f 57 c0 xorps %xmm0,%xmm0
|
||||||
|
1805373c7: 0f 2e c8 ucomiss %xmm0,%xmm1
|
||||||
|
1805373ca: 7a 06 jp 0x1805373d2
|
||||||
|
1805373cc: 75 04 jne 0x1805373d2
|
||||||
|
1805373ce: b2 01 mov $0x1,%dl
|
||||||
|
1805373d0: eb 02 jmp 0x1805373d4
|
||||||
|
1805373d2: 33 d2 xor %edx,%edx
|
||||||
|
1805373d4: 48 8b 41 08 mov 0x8(%rcx),%rax
|
||||||
|
1805373d8: 48 8b 88 68 01 00 00 mov 0x168(%rax),%rcx
|
||||||
|
1805373df: 48 8b 01 mov (%rcx),%rax
|
||||||
|
1805373e2: 48 ff a0 b8 00 00 00 rex.W jmp *0xb8(%rax)
|
||||||
|
1805373e9: cc int3
|
||||||
|
1805373ea: cc int3
|
||||||
|
1805373eb: cc int3
|
||||||
|
1805373ec: cc int3
|
||||||
|
1805373ed: cc int3
|
||||||
|
1805373ee: cc int3
|
||||||
|
1805373ef: cc int3
|
||||||
|
1805373f0: 48 8b 41 08 mov 0x8(%rcx),%rax
|
||||||
|
1805373f4: f3 0f 10 0a movss (%rdx),%xmm1
|
||||||
|
1805373f8: 48 8b 88 68 01 00 00 mov 0x168(%rax),%rcx
|
||||||
|
1805373ff: 48 8b 01 mov (%rcx),%rax
|
||||||
|
180537402: 48 ff 60 60 rex.W jmp *0x60(%rax)
|
||||||
|
180537406: cc int3
|
||||||
|
180537407: cc int3
|
||||||
|
180537408: cc int3
|
||||||
|
180537409: cc int3
|
||||||
|
18053740a: cc int3
|
||||||
|
18053740b: cc int3
|
||||||
|
18053740c: cc int3
|
||||||
|
18053740d: cc int3
|
||||||
|
18053740e: cc int3
|
||||||
|
18053740f: cc int3
|
||||||
|
180537410: 48 8b 41 08 mov 0x8(%rcx),%rax
|
||||||
|
180537414: f3 0f 10 0a movss (%rdx),%xmm1
|
||||||
|
180537418: f3 0f 59 0d 98 c8 f8 mulss 0x1f8c898(%rip),%xmm1 # 0x1824c3cb8
|
||||||
|
18053741f: 01
|
||||||
|
180537420: 48 8b 88 68 01 00 00 mov 0x168(%rax),%rcx
|
||||||
|
180537427: 48 8b 01 mov (%rcx),%rax
|
||||||
|
18053742a: 48 ff 60 68 rex.W jmp *0x68(%rax)
|
||||||
|
18053742e: cc int3
|
||||||
|
18053742f: cc int3
|
||||||
|
180537430: 48 8b 41 08 mov 0x8(%rcx),%rax
|
||||||
|
180537434: f3 0f 10 0a movss (%rdx),%xmm1
|
||||||
|
180537438: f3 0f 59 0d 78 c8 f8 mulss 0x1f8c878(%rip),%xmm1 # 0x1824c3cb8
|
||||||
|
18053743f: 01
|
||||||
|
180537440: 48 8b 88 68 01 00 00 mov 0x168(%rax),%rcx
|
||||||
|
180537447: 48 8b 01 mov (%rcx),%rax
|
||||||
|
18053744a: 48 ff 60 70 rex.W jmp *0x70(%rax)
|
||||||
|
18053744e: cc int3
|
||||||
|
18053744f: cc int3
|
||||||
|
180537450: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
180537455: 48 89 74 24 10 mov %rsi,0x10(%rsp)
|
||||||
|
18053745a: 57 push %rdi
|
||||||
|
18053745b: 48 83 ec 30 sub $0x30,%rsp
|
||||||
|
18053745f: f3 0f 10 05 dd cf f8 movss 0x1f8cfdd(%rip),%xmm0 # 0x1824c4444
|
||||||
|
180537466: 01
|
||||||
|
180537467: 48 8b fa mov %rdx,%rdi
|
||||||
|
18053746a: 0f 29 74 24 20 movaps %xmm6,0x20(%rsp)
|
||||||
|
18053746f: 48 8b d9 mov %rcx,%rbx
|
||||||
|
180537472: e8 59 d8 4d 01 call 0x181a14cd0
|
||||||
|
180537477: 48 8b 43 08 mov 0x8(%rbx),%rax
|
||||||
|
18053747b: 0f 28 f0 movaps %xmm0,%xmm6
|
||||||
|
18053747e: f3 0f 10 05 6a d1 f8 movss 0x1f8d16a(%rip),%xmm0 # 0x1824c45f0
|
||||||
|
180537485: 01
|
||||||
|
180537486: 48 8b 98 68 01 00 00 mov 0x168(%rax),%rbx
|
||||||
|
18053748d: 48 8b 33 mov (%rbx),%rsi
|
||||||
|
180537490: e8 3b d8 4d 01 call 0x181a14cd0
|
||||||
|
180537495: f3 0f 10 0f movss (%rdi),%xmm1
|
||||||
|
180537499: f3 0f 5c c6 subss %xmm6,%xmm0
|
||||||
|
18053749d: f3 0f 59 0d 13 c8 f8 mulss 0x1f8c813(%rip),%xmm1 # 0x1824c3cb8
|
||||||
|
1805374a4: 01
|
||||||
|
1805374a5: f3 0f 59 c1 mulss %xmm1,%xmm0
|
||||||
|
1805374a9: f3 0f 58 c6 addss %xmm6,%xmm0
|
||||||
|
1805374ad: e8 fa d7 4d 01 call 0x181a14cac
|
||||||
|
1805374b2: 0f 28 c8 movaps %xmm0,%xmm1
|
||||||
|
1805374b5: 48 8b cb mov %rbx,%rcx
|
||||||
|
1805374b8: 48 8b 46 78 mov 0x78(%rsi),%rax
|
||||||
|
1805374bc: 48 8b 5c 24 40 mov 0x40(%rsp),%rbx
|
||||||
|
1805374c1: 48 8b 74 24 48 mov 0x48(%rsp),%rsi
|
||||||
|
1805374c6: 0f 28 74 24 20 movaps 0x20(%rsp),%xmm6
|
||||||
|
1805374cb: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
1805374cf: 5f pop %rdi
|
||||||
|
1805374d0: 48 ff e0 rex.W jmp *%rax
|
||||||
|
1805374d3: cc int3
|
||||||
|
1805374d4: cc int3
|
||||||
|
1805374d5: cc int3
|
||||||
|
1805374d6: cc int3
|
||||||
|
1805374d7: cc int3
|
||||||
|
1805374d8: cc int3
|
||||||
|
1805374d9: cc int3
|
||||||
|
1805374da: cc int3
|
||||||
|
1805374db: cc int3
|
||||||
|
1805374dc: cc int3
|
||||||
|
1805374dd: cc int3
|
||||||
|
1805374de: cc int3
|
||||||
|
1805374df: cc int3
|
||||||
|
1805374e0: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
1805374e5: 48 89 74 24 10 mov %rsi,0x10(%rsp)
|
||||||
|
1805374ea: 57 push %rdi
|
||||||
|
1805374eb: 48 83 ec 40 sub $0x40,%rsp
|
||||||
|
1805374ef: f3 0f 10 05 f1 ce f8 movss 0x1f8cef1(%rip),%xmm0 # 0x1824c43e8
|
||||||
|
1805374f6: 01
|
||||||
|
1805374f7: 48 8b fa mov %rdx,%rdi
|
||||||
|
1805374fa: 0f 29 74 24 30 movaps %xmm6,0x30(%rsp)
|
||||||
|
1805374ff: 48 8b d9 mov %rcx,%rbx
|
||||||
|
180537502: 0f 29 7c 24 20 movaps %xmm7,0x20(%rsp)
|
||||||
|
180537507: e8 c4 d7 4d 01 call 0x181a14cd0
|
||||||
|
18053750c: 48 8b 43 08 mov 0x8(%rbx),%rax
|
||||||
|
180537510: 0f 28 f8 movaps %xmm0,%xmm7
|
||||||
|
180537513: f3 0f 10 07 movss (%rdi),%xmm0
|
||||||
|
180537517: f3 0f 59 05 99 c7 f8 mulss 0x1f8c799(%rip),%xmm0 # 0x1824c3cb8
|
||||||
|
18053751e: 01
|
||||||
|
18053751f: 48 8b 98 68 01 00 00 mov 0x168(%rax),%rbx
|
||||||
|
180537526: f3 0f 10 0d ca c9 f8 movss 0x1f8c9ca(%rip),%xmm1 # 0x1824c3ef8
|
||||||
|
18053752d: 01
|
||||||
|
18053752e: 48 8b 33 mov (%rbx),%rsi
|
||||||
|
180537531: e8 a6 d7 4d 01 call 0x181a14cdc
|
||||||
|
180537536: 0f 28 f0 movaps %xmm0,%xmm6
|
||||||
|
180537539: f3 0f 10 05 a3 d0 f8 movss 0x1f8d0a3(%rip),%xmm0 # 0x1824c45e4
|
||||||
|
180537540: 01
|
||||||
|
180537541: e8 8a d7 4d 01 call 0x181a14cd0
|
||||||
|
180537546: f3 0f 5c c7 subss %xmm7,%xmm0
|
||||||
|
18053754a: f3 0f 59 f0 mulss %xmm0,%xmm6
|
||||||
|
18053754e: f3 0f 58 f7 addss %xmm7,%xmm6
|
||||||
|
180537552: 0f 28 c6 movaps %xmm6,%xmm0
|
||||||
|
180537555: e8 52 d7 4d 01 call 0x181a14cac
|
||||||
|
18053755a: 0f 28 c8 movaps %xmm0,%xmm1
|
||||||
|
18053755d: 48 8b cb mov %rbx,%rcx
|
||||||
|
180537560: 48 8b 86 80 00 00 00 mov 0x80(%rsi),%rax
|
||||||
|
180537567: 48 8b 5c 24 50 mov 0x50(%rsp),%rbx
|
||||||
|
18053756c: 48 8b 74 24 58 mov 0x58(%rsp),%rsi
|
||||||
|
180537571: 0f 28 74 24 30 movaps 0x30(%rsp),%xmm6
|
||||||
|
180537576: 0f 28 7c 24 20 movaps 0x20(%rsp),%xmm7
|
||||||
|
18053757b: 48 83 c4 40 add $0x40,%rsp
|
||||||
|
18053757f: 5f pop %rdi
|
||||||
|
180537580: 48 ff e0 rex.W jmp *%rax
|
||||||
|
180537583: cc int3
|
||||||
|
180537584: cc int3
|
||||||
|
180537585: cc int3
|
||||||
|
180537586: cc int3
|
||||||
|
180537587: cc int3
|
||||||
|
180537588: cc int3
|
||||||
|
180537589: cc int3
|
||||||
|
18053758a: cc int3
|
||||||
|
18053758b: cc int3
|
||||||
|
18053758c: cc int3
|
||||||
|
18053758d: cc int3
|
||||||
|
18053758e: cc int3
|
||||||
|
18053758f: cc int3
|
||||||
|
180537590: 48 8b 41 08 mov 0x8(%rcx),%rax
|
||||||
|
180537594: 48 8b 88 68 01 00 00 mov 0x168(%rax),%rcx
|
||||||
|
18053759b: 48 81 c1 d8 03 00 00 add $0x3d8,%rcx
|
||||||
|
1805375a2: 83 79 6c 00 cmpl $0x0,0x6c(%rcx)
|
||||||
|
1805375a6: 76 09 jbe 0x1805375b1
|
||||||
|
1805375a8: 48 8b 41 60 mov 0x60(%rcx),%rax
|
||||||
|
1805375ac: 4c 8b 00 mov (%rax),%r8
|
||||||
|
1805375af: eb 03 jmp 0x1805375b4
|
||||||
|
1805375b1: 45 33 c0 xor %r8d,%r8d
|
||||||
|
1805375b4: f3 0f 10 05 e8 c8 f8 movss 0x1f8c8e8(%rip),%xmm0 # 0x1824c3ea4
|
||||||
|
1805375bb: 01
|
||||||
|
1805375bc: 0f 2f 02 comiss (%rdx),%xmm0
|
||||||
|
1805375bf: 0f 97 c0 seta %al
|
||||||
|
1805375c2: 41 88 80 10 08 00 00 mov %al,0x810(%r8)
|
||||||
|
1805375c9: c6 81 8f 00 24 00 01 movb $0x1,0x24008f(%rcx)
|
||||||
|
1805375d0: e9 5b 86 ff ff jmp 0x18052fc30
|
||||||
|
1805375d5: cc int3
|
||||||
|
1805375d6: cc int3
|
||||||
|
1805375d7: cc int3
|
||||||
|
1805375d8: cc int3
|
||||||
|
1805375d9: cc int3
|
||||||
|
1805375da: cc int3
|
||||||
|
1805375db: cc int3
|
||||||
|
1805375dc: cc int3
|
||||||
|
1805375dd: cc int3
|
||||||
|
1805375de: cc int3
|
||||||
|
1805375df: cc int3
|
||||||
|
1805375e0: 48 8b 41 08 mov 0x8(%rcx),%rax
|
||||||
|
1805375e4: f3 0f 10 02 movss (%rdx),%xmm0
|
||||||
|
1805375e8: 48 8b 08 mov (%rax),%rcx
|
||||||
|
1805375eb: 48 81 c1 d8 03 00 00 add $0x3d8,%rcx
|
||||||
|
1805375f2: 83 79 6c 00 cmpl $0x0,0x6c(%rcx)
|
||||||
|
1805375f6: 76 1b jbe 0x180537613
|
||||||
|
1805375f8: 48 8b 41 60 mov 0x60(%rcx),%rax
|
||||||
|
1805375fc: 48 8b 10 mov (%rax),%rdx
|
||||||
|
1805375ff: f3 0f 11 82 0c 08 00 movss %xmm0,0x80c(%rdx)
|
||||||
|
180537606: 00
|
||||||
|
180537607: c6 81 8f 00 24 00 01 movb $0x1,0x24008f(%rcx)
|
||||||
|
18053760e: e9 1d 86 ff ff jmp 0x18052fc30
|
||||||
|
180537613: 33 d2 xor %edx,%edx
|
||||||
|
180537615: f3 0f 11 82 0c 08 00 movss %xmm0,0x80c(%rdx)
|
||||||
|
18053761c: 00
|
||||||
|
18053761d: c6 81 8f 00 24 00 01 movb $0x1,0x24008f(%rcx)
|
||||||
|
180537624: e9 07 86 ff ff jmp 0x18052fc30
|
||||||
|
180537629: cc int3
|
||||||
|
18053762a: cc int3
|
||||||
|
18053762b: cc int3
|
||||||
|
18053762c: cc int3
|
||||||
|
18053762d: cc int3
|
||||||
|
18053762e: cc int3
|
||||||
|
18053762f: cc int3
|
||||||
|
180537630: 48 8b 41 08 mov 0x8(%rcx),%rax
|
||||||
|
180537634: f3 0f 10 02 movss (%rdx),%xmm0
|
||||||
|
180537638: 48 8b 08 mov (%rax),%rcx
|
||||||
|
18053763b: 48 81 c1 d8 03 00 00 add $0x3d8,%rcx
|
||||||
|
180537642: 83 79 6c 00 cmpl $0x0,0x6c(%rcx)
|
||||||
|
180537646: 76 1b jbe 0x180537663
|
||||||
|
180537648: 48 8b 41 60 mov 0x60(%rcx),%rax
|
||||||
|
18053764c: 48 8b 10 mov (%rax),%rdx
|
||||||
|
18053764f: f3 0f 11 82 04 08 00 movss %xmm0,0x804(%rdx)
|
||||||
|
180537656: 00
|
||||||
|
180537657: c6 81 8f 00 24 00 01 movb $0x1,0x24008f(%rcx)
|
||||||
|
18053765e: e9 cd 85 ff ff jmp 0x18052fc30
|
||||||
|
180537663: 33 d2 xor %edx,%edx
|
||||||
|
180537665: f3 0f 11 82 04 08 00 movss %xmm0,0x804(%rdx)
|
||||||
|
18053766c: 00
|
||||||
|
18053766d: c6 81 8f 00 24 00 01 movb $0x1,0x24008f(%rcx)
|
||||||
|
180537674: e9 b7 85 ff ff jmp 0x18052fc30
|
||||||
|
180537679: cc int3
|
||||||
|
18053767a: cc int3
|
||||||
|
18053767b: cc int3
|
||||||
|
18053767c: cc int3
|
||||||
|
18053767d: cc int3
|
||||||
|
18053767e: cc int3
|
||||||
|
18053767f: cc int3
|
||||||
|
180537680: 40 53 rex push %rbx
|
||||||
|
180537682: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
180537686: f3 41 0f 10 08 movss (%r8),%xmm1
|
||||||
|
18053768b: 48 8b ca mov %rdx,%rcx
|
||||||
|
18053768e: 48 8b da mov %rdx,%rbx
|
||||||
|
180537691: e8 3a 39 ee 00 call 0x18141afd0
|
||||||
|
180537696: 48 8b c3 mov %rbx,%rax
|
||||||
|
180537699: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
18053769d: 5b pop %rbx
|
||||||
|
18053769e: c3 ret
|
||||||
|
18053769f: cc int3
|
||||||
|
1805376a0: 48 89 4c 24 08 mov %rcx,0x8(%rsp)
|
||||||
|
1805376a5: 48 83 ec 48 sub $0x48,%rsp
|
||||||
|
1805376a9: 48 c7 44 24 20 fe ff movq $0xfffffffffffffffe,0x20(%rsp)
|
||||||
|
1805376b0: ff ff
|
||||||
|
1805376b2: 0f 29 74 24 30 movaps %xmm6,0x30(%rsp)
|
||||||
|
1805376b7: 48 8b 02 mov (%rdx),%rax
|
||||||
|
1805376ba: 48 89 44 24 50 mov %rax,0x50(%rsp)
|
||||||
|
1805376bf: 8b 48 f0 mov -0x10(%rax),%ecx
|
||||||
|
1805376c2: f7 c1 00 00 00 30 test $0x30000000,%ecx
|
||||||
|
1805376c8: 75 0a jne 0x1805376d4
|
||||||
|
1805376ca: b9 01 00 00 00 mov $0x1,%ecx
|
||||||
|
1805376cf: f0 0f c1 48 f0 lock xadd %ecx,-0x10(%rax)
|
||||||
|
1805376d4: 48 8d 44 24 50 lea 0x50(%rsp),%rax
|
||||||
|
1805376d9: 48 89 44 24 58 mov %rax,0x58(%rsp)
|
||||||
|
1805376de: 48 8d 4c 24 50 lea 0x50(%rsp),%rcx
|
||||||
|
1805376e3: e8 28 35 ee 00 call 0x18141ac10
|
||||||
|
1805376e8: 0f 28 f0 movaps %xmm0,%xmm6
|
||||||
|
1805376eb: 48 8b 4c 24 50 mov 0x50(%rsp),%rcx
|
||||||
|
1805376f0: 48 83 c1 f0 add $0xfffffffffffffff0,%rcx
|
||||||
|
1805376f4: 8b 01 mov (%rcx),%eax
|
||||||
|
1805376f6: a9 00 00 00 30 test $0x30000000,%eax
|
||||||
|
1805376fb: 75 18 jne 0x180537715
|
||||||
|
1805376fd: b8 ff ff ff ff mov $0xffffffff,%eax
|
||||||
|
180537702: f0 0f c1 01 lock xadd %eax,(%rcx)
|
||||||
|
180537706: ff c8 dec %eax
|
||||||
|
180537708: 83 f8 ff cmp $0xffffffff,%eax
|
||||||
|
18053770b: 75 08 jne 0x180537715
|
||||||
|
18053770d: e8 e2 99 bf 00 call 0x1811310f4
|
||||||
|
180537712: 0f 28 c6 movaps %xmm6,%xmm0
|
||||||
|
180537715: 0f 28 74 24 30 movaps 0x30(%rsp),%xmm6
|
||||||
|
18053771a: 48 83 c4 48 add $0x48,%rsp
|
||||||
|
18053771e: c3 ret
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,206 @@
|
|||||||
|
|
||||||
|
soothe_mem.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000000530850 <.data+0x530850>:
|
||||||
|
530850: 48 8b c4 mov %rsp,%rax
|
||||||
|
530853: 48 89 58 10 mov %rbx,0x10(%rax)
|
||||||
|
530857: 48 89 70 18 mov %rsi,0x18(%rax)
|
||||||
|
53085b: 57 push %rdi
|
||||||
|
53085c: 48 81 ec e0 00 00 00 sub $0xe0,%rsp
|
||||||
|
530863: 0f 29 70 e8 movaps %xmm6,-0x18(%rax)
|
||||||
|
530867: 0f 29 78 d8 movaps %xmm7,-0x28(%rax)
|
||||||
|
53086b: 48 8b 05 fe 50 0e 02 mov 0x20e50fe(%rip),%rax # 0x2615970
|
||||||
|
530872: 48 33 c4 xor %rsp,%rax
|
||||||
|
530875: 48 89 84 24 b0 00 00 mov %rax,0xb0(%rsp)
|
||||||
|
53087c: 00
|
||||||
|
53087d: f3 0f 10 41 24 movss 0x24(%rcx),%xmm0
|
||||||
|
530882: 48 8b f9 mov %rcx,%rdi
|
||||||
|
530885: f3 0f 59 05 ff 34 f9 mulss 0x1f934ff(%rip),%xmm0 # 0x24c3d8c
|
||||||
|
53088c: 01
|
||||||
|
53088d: 8b 41 64 mov 0x64(%rcx),%eax
|
||||||
|
530890: f3 0f 10 35 1c 3d f9 movss 0x1f93d1c(%rip),%xmm6 # 0x24c45b4
|
||||||
|
530897: 01
|
||||||
|
530898: 99 cltd
|
||||||
|
530899: 2b c2 sub %edx,%eax
|
||||||
|
53089b: f3 0f 5e f0 divss %xmm0,%xmm6
|
||||||
|
53089f: d1 f8 sar $1,%eax
|
||||||
|
5308a1: 8d 70 01 lea 0x1(%rax),%esi
|
||||||
|
5308a4: 66 0f 6e c6 movd %esi,%xmm0
|
||||||
|
5308a8: 0f 5b c0 cvtdq2ps %xmm0,%xmm0
|
||||||
|
5308ab: f3 0f 59 f0 mulss %xmm0,%xmm6
|
||||||
|
5308af: f3 0f 10 05 51 39 f9 movss 0x1f93951(%rip),%xmm0 # 0x24c4208
|
||||||
|
5308b6: 01
|
||||||
|
5308b7: e8 f0 43 4e 01 call 0x1a14cac
|
||||||
|
5308bc: ba 01 00 00 00 mov $0x1,%edx
|
||||||
|
5308c1: 4c 63 c6 movslq %esi,%r8
|
||||||
|
5308c4: 0f 28 f8 movaps %xmm0,%xmm7
|
||||||
|
5308c7: 8b ca mov %edx,%ecx
|
||||||
|
5308c9: 4c 3b c2 cmp %rdx,%r8
|
||||||
|
5308cc: 0f 8e 84 01 00 00 jle 0x530a56
|
||||||
|
5308d2: f2 0f 10 2d 36 46 f9 movsd 0x1f94636(%rip),%xmm5 # 0x24c4f10
|
||||||
|
5308d9: 01
|
||||||
|
5308da: 49 8d 40 ff lea -0x1(%r8),%rax
|
||||||
|
5308de: f3 0f 10 25 be 35 f9 movss 0x1f935be(%rip),%xmm4 # 0x24c3ea4
|
||||||
|
5308e5: 01
|
||||||
|
5308e6: 48 83 f8 04 cmp $0x4,%rax
|
||||||
|
5308ea: 0f 8c 1c 01 00 00 jl 0x530a0c
|
||||||
|
5308f0: 4d 8d 50 fd lea -0x3(%r8),%r10
|
||||||
|
5308f4: 44 8d 4a 02 lea 0x2(%rdx),%r9d
|
||||||
|
5308f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
5308ff: 00
|
||||||
|
530900: 48 8b 87 a8 06 54 00 mov 0x5406a8(%rdi),%rax
|
||||||
|
530907: 0f 57 db xorps %xmm3,%xmm3
|
||||||
|
53090a: f3 0f 2a da cvtsi2ss %edx,%xmm3
|
||||||
|
53090e: 83 c2 04 add $0x4,%edx
|
||||||
|
530911: 0f 28 c4 movaps %xmm4,%xmm0
|
||||||
|
530914: f3 0f 5e de divss %xmm6,%xmm3
|
||||||
|
530918: 0f 28 cb movaps %xmm3,%xmm1
|
||||||
|
53091b: f3 0f 5e cf divss %xmm7,%xmm1
|
||||||
|
53091f: f3 0f 58 cc addss %xmm4,%xmm1
|
||||||
|
530923: f3 0f 5e c1 divss %xmm1,%xmm0
|
||||||
|
530927: 0f 57 c9 xorps %xmm1,%xmm1
|
||||||
|
53092a: f3 0f 5a c8 cvtss2sd %xmm0,%xmm1
|
||||||
|
53092e: 0f 28 c4 movaps %xmm4,%xmm0
|
||||||
|
530931: 0f 54 cd andps %xmm5,%xmm1
|
||||||
|
530934: 66 0f 5a d1 cvtpd2ps %xmm1,%xmm2
|
||||||
|
530938: f3 0f 59 d3 mulss %xmm3,%xmm2
|
||||||
|
53093c: 0f 57 db xorps %xmm3,%xmm3
|
||||||
|
53093f: f3 0f 11 14 88 movss %xmm2,(%rax,%rcx,4)
|
||||||
|
530944: 41 8d 41 ff lea -0x1(%r9),%eax
|
||||||
|
530948: f3 0f 2a d8 cvtsi2ss %eax,%xmm3
|
||||||
|
53094c: 48 8b 87 a8 06 54 00 mov 0x5406a8(%rdi),%rax
|
||||||
|
530953: f3 0f 5e de divss %xmm6,%xmm3
|
||||||
|
530957: 0f 28 cb movaps %xmm3,%xmm1
|
||||||
|
53095a: f3 0f 5e cf divss %xmm7,%xmm1
|
||||||
|
53095e: f3 0f 58 cc addss %xmm4,%xmm1
|
||||||
|
530962: f3 0f 5e c1 divss %xmm1,%xmm0
|
||||||
|
530966: 0f 57 c9 xorps %xmm1,%xmm1
|
||||||
|
530969: f3 0f 5a c8 cvtss2sd %xmm0,%xmm1
|
||||||
|
53096d: 0f 28 c4 movaps %xmm4,%xmm0
|
||||||
|
530970: 0f 54 cd andps %xmm5,%xmm1
|
||||||
|
530973: 66 0f 5a d1 cvtpd2ps %xmm1,%xmm2
|
||||||
|
530977: f3 0f 59 d3 mulss %xmm3,%xmm2
|
||||||
|
53097b: 0f 57 db xorps %xmm3,%xmm3
|
||||||
|
53097e: f3 41 0f 2a d9 cvtsi2ss %r9d,%xmm3
|
||||||
|
530983: f3 0f 11 54 88 04 movss %xmm2,0x4(%rax,%rcx,4)
|
||||||
|
530989: 48 8b 87 a8 06 54 00 mov 0x5406a8(%rdi),%rax
|
||||||
|
530990: f3 0f 5e de divss %xmm6,%xmm3
|
||||||
|
530994: 0f 28 cb movaps %xmm3,%xmm1
|
||||||
|
530997: f3 0f 5e cf divss %xmm7,%xmm1
|
||||||
|
53099b: f3 0f 58 cc addss %xmm4,%xmm1
|
||||||
|
53099f: f3 0f 5e c1 divss %xmm1,%xmm0
|
||||||
|
5309a3: 0f 57 c9 xorps %xmm1,%xmm1
|
||||||
|
5309a6: f3 0f 5a c8 cvtss2sd %xmm0,%xmm1
|
||||||
|
5309aa: 0f 28 c4 movaps %xmm4,%xmm0
|
||||||
|
5309ad: 0f 54 cd andps %xmm5,%xmm1
|
||||||
|
5309b0: 66 0f 5a d1 cvtpd2ps %xmm1,%xmm2
|
||||||
|
5309b4: f3 0f 59 d3 mulss %xmm3,%xmm2
|
||||||
|
5309b8: 0f 57 db xorps %xmm3,%xmm3
|
||||||
|
5309bb: f3 0f 11 54 88 08 movss %xmm2,0x8(%rax,%rcx,4)
|
||||||
|
5309c1: 41 8d 41 01 lea 0x1(%r9),%eax
|
||||||
|
5309c5: f3 0f 2a d8 cvtsi2ss %eax,%xmm3
|
||||||
|
5309c9: 48 8b 87 a8 06 54 00 mov 0x5406a8(%rdi),%rax
|
||||||
|
5309d0: 41 83 c1 04 add $0x4,%r9d
|
||||||
|
5309d4: f3 0f 5e de divss %xmm6,%xmm3
|
||||||
|
5309d8: 0f 28 cb movaps %xmm3,%xmm1
|
||||||
|
5309db: f3 0f 5e cf divss %xmm7,%xmm1
|
||||||
|
5309df: f3 0f 58 cc addss %xmm4,%xmm1
|
||||||
|
5309e3: f3 0f 5e c1 divss %xmm1,%xmm0
|
||||||
|
5309e7: 0f 57 c9 xorps %xmm1,%xmm1
|
||||||
|
5309ea: f3 0f 5a c8 cvtss2sd %xmm0,%xmm1
|
||||||
|
5309ee: 0f 54 cd andps %xmm5,%xmm1
|
||||||
|
5309f1: 66 0f 5a d1 cvtpd2ps %xmm1,%xmm2
|
||||||
|
5309f5: f3 0f 59 d3 mulss %xmm3,%xmm2
|
||||||
|
5309f9: f3 0f 11 54 88 0c movss %xmm2,0xc(%rax,%rcx,4)
|
||||||
|
5309ff: 48 83 c1 04 add $0x4,%rcx
|
||||||
|
530a03: 49 3b ca cmp %r10,%rcx
|
||||||
|
530a06: 0f 8c f4 fe ff ff jl 0x530900
|
||||||
|
530a0c: 49 3b c8 cmp %r8,%rcx
|
||||||
|
530a0f: 7d 45 jge 0x530a56
|
||||||
|
530a11: 48 8b 87 a8 06 54 00 mov 0x5406a8(%rdi),%rax
|
||||||
|
530a18: 0f 57 db xorps %xmm3,%xmm3
|
||||||
|
530a1b: f3 0f 2a da cvtsi2ss %edx,%xmm3
|
||||||
|
530a1f: ff c2 inc %edx
|
||||||
|
530a21: 0f 28 c4 movaps %xmm4,%xmm0
|
||||||
|
530a24: f3 0f 5e de divss %xmm6,%xmm3
|
||||||
|
530a28: 0f 28 cb movaps %xmm3,%xmm1
|
||||||
|
530a2b: f3 0f 5e cf divss %xmm7,%xmm1
|
||||||
|
530a2f: f3 0f 58 cc addss %xmm4,%xmm1
|
||||||
|
530a33: f3 0f 5e c1 divss %xmm1,%xmm0
|
||||||
|
530a37: 0f 57 c9 xorps %xmm1,%xmm1
|
||||||
|
530a3a: f3 0f 5a c8 cvtss2sd %xmm0,%xmm1
|
||||||
|
530a3e: 0f 54 cd andps %xmm5,%xmm1
|
||||||
|
530a41: 66 0f 5a d1 cvtpd2ps %xmm1,%xmm2
|
||||||
|
530a45: f3 0f 59 d3 mulss %xmm3,%xmm2
|
||||||
|
530a49: f3 0f 11 14 88 movss %xmm2,(%rax,%rcx,4)
|
||||||
|
530a4e: 48 ff c1 inc %rcx
|
||||||
|
530a51: 49 3b c8 cmp %r8,%rcx
|
||||||
|
530a54: 7c bb jl 0x530a11
|
||||||
|
530a56: 48 8b 9f a8 06 54 00 mov 0x5406a8(%rdi),%rbx
|
||||||
|
530a5d: 48 8d 15 54 03 12 02 lea 0x2120354(%rip),%rdx # 0x2650db8
|
||||||
|
530a64: 48 8d 0d 4d 03 12 02 lea 0x212034d(%rip),%rcx # 0x2650db8
|
||||||
|
530a6b: ff 15 97 a5 67 01 call *0x167a597(%rip) # 0x1bab008
|
||||||
|
530a71: 44 8b ce mov %esi,%r9d
|
||||||
|
530a74: 4c 8b c3 mov %rbx,%r8
|
||||||
|
530a77: 48 8b cb mov %rbx,%rcx
|
||||||
|
530a7a: 85 c0 test %eax,%eax
|
||||||
|
530a7c: 75 0f jne 0x530a8d
|
||||||
|
530a7e: f3 0f 10 0d ca 33 f9 movss 0x1f933ca(%rip),%xmm1 # 0x24c3e50
|
||||||
|
530a85: 01
|
||||||
|
530a86: e8 b5 ff c0 ff call 0x140a40
|
||||||
|
530a8b: eb 0d jmp 0x530a9a
|
||||||
|
530a8d: f2 0f 10 0d 7b 36 f9 movsd 0x1f9367b(%rip),%xmm1 # 0x24c4110
|
||||||
|
530a94: 01
|
||||||
|
530a95: e8 66 00 c1 ff call 0x140b00
|
||||||
|
530a9a: f3 0f 10 4f 24 movss 0x24(%rdi),%xmm1
|
||||||
|
530a9f: 48 8d 4c 24 30 lea 0x30(%rsp),%rcx
|
||||||
|
530aa4: f3 0f 10 05 24 38 f9 movss 0x1f93824(%rip),%xmm0 # 0x24c42d0
|
||||||
|
530aab: 01
|
||||||
|
530aac: f2 0f 10 1d 8c 36 f9 movsd 0x1f9368c(%rip),%xmm3 # 0x24c4140
|
||||||
|
530ab3: 01
|
||||||
|
530ab4: f2 0f 10 15 c4 38 f9 movsd 0x1f938c4(%rip),%xmm2 # 0x24c4380
|
||||||
|
530abb: 01
|
||||||
|
530abc: 48 8b 9f 18 07 54 00 mov 0x540718(%rdi),%rbx
|
||||||
|
530ac3: 0f 5a c9 cvtps2pd %xmm1,%xmm1
|
||||||
|
530ac6: f3 0f 11 44 24 20 movss %xmm0,0x20(%rsp)
|
||||||
|
530acc: e8 ef 33 00 00 call 0x533ec0
|
||||||
|
530ad1: 48 8b 97 f8 06 54 00 mov 0x5406f8(%rdi),%rdx
|
||||||
|
530ad8: 4c 8d 44 24 30 lea 0x30(%rsp),%r8
|
||||||
|
530add: 48 8b 8f 08 07 54 00 mov 0x540708(%rdi),%rcx
|
||||||
|
530ae4: 4c 8b cb mov %rbx,%r9
|
||||||
|
530ae7: 89 74 24 20 mov %esi,0x20(%rsp)
|
||||||
|
530aeb: e8 90 4d 00 00 call 0x535880
|
||||||
|
530af0: 48 8b 97 08 07 54 00 mov 0x540708(%rdi),%rdx
|
||||||
|
530af7: 44 8b c6 mov %esi,%r8d
|
||||||
|
530afa: 48 8b 8f f8 06 54 00 mov 0x5406f8(%rdi),%rcx
|
||||||
|
530b01: e8 ca 4a 00 00 call 0x5355d0
|
||||||
|
530b06: 48 8b 97 f8 06 54 00 mov 0x5406f8(%rdi),%rdx
|
||||||
|
530b0d: 44 8b c6 mov %esi,%r8d
|
||||||
|
530b10: 48 8b 8f a8 06 54 00 mov 0x5406a8(%rdi),%rcx
|
||||||
|
530b17: e8 74 ce ff ff call 0x52d990
|
||||||
|
530b1c: 48 8b 87 a8 06 54 00 mov 0x5406a8(%rdi),%rax
|
||||||
|
530b23: c7 00 00 00 00 00 movl $0x0,(%rax)
|
||||||
|
530b29: 48 8b 8c 24 b0 00 00 mov 0xb0(%rsp),%rcx
|
||||||
|
530b30: 00
|
||||||
|
530b31: 48 33 cc xor %rsp,%rcx
|
||||||
|
530b34: e8 97 05 c0 00 call 0x11310d0
|
||||||
|
530b39: 4c 8d 9c 24 e0 00 00 lea 0xe0(%rsp),%r11
|
||||||
|
530b40: 00
|
||||||
|
530b41: 49 8b 5b 18 mov 0x18(%r11),%rbx
|
||||||
|
530b45: 49 8b 73 20 mov 0x20(%r11),%rsi
|
||||||
|
530b49: 41 0f 28 73 f0 movaps -0x10(%r11),%xmm6
|
||||||
|
530b4e: 41 0f 28 7b e0 movaps -0x20(%r11),%xmm7
|
||||||
|
530b53: 49 8b e3 mov %r11,%rsp
|
||||||
|
530b56: 5f pop %rdi
|
||||||
|
530b57: c3 ret
|
||||||
|
530b58: cc int3
|
||||||
|
530b59: cc int3
|
||||||
|
530b5a: cc int3
|
||||||
|
530b5b: cc int3
|
||||||
|
530b5c: cc int3
|
||||||
|
530b5d: cc int3
|
||||||
|
530b5e: cc int3
|
||||||
|
530b5f: cc int3
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,283 @@
|
|||||||
|
000000018026b820 <.data>:
|
||||||
|
18026b820: 53 push %rbx
|
||||||
|
18026b821: 56 push %rsi
|
||||||
|
18026b822: 57 push %rdi
|
||||||
|
18026b823: 41 54 push %r12
|
||||||
|
18026b825: 41 56 push %r14
|
||||||
|
18026b827: 41 57 push %r15
|
||||||
|
18026b829: 55 push %rbp
|
||||||
|
18026b82a: 48 81 ec 70 05 00 00 sub $0x570,%rsp
|
||||||
|
18026b831: 45 89 ce mov %r9d,%r14d
|
||||||
|
18026b834: c5 78 11 bc 24 30 05 vmovups %xmm15,0x530(%rsp)
|
||||||
|
18026b83b: 00 00
|
||||||
|
18026b83d: 4d 89 c7 mov %r8,%r15
|
||||||
|
18026b840: c5 78 11 b4 24 20 05 vmovups %xmm14,0x520(%rsp)
|
||||||
|
18026b847: 00 00
|
||||||
|
18026b849: 48 89 d5 mov %rdx,%rbp
|
||||||
|
18026b84c: c5 78 11 ac 24 10 05 vmovups %xmm13,0x510(%rsp)
|
||||||
|
18026b853: 00 00
|
||||||
|
18026b855: 49 89 cc mov %rcx,%r12
|
||||||
|
18026b858: c5 78 11 a4 24 00 05 vmovups %xmm12,0x500(%rsp)
|
||||||
|
18026b85f: 00 00
|
||||||
|
18026b861: 33 db xor %ebx,%ebx
|
||||||
|
18026b863: c5 78 11 9c 24 f0 04 vmovups %xmm11,0x4f0(%rsp)
|
||||||
|
18026b86a: 00 00
|
||||||
|
18026b86c: c5 78 11 94 24 e0 04 vmovups %xmm10,0x4e0(%rsp)
|
||||||
|
18026b873: 00 00
|
||||||
|
18026b875: c5 78 11 8c 24 d0 04 vmovups %xmm9,0x4d0(%rsp)
|
||||||
|
18026b87c: 00 00
|
||||||
|
18026b87e: c5 78 11 84 24 c0 04 vmovups %xmm8,0x4c0(%rsp)
|
||||||
|
18026b885: 00 00
|
||||||
|
18026b887: c5 f8 11 bc 24 b0 04 vmovups %xmm7,0x4b0(%rsp)
|
||||||
|
18026b88e: 00 00
|
||||||
|
18026b890: c5 f8 11 b4 24 a0 04 vmovups %xmm6,0x4a0(%rsp)
|
||||||
|
18026b897: 00 00
|
||||||
|
18026b899: 4c 89 ac 24 58 05 00 mov %r13,0x558(%rsp)
|
||||||
|
18026b8a0: 00
|
||||||
|
18026b8a1: 4c 8d ac 24 bf 00 00 lea 0xbf(%rsp),%r13
|
||||||
|
18026b8a8: 00
|
||||||
|
18026b8a9: 48 8b 05 c0 a0 3a 02 mov 0x23aa0c0(%rip),%rax # 0x182615970
|
||||||
|
18026b8b0: 49 83 e5 c0 and $0xffffffffffffffc0,%r13
|
||||||
|
18026b8b4: 48 33 c4 xor %rsp,%rax
|
||||||
|
18026b8b7: 48 89 84 24 60 05 00 mov %rax,0x560(%rsp)
|
||||||
|
18026b8be: 00
|
||||||
|
18026b8bf: 45 85 f6 test %r14d,%r14d
|
||||||
|
18026b8c2: 0f 8e f9 14 00 00 jle 0x18026cdc1
|
||||||
|
18026b8c8: 4d 85 e4 test %r12,%r12
|
||||||
|
18026b8cb: 0f 84 da 14 00 00 je 0x18026cdab
|
||||||
|
18026b8d1: 48 85 ed test %rbp,%rbp
|
||||||
|
18026b8d4: 0f 84 bb 14 00 00 je 0x18026cd95
|
||||||
|
18026b8da: 4d 85 ff test %r15,%r15
|
||||||
|
18026b8dd: 0f 84 7a 14 00 00 je 0x18026cd5d
|
||||||
|
18026b8e3: d9 bc 24 54 05 00 00 fnstcw 0x554(%rsp)
|
||||||
|
18026b8ea: 0f b7 8c 24 54 05 00 movzwl 0x554(%rsp),%ecx
|
||||||
|
18026b8f1: 00
|
||||||
|
18026b8f2: 89 ca mov %ecx,%edx
|
||||||
|
18026b8f4: 83 e2 3f and $0x3f,%edx
|
||||||
|
18026b8f7: 83 fa 3f cmp $0x3f,%edx
|
||||||
|
18026b8fa: 74 12 je 0x18026b90e
|
||||||
|
18026b8fc: 83 c9 3f or $0x3f,%ecx
|
||||||
|
18026b8ff: 66 89 4c 24 40 mov %cx,0x40(%rsp)
|
||||||
|
18026b904: db e2 fnclex
|
||||||
|
18026b906: d9 6c 24 40 fldcw 0x40(%rsp)
|
||||||
|
18026b90a: b2 01 mov $0x1,%dl
|
||||||
|
18026b90c: eb 02 jmp 0x18026b910
|
||||||
|
18026b90e: 32 d2 xor %dl,%dl
|
||||||
|
18026b910: c5 f8 ae 9c 24 50 05 vstmxcsr 0x550(%rsp)
|
||||||
|
18026b917: 00 00
|
||||||
|
18026b919: 8b 8c 24 50 05 00 00 mov 0x550(%rsp),%ecx
|
||||||
|
18026b920: 89 ce mov %ecx,%esi
|
||||||
|
18026b922: 81 e6 c0 ff 00 00 and $0xffc0,%esi
|
||||||
|
18026b928: 81 fe 80 1f 00 00 cmp $0x1f80,%esi
|
||||||
|
18026b92e: 74 21 je 0x18026b951
|
||||||
|
18026b930: 89 ce mov %ecx,%esi
|
||||||
|
18026b932: 80 c2 02 add $0x2,%dl
|
||||||
|
18026b935: 81 e6 3f 00 ff ff and $0xffff003f,%esi
|
||||||
|
18026b93b: 81 c6 80 1f 00 00 add $0x1f80,%esi
|
||||||
|
18026b941: 89 b4 24 50 05 00 00 mov %esi,0x550(%rsp)
|
||||||
|
18026b948: c5 f8 ae 94 24 50 05 vldmxcsr 0x550(%rsp)
|
||||||
|
18026b94f: 00 00
|
||||||
|
18026b951: 44 89 f6 mov %r14d,%esi
|
||||||
|
18026b954: 4d 8d 44 24 1f lea 0x1f(%r12),%r8
|
||||||
|
18026b959: 49 83 e0 e0 and $0xffffffffffffffe0,%r8
|
||||||
|
18026b95d: 45 33 db xor %r11d,%r11d
|
||||||
|
18026b960: 4d 2b c4 sub %r12,%r8
|
||||||
|
18026b963: 41 c1 e8 03 shr $0x3,%r8d
|
||||||
|
18026b967: 45 3b c6 cmp %r14d,%r8d
|
||||||
|
18026b96a: 45 0f 43 c6 cmovae %r14d,%r8d
|
||||||
|
18026b96e: 41 2b f0 sub %r8d,%esi
|
||||||
|
18026b971: 83 e6 f0 and $0xfffffff0,%esi
|
||||||
|
18026b974: 41 03 f0 add %r8d,%esi
|
||||||
|
18026b977: 45 85 c0 test %r8d,%r8d
|
||||||
|
18026b97a: 0f 86 42 03 00 00 jbe 0x18026bcc2
|
||||||
|
18026b980: 33 ff xor %edi,%edi
|
||||||
|
18026b982: c5 f8 10 25 f6 5c cc vmovups 0x1cc5cf6(%rip),%xmm4 # 0x181f31680
|
||||||
|
18026b989: 01
|
||||||
|
18026b98a: 48 b8 ff ff ff ff 00 movabs $0xffffffff,%rax
|
||||||
|
18026b991: 00 00 00
|
||||||
|
18026b994: c5 f8 10 2d 24 5d cc vmovups 0x1cc5d24(%rip),%xmm5 # 0x181f316c0
|
||||||
|
18026b99b: 01
|
||||||
|
18026b99c: 41 ba 04 00 00 00 mov $0x4,%r10d
|
||||||
|
18026b9a2: c5 f8 10 35 56 5d cc vmovups 0x1cc5d56(%rip),%xmm6 # 0x181f31700
|
||||||
|
18026b9a9: 01
|
||||||
|
18026b9aa: 4c 8d 0d 4f 46 d9 ff lea -0x26b9b1(%rip),%r9 # 0x180000000
|
||||||
|
18026b9b1: c5 fd 10 3d c7 90 cc vmovupd 0x1cc90c7(%rip),%ymm7 # 0x181f34a80
|
||||||
|
18026b9b8: 01
|
||||||
|
18026b9b9: c5 7d 10 05 ff 90 cc vmovupd 0x1cc90ff(%rip),%ymm8 # 0x181f34ac0
|
||||||
|
18026b9c0: 01
|
||||||
|
18026b9c1: c5 7d 10 0d 37 91 cc vmovupd 0x1cc9137(%rip),%ymm9 # 0x181f34b00
|
||||||
|
18026b9c8: 01
|
||||||
|
18026b9c9: c5 fd 10 1d 6f 91 cc vmovupd 0x1cc916f(%rip),%ymm3 # 0x181f34b40
|
||||||
|
18026b9d0: 01
|
||||||
|
18026b9d1: 88 54 24 78 mov %dl,0x78(%rsp)
|
||||||
|
18026b9d5: 89 9c 24 48 05 00 00 mov %ebx,0x548(%rsp)
|
||||||
|
18026b9dc: 44 89 b4 24 40 05 00 mov %r14d,0x540(%rsp)
|
||||||
|
18026b9e3: 00
|
||||||
|
18026b9e4: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18026b9eb: 00
|
||||||
|
18026b9ec: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18026b9f3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18026b9f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18026b9ff: 00
|
||||||
|
18026ba00: 44 89 c2 mov %r8d,%edx
|
||||||
|
18026ba03: 45 33 f6 xor %r14d,%r14d
|
||||||
|
18026ba06: 2b d7 sub %edi,%edx
|
||||||
|
18026ba08: 83 fa 04 cmp $0x4,%edx
|
||||||
|
18026ba0b: c5 7d 10 2d 2d d4 cc vmovupd 0x1ccd42d(%rip),%ymm13 # 0x181f38e40
|
||||||
|
18026ba12: 01
|
||||||
|
18026ba13: 41 0f 43 d2 cmovae %r10d,%edx
|
||||||
|
18026ba17: f7 da neg %edx
|
||||||
|
18026ba19: 83 c2 20 add $0x20,%edx
|
||||||
|
18026ba1c: c4 e2 eb f7 d0 shrx %rdx,%rax,%rdx
|
||||||
|
18026ba21: 83 e2 0f and $0xf,%edx
|
||||||
|
18026ba24: f3 44 0f b8 f2 popcnt %edx,%r14d
|
||||||
|
18026ba29: 45 89 f6 mov %r14d,%r14d
|
||||||
|
18026ba2c: 49 c1 e6 05 shl $0x5,%r14
|
||||||
|
18026ba30: c4 01 7c 10 9c 31 c0 vmovups 0x1f30fc0(%r9,%r14,1),%ymm11
|
||||||
|
18026ba37: 0f f3 01
|
||||||
|
18026ba3a: c4 01 7c 10 a4 31 80 vmovups 0x1f31080(%r9,%r14,1),%ymm12
|
||||||
|
18026ba41: 10 f3 01
|
||||||
|
18026ba44: c4 02 25 2d 14 dc vmaskmovpd (%r12,%r11,8),%ymm11,%ymm10
|
||||||
|
18026ba4a: c4 43 15 4b d2 b0 vblendvpd %ymm11,%ymm10,%ymm13,%ymm10
|
||||||
|
18026ba50: c4 22 1d 2d 5c dd 00 vmaskmovpd 0x0(%rbp,%r11,8),%ymm12,%ymm11
|
||||||
|
18026ba57: c4 43 15 4b db c0 vblendvpd %ymm12,%ymm11,%ymm13,%ymm11
|
||||||
|
18026ba5d: c5 78 10 25 db 5b cc vmovups 0x1cc5bdb(%rip),%xmm12 # 0x181f31640
|
||||||
|
18026ba64: 01
|
||||||
|
18026ba65: c4 63 7d 39 d2 01 vextracti128 $0x1,%ymm10,%xmm2
|
||||||
|
18026ba6b: c4 63 7d 39 d9 01 vextracti128 $0x1,%ymm11,%xmm1
|
||||||
|
18026ba71: c5 28 c6 ea dd vshufps $0xdd,%xmm2,%xmm10,%xmm13
|
||||||
|
18026ba76: c5 20 c6 f9 dd vshufps $0xdd,%xmm1,%xmm11,%xmm15
|
||||||
|
18026ba7b: c4 41 11 fe f4 vpaddd %xmm12,%xmm13,%xmm14
|
||||||
|
18026ba80: c5 81 db d5 vpand %xmm5,%xmm15,%xmm2
|
||||||
|
18026ba84: c4 41 59 66 ee vpcmpgtd %xmm14,%xmm4,%xmm13
|
||||||
|
18026ba89: c5 7d 10 35 ef 8d cc vmovupd 0x1cc8def(%rip),%ymm14 # 0x181f34880
|
||||||
|
18026ba90: 01
|
||||||
|
18026ba91: c5 e9 66 c6 vpcmpgtd %xmm6,%xmm2,%xmm0
|
||||||
|
18026ba95: c5 e9 76 ce vpcmpeqd %xmm6,%xmm2,%xmm1
|
||||||
|
18026ba99: c5 79 eb e1 vpor %xmm1,%xmm0,%xmm12
|
||||||
|
18026ba9d: c4 c1 11 eb d4 vpor %xmm12,%xmm13,%xmm2
|
||||||
|
18026baa2: c5 fd 10 05 16 8e cc vmovupd 0x1cc8e16(%rip),%ymm0 # 0x181f348c0
|
||||||
|
18026baa9: 01
|
||||||
|
18026baaa: c4 41 2d 54 fe vandpd %ymm14,%ymm10,%ymm15
|
||||||
|
18026baaf: c5 85 56 c8 vorpd %ymm0,%ymm15,%ymm1
|
||||||
|
18026bab3: c5 7d 5a e9 vcvtpd2ps %ymm1,%xmm13
|
||||||
|
18026bab7: c4 c1 0d 73 d2 14 vpsrlq $0x14,%ymm10,%ymm14
|
||||||
|
18026babd: c4 41 78 53 e5 vrcpps %xmm13,%xmm12
|
||||||
|
18026bac2: c4 c1 7c 5a c4 vcvtps2pd %xmm12,%ymm0
|
||||||
|
18026bac7: c5 7d 10 25 f1 8e cc vmovupd 0x1cc8ef1(%rip),%ymm12 # 0x181f349c0
|
||||||
|
18026bace: 01
|
||||||
|
18026bacf: c4 43 7d 39 f7 01 vextracti128 $0x1,%ymm14,%xmm15
|
||||||
|
18026bad5: c4 41 08 c6 ef dd vshufps $0xdd,%xmm15,%xmm14,%xmm13
|
||||||
|
18026badb: c4 63 7d 09 f8 00 vroundpd $0x0,%ymm0,%ymm15
|
||||||
|
18026bae1: c4 41 7e e6 f5 vcvtdq2pd %xmm13,%ymm14
|
||||||
|
18026bae6: c4 c1 15 73 d7 28 vpsrlq $0x28,%ymm15,%ymm13
|
||||||
|
18026baec: c4 c2 85 aa cc vfmsub213pd %ymm12,%ymm15,%ymm1
|
||||||
|
18026baf1: c4 41 45 c2 ff 11 vcmplt_oqpd %ymm15,%ymm7,%ymm15
|
||||||
|
18026baf7: c5 79 7e eb vmovd %xmm13,%ebx
|
||||||
|
18026bafb: c4 43 7d 39 ec 01 vextracti128 $0x1,%ymm13,%xmm12
|
||||||
|
18026bb01: 48 63 db movslq %ebx,%rbx
|
||||||
|
18026bb04: c4 43 79 16 ee 02 vpextrd $0x2,%xmm13,%r14d
|
||||||
|
18026bb0a: 4d 63 f6 movslq %r14d,%r14
|
||||||
|
18026bb0d: c4 c1 7b 10 84 19 c0 vmovsd 0x1b2b7c0(%r9,%rbx,1),%xmm0
|
||||||
|
18026bb14: b7 b2 01
|
||||||
|
18026bb17: c5 79 7e e3 vmovd %xmm12,%ebx
|
||||||
|
18026bb1b: c4 81 79 16 84 31 c0 vmovhpd 0x1b2b7c0(%r9,%r14,1),%xmm0,%xmm0
|
||||||
|
18026bb22: b7 b2 01
|
||||||
|
18026bb25: 48 63 db movslq %ebx,%rbx
|
||||||
|
18026bb28: c4 43 79 16 e6 02 vpextrd $0x2,%xmm12,%r14d
|
||||||
|
18026bb2e: 4d 63 f6 movslq %r14d,%r14
|
||||||
|
18026bb31: c4 41 7b 10 ac 19 c0 vmovsd 0x1b2b7c0(%r9,%rbx,1),%xmm13
|
||||||
|
18026bb38: b7 b2 01
|
||||||
|
18026bb3b: c4 01 11 16 a4 31 c0 vmovhpd 0x1b2b7c0(%r9,%r14,1),%xmm13,%xmm12
|
||||||
|
18026bb42: b7 b2 01
|
||||||
|
18026bb45: c4 41 05 54 e8 vandpd %ymm8,%ymm15,%ymm13
|
||||||
|
18026bb4a: c4 c3 7d 18 c4 01 vinsertf128 $0x1,%xmm12,%ymm0,%ymm0
|
||||||
|
18026bb50: c4 41 15 56 e1 vorpd %ymm9,%ymm13,%ymm12
|
||||||
|
18026bb55: c4 41 0d 5c f4 vsubpd %ymm12,%ymm14,%ymm14
|
||||||
|
18026bb5a: c5 7d 10 2d be 8c cc vmovupd 0x1cc8cbe(%rip),%ymm13 # 0x181f34820
|
||||||
|
18026bb61: 01
|
||||||
|
18026bb62: c4 41 65 59 fe vmulpd %ymm14,%ymm3,%ymm15
|
||||||
|
18026bb67: c5 7d 10 35 d1 8c cc vmovupd 0x1cc8cd1(%rip),%ymm14 # 0x181f34840
|
||||||
|
18026bb6e: 01
|
||||||
|
18026bb6f: c5 7d 10 25 e9 8c cc vmovupd 0x1cc8ce9(%rip),%ymm12 # 0x181f34860
|
||||||
|
18026bb76: 01
|
||||||
|
18026bb77: c4 62 95 b8 f1 vfmadd231pd %ymm1,%ymm13,%ymm14
|
||||||
|
18026bb7c: c5 75 59 e9 vmulpd %ymm1,%ymm1,%ymm13
|
||||||
|
18026bb80: c4 42 f5 a8 f4 vfmadd213pd %ymm12,%ymm1,%ymm14
|
||||||
|
18026bb85: c4 41 0d 59 e5 vmulpd %ymm13,%ymm14,%ymm12
|
||||||
|
18026bb8a: c4 c1 75 58 cc vaddpd %ymm12,%ymm1,%ymm1
|
||||||
|
18026bb8f: c5 7d 58 e9 vaddpd %ymm1,%ymm0,%ymm13
|
||||||
|
18026bb93: c5 f8 10 0d a5 5b cc vmovups 0x1cc5ba5(%rip),%xmm1 # 0x181f31740
|
||||||
|
18026bb9a: 01
|
||||||
|
18026bb9b: c4 41 05 58 e5 vaddpd %ymm13,%ymm15,%ymm12
|
||||||
|
18026bba0: c4 41 25 59 e4 vmulpd %ymm12,%ymm11,%ymm12
|
||||||
|
18026bba5: c4 43 7d 39 e6 01 vextracti128 $0x1,%ymm12,%xmm14
|
||||||
|
18026bbab: c4 41 18 c6 fe dd vshufps $0xdd,%xmm14,%xmm12,%xmm15
|
||||||
|
18026bbb1: c5 81 db c5 vpand %xmm5,%xmm15,%xmm0
|
||||||
|
18026bbb5: c5 79 66 e9 vpcmpgtd %xmm1,%xmm0,%xmm13
|
||||||
|
18026bbb9: c5 79 76 f1 vpcmpeqd %xmm1,%xmm0,%xmm14
|
||||||
|
18026bbbd: c4 41 11 eb fe vpor %xmm14,%xmm13,%xmm15
|
||||||
|
18026bbc2: c5 7d 10 2d b6 d0 cc vmovupd 0x1ccd0b6(%rip),%ymm13 # 0x181f38c80
|
||||||
|
18026bbc9: 01
|
||||||
|
18026bbca: c4 c1 69 eb d7 vpor %xmm15,%xmm2,%xmm2
|
||||||
|
18026bbcf: c5 fd 10 05 e9 d0 cc vmovupd 0x1ccd0e9(%rip),%ymm0 # 0x181f38cc0
|
||||||
|
18026bbd6: 01
|
||||||
|
18026bbd7: c4 41 15 59 ec vmulpd %ymm12,%ymm13,%ymm13
|
||||||
|
18026bbdc: c5 7d 10 25 1c d1 cc vmovupd 0x1ccd11c(%rip),%ymm12 # 0x181f38d00
|
||||||
|
18026bbe3: 01
|
||||||
|
18026bbe4: c5 fd 10 0d 94 d1 cc vmovupd 0x1ccd194(%rip),%ymm1 # 0x181f38d80
|
||||||
|
18026bbeb: 01
|
||||||
|
18026bbec: c4 41 15 5c f4 vsubpd %ymm12,%ymm13,%ymm14
|
||||||
|
18026bbf1: c5 78 50 f2 vmovmskps %xmm2,%r14d
|
||||||
|
18026bbf5: c4 41 7d 58 fe vaddpd %ymm14,%ymm0,%ymm15
|
||||||
|
18026bbfa: c5 85 5c d0 vsubpd %ymm0,%ymm15,%ymm2
|
||||||
|
18026bbfe: c5 15 5c e2 vsubpd %ymm2,%ymm13,%ymm12
|
||||||
|
18026bc02: c5 7d 10 2d 36 d1 cc vmovupd 0x1ccd136(%rip),%ymm13 # 0x181f38d40
|
||||||
|
18026bc09: 01
|
||||||
|
18026bc0a: c5 04 54 f1 vandps %ymm1,%ymm15,%ymm14
|
||||||
|
18026bc0e: c4 41 15 59 ec vmulpd %ymm12,%ymm13,%ymm13
|
||||||
|
18026bc13: c4 c1 1d 73 d7 0b vpsrlq $0xb,%ymm15,%ymm12
|
||||||
|
18026bc19: c4 c1 1d 73 f4 34 vpsllq $0x34,%ymm12,%ymm12
|
||||||
|
18026bc1f: c5 79 7e f3 vmovd %xmm14,%ebx
|
||||||
|
18026bc23: c1 e3 03 shl $0x3,%ebx
|
||||||
|
18026bc26: c4 41 7a 7e bc 19 40 vmovq 0x1f34c40(%r9,%rbx,1),%xmm15
|
||||||
|
18026bc2d: 4c f3 01
|
||||||
|
18026bc30: c4 63 79 16 f3 02 vpextrd $0x2,%xmm14,%ebx
|
||||||
|
18026bc36: c4 43 7d 39 f6 01 vextracti128 $0x1,%ymm14,%xmm14
|
||||||
|
18026bc3c: c1 e3 03 shl $0x3,%ebx
|
||||||
|
18026bc3f: c4 c1 01 16 84 19 40 vmovhpd 0x1f34c40(%r9,%rbx,1),%xmm15,%xmm0
|
||||||
|
18026bc46: 4c f3 01
|
||||||
|
18026bc49: c5 79 7e f3 vmovd %xmm14,%ebx
|
||||||
|
18026bc4d: c1 e3 03 shl $0x3,%ebx
|
||||||
|
18026bc50: c4 c1 7a 7e 8c 19 40 vmovq 0x1f34c40(%r9,%rbx,1),%xmm1
|
||||||
|
18026bc57: 4c f3 01
|
||||||
|
18026bc5a: c4 63 79 16 f3 02 vpextrd $0x2,%xmm14,%ebx
|
||||||
|
18026bc60: c1 e3 03 shl $0x3,%ebx
|
||||||
|
18026bc63: c4 c1 71 16 94 19 40 vmovhpd 0x1f34c40(%r9,%rbx,1),%xmm1,%xmm2
|
||||||
|
18026bc6a: 4c f3 01
|
||||||
|
18026bc6d: 45 85 f6 test %r14d,%r14d
|
||||||
|
18026bc70: c4 e3 7d 18 c2 01 vinsertf128 $0x1,%xmm2,%ymm0,%ymm0
|
||||||
|
18026bc76: c4 e2 95 a8 c0 vfmadd213pd %ymm0,%ymm13,%ymm0
|
||||||
|
18026bc7b: c4 c1 7d d4 cc vpaddq %ymm12,%ymm0,%ymm1
|
||||||
|
18026bc80: 0f 85 9c 0f 00 00 jne 0x18026cc22
|
||||||
|
18026bc86: f3 0f b8 d2 popcnt %edx,%edx
|
||||||
|
18026bc8a: 89 d2 mov %edx,%edx
|
||||||
|
18026bc8c: 83 c7 04 add $0x4,%edi
|
||||||
|
18026bc8f: 48 c1 e2 05 shl $0x5,%rdx
|
||||||
|
18026bc93: c4 c1 7e 6f 84 11 40 vmovdqu 0x1f31140(%r9,%rdx,1),%ymm0
|
||||||
|
18026bc9a: 11 f3 01
|
||||||
|
18026bc9d: c4 82 7d 2f 0c df vmaskmovpd %ymm1,%ymm0,(%r15,%r11,8)
|
||||||
|
18026bca3: 41 89 fb mov %edi,%r11d
|
||||||
|
18026bca6: 41 3b f8 cmp %r8d,%edi
|
||||||
|
18026bca9: 0f 82 51 fd ff ff jb 0x18026ba00
|
||||||
|
18026bcaf: 8a 54 24 78 mov 0x78(%rsp),%dl
|
||||||
|
18026bcb3: 8b 9c 24 48 05 00 00 mov 0x548(%rsp),%ebx
|
||||||
|
18026bcba: 44 8b b4 24 40 05 00 mov 0x540(%rsp),%r14d
|
||||||
|
18026bcc1: 00
|
||||||
|
18026bcc2: 44 3b c6 cmp %esi,%r8d
|
||||||
|
18026bcc5: 0f 83 72 08 00 00 jae 0x18026c53d
|
||||||
|
18026bccb: 4c rex.WR
|
||||||
|
18026bccc: 8d .byte 0x8d
|
||||||
|
18026bccd: 15 .byte 0x15
|
||||||
|
18026bcce: 2e cs
|
||||||
|
18026bccf: 43 rex.XB
|
||||||
@@ -0,0 +1,178 @@
|
|||||||
|
00000001804d56b0 <.data>:
|
||||||
|
1804d56b0: 48 83 ec 28 sub $0x28,%rsp
|
||||||
|
1804d56b4: 48 8b 05 b5 02 14 02 mov 0x21402b5(%rip),%rax # 0x182615970
|
||||||
|
1804d56bb: 48 33 c4 xor %rsp,%rax
|
||||||
|
1804d56be: 48 89 44 24 10 mov %rax,0x10(%rsp)
|
||||||
|
1804d56c3: 8b c2 mov %edx,%eax
|
||||||
|
1804d56c5: 44 8b c2 mov %edx,%r8d
|
||||||
|
1804d56c8: 99 cltd
|
||||||
|
1804d56c9: 83 e2 03 and $0x3,%edx
|
||||||
|
1804d56cc: 03 c2 add %edx,%eax
|
||||||
|
1804d56ce: c1 f8 02 sar $0x2,%eax
|
||||||
|
1804d56d1: 83 f8 01 cmp $0x1,%eax
|
||||||
|
1804d56d4: 0f 8e f6 00 00 00 jle 0x1804d57d0
|
||||||
|
1804d56da: ff c8 dec %eax
|
||||||
|
1804d56dc: f6 c1 0f test $0xf,%cl
|
||||||
|
1804d56df: 75 1f jne 0x1804d5700
|
||||||
|
1804d56e1: 0f 10 09 movups (%rcx),%xmm1
|
||||||
|
1804d56e4: 85 c0 test %eax,%eax
|
||||||
|
1804d56e6: 7e 39 jle 0x1804d5721
|
||||||
|
1804d56e8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1804d56ef: 00
|
||||||
|
1804d56f0: 0f 5f 49 10 maxps 0x10(%rcx),%xmm1
|
||||||
|
1804d56f4: 48 83 c1 10 add $0x10,%rcx
|
||||||
|
1804d56f8: ff c8 dec %eax
|
||||||
|
1804d56fa: 85 c0 test %eax,%eax
|
||||||
|
1804d56fc: 7f f2 jg 0x1804d56f0
|
||||||
|
1804d56fe: eb 21 jmp 0x1804d5721
|
||||||
|
1804d5700: 0f 10 09 movups (%rcx),%xmm1
|
||||||
|
1804d5703: 85 c0 test %eax,%eax
|
||||||
|
1804d5705: 7e 1a jle 0x1804d5721
|
||||||
|
1804d5707: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
|
||||||
|
1804d570e: 00 00
|
||||||
|
1804d5710: 0f 10 41 10 movups 0x10(%rcx),%xmm0
|
||||||
|
1804d5714: 48 83 c1 10 add $0x10,%rcx
|
||||||
|
1804d5718: ff c8 dec %eax
|
||||||
|
1804d571a: 0f 5f c8 maxps %xmm0,%xmm1
|
||||||
|
1804d571d: 85 c0 test %eax,%eax
|
||||||
|
1804d571f: 7f ef jg 0x1804d5710
|
||||||
|
1804d5721: 0f 28 c1 movaps %xmm1,%xmm0
|
||||||
|
1804d5724: 0f c6 c1 aa shufps $0xaa,%xmm1,%xmm0
|
||||||
|
1804d5728: 0f 11 0c 24 movups %xmm1,(%rsp)
|
||||||
|
1804d572c: f3 0f 10 5c 24 0c movss 0xc(%rsp),%xmm3
|
||||||
|
1804d5732: 0f c6 c9 55 shufps $0x55,%xmm1,%xmm1
|
||||||
|
1804d5736: 0f 2f c1 comiss %xmm1,%xmm0
|
||||||
|
1804d5739: 76 06 jbe 0x1804d5741
|
||||||
|
1804d573b: f3 0f 5f d8 maxss %xmm0,%xmm3
|
||||||
|
1804d573f: eb 04 jmp 0x1804d5745
|
||||||
|
1804d5741: f3 0f 5f d9 maxss %xmm1,%xmm3
|
||||||
|
1804d5745: f3 0f 5f 1c 24 maxss (%rsp),%xmm3
|
||||||
|
1804d574a: 33 c0 xor %eax,%eax
|
||||||
|
1804d574c: 41 83 e0 03 and $0x3,%r8d
|
||||||
|
1804d5750: 49 83 f8 04 cmp $0x4,%r8
|
||||||
|
1804d5754: 7c 47 jl 0x1804d579d
|
||||||
|
1804d5756: 4d 8d 48 fc lea -0x4(%r8),%r9
|
||||||
|
1804d575a: 49 c1 e9 02 shr $0x2,%r9
|
||||||
|
1804d575e: 48 8d 51 18 lea 0x18(%rcx),%rdx
|
||||||
|
1804d5762: 49 ff c1 inc %r9
|
||||||
|
1804d5765: 4a 8d 04 8d 00 00 00 lea 0x0(,%r9,4),%rax
|
||||||
|
1804d576c: 00
|
||||||
|
1804d576d: 0f 1f 00 nopl (%rax)
|
||||||
|
1804d5770: f3 0f 10 42 f8 movss -0x8(%rdx),%xmm0
|
||||||
|
1804d5775: f3 0f 10 4a fc movss -0x4(%rdx),%xmm1
|
||||||
|
1804d577a: f3 0f 5f c3 maxss %xmm3,%xmm0
|
||||||
|
1804d577e: f3 0f 10 12 movss (%rdx),%xmm2
|
||||||
|
1804d5782: f3 0f 10 5a 04 movss 0x4(%rdx),%xmm3
|
||||||
|
1804d5787: 48 8d 52 10 lea 0x10(%rdx),%rdx
|
||||||
|
1804d578b: f3 0f 5f c8 maxss %xmm0,%xmm1
|
||||||
|
1804d578f: f3 0f 5f d1 maxss %xmm1,%xmm2
|
||||||
|
1804d5793: f3 0f 5f da maxss %xmm2,%xmm3
|
||||||
|
1804d5797: 49 83 e9 01 sub $0x1,%r9
|
||||||
|
1804d579b: 75 d3 jne 0x1804d5770
|
||||||
|
1804d579d: 49 3b c0 cmp %r8,%rax
|
||||||
|
1804d57a0: 0f 8d b0 00 00 00 jge 0x1804d5856
|
||||||
|
1804d57a6: f3 0f 10 4c 81 10 movss 0x10(%rcx,%rax,4),%xmm1
|
||||||
|
1804d57ac: 48 ff c0 inc %rax
|
||||||
|
1804d57af: f3 0f 5f cb maxss %xmm3,%xmm1
|
||||||
|
1804d57b3: 0f 28 d9 movaps %xmm1,%xmm3
|
||||||
|
1804d57b6: 49 3b c0 cmp %r8,%rax
|
||||||
|
1804d57b9: 7c eb jl 0x1804d57a6
|
||||||
|
1804d57bb: 0f 28 c1 movaps %xmm1,%xmm0
|
||||||
|
1804d57be: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx
|
||||||
|
1804d57c3: 48 33 cc xor %rsp,%rcx
|
||||||
|
1804d57c6: e8 05 b9 c5 00 call 0x1811310d0
|
||||||
|
1804d57cb: 48 83 c4 28 add $0x28,%rsp
|
||||||
|
1804d57cf: c3 ret
|
||||||
|
1804d57d0: 45 85 c0 test %r8d,%r8d
|
||||||
|
1804d57d3: 7f 18 jg 0x1804d57ed
|
||||||
|
1804d57d5: 0f 57 db xorps %xmm3,%xmm3
|
||||||
|
1804d57d8: 0f 28 c3 movaps %xmm3,%xmm0
|
||||||
|
1804d57db: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx
|
||||||
|
1804d57e0: 48 33 cc xor %rsp,%rcx
|
||||||
|
1804d57e3: e8 e8 b8 c5 00 call 0x1811310d0
|
||||||
|
1804d57e8: 48 83 c4 28 add $0x28,%rsp
|
||||||
|
1804d57ec: c3 ret
|
||||||
|
1804d57ed: f3 0f 10 19 movss (%rcx),%xmm3
|
||||||
|
1804d57f1: 41 8d 50 ff lea -0x1(%r8),%edx
|
||||||
|
1804d57f5: 48 83 c1 04 add $0x4,%rcx
|
||||||
|
1804d57f9: 83 fa 04 cmp $0x4,%edx
|
||||||
|
1804d57fc: 7c 3f jl 0x1804d583d
|
||||||
|
1804d57fe: 8d 42 fc lea -0x4(%rdx),%eax
|
||||||
|
1804d5801: c1 e8 02 shr $0x2,%eax
|
||||||
|
1804d5804: ff c0 inc %eax
|
||||||
|
1804d5806: 44 8b c0 mov %eax,%r8d
|
||||||
|
1804d5809: f7 d8 neg %eax
|
||||||
|
1804d580b: 8d 14 82 lea (%rdx,%rax,4),%edx
|
||||||
|
1804d580e: 66 90 xchg %ax,%ax
|
||||||
|
1804d5810: f3 0f 10 01 movss (%rcx),%xmm0
|
||||||
|
1804d5814: f3 0f 10 49 04 movss 0x4(%rcx),%xmm1
|
||||||
|
1804d5819: f3 0f 5f c3 maxss %xmm3,%xmm0
|
||||||
|
1804d581d: f3 0f 10 51 08 movss 0x8(%rcx),%xmm2
|
||||||
|
1804d5822: f3 0f 10 59 0c movss 0xc(%rcx),%xmm3
|
||||||
|
1804d5827: 48 83 c1 10 add $0x10,%rcx
|
||||||
|
1804d582b: f3 0f 5f c8 maxss %xmm0,%xmm1
|
||||||
|
1804d582f: f3 0f 5f d1 maxss %xmm1,%xmm2
|
||||||
|
1804d5833: f3 0f 5f da maxss %xmm2,%xmm3
|
||||||
|
1804d5837: 49 83 e8 01 sub $0x1,%r8
|
||||||
|
1804d583b: 75 d3 jne 0x1804d5810
|
||||||
|
1804d583d: 85 d2 test %edx,%edx
|
||||||
|
1804d583f: 7e 15 jle 0x1804d5856
|
||||||
|
1804d5841: f3 0f 10 09 movss (%rcx),%xmm1
|
||||||
|
1804d5845: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
1804d5849: f3 0f 5f cb maxss %xmm3,%xmm1
|
||||||
|
1804d584d: ff ca dec %edx
|
||||||
|
1804d584f: 0f 28 d9 movaps %xmm1,%xmm3
|
||||||
|
1804d5852: 85 d2 test %edx,%edx
|
||||||
|
1804d5854: 7f eb jg 0x1804d5841
|
||||||
|
1804d5856: 0f 28 c3 movaps %xmm3,%xmm0
|
||||||
|
1804d5859: 48 8b 4c 24 10 mov 0x10(%rsp),%rcx
|
||||||
|
1804d585e: 48 33 cc xor %rsp,%rcx
|
||||||
|
1804d5861: e8 6a b8 c5 00 call 0x1811310d0
|
||||||
|
1804d5866: 48 83 c4 28 add $0x28,%rsp
|
||||||
|
1804d586a: c3 ret
|
||||||
|
1804d586b: cc int3
|
||||||
|
1804d586c: cc int3
|
||||||
|
1804d586d: cc int3
|
||||||
|
1804d586e: cc int3
|
||||||
|
1804d586f: cc int3
|
||||||
|
1804d5870: 48 89 5c 24 20 mov %rbx,0x20(%rsp)
|
||||||
|
1804d5875: 41 56 push %r14
|
||||||
|
1804d5877: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
1804d587b: 8b 59 0c mov 0xc(%rcx),%ebx
|
||||||
|
1804d587e: 4c 8b f1 mov %rcx,%r14
|
||||||
|
1804d5881: 83 eb 01 sub $0x1,%ebx
|
||||||
|
1804d5884: 78 7f js 0x1804d5905
|
||||||
|
1804d5886: 48 89 6c 24 30 mov %rbp,0x30(%rsp)
|
||||||
|
1804d588b: 48 89 74 24 38 mov %rsi,0x38(%rsp)
|
||||||
|
1804d5890: 48 63 c3 movslq %ebx,%rax
|
||||||
|
1804d5893: 48 89 7c 24 40 mov %rdi,0x40(%rsp)
|
||||||
|
1804d5898: 48 8d 3c c5 00 00 00 lea 0x0(,%rax,8),%rdi
|
||||||
|
1804d589f: 00
|
||||||
|
1804d58a0: 48 8b f7 mov %rdi,%rsi
|
||||||
|
1804d58a3: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
1804d58a7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
|
||||||
|
1804d58ae: 00 00
|
||||||
|
1804d58b0: 49 8b 06 mov (%r14),%rax
|
||||||
|
1804d58b3: 48 8b 2c 07 mov (%rdi,%rax,1),%rbp
|
||||||
|
1804d58b7: 48 8d 0c 06 lea (%rsi,%rax,1),%rcx
|
||||||
|
1804d58bb: 41 8b 46 0c mov 0xc(%r14),%eax
|
||||||
|
1804d58bf: 48 8d 51 08 lea 0x8(%rcx),%rdx
|
||||||
|
1804d58c3: 2b c3 sub %ebx,%eax
|
||||||
|
1804d58c5: ff c8 dec %eax
|
||||||
|
1804d58c7: 4c 63 c0 movslq %eax,%r8
|
||||||
|
1804d58ca: 49 c1 e0 03 shl $0x3,%r8
|
||||||
|
1804d58ce: e8 b7 cf c5 00 call 0x18113288a
|
||||||
|
1804d58d3: 41 ff 4e 0c decl 0xc(%r14)
|
||||||
|
1804d58d7: 48 85 ed test %rbp,%rbp
|
||||||
|
1804d58da: 74 0d je 0x1804d58e9
|
||||||
|
1804d58dc: ba 24 00 00 00 mov $0x24,%edx
|
||||||
|
1804d58e1: 48 8b cd mov %rbp,%rcx
|
||||||
|
1804d58e4: e8 0b b8 c5 00 call 0x1811310f4
|
||||||
|
1804d58e9: 48 83 ee 08 sub $0x8,%rsi
|
||||||
|
1804d58ed: 48 83 ef 08 sub $0x8,%rdi
|
||||||
|
1804d58f1: 83 eb 01 sub $0x1,%ebx
|
||||||
|
1804d58f4: 79 ba jns 0x1804d58b0
|
||||||
|
1804d58f6: 48 8b 7c 24 40 mov 0x40(%rsp),%rdi
|
||||||
|
1804d58fb: 48 8b 74 24 38 mov 0x38(%rsp),%rsi
|
||||||
|
1804d5900: 48 8b 6c 24 30 mov 0x30(%rsp),%rbp
|
||||||
|
1804d5905: 49 8b 0e mov (%r14),%rcx
|
||||||
@@ -0,0 +1,316 @@
|
|||||||
|
0000000180529610 <.data>:
|
||||||
|
180529610: 40 57 rex push %rdi
|
||||||
|
180529612: 41 56 push %r14
|
||||||
|
180529614: 41 57 push %r15
|
||||||
|
180529616: 48 83 ec 30 sub $0x30,%rsp
|
||||||
|
18052961a: 48 c7 44 24 20 fe ff movq $0xfffffffffffffffe,0x20(%rsp)
|
||||||
|
180529621: ff ff
|
||||||
|
180529623: 48 89 5c 24 50 mov %rbx,0x50(%rsp)
|
||||||
|
180529628: 48 89 6c 24 58 mov %rbp,0x58(%rsp)
|
||||||
|
18052962d: 48 89 74 24 60 mov %rsi,0x60(%rsp)
|
||||||
|
180529632: 48 8b f9 mov %rcx,%rdi
|
||||||
|
180529635: 45 33 ff xor %r15d,%r15d
|
||||||
|
180529638: 45 8b cf mov %r15d,%r9d
|
||||||
|
18052963b: 44 39 79 30 cmp %r15d,0x30(%rcx)
|
||||||
|
18052963f: 0f 8e c5 00 00 00 jle 0x18052970a
|
||||||
|
180529645: 48 8d 91 d8 01 00 00 lea 0x1d8(%rcx),%rdx
|
||||||
|
18052964c: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
180529650: 4c 89 7a e8 mov %r15,-0x18(%rdx)
|
||||||
|
180529654: 41 8b cf mov %r15d,%ecx
|
||||||
|
180529657: 44 39 3a cmp %r15d,(%rdx)
|
||||||
|
18052965a: 7e 16 jle 0x180529672
|
||||||
|
18052965c: 4d 8b c7 mov %r15,%r8
|
||||||
|
18052965f: 90 nop
|
||||||
|
180529660: 48 8b 42 f8 mov -0x8(%rdx),%rax
|
||||||
|
180529664: 45 89 3c 00 mov %r15d,(%r8,%rax,1)
|
||||||
|
180529668: ff c1 inc %ecx
|
||||||
|
18052966a: 4d 8d 40 04 lea 0x4(%r8),%r8
|
||||||
|
18052966e: 3b 0a cmp (%rdx),%ecx
|
||||||
|
180529670: 7c ee jl 0x180529660
|
||||||
|
180529672: 48 8b 42 f8 mov -0x8(%rdx),%rax
|
||||||
|
180529676: 48 89 42 08 mov %rax,0x8(%rdx)
|
||||||
|
18052967a: 4c 89 7a 68 mov %r15,0x68(%rdx)
|
||||||
|
18052967e: 45 8b c7 mov %r15d,%r8d
|
||||||
|
180529681: 44 39 ba 80 00 00 00 cmp %r15d,0x80(%rdx)
|
||||||
|
180529688: 7e 1e jle 0x1805296a8
|
||||||
|
18052968a: 49 8b cf mov %r15,%rcx
|
||||||
|
18052968d: 0f 1f 00 nopl (%rax)
|
||||||
|
180529690: 48 8b 42 78 mov 0x78(%rdx),%rax
|
||||||
|
180529694: 44 89 3c 01 mov %r15d,(%rcx,%rax,1)
|
||||||
|
180529698: 41 ff c0 inc %r8d
|
||||||
|
18052969b: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
18052969f: 44 3b 82 80 00 00 00 cmp 0x80(%rdx),%r8d
|
||||||
|
1805296a6: 7c e8 jl 0x180529690
|
||||||
|
1805296a8: 48 8b 42 78 mov 0x78(%rdx),%rax
|
||||||
|
1805296ac: 48 89 82 88 00 00 00 mov %rax,0x88(%rdx)
|
||||||
|
1805296b3: 4c 89 ba e8 00 00 00 mov %r15,0xe8(%rdx)
|
||||||
|
1805296ba: 45 8b c7 mov %r15d,%r8d
|
||||||
|
1805296bd: 44 39 ba 00 01 00 00 cmp %r15d,0x100(%rdx)
|
||||||
|
1805296c4: 7e 25 jle 0x1805296eb
|
||||||
|
1805296c6: 49 8b cf mov %r15,%rcx
|
||||||
|
1805296c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1805296d0: 48 8b 82 f8 00 00 00 mov 0xf8(%rdx),%rax
|
||||||
|
1805296d7: 44 89 3c 01 mov %r15d,(%rcx,%rax,1)
|
||||||
|
1805296db: 41 ff c0 inc %r8d
|
||||||
|
1805296de: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
1805296e2: 44 3b 82 00 01 00 00 cmp 0x100(%rdx),%r8d
|
||||||
|
1805296e9: 7c e5 jl 0x1805296d0
|
||||||
|
1805296eb: 48 8b 82 f8 00 00 00 mov 0xf8(%rdx),%rax
|
||||||
|
1805296f2: 48 89 82 08 01 00 00 mov %rax,0x108(%rdx)
|
||||||
|
1805296f9: 41 ff c1 inc %r9d
|
||||||
|
1805296fc: 48 83 c2 40 add $0x40,%rdx
|
||||||
|
180529700: 44 3b 4f 30 cmp 0x30(%rdi),%r9d
|
||||||
|
180529704: 0f 8c 46 ff ff ff jl 0x180529650
|
||||||
|
18052970a: 48 8b cf mov %rdi,%rcx
|
||||||
|
18052970d: e8 1e 4a 00 00 call 0x18052e130
|
||||||
|
180529712: 90 nop
|
||||||
|
180529713: 8b 8f a0 01 00 00 mov 0x1a0(%rdi),%ecx
|
||||||
|
180529719: 8b c1 mov %ecx,%eax
|
||||||
|
18052971b: 99 cltd
|
||||||
|
18052971c: f7 bf ac 01 00 00 idivl 0x1ac(%rdi)
|
||||||
|
180529722: 89 87 c8 03 00 00 mov %eax,0x3c8(%rdi)
|
||||||
|
180529728: 8b 87 b0 01 00 00 mov 0x1b0(%rdi),%eax
|
||||||
|
18052972e: 0f af c1 imul %ecx,%eax
|
||||||
|
180529731: 89 87 a8 01 00 00 mov %eax,0x1a8(%rdi)
|
||||||
|
180529737: 44 8d 34 cd 00 00 00 lea 0x0(,%rcx,8),%r14d
|
||||||
|
18052973e: 00
|
||||||
|
18052973f: 41 8b ef mov %r15d,%ebp
|
||||||
|
180529742: 44 39 7f 30 cmp %r15d,0x30(%rdi)
|
||||||
|
180529746: 0f 8e 6a 01 00 00 jle 0x1805298b6
|
||||||
|
18052974c: 48 8d 9f d8 01 00 00 lea 0x1d8(%rdi),%rbx
|
||||||
|
180529753: b9 00 00 01 00 mov $0x10000,%ecx
|
||||||
|
180529758: e8 23 28 e9 00 call 0x1813bbf80
|
||||||
|
18052975d: 90 nop
|
||||||
|
18052975e: 8b f0 mov %eax,%esi
|
||||||
|
180529760: 39 43 f0 cmp %eax,-0x10(%rbx)
|
||||||
|
180529763: 74 0f je 0x180529774
|
||||||
|
180529765: 48 8d 4b f8 lea -0x8(%rbx),%rcx
|
||||||
|
180529769: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
18052976c: 8b d0 mov %eax,%edx
|
||||||
|
18052976e: e8 1d 4a 00 00 call 0x18052e190
|
||||||
|
180529773: 90 nop
|
||||||
|
180529774: 89 73 f0 mov %esi,-0x10(%rbx)
|
||||||
|
180529777: 4c 89 7b e8 mov %r15,-0x18(%rbx)
|
||||||
|
18052977b: 41 8b d7 mov %r15d,%edx
|
||||||
|
18052977e: 44 39 3b cmp %r15d,(%rbx)
|
||||||
|
180529781: 7e 1f jle 0x1805297a2
|
||||||
|
180529783: 49 8b cf mov %r15,%rcx
|
||||||
|
180529786: 66 66 0f 1f 84 00 00 data16 nopw 0x0(%rax,%rax,1)
|
||||||
|
18052978d: 00 00 00
|
||||||
|
180529790: 48 8b 43 f8 mov -0x8(%rbx),%rax
|
||||||
|
180529794: 44 89 3c 01 mov %r15d,(%rcx,%rax,1)
|
||||||
|
180529798: ff c2 inc %edx
|
||||||
|
18052979a: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
18052979e: 3b 13 cmp (%rbx),%edx
|
||||||
|
1805297a0: 7c ee jl 0x180529790
|
||||||
|
1805297a2: 48 8b 43 f8 mov -0x8(%rbx),%rax
|
||||||
|
1805297a6: 48 89 43 08 mov %rax,0x8(%rbx)
|
||||||
|
1805297aa: 8b 53 f0 mov -0x10(%rbx),%edx
|
||||||
|
1805297ad: 8b 8f a0 01 00 00 mov 0x1a0(%rdi),%ecx
|
||||||
|
1805297b3: 03 4b e8 add -0x18(%rbx),%ecx
|
||||||
|
1805297b6: 8d 42 ff lea -0x1(%rdx),%eax
|
||||||
|
1805297b9: 23 c8 and %eax,%ecx
|
||||||
|
1805297bb: 7d 02 jge 0x1805297bf
|
||||||
|
1805297bd: 03 ca add %edx,%ecx
|
||||||
|
1805297bf: 89 4b e8 mov %ecx,-0x18(%rbx)
|
||||||
|
1805297c2: b9 00 00 01 00 mov $0x10000,%ecx
|
||||||
|
1805297c7: e8 b4 27 e9 00 call 0x1813bbf80
|
||||||
|
1805297cc: 90 nop
|
||||||
|
1805297cd: 8b f0 mov %eax,%esi
|
||||||
|
1805297cf: 39 43 70 cmp %eax,0x70(%rbx)
|
||||||
|
1805297d2: 74 0f je 0x1805297e3
|
||||||
|
1805297d4: 48 8d 4b 78 lea 0x78(%rbx),%rcx
|
||||||
|
1805297d8: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
1805297db: 8b d0 mov %eax,%edx
|
||||||
|
1805297dd: e8 ae 49 00 00 call 0x18052e190
|
||||||
|
1805297e2: 90 nop
|
||||||
|
1805297e3: 89 73 70 mov %esi,0x70(%rbx)
|
||||||
|
1805297e6: 4c 89 7b 68 mov %r15,0x68(%rbx)
|
||||||
|
1805297ea: 41 8b d7 mov %r15d,%edx
|
||||||
|
1805297ed: 44 39 bb 80 00 00 00 cmp %r15d,0x80(%rbx)
|
||||||
|
1805297f4: 7e 20 jle 0x180529816
|
||||||
|
1805297f6: 49 8b cf mov %r15,%rcx
|
||||||
|
1805297f9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
180529800: 48 8b 43 78 mov 0x78(%rbx),%rax
|
||||||
|
180529804: 44 89 3c 01 mov %r15d,(%rcx,%rax,1)
|
||||||
|
180529808: ff c2 inc %edx
|
||||||
|
18052980a: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
18052980e: 3b 93 80 00 00 00 cmp 0x80(%rbx),%edx
|
||||||
|
180529814: 7c ea jl 0x180529800
|
||||||
|
180529816: 48 8b 43 78 mov 0x78(%rbx),%rax
|
||||||
|
18052981a: 48 89 83 88 00 00 00 mov %rax,0x88(%rbx)
|
||||||
|
180529821: 8b 53 70 mov 0x70(%rbx),%edx
|
||||||
|
180529824: 8b 8f a0 01 00 00 mov 0x1a0(%rdi),%ecx
|
||||||
|
18052982a: 03 4b 68 add 0x68(%rbx),%ecx
|
||||||
|
18052982d: 8d 42 ff lea -0x1(%rdx),%eax
|
||||||
|
180529830: 23 c8 and %eax,%ecx
|
||||||
|
180529832: 7d 02 jge 0x180529836
|
||||||
|
180529834: 03 ca add %edx,%ecx
|
||||||
|
180529836: 89 4b 68 mov %ecx,0x68(%rbx)
|
||||||
|
180529839: b9 00 00 01 00 mov $0x10000,%ecx
|
||||||
|
18052983e: e8 3d 27 e9 00 call 0x1813bbf80
|
||||||
|
180529843: 90 nop
|
||||||
|
180529844: 8b f0 mov %eax,%esi
|
||||||
|
180529846: 39 83 f0 00 00 00 cmp %eax,0xf0(%rbx)
|
||||||
|
18052984c: 74 12 je 0x180529860
|
||||||
|
18052984e: 48 8d 8b f8 00 00 00 lea 0xf8(%rbx),%rcx
|
||||||
|
180529855: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
180529858: 8b d0 mov %eax,%edx
|
||||||
|
18052985a: e8 31 49 00 00 call 0x18052e190
|
||||||
|
18052985f: 90 nop
|
||||||
|
180529860: 89 b3 f0 00 00 00 mov %esi,0xf0(%rbx)
|
||||||
|
180529866: 4c 89 bb e8 00 00 00 mov %r15,0xe8(%rbx)
|
||||||
|
18052986d: 41 8b d7 mov %r15d,%edx
|
||||||
|
180529870: 44 39 bb 00 01 00 00 cmp %r15d,0x100(%rbx)
|
||||||
|
180529877: 7e 20 jle 0x180529899
|
||||||
|
180529879: 49 8b cf mov %r15,%rcx
|
||||||
|
18052987c: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
180529880: 48 8b 83 f8 00 00 00 mov 0xf8(%rbx),%rax
|
||||||
|
180529887: 44 89 3c 01 mov %r15d,(%rcx,%rax,1)
|
||||||
|
18052988b: ff c2 inc %edx
|
||||||
|
18052988d: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
180529891: 3b 93 00 01 00 00 cmp 0x100(%rbx),%edx
|
||||||
|
180529897: 7c e7 jl 0x180529880
|
||||||
|
180529899: 48 8b 83 f8 00 00 00 mov 0xf8(%rbx),%rax
|
||||||
|
1805298a0: 48 89 83 08 01 00 00 mov %rax,0x108(%rbx)
|
||||||
|
1805298a7: ff c5 inc %ebp
|
||||||
|
1805298a9: 48 83 c3 40 add $0x40,%rbx
|
||||||
|
1805298ad: 3b 6f 30 cmp 0x30(%rdi),%ebp
|
||||||
|
1805298b0: 0f 8c 9d fe ff ff jl 0x180529753
|
||||||
|
1805298b6: 41 8b f7 mov %r15d,%esi
|
||||||
|
1805298b9: 44 39 7f 30 cmp %r15d,0x30(%rdi)
|
||||||
|
1805298bd: 7e 7e jle 0x18052993d
|
||||||
|
1805298bf: 43 8d 2c 36 lea (%r14,%r14,1),%ebp
|
||||||
|
1805298c3: 48 8d 9f 60 03 00 00 lea 0x360(%rdi),%rbx
|
||||||
|
1805298ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
|
||||||
|
1805298d0: 8b 43 08 mov 0x8(%rbx),%eax
|
||||||
|
1805298d3: 3b c5 cmp %ebp,%eax
|
||||||
|
1805298d5: 74 34 je 0x18052990b
|
||||||
|
1805298d7: 85 c0 test %eax,%eax
|
||||||
|
1805298d9: 7e 0e jle 0x1805298e9
|
||||||
|
1805298db: 48 8b 0b mov (%rbx),%rcx
|
||||||
|
1805298de: 48 85 c9 test %rcx,%rcx
|
||||||
|
1805298e1: 74 06 je 0x1805298e9
|
||||||
|
1805298e3: e8 d8 77 ad ff call 0x1800010c0
|
||||||
|
1805298e8: 90 nop
|
||||||
|
1805298e9: 4c 89 3b mov %r15,(%rbx)
|
||||||
|
1805298ec: 8b cd mov %ebp,%ecx
|
||||||
|
1805298ee: 85 ed test %ebp,%ebp
|
||||||
|
1805298f0: 41 0f 48 cf cmovs %r15d,%ecx
|
||||||
|
1805298f4: 89 4b 08 mov %ecx,0x8(%rbx)
|
||||||
|
1805298f7: 85 c9 test %ecx,%ecx
|
||||||
|
1805298f9: 74 37 je 0x180529932
|
||||||
|
1805298fb: 8d 0c 8d 00 00 00 00 lea 0x0(,%rcx,4),%ecx
|
||||||
|
180529902: e8 79 77 ad ff call 0x180001080
|
||||||
|
180529907: 90 nop
|
||||||
|
180529908: 48 89 03 mov %rax,(%rbx)
|
||||||
|
18052990b: 41 8b d7 mov %r15d,%edx
|
||||||
|
18052990e: 44 39 7b 08 cmp %r15d,0x8(%rbx)
|
||||||
|
180529912: 7e 1e jle 0x180529932
|
||||||
|
180529914: 49 8b cf mov %r15,%rcx
|
||||||
|
180529917: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
|
||||||
|
18052991e: 00 00
|
||||||
|
180529920: 48 8b 03 mov (%rbx),%rax
|
||||||
|
180529923: 44 89 3c 01 mov %r15d,(%rcx,%rax,1)
|
||||||
|
180529927: ff c2 inc %edx
|
||||||
|
180529929: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
18052992d: 3b 53 08 cmp 0x8(%rbx),%edx
|
||||||
|
180529930: 7c ee jl 0x180529920
|
||||||
|
180529932: ff c6 inc %esi
|
||||||
|
180529934: 48 83 c3 10 add $0x10,%rbx
|
||||||
|
180529938: 3b 77 30 cmp 0x30(%rdi),%esi
|
||||||
|
18052993b: 7c 93 jl 0x1805298d0
|
||||||
|
18052993d: 41 8b cf mov %r15d,%ecx
|
||||||
|
180529940: 44 39 7f 30 cmp %r15d,0x30(%rdi)
|
||||||
|
180529944: 7e 2f jle 0x180529975
|
||||||
|
180529946: 48 8d 97 80 03 00 00 lea 0x380(%rdi),%rdx
|
||||||
|
18052994d: 4c 8d 8f 60 03 00 00 lea 0x360(%rdi),%r9
|
||||||
|
180529954: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
180529958: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18052995f: 00
|
||||||
|
180529960: 49 8b 01 mov (%r9),%rax
|
||||||
|
180529963: 48 89 02 mov %rax,(%rdx)
|
||||||
|
180529966: ff c1 inc %ecx
|
||||||
|
180529968: 4d 8d 49 10 lea 0x10(%r9),%r9
|
||||||
|
18052996c: 48 8d 52 08 lea 0x8(%rdx),%rdx
|
||||||
|
180529970: 3b 4f 30 cmp 0x30(%rdi),%ecx
|
||||||
|
180529973: 7c eb jl 0x180529960
|
||||||
|
180529975: 43 8d 14 36 lea (%r14,%r14,1),%edx
|
||||||
|
180529979: 48 8d 8f 90 03 00 00 lea 0x390(%rdi),%rcx
|
||||||
|
180529980: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
180529983: e8 08 48 00 00 call 0x18052e190
|
||||||
|
180529988: 90 nop
|
||||||
|
180529989: 48 8d 4f 60 lea 0x60(%rdi),%rcx
|
||||||
|
18052998d: 45 8b c6 mov %r14d,%r8d
|
||||||
|
180529990: 8b 97 a8 01 00 00 mov 0x1a8(%rdi),%edx
|
||||||
|
180529996: e8 95 42 00 00 call 0x18052dc30
|
||||||
|
18052999b: 90 nop
|
||||||
|
18052999c: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
18052999f: 8b 97 a0 01 00 00 mov 0x1a0(%rdi),%edx
|
||||||
|
1805299a5: 48 8d 8f a0 03 00 00 lea 0x3a0(%rdi),%rcx
|
||||||
|
1805299ac: e8 df 47 00 00 call 0x18052e190
|
||||||
|
1805299b1: 90 nop
|
||||||
|
1805299b2: 41 8b d7 mov %r15d,%edx
|
||||||
|
1805299b5: 44 39 bf a8 03 00 00 cmp %r15d,0x3a8(%rdi)
|
||||||
|
1805299bc: 7e 1c jle 0x1805299da
|
||||||
|
1805299be: 49 8b cf mov %r15,%rcx
|
||||||
|
1805299c1: 48 8b 87 a0 03 00 00 mov 0x3a0(%rdi),%rax
|
||||||
|
1805299c8: 44 89 3c 01 mov %r15d,(%rcx,%rax,1)
|
||||||
|
1805299cc: ff c2 inc %edx
|
||||||
|
1805299ce: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
1805299d2: 3b 97 a8 03 00 00 cmp 0x3a8(%rdi),%edx
|
||||||
|
1805299d8: 7c e7 jl 0x1805299c1
|
||||||
|
1805299da: 41 8b c7 mov %r15d,%eax
|
||||||
|
1805299dd: 44 39 7f 30 cmp %r15d,0x30(%rdi)
|
||||||
|
1805299e1: 7e 1b jle 0x1805299fe
|
||||||
|
1805299e3: 48 8d 8f c0 03 00 00 lea 0x3c0(%rdi),%rcx
|
||||||
|
1805299ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
|
||||||
|
1805299f0: 44 89 39 mov %r15d,(%rcx)
|
||||||
|
1805299f3: ff c0 inc %eax
|
||||||
|
1805299f5: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
1805299f9: 3b 47 30 cmp 0x30(%rdi),%eax
|
||||||
|
1805299fc: 7c f2 jl 0x1805299f0
|
||||||
|
1805299fe: 48 8b cf mov %rdi,%rcx
|
||||||
|
180529a01: e8 5a 45 00 00 call 0x18052df60
|
||||||
|
180529a06: 90 nop
|
||||||
|
180529a07: 44 38 bf b6 01 00 00 cmp %r15b,0x1b6(%rdi)
|
||||||
|
180529a0e: 74 17 je 0x180529a27
|
||||||
|
180529a10: 44 88 bf b6 01 00 00 mov %r15b,0x1b6(%rdi)
|
||||||
|
180529a17: 48 8b 07 mov (%rdi),%rax
|
||||||
|
180529a1a: 48 8b 50 50 mov 0x50(%rax),%rdx
|
||||||
|
180529a1e: 48 8d 05 8b 7a f4 ff lea -0xb8575(%rip),%rax # 0x1804714b0
|
||||||
|
180529a25: eb 3e jmp 0x180529a65
|
||||||
|
180529a27: 44 38 bf b7 01 00 00 cmp %r15b,0x1b7(%rdi)
|
||||||
|
180529a2e: 74 17 je 0x180529a47
|
||||||
|
180529a30: 44 88 bf b7 01 00 00 mov %r15b,0x1b7(%rdi)
|
||||||
|
180529a37: 48 8b 07 mov (%rdi),%rax
|
||||||
|
180529a3a: 48 8b 50 58 mov 0x58(%rax),%rdx
|
||||||
|
180529a3e: 48 8d 05 6b 7a f4 ff lea -0xb8595(%rip),%rax # 0x1804714b0
|
||||||
|
180529a45: eb 1e jmp 0x180529a65
|
||||||
|
180529a47: 44 38 bf b8 01 00 00 cmp %r15b,0x1b8(%rdi)
|
||||||
|
180529a4e: 74 1a je 0x180529a6a
|
||||||
|
180529a50: 44 88 bf b8 01 00 00 mov %r15b,0x1b8(%rdi)
|
||||||
|
180529a57: 48 8b 07 mov (%rdi),%rax
|
||||||
|
180529a5a: 48 8b 50 48 mov 0x48(%rax),%rdx
|
||||||
|
180529a5e: 48 8d 05 4b 7a f4 ff lea -0xb85b5(%rip),%rax # 0x1804714b0
|
||||||
|
180529a65: 48 3b d0 cmp %rax,%rdx
|
||||||
|
180529a68: 75 20 jne 0x180529a8a
|
||||||
|
180529a6a: 44 88 bf cc 03 00 00 mov %r15b,0x3cc(%rdi)
|
||||||
|
180529a71: 48 8b 5c 24 50 mov 0x50(%rsp),%rbx
|
||||||
|
180529a76: 48 8b 6c 24 58 mov 0x58(%rsp),%rbp
|
||||||
|
180529a7b: 48 8b 74 24 60 mov 0x60(%rsp),%rsi
|
||||||
|
180529a80: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
180529a84: 41 5f pop %r15
|
||||||
|
180529a86: 41 5e pop %r14
|
||||||
|
180529a88: 5f pop %rdi
|
||||||
|
180529a89: c3 ret
|
||||||
|
180529a8a: 48 8b cf mov %rdi,%rcx
|
||||||
|
180529a8d: ff d2 call *%rdx
|
||||||
|
180529a8f: 90 nop
|
||||||
|
180529a90: eb d8 jmp 0x180529a6a
|
||||||
|
180529a92: cc int3
|
||||||
|
180529a93: cc int3
|
||||||
|
180529a94: cc int3
|
||||||
|
180529a95: cc int3
|
||||||
|
180529a96: cc int3
|
||||||
|
180529a97: cc int3
|
||||||
@@ -0,0 +1,252 @@
|
|||||||
|
0000000180529c60 <.data>:
|
||||||
|
180529c60: 48 8b c4 mov %rsp,%rax
|
||||||
|
180529c63: 57 push %rdi
|
||||||
|
180529c64: 48 83 ec 60 sub $0x60,%rsp
|
||||||
|
180529c68: f0 0f ba a9 dc 04 24 lock btsl $0x0,0x2404dc(%rcx)
|
||||||
|
180529c6f: 00 00
|
||||||
|
180529c71: 4c 8b ca mov %rdx,%r9
|
||||||
|
180529c74: 48 8b f9 mov %rcx,%rdi
|
||||||
|
180529c77: 0f 82 5f 02 00 00 jb 0x180529edc
|
||||||
|
180529c7d: 48 89 58 08 mov %rbx,0x8(%rax)
|
||||||
|
180529c81: 48 89 70 18 mov %rsi,0x18(%rax)
|
||||||
|
180529c85: 4c 89 60 f0 mov %r12,-0x10(%rax)
|
||||||
|
180529c89: 4c 63 a4 24 90 00 00 movslq 0x90(%rsp),%r12
|
||||||
|
180529c90: 00
|
||||||
|
180529c91: 4c 89 68 e8 mov %r13,-0x18(%rax)
|
||||||
|
180529c95: 4d 03 e4 add %r12,%r12
|
||||||
|
180529c98: 4c 89 70 e0 mov %r14,-0x20(%rax)
|
||||||
|
180529c9c: 0f 29 70 c8 movaps %xmm6,-0x38(%rax)
|
||||||
|
180529ca0: 8b 41 64 mov 0x64(%rcx),%eax
|
||||||
|
180529ca3: 4a 8b 8c e1 78 06 54 mov 0x540678(%rcx,%r12,8),%rcx
|
||||||
|
180529caa: 00
|
||||||
|
180529cab: 99 cltd
|
||||||
|
180529cac: 2b c2 sub %edx,%eax
|
||||||
|
180529cae: 49 8b d1 mov %r9,%rdx
|
||||||
|
180529cb1: d1 f8 sar $1,%eax
|
||||||
|
180529cb3: 44 8d 68 01 lea 0x1(%rax),%r13d
|
||||||
|
180529cb7: 45 8b c5 mov %r13d,%r8d
|
||||||
|
180529cba: e8 11 b9 00 00 call 0x1805355d0
|
||||||
|
180529cbf: 33 f6 xor %esi,%esi
|
||||||
|
180529cc1: 44 8b f6 mov %esi,%r14d
|
||||||
|
180529cc4: 39 b7 b0 01 00 00 cmp %esi,0x1b0(%rdi)
|
||||||
|
180529cca: 0f 8e de 00 00 00 jle 0x180529dae
|
||||||
|
180529cd0: f3 0f 10 35 b4 a0 f9 movss 0x1f9a0b4(%rip),%xmm6 # 0x1824c3d8c
|
||||||
|
180529cd7: 01
|
||||||
|
180529cd8: 48 89 6c 24 78 mov %rbp,0x78(%rsp)
|
||||||
|
180529cdd: 4c 89 7c 24 40 mov %r15,0x40(%rsp)
|
||||||
|
180529ce2: 0f 29 7c 24 20 movaps %xmm7,0x20(%rsp)
|
||||||
|
180529ce7: f2 0f 10 3d 61 a3 f9 movsd 0x1f9a361(%rip),%xmm7 # 0x1824c4050
|
||||||
|
180529cee: 01
|
||||||
|
180529cef: 90 nop
|
||||||
|
180529cf0: 4a 8b ac e7 78 06 54 mov 0x540678(%rdi,%r12,8),%rbp
|
||||||
|
180529cf7: 00
|
||||||
|
180529cf8: 45 8d 45 ff lea -0x1(%r13),%r8d
|
||||||
|
180529cfc: 48 8b cd mov %rbp,%rcx
|
||||||
|
180529cff: 48 8d 75 04 lea 0x4(%rbp),%rsi
|
||||||
|
180529d03: 48 8b d6 mov %rsi,%rdx
|
||||||
|
180529d06: e8 75 63 00 00 call 0x180530080
|
||||||
|
180529d0b: 45 8d 45 ff lea -0x1(%r13),%r8d
|
||||||
|
180529d0f: 0f 28 ce movaps %xmm6,%xmm1
|
||||||
|
180529d12: 48 8b cd mov %rbp,%rcx
|
||||||
|
180529d15: e8 06 3c 00 00 call 0x18052d920
|
||||||
|
180529d1a: 4c 8b bf f8 06 54 00 mov 0x5406f8(%rdi),%r15
|
||||||
|
180529d21: 48 8d 15 90 70 12 02 lea 0x2127090(%rip),%rdx # 0x182650db8
|
||||||
|
180529d28: 48 8d 0d 89 70 12 02 lea 0x2127089(%rip),%rcx # 0x182650db8
|
||||||
|
180529d2f: ff 15 d3 12 68 01 call *0x16812d3(%rip) # 0x181bab008
|
||||||
|
180529d35: 45 8d 4d ff lea -0x1(%r13),%r9d
|
||||||
|
180529d39: 4d 8b c7 mov %r15,%r8
|
||||||
|
180529d3c: 48 8b d5 mov %rbp,%rdx
|
||||||
|
180529d3f: 48 8b ce mov %rsi,%rcx
|
||||||
|
180529d42: 85 c0 test %eax,%eax
|
||||||
|
180529d44: 75 07 jne 0x180529d4d
|
||||||
|
180529d46: e8 a5 83 ad ff call 0x1800020f0
|
||||||
|
180529d4b: eb 05 jmp 0x180529d52
|
||||||
|
180529d4d: e8 fe 7a ad ff call 0x180001850
|
||||||
|
180529d52: 48 8b af f8 06 54 00 mov 0x5406f8(%rdi),%rbp
|
||||||
|
180529d59: 48 8d 15 58 70 12 02 lea 0x2127058(%rip),%rdx # 0x182650db8
|
||||||
|
180529d60: 48 8d 0d 51 70 12 02 lea 0x2127051(%rip),%rcx # 0x182650db8
|
||||||
|
180529d67: ff 15 9b 12 68 01 call *0x168129b(%rip) # 0x181bab008
|
||||||
|
180529d6d: 45 8d 4d ff lea -0x1(%r13),%r9d
|
||||||
|
180529d71: 4c 8b c6 mov %rsi,%r8
|
||||||
|
180529d74: 48 8b cd mov %rbp,%rcx
|
||||||
|
180529d77: 85 c0 test %eax,%eax
|
||||||
|
180529d79: 75 0a jne 0x180529d85
|
||||||
|
180529d7b: 0f 28 ce movaps %xmm6,%xmm1
|
||||||
|
180529d7e: e8 7d 7c ad ff call 0x180001a00
|
||||||
|
180529d83: eb 08 jmp 0x180529d8d
|
||||||
|
180529d85: 0f 28 cf movaps %xmm7,%xmm1
|
||||||
|
180529d88: e8 53 7e ad ff call 0x180001be0
|
||||||
|
180529d8d: 41 ff c6 inc %r14d
|
||||||
|
180529d90: 44 3b b7 b0 01 00 00 cmp 0x1b0(%rdi),%r14d
|
||||||
|
180529d97: 0f 8c 53 ff ff ff jl 0x180529cf0
|
||||||
|
180529d9d: 0f 28 7c 24 20 movaps 0x20(%rsp),%xmm7
|
||||||
|
180529da2: 33 f6 xor %esi,%esi
|
||||||
|
180529da4: 4c 8b 7c 24 40 mov 0x40(%rsp),%r15
|
||||||
|
180529da9: 48 8b 6c 24 78 mov 0x78(%rsp),%rbp
|
||||||
|
180529dae: 4a 8b 9c e7 78 06 54 mov 0x540678(%rdi,%r12,8),%rbx
|
||||||
|
180529db5: 00
|
||||||
|
180529db6: 41 8b d5 mov %r13d,%edx
|
||||||
|
180529db9: 48 8b cb mov %rbx,%rcx
|
||||||
|
180529dbc: e8 ef b8 fa ff call 0x1804d56b0
|
||||||
|
180529dc1: 0f 28 f0 movaps %xmm0,%xmm6
|
||||||
|
180529dc4: f3 0f 10 87 7c 08 54 movss 0x54087c(%rdi),%xmm0
|
||||||
|
180529dcb: 00
|
||||||
|
180529dcc: f3 0f 59 05 a4 a6 f9 mulss 0x1f9a6a4(%rip),%xmm0 # 0x1824c4478
|
||||||
|
180529dd3: 01
|
||||||
|
180529dd4: f3 0f 5c 05 f4 a6 f9 subss 0x1f9a6f4(%rip),%xmm0 # 0x1824c44d0
|
||||||
|
180529ddb: 01
|
||||||
|
180529ddc: f3 0f 59 05 f0 9e f9 mulss 0x1f99ef0(%rip),%xmm0 # 0x1824c3cd4
|
||||||
|
180529de3: 01
|
||||||
|
180529de4: e8 c3 ae 4e 01 call 0x181a14cac
|
||||||
|
180529de9: f3 0f 59 c6 mulss %xmm6,%xmm0
|
||||||
|
180529ded: 45 8b cd mov %r13d,%r9d
|
||||||
|
180529df0: 48 8b d3 mov %rbx,%rdx
|
||||||
|
180529df3: 48 8b cb mov %rbx,%rcx
|
||||||
|
180529df6: 0f 28 d0 movaps %xmm0,%xmm2
|
||||||
|
180529df9: e8 a2 3a 00 00 call 0x18052d8a0
|
||||||
|
180529dfe: f3 0f 10 57 24 movss 0x24(%rdi),%xmm2
|
||||||
|
180529e03: 66 0f 6e 87 a0 01 00 movd 0x1a0(%rdi),%xmm0
|
||||||
|
180529e0a: 00
|
||||||
|
180529e0b: 66 0f 6e 8f ac 01 00 movd 0x1ac(%rdi),%xmm1
|
||||||
|
180529e12: 00
|
||||||
|
180529e13: 0f 5b c0 cvtdq2ps %xmm0,%xmm0
|
||||||
|
180529e16: 0f 5b c9 cvtdq2ps %xmm1,%xmm1
|
||||||
|
180529e19: f3 0f 5e d0 divss %xmm0,%xmm2
|
||||||
|
180529e1d: f2 0f 10 05 b3 a4 f9 movsd 0x1f9a4b3(%rip),%xmm0 # 0x1824c42d8
|
||||||
|
180529e24: 01
|
||||||
|
180529e25: f3 0f 59 d1 mulss %xmm1,%xmm2
|
||||||
|
180529e29: f2 0f 10 0d c7 9e f9 movsd 0x1f99ec7(%rip),%xmm1 # 0x1824c3cf8
|
||||||
|
180529e30: 01
|
||||||
|
180529e31: 0f 5a f2 cvtps2pd %xmm2,%xmm6
|
||||||
|
180529e34: f2 0f 59 35 f4 9f f9 mulsd 0x1f99ff4(%rip),%xmm6 # 0x1824c3e30
|
||||||
|
180529e3b: 01
|
||||||
|
180529e3c: ff 15 ae 15 68 01 call *0x16815ae(%rip) # 0x181bab3f0
|
||||||
|
180529e42: f2 0f 10 0d f6 a2 f9 movsd 0x1f9a2f6(%rip),%xmm1 # 0x1824c4140
|
||||||
|
180529e49: 01
|
||||||
|
180529e4a: f2 0f 59 c6 mulsd %xmm6,%xmm0
|
||||||
|
180529e4e: f2 0f 5e c8 divsd %xmm0,%xmm1
|
||||||
|
180529e52: f2 0f 10 05 16 a1 f9 movsd 0x1f9a116(%rip),%xmm0 # 0x1824c3f70
|
||||||
|
180529e59: 01
|
||||||
|
180529e5a: e8 77 ae 4e 01 call 0x181a14cd6
|
||||||
|
180529e5f: 4a 8b 8c e7 a8 07 54 mov 0x5407a8(%rdi,%r12,8),%rcx
|
||||||
|
180529e66: 00
|
||||||
|
180529e67: 0f 57 f6 xorps %xmm6,%xmm6
|
||||||
|
180529e6a: f2 0f 5a f0 cvtsd2ss %xmm0,%xmm6
|
||||||
|
180529e6e: 45 8b c5 mov %r13d,%r8d
|
||||||
|
180529e71: 0f 28 ce movaps %xmm6,%xmm1
|
||||||
|
180529e74: e8 a7 3a 00 00 call 0x18052d920
|
||||||
|
180529e79: f3 0f 10 15 23 a0 f9 movss 0x1f9a023(%rip),%xmm2 # 0x1824c3ea4
|
||||||
|
180529e80: 01
|
||||||
|
180529e81: 45 8b cd mov %r13d,%r9d
|
||||||
|
180529e84: 4a 8b 94 e7 78 06 54 mov 0x540678(%rdi,%r12,8),%rdx
|
||||||
|
180529e8b: 00
|
||||||
|
180529e8c: f3 0f 5c d6 subss %xmm6,%xmm2
|
||||||
|
180529e90: 4a 8b 8c e7 a8 07 54 mov 0x5407a8(%rdi,%r12,8),%rcx
|
||||||
|
180529e97: 00
|
||||||
|
180529e98: e8 43 3c 00 00 call 0x18052dae0
|
||||||
|
180529e9d: 4a 8b 94 e7 a8 07 54 mov 0x5407a8(%rdi,%r12,8),%rdx
|
||||||
|
180529ea4: 00
|
||||||
|
180529ea5: 45 8b c5 mov %r13d,%r8d
|
||||||
|
180529ea8: 4a 8b 8c e7 78 06 54 mov 0x540678(%rdi,%r12,8),%rcx
|
||||||
|
180529eaf: 00
|
||||||
|
180529eb0: e8 0b 3d 00 00 call 0x18052dbc0
|
||||||
|
180529eb5: 87 b7 dc 04 24 00 xchg %esi,0x2404dc(%rdi)
|
||||||
|
180529ebb: 48 8b b4 24 80 00 00 mov 0x80(%rsp),%rsi
|
||||||
|
180529ec2: 00
|
||||||
|
180529ec3: 0f 28 74 24 30 movaps 0x30(%rsp),%xmm6
|
||||||
|
180529ec8: 4c 8b 74 24 48 mov 0x48(%rsp),%r14
|
||||||
|
180529ecd: 4c 8b 6c 24 50 mov 0x50(%rsp),%r13
|
||||||
|
180529ed2: 4c 8b 64 24 58 mov 0x58(%rsp),%r12
|
||||||
|
180529ed7: 48 8b 5c 24 70 mov 0x70(%rsp),%rbx
|
||||||
|
180529edc: 48 83 c4 60 add $0x60,%rsp
|
||||||
|
180529ee0: 5f pop %rdi
|
||||||
|
180529ee1: c3 ret
|
||||||
|
180529ee2: cc int3
|
||||||
|
180529ee3: cc int3
|
||||||
|
180529ee4: cc int3
|
||||||
|
180529ee5: cc int3
|
||||||
|
180529ee6: cc int3
|
||||||
|
180529ee7: cc int3
|
||||||
|
180529ee8: cc int3
|
||||||
|
180529ee9: cc int3
|
||||||
|
180529eea: cc int3
|
||||||
|
180529eeb: cc int3
|
||||||
|
180529eec: cc int3
|
||||||
|
180529eed: cc int3
|
||||||
|
180529eee: cc int3
|
||||||
|
180529eef: cc int3
|
||||||
|
180529ef0: 40 53 rex push %rbx
|
||||||
|
180529ef2: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
180529ef6: f0 0f ba a9 dc 04 24 lock btsl $0x0,0x2404dc(%rcx)
|
||||||
|
180529efd: 00 00
|
||||||
|
180529eff: 48 8b d9 mov %rcx,%rbx
|
||||||
|
180529f02: 0f 82 c5 00 00 00 jb 0x180529fcd
|
||||||
|
180529f08: 8b 81 a8 08 54 00 mov 0x5408a8(%rcx),%eax
|
||||||
|
180529f0e: 85 c0 test %eax,%eax
|
||||||
|
180529f10: 0f 8f a7 00 00 00 jg 0x180529fbd
|
||||||
|
180529f16: 8b 81 ac 01 00 00 mov 0x1ac(%rcx),%eax
|
||||||
|
180529f1c: 99 cltd
|
||||||
|
180529f1d: 83 e2 03 and $0x3,%edx
|
||||||
|
180529f20: 03 c2 add %edx,%eax
|
||||||
|
180529f22: c1 f8 02 sar $0x2,%eax
|
||||||
|
180529f25: 80 b9 9c 08 54 00 00 cmpb $0x0,0x54089c(%rcx)
|
||||||
|
180529f2c: 89 81 a8 08 54 00 mov %eax,0x5408a8(%rcx)
|
||||||
|
180529f32: 74 15 je 0x180529f49
|
||||||
|
180529f34: 33 c0 xor %eax,%eax
|
||||||
|
180529f36: c6 81 9c 08 54 00 00 movb $0x0,0x54089c(%rcx)
|
||||||
|
180529f3d: 87 83 dc 04 24 00 xchg %eax,0x2404dc(%rbx)
|
||||||
|
180529f43: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
180529f47: 5b pop %rbx
|
||||||
|
180529f48: c3 ret
|
||||||
|
180529f49: 80 b9 9d 08 54 00 00 cmpb $0x0,0x54089d(%rcx)
|
||||||
|
180529f50: 75 4f jne 0x180529fa1
|
||||||
|
180529f52: 80 b9 9e 08 54 00 00 cmpb $0x0,0x54089e(%rcx)
|
||||||
|
180529f59: 75 46 jne 0x180529fa1
|
||||||
|
180529f5b: 80 b9 9f 08 54 00 00 cmpb $0x0,0x54089f(%rcx)
|
||||||
|
180529f62: 74 1a je 0x180529f7e
|
||||||
|
180529f64: e8 c7 6d 00 00 call 0x180530d30
|
||||||
|
180529f69: 33 c0 xor %eax,%eax
|
||||||
|
180529f6b: c6 83 9f 08 54 00 00 movb $0x0,0x54089f(%rbx)
|
||||||
|
180529f72: 87 83 dc 04 24 00 xchg %eax,0x2404dc(%rbx)
|
||||||
|
180529f78: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
180529f7c: 5b pop %rbx
|
||||||
|
180529f7d: c3 ret
|
||||||
|
180529f7e: 80 b9 a0 08 54 00 00 cmpb $0x0,0x5408a0(%rcx)
|
||||||
|
180529f85: 74 3e je 0x180529fc5
|
||||||
|
180529f87: e8 a4 6d 00 00 call 0x180530d30
|
||||||
|
180529f8c: 33 c0 xor %eax,%eax
|
||||||
|
180529f8e: c6 83 a0 08 54 00 00 movb $0x0,0x5408a0(%rbx)
|
||||||
|
180529f95: 87 83 dc 04 24 00 xchg %eax,0x2404dc(%rbx)
|
||||||
|
180529f9b: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
180529f9f: 5b pop %rbx
|
||||||
|
180529fa0: c3 ret
|
||||||
|
180529fa1: e8 ba 6b 00 00 call 0x180530b60
|
||||||
|
180529fa6: 33 c0 xor %eax,%eax
|
||||||
|
180529fa8: 66 c7 83 9d 08 54 00 movw $0x0,0x54089d(%rbx)
|
||||||
|
180529faf: 00 00
|
||||||
|
180529fb1: 87 83 dc 04 24 00 xchg %eax,0x2404dc(%rbx)
|
||||||
|
180529fb7: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
180529fbb: 5b pop %rbx
|
||||||
|
180529fbc: c3 ret
|
||||||
|
180529fbd: ff c8 dec %eax
|
||||||
|
180529fbf: 89 81 a8 08 54 00 mov %eax,0x5408a8(%rcx)
|
||||||
|
180529fc5: 33 c0 xor %eax,%eax
|
||||||
|
180529fc7: 87 83 dc 04 24 00 xchg %eax,0x2404dc(%rbx)
|
||||||
|
180529fcd: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
180529fd1: 5b pop %rbx
|
||||||
|
180529fd2: c3 ret
|
||||||
|
180529fd3: cc int3
|
||||||
|
180529fd4: cc int3
|
||||||
|
180529fd5: cc int3
|
||||||
|
180529fd6: cc int3
|
||||||
|
180529fd7: cc int3
|
||||||
|
180529fd8: cc int3
|
||||||
|
180529fd9: cc int3
|
||||||
|
180529fda: cc int3
|
||||||
|
180529fdb: cc int3
|
||||||
|
180529fdc: cc int3
|
||||||
|
180529fdd: cc int3
|
||||||
|
180529fde: cc int3
|
||||||
|
180529fdf: cc int3
|
||||||
|
180529fe0: 48 8b c4 mov %rsp,%rax
|
||||||
|
180529fe3: 44 rex.R
|
||||||
@@ -0,0 +1,246 @@
|
|||||||
|
|
||||||
|
soothe_mem.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
000000000052b570 <.data+0x52b570>:
|
||||||
|
52b570: 4a 8b 04 e0 mov (%rax,%r12,8),%rax
|
||||||
|
52b574: 48 89 84 24 30 01 00 mov %rax,0x130(%rsp)
|
||||||
|
52b57b: 00
|
||||||
|
52b57c: 74 25 je 0x52b5a3
|
||||||
|
52b57e: ff 15 84 fa 67 01 call *0x167fa84(%rip) # 0x1bab008
|
||||||
|
52b584: 44 8b c6 mov %esi,%r8d
|
||||||
|
52b587: 48 8b d3 mov %rbx,%rdx
|
||||||
|
52b58a: 85 c0 test %eax,%eax
|
||||||
|
52b58c: 75 0b jne 0x52b599
|
||||||
|
52b58e: 41 0f 28 c0 movaps %xmm8,%xmm0
|
||||||
|
52b592: e8 99 6a ad ff call 0x2030
|
||||||
|
52b597: eb 3c jmp 0x52b5d5
|
||||||
|
52b599: 0f 57 c0 xorps %xmm0,%xmm0
|
||||||
|
52b59c: f3 41 0f 5a c0 cvtss2sd %xmm8,%xmm0
|
||||||
|
52b5a1: eb 2d jmp 0x52b5d0
|
||||||
|
52b5a3: 41 0f 28 f0 movaps %xmm8,%xmm6
|
||||||
|
52b5a7: f3 0f 59 b7 88 08 54 mulss 0x540888(%rdi),%xmm6
|
||||||
|
52b5ae: 00
|
||||||
|
52b5af: ff 15 53 fa 67 01 call *0x167fa53(%rip) # 0x1bab008
|
||||||
|
52b5b5: 44 8b c6 mov %esi,%r8d
|
||||||
|
52b5b8: 48 8b d3 mov %rbx,%rdx
|
||||||
|
52b5bb: 85 c0 test %eax,%eax
|
||||||
|
52b5bd: 75 0a jne 0x52b5c9
|
||||||
|
52b5bf: 0f 28 c6 movaps %xmm6,%xmm0
|
||||||
|
52b5c2: e8 69 6a ad ff call 0x2030
|
||||||
|
52b5c7: eb 0c jmp 0x52b5d5
|
||||||
|
52b5c9: 0f 57 c0 xorps %xmm0,%xmm0
|
||||||
|
52b5cc: f3 0f 5a c6 cvtss2sd %xmm6,%xmm0
|
||||||
|
52b5d0: e8 5b 67 ad ff call 0x1d30
|
||||||
|
52b5d5: 49 8b 1f mov (%r15),%rbx
|
||||||
|
52b5d8: 48 8d 15 d9 57 12 02 lea 0x21257d9(%rip),%rdx # 0x2650db8
|
||||||
|
52b5df: 48 8d 0d d2 57 12 02 lea 0x21257d2(%rip),%rcx # 0x2650db8
|
||||||
|
52b5e6: ff 15 1c fa 67 01 call *0x167fa1c(%rip) # 0x1bab008
|
||||||
|
52b5ec: 44 8b c6 mov %esi,%r8d
|
||||||
|
52b5ef: 48 8b d3 mov %rbx,%rdx
|
||||||
|
52b5f2: 85 c0 test %eax,%eax
|
||||||
|
52b5f4: 75 0a jne 0x52b600
|
||||||
|
52b5f6: 0f 28 c7 movaps %xmm7,%xmm0
|
||||||
|
52b5f9: e8 72 6c ad ff call 0x2270
|
||||||
|
52b5fe: eb 0c jmp 0x52b60c
|
||||||
|
52b600: 0f 57 c0 xorps %xmm0,%xmm0
|
||||||
|
52b603: f3 0f 5a c7 cvtss2sd %xmm7,%xmm0
|
||||||
|
52b607: e8 94 6c ad ff call 0x22a0
|
||||||
|
52b60c: 8b 87 34 05 54 00 mov 0x540534(%rdi),%eax
|
||||||
|
52b612: 48 8b 8f 28 06 54 00 mov 0x540628(%rdi),%rcx
|
||||||
|
52b619: 99 cltd
|
||||||
|
52b61a: 4c 8b b7 68 06 54 00 mov 0x540668(%rdi),%r14
|
||||||
|
52b621: 2b c2 sub %edx,%eax
|
||||||
|
52b623: 49 8b 17 mov (%r15),%rdx
|
||||||
|
52b626: d1 f8 sar $1,%eax
|
||||||
|
52b628: 48 63 e8 movslq %eax,%rbp
|
||||||
|
52b62b: 44 8d 45 01 lea 0x1(%rbp),%r8d
|
||||||
|
52b62f: e8 3c a4 00 00 call 0x535a70
|
||||||
|
52b634: 48 8b 8f 28 06 54 00 mov 0x540628(%rdi),%rcx
|
||||||
|
52b63b: 44 8d 4d 01 lea 0x1(%rbp),%r9d
|
||||||
|
52b63f: 4d 8b c6 mov %r14,%r8
|
||||||
|
52b642: 33 d2 xor %edx,%edx
|
||||||
|
52b644: e8 c7 6b ad ff call 0x2210
|
||||||
|
52b649: 48 8d 15 68 57 12 02 lea 0x2125768(%rip),%rdx # 0x2650db8
|
||||||
|
52b650: 48 8d 0d 61 57 12 02 lea 0x2125761(%rip),%rcx # 0x2650db8
|
||||||
|
52b657: ff 15 ab f9 67 01 call *0x167f9ab(%rip) # 0x1bab008
|
||||||
|
52b65d: 4c 8b 87 98 05 54 00 mov 0x540598(%rdi),%r8
|
||||||
|
52b664: 49 8b ce mov %r14,%rcx
|
||||||
|
52b667: 85 c0 test %eax,%eax
|
||||||
|
52b669: 75 0e jne 0x52b679
|
||||||
|
52b66b: 48 8b 97 48 05 54 00 mov 0x540548(%rdi),%rdx
|
||||||
|
52b672: e8 09 6b ad ff call 0x2180
|
||||||
|
52b677: eb 0c jmp 0x52b685
|
||||||
|
52b679: 48 8b 97 50 05 54 00 mov 0x540550(%rdi),%rdx
|
||||||
|
52b680: e8 2b 65 ad ff call 0x1bb0
|
||||||
|
52b685: 48 63 87 34 05 54 00 movslq 0x540534(%rdi),%rax
|
||||||
|
52b68c: 44 8d 45 ff lea -0x1(%rbp),%r8d
|
||||||
|
52b690: 33 c9 xor %ecx,%ecx
|
||||||
|
52b692: 41 0f 28 cd movaps %xmm13,%xmm1
|
||||||
|
52b696: 41 89 0c 86 mov %ecx,(%r14,%rax,4)
|
||||||
|
52b69a: 49 8d 4e 04 lea 0x4(%r14),%rcx
|
||||||
|
52b69e: e8 7d 22 00 00 call 0x52d920
|
||||||
|
52b6a3: 49 8d 4e 04 lea 0x4(%r14),%rcx
|
||||||
|
52b6a7: 41 0f 28 c9 movaps %xmm9,%xmm1
|
||||||
|
52b6ab: 48 8d 0c a9 lea (%rcx,%rbp,4),%rcx
|
||||||
|
52b6af: 44 8d 45 ff lea -0x1(%rbp),%r8d
|
||||||
|
52b6b3: e8 98 24 00 00 call 0x52db50
|
||||||
|
52b6b8: 48 8d 15 f9 56 12 02 lea 0x21256f9(%rip),%rdx # 0x2650db8
|
||||||
|
52b6bf: 48 8d 0d f2 56 12 02 lea 0x21256f2(%rip),%rcx # 0x2650db8
|
||||||
|
52b6c6: ff 15 3c f9 67 01 call *0x167f93c(%rip) # 0x1bab008
|
||||||
|
52b6cc: 4c 8b 87 98 05 54 00 mov 0x540598(%rdi),%r8
|
||||||
|
52b6d3: 49 8b ce mov %r14,%rcx
|
||||||
|
52b6d6: 85 c0 test %eax,%eax
|
||||||
|
52b6d8: 75 0e jne 0x52b6e8
|
||||||
|
52b6da: 48 8b 97 48 05 54 00 mov 0x540548(%rdi),%rdx
|
||||||
|
52b6e1: e8 aa 63 ad ff call 0x1a90
|
||||||
|
52b6e6: eb 0c jmp 0x52b6f4
|
||||||
|
52b6e8: 48 8b 97 50 05 54 00 mov 0x540550(%rdi),%rdx
|
||||||
|
52b6ef: e8 dc 62 ad ff call 0x19d0
|
||||||
|
52b6f4: 48 8d 15 bd 56 12 02 lea 0x21256bd(%rip),%rdx # 0x2650db8
|
||||||
|
52b6fb: 48 8d 0d b6 56 12 02 lea 0x21256b6(%rip),%rcx # 0x2650db8
|
||||||
|
52b702: ff 15 00 f9 67 01 call *0x167f900(%rip) # 0x1bab008
|
||||||
|
52b708: 44 8d 45 01 lea 0x1(%rbp),%r8d
|
||||||
|
52b70c: 49 8b d6 mov %r14,%rdx
|
||||||
|
52b70f: 49 8b ce mov %r14,%rcx
|
||||||
|
52b712: 85 c0 test %eax,%eax
|
||||||
|
52b714: 75 07 jne 0x52b71d
|
||||||
|
52b716: e8 15 54 c1 ff call 0x140b30
|
||||||
|
52b71b: eb 05 jmp 0x52b722
|
||||||
|
52b71d: e8 7e 53 c1 ff call 0x140aa0
|
||||||
|
52b722: 48 8d 15 8f 56 12 02 lea 0x212568f(%rip),%rdx # 0x2650db8
|
||||||
|
52b729: 48 8d 0d 88 56 12 02 lea 0x2125688(%rip),%rcx # 0x2650db8
|
||||||
|
52b730: ff 15 d2 f8 67 01 call *0x167f8d2(%rip) # 0x1bab008
|
||||||
|
52b736: 4c 8b 87 98 05 54 00 mov 0x540598(%rdi),%r8
|
||||||
|
52b73d: 49 8b ce mov %r14,%rcx
|
||||||
|
52b740: 85 c0 test %eax,%eax
|
||||||
|
52b742: 75 0e jne 0x52b752
|
||||||
|
52b744: 48 8b 97 48 05 54 00 mov 0x540548(%rdi),%rdx
|
||||||
|
52b74b: e8 30 6a ad ff call 0x2180
|
||||||
|
52b750: eb 0c jmp 0x52b75e
|
||||||
|
52b752: 48 8b 97 50 05 54 00 mov 0x540550(%rdi),%rdx
|
||||||
|
52b759: e8 52 64 ad ff call 0x1bb0
|
||||||
|
52b75e: 48 63 87 34 05 54 00 movslq 0x540534(%rdi),%rax
|
||||||
|
52b765: 33 db xor %ebx,%ebx
|
||||||
|
52b767: 44 8b c5 mov %ebp,%r8d
|
||||||
|
52b76a: 49 8b ce mov %r14,%rcx
|
||||||
|
52b76d: 41 89 1c 86 mov %ebx,(%r14,%rax,4)
|
||||||
|
52b771: 48 8b 87 58 06 54 00 mov 0x540658(%rdi),%rax
|
||||||
|
52b778: 48 8d 14 a8 lea (%rax,%rbp,4),%rdx
|
||||||
|
52b77c: e8 0f 22 00 00 call 0x52d990
|
||||||
|
52b781: 44 8b c5 mov %ebp,%r8d
|
||||||
|
52b784: 49 8d 0c ae lea (%r14,%rbp,4),%rcx
|
||||||
|
52b788: 41 0f 28 c9 movaps %xmm9,%xmm1
|
||||||
|
52b78c: e8 bf 23 00 00 call 0x52db50
|
||||||
|
52b791: 48 8d 15 20 56 12 02 lea 0x2125620(%rip),%rdx # 0x2650db8
|
||||||
|
52b798: 48 8d 0d 19 56 12 02 lea 0x2125619(%rip),%rcx # 0x2650db8
|
||||||
|
52b79f: ff 15 63 f8 67 01 call *0x167f863(%rip) # 0x1bab008
|
||||||
|
52b7a5: 4c 8b 87 98 05 54 00 mov 0x540598(%rdi),%r8
|
||||||
|
52b7ac: 49 8b ce mov %r14,%rcx
|
||||||
|
52b7af: 85 c0 test %eax,%eax
|
||||||
|
52b7b1: 75 0e jne 0x52b7c1
|
||||||
|
52b7b3: 48 8b 97 48 05 54 00 mov 0x540548(%rdi),%rdx
|
||||||
|
52b7ba: e8 d1 62 ad ff call 0x1a90
|
||||||
|
52b7bf: eb 0c jmp 0x52b7cd
|
||||||
|
52b7c1: 48 8b 97 50 05 54 00 mov 0x540550(%rdi),%rdx
|
||||||
|
52b7c8: e8 03 62 ad ff call 0x19d0
|
||||||
|
52b7cd: 48 8b 87 68 06 54 00 mov 0x540668(%rdi),%rax
|
||||||
|
52b7d4: c7 00 00 00 80 3f movl $0x3f800000,(%rax)
|
||||||
|
52b7da: 48 8b 87 68 06 54 00 mov 0x540668(%rdi),%rax
|
||||||
|
52b7e1: 89 58 04 mov %ebx,0x4(%rax)
|
||||||
|
52b7e4: 38 9f 90 08 54 00 cmp %bl,0x540890(%rdi)
|
||||||
|
52b7ea: 74 7a je 0x52b866
|
||||||
|
52b7ec: 48 8b 97 68 06 54 00 mov 0x540668(%rdi),%rdx
|
||||||
|
52b7f3: 41 0f 28 c2 movaps %xmm10,%xmm0
|
||||||
|
52b7f7: 41 0f 14 c1 unpcklps %xmm9,%xmm0
|
||||||
|
52b7fb: 44 8b c6 mov %esi,%r8d
|
||||||
|
52b7fe: 66 48 0f 7e c1 movq %xmm0,%rcx
|
||||||
|
52b803: e8 78 60 ad ff call 0x1880
|
||||||
|
52b808: 48 8b 97 68 06 54 00 mov 0x540668(%rdi),%rdx
|
||||||
|
52b80f: 41 0f 28 c4 movaps %xmm12,%xmm0
|
||||||
|
52b813: 41 0f 14 c1 unpcklps %xmm9,%xmm0
|
||||||
|
52b817: 44 8b c6 mov %esi,%r8d
|
||||||
|
52b81a: 66 48 0f 7e c1 movq %xmm0,%rcx
|
||||||
|
52b81f: e8 7c 64 ad ff call 0x1ca0
|
||||||
|
52b824: 48 8b 9f 68 06 54 00 mov 0x540668(%rdi),%rbx
|
||||||
|
52b82b: 48 8d 15 86 55 12 02 lea 0x2125586(%rip),%rdx # 0x2650db8
|
||||||
|
52b832: f3 0f 10 b7 88 08 54 movss 0x540888(%rdi),%xmm6
|
||||||
|
52b839: 00
|
||||||
|
52b83a: 48 8d 0d 77 55 12 02 lea 0x2125577(%rip),%rcx # 0x2650db8
|
||||||
|
52b841: 8d 2c 36 lea (%rsi,%rsi,1),%ebp
|
||||||
|
52b844: ff 15 be f7 67 01 call *0x167f7be(%rip) # 0x1bab008
|
||||||
|
52b84a: 44 8b c5 mov %ebp,%r8d
|
||||||
|
52b84d: 48 8b d3 mov %rbx,%rdx
|
||||||
|
52b850: 85 c0 test %eax,%eax
|
||||||
|
52b852: 75 0a jne 0x52b85e
|
||||||
|
52b854: 0f 28 c6 movaps %xmm6,%xmm0
|
||||||
|
52b857: e8 d4 67 ad ff call 0x2030
|
||||||
|
52b85c: eb 08 jmp 0x52b866
|
||||||
|
52b85e: 0f 5a c6 cvtps2pd %xmm6,%xmm0
|
||||||
|
52b861: e8 ca 64 ad ff call 0x1d30
|
||||||
|
52b866: 48 8b 9f 68 06 54 00 mov 0x540668(%rdi),%rbx
|
||||||
|
52b86d: 48 8d 15 44 55 12 02 lea 0x2125544(%rip),%rdx # 0x2650db8
|
||||||
|
52b874: 48 8d 0d 3d 55 12 02 lea 0x212553d(%rip),%rcx # 0x2650db8
|
||||||
|
52b87b: ff 15 87 f7 67 01 call *0x167f787(%rip) # 0x1bab008
|
||||||
|
52b881: 48 8b 94 24 30 01 00 mov 0x130(%rsp),%rdx
|
||||||
|
52b888: 00
|
||||||
|
52b889: 44 8b c6 mov %esi,%r8d
|
||||||
|
52b88c: 48 8b cb mov %rbx,%rcx
|
||||||
|
52b88f: 85 c0 test %eax,%eax
|
||||||
|
52b891: 75 07 jne 0x52b89a
|
||||||
|
52b893: e8 58 65 ad ff call 0x1df0
|
||||||
|
52b898: eb 05 jmp 0x52b89f
|
||||||
|
52b89a: e8 d1 66 ad ff call 0x1f70
|
||||||
|
52b89f: 4c 8b 64 24 38 mov 0x38(%rsp),%r12
|
||||||
|
52b8a4: 49 83 c7 10 add $0x10,%r15
|
||||||
|
52b8a8: 49 ff c4 inc %r12
|
||||||
|
52b8ab: 4c 89 64 24 38 mov %r12,0x38(%rsp)
|
||||||
|
52b8b0: 4c 3b 64 24 30 cmp 0x30(%rsp),%r12
|
||||||
|
52b8b5: 0f 8c 95 fc ff ff jl 0x52b550
|
||||||
|
52b8bb: 44 0f 28 6c 24 70 movaps 0x70(%rsp),%xmm13
|
||||||
|
52b8c1: 33 c9 xor %ecx,%ecx
|
||||||
|
52b8c3: 87 8f dc 04 24 00 xchg %ecx,0x2404dc(%rdi)
|
||||||
|
52b8c9: 44 0f 28 a4 24 80 00 movaps 0x80(%rsp),%xmm12
|
||||||
|
52b8d0: 00 00
|
||||||
|
52b8d2: 44 0f 28 94 24 a0 00 movaps 0xa0(%rsp),%xmm10
|
||||||
|
52b8d9: 00 00
|
||||||
|
52b8db: 44 0f 28 8c 24 b0 00 movaps 0xb0(%rsp),%xmm9
|
||||||
|
52b8e2: 00 00
|
||||||
|
52b8e4: 44 0f 28 84 24 c0 00 movaps 0xc0(%rsp),%xmm8
|
||||||
|
52b8eb: 00 00
|
||||||
|
52b8ed: 0f 28 bc 24 d0 00 00 movaps 0xd0(%rsp),%xmm7
|
||||||
|
52b8f4: 00
|
||||||
|
52b8f5: 0f 28 b4 24 e0 00 00 movaps 0xe0(%rsp),%xmm6
|
||||||
|
52b8fc: 00
|
||||||
|
52b8fd: 4c 8b bc 24 f0 00 00 mov 0xf0(%rsp),%r15
|
||||||
|
52b904: 00
|
||||||
|
52b905: 4c 8b b4 24 f8 00 00 mov 0xf8(%rsp),%r14
|
||||||
|
52b90c: 00
|
||||||
|
52b90d: 4c 8b ac 24 00 01 00 mov 0x100(%rsp),%r13
|
||||||
|
52b914: 00
|
||||||
|
52b915: 4c 8b a4 24 08 01 00 mov 0x108(%rsp),%r12
|
||||||
|
52b91c: 00
|
||||||
|
52b91d: 48 8b b4 24 10 01 00 mov 0x110(%rsp),%rsi
|
||||||
|
52b924: 00
|
||||||
|
52b925: 48 8b ac 24 18 01 00 mov 0x118(%rsp),%rbp
|
||||||
|
52b92c: 00
|
||||||
|
52b92d: 48 8b 9c 24 40 01 00 mov 0x140(%rsp),%rbx
|
||||||
|
52b934: 00
|
||||||
|
52b935: 48 81 c4 20 01 00 00 add $0x120,%rsp
|
||||||
|
52b93c: 5f pop %rdi
|
||||||
|
52b93d: c3 ret
|
||||||
|
52b93e: cc int3
|
||||||
|
52b93f: cc int3
|
||||||
|
52b940: 33 d2 xor %edx,%edx
|
||||||
|
52b942: e9 69 30 00 00 jmp 0x52e9b0
|
||||||
|
52b947: cc int3
|
||||||
|
52b948: cc int3
|
||||||
|
52b949: cc int3
|
||||||
|
52b94a: cc int3
|
||||||
|
52b94b: cc int3
|
||||||
|
52b94c: cc int3
|
||||||
|
52b94d: cc int3
|
||||||
|
52b94e: cc int3
|
||||||
|
52b94f: cc int3
|
||||||
@@ -0,0 +1,176 @@
|
|||||||
|
000000018052baa0 <.data>:
|
||||||
|
18052baa0: 40 53 rex push %rbx
|
||||||
|
18052baa2: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
18052baa6: f3 0f 59 0d 26 82 f9 mulss 0x1f98226(%rip),%xmm1 # 0x1824c3cd4
|
||||||
|
18052baad: 01
|
||||||
|
18052baae: 48 8b d9 mov %rcx,%rbx
|
||||||
|
18052bab1: 0f 28 c1 movaps %xmm1,%xmm0
|
||||||
|
18052bab4: e8 f3 91 4e 01 call 0x181a14cac
|
||||||
|
18052bab9: f3 0f 11 83 8c 08 54 movss %xmm0,0x54088c(%rbx)
|
||||||
|
18052bac0: 00
|
||||||
|
18052bac1: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
18052bac5: 5b pop %rbx
|
||||||
|
18052bac6: c3 ret
|
||||||
|
18052bac7: cc int3
|
||||||
|
18052bac8: cc int3
|
||||||
|
18052bac9: cc int3
|
||||||
|
18052baca: cc int3
|
||||||
|
18052bacb: cc int3
|
||||||
|
18052bacc: cc int3
|
||||||
|
18052bacd: cc int3
|
||||||
|
18052bace: cc int3
|
||||||
|
18052bacf: cc int3
|
||||||
|
18052bad0: 40 53 rex push %rbx
|
||||||
|
18052bad2: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
18052bad6: f3 0f 59 0d f6 81 f9 mulss 0x1f981f6(%rip),%xmm1 # 0x1824c3cd4
|
||||||
|
18052badd: 01
|
||||||
|
18052bade: 48 8b d9 mov %rcx,%rbx
|
||||||
|
18052bae1: 0f 28 c1 movaps %xmm1,%xmm0
|
||||||
|
18052bae4: e8 c3 91 4e 01 call 0x181a14cac
|
||||||
|
18052bae9: f3 0f 11 83 88 08 54 movss %xmm0,0x540888(%rbx)
|
||||||
|
18052baf0: 00
|
||||||
|
18052baf1: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
18052baf5: 5b pop %rbx
|
||||||
|
18052baf6: c3 ret
|
||||||
|
18052baf7: cc int3
|
||||||
|
18052baf8: cc int3
|
||||||
|
18052baf9: cc int3
|
||||||
|
18052bafa: cc int3
|
||||||
|
18052bafb: cc int3
|
||||||
|
18052bafc: cc int3
|
||||||
|
18052bafd: cc int3
|
||||||
|
18052bafe: cc int3
|
||||||
|
18052baff: cc int3
|
||||||
|
18052bb00: f3 0f 11 4c 24 10 movss %xmm1,0x10(%rsp)
|
||||||
|
18052bb06: 8b 44 24 10 mov 0x10(%rsp),%eax
|
||||||
|
18052bb0a: 87 81 74 08 54 00 xchg %eax,0x540874(%rcx)
|
||||||
|
18052bb10: c3 ret
|
||||||
|
18052bb11: cc int3
|
||||||
|
18052bb12: cc int3
|
||||||
|
18052bb13: cc int3
|
||||||
|
18052bb14: cc int3
|
||||||
|
18052bb15: cc int3
|
||||||
|
18052bb16: cc int3
|
||||||
|
18052bb17: cc int3
|
||||||
|
18052bb18: cc int3
|
||||||
|
18052bb19: cc int3
|
||||||
|
18052bb1a: cc int3
|
||||||
|
18052bb1b: cc int3
|
||||||
|
18052bb1c: cc int3
|
||||||
|
18052bb1d: cc int3
|
||||||
|
18052bb1e: cc int3
|
||||||
|
18052bb1f: cc int3
|
||||||
|
18052bb20: ff 81 a4 08 54 00 incl 0x5408a4(%rcx)
|
||||||
|
18052bb26: f3 0f 11 89 84 08 54 movss %xmm1,0x540884(%rcx)
|
||||||
|
18052bb2d: 00
|
||||||
|
18052bb2e: c6 81 a0 08 54 00 01 movb $0x1,0x5408a0(%rcx)
|
||||||
|
18052bb35: c3 ret
|
||||||
|
18052bb36: cc int3
|
||||||
|
18052bb37: cc int3
|
||||||
|
18052bb38: cc int3
|
||||||
|
18052bb39: cc int3
|
||||||
|
18052bb3a: cc int3
|
||||||
|
18052bb3b: cc int3
|
||||||
|
18052bb3c: cc int3
|
||||||
|
18052bb3d: cc int3
|
||||||
|
18052bb3e: cc int3
|
||||||
|
18052bb3f: cc int3
|
||||||
|
18052bb40: ff 81 a4 08 54 00 incl 0x5408a4(%rcx)
|
||||||
|
18052bb46: f3 0f 11 89 80 08 54 movss %xmm1,0x540880(%rcx)
|
||||||
|
18052bb4d: 00
|
||||||
|
18052bb4e: c6 81 9f 08 54 00 01 movb $0x1,0x54089f(%rcx)
|
||||||
|
18052bb55: c3 ret
|
||||||
|
18052bb56: cc int3
|
||||||
|
18052bb57: cc int3
|
||||||
|
18052bb58: cc int3
|
||||||
|
18052bb59: cc int3
|
||||||
|
18052bb5a: cc int3
|
||||||
|
18052bb5b: cc int3
|
||||||
|
18052bb5c: cc int3
|
||||||
|
18052bb5d: cc int3
|
||||||
|
18052bb5e: cc int3
|
||||||
|
18052bb5f: cc int3
|
||||||
|
18052bb60: ff 81 a4 08 54 00 incl 0x5408a4(%rcx)
|
||||||
|
18052bb66: f3 0f 11 89 7c 08 54 movss %xmm1,0x54087c(%rcx)
|
||||||
|
18052bb6d: 00
|
||||||
|
18052bb6e: c6 81 9e 08 54 00 01 movb $0x1,0x54089e(%rcx)
|
||||||
|
18052bb75: c3 ret
|
||||||
|
18052bb76: cc int3
|
||||||
|
18052bb77: cc int3
|
||||||
|
18052bb78: cc int3
|
||||||
|
18052bb79: cc int3
|
||||||
|
18052bb7a: cc int3
|
||||||
|
18052bb7b: cc int3
|
||||||
|
18052bb7c: cc int3
|
||||||
|
18052bb7d: cc int3
|
||||||
|
18052bb7e: cc int3
|
||||||
|
18052bb7f: cc int3
|
||||||
|
18052bb80: ff 81 a4 08 54 00 incl 0x5408a4(%rcx)
|
||||||
|
18052bb86: f3 0f 11 89 78 08 54 movss %xmm1,0x540878(%rcx)
|
||||||
|
18052bb8d: 00
|
||||||
|
18052bb8e: c6 81 9d 08 54 00 01 movb $0x1,0x54089d(%rcx)
|
||||||
|
18052bb95: c3 ret
|
||||||
|
18052bb96: cc int3
|
||||||
|
18052bb97: cc int3
|
||||||
|
18052bb98: cc int3
|
||||||
|
18052bb99: cc int3
|
||||||
|
18052bb9a: cc int3
|
||||||
|
18052bb9b: cc int3
|
||||||
|
18052bb9c: cc int3
|
||||||
|
18052bb9d: cc int3
|
||||||
|
18052bb9e: cc int3
|
||||||
|
18052bb9f: cc int3
|
||||||
|
18052bba0: 40 53 rex push %rbx
|
||||||
|
18052bba2: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
18052bba6: f3 0f 59 0d 9a 87 f9 mulss 0x1f9879a(%rip),%xmm1 # 0x1824c4348
|
||||||
|
18052bbad: 01
|
||||||
|
18052bbae: 48 8b d9 mov %rcx,%rbx
|
||||||
|
18052bbb1: f3 0f 58 0d eb 88 f9 addss 0x1f988eb(%rip),%xmm1 # 0x1824c44a4
|
||||||
|
18052bbb8: 01
|
||||||
|
18052bbb9: f3 0f 59 0d 13 81 f9 mulss 0x1f98113(%rip),%xmm1 # 0x1824c3cd4
|
||||||
|
18052bbc0: 01
|
||||||
|
18052bbc1: 0f 28 c1 movaps %xmm1,%xmm0
|
||||||
|
18052bbc4: e8 e3 90 4e 01 call 0x181a14cac
|
||||||
|
18052bbc9: ff 83 a4 08 54 00 incl 0x5408a4(%rbx)
|
||||||
|
18052bbcf: f3 0f 11 83 70 08 54 movss %xmm0,0x540870(%rbx)
|
||||||
|
18052bbd6: 00
|
||||||
|
18052bbd7: c6 83 9c 08 54 00 01 movb $0x1,0x54089c(%rbx)
|
||||||
|
18052bbde: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
18052bbe2: 5b pop %rbx
|
||||||
|
18052bbe3: c3 ret
|
||||||
|
18052bbe4: cc int3
|
||||||
|
18052bbe5: cc int3
|
||||||
|
18052bbe6: cc int3
|
||||||
|
18052bbe7: cc int3
|
||||||
|
18052bbe8: cc int3
|
||||||
|
18052bbe9: cc int3
|
||||||
|
18052bbea: cc int3
|
||||||
|
18052bbeb: cc int3
|
||||||
|
18052bbec: cc int3
|
||||||
|
18052bbed: cc int3
|
||||||
|
18052bbee: cc int3
|
||||||
|
18052bbef: cc int3
|
||||||
|
18052bbf0: 8b 81 a0 01 00 00 mov 0x1a0(%rcx),%eax
|
||||||
|
18052bbf6: c3 ret
|
||||||
|
18052bbf7: cc int3
|
||||||
|
18052bbf8: cc int3
|
||||||
|
18052bbf9: cc int3
|
||||||
|
18052bbfa: cc int3
|
||||||
|
18052bbfb: cc int3
|
||||||
|
18052bbfc: cc int3
|
||||||
|
18052bbfd: cc int3
|
||||||
|
18052bbfe: cc int3
|
||||||
|
18052bbff: cc int3
|
||||||
|
18052bc00: 45 33 c9 xor %r9d,%r9d
|
||||||
|
18052bc03: 4c 89 09 mov %r9,(%rcx)
|
||||||
|
18052bc06: 45 8b c1 mov %r9d,%r8d
|
||||||
|
18052bc09: 44 39 49 18 cmp %r9d,0x18(%rcx)
|
||||||
|
18052bc0d: 7e 27 jle 0x18052bc36
|
||||||
|
18052bc0f: 41 8b d1 mov %r9d,%edx
|
||||||
|
18052bc12: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
18052bc16: 66 66 0f 1f 84 00 00 data16 nopw 0x0(%rax,%rax,1)
|
||||||
|
18052bc1d: 00 00 00
|
||||||
|
18052bc20: 48 8b 41 10 mov 0x10(%rcx),%rax
|
||||||
|
18052bc24: 48 8d 52 04 lea 0x4(%rdx),%rdx
|
||||||
|
18052bc28: 41 ff c0 inc %r8d
|
||||||
|
18052bc2b: 44 89 4c 02 fc mov %r9d,-0x4(%rdx,%rax,1)
|
||||||
@@ -0,0 +1,172 @@
|
|||||||
|
000000018052bad0 <.data>:
|
||||||
|
18052bad0: 40 53 rex push %rbx
|
||||||
|
18052bad2: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
18052bad6: f3 0f 59 0d f6 81 f9 mulss 0x1f981f6(%rip),%xmm1 # 0x1824c3cd4
|
||||||
|
18052badd: 01
|
||||||
|
18052bade: 48 8b d9 mov %rcx,%rbx
|
||||||
|
18052bae1: 0f 28 c1 movaps %xmm1,%xmm0
|
||||||
|
18052bae4: e8 c3 91 4e 01 call 0x181a14cac
|
||||||
|
18052bae9: f3 0f 11 83 88 08 54 movss %xmm0,0x540888(%rbx)
|
||||||
|
18052baf0: 00
|
||||||
|
18052baf1: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
18052baf5: 5b pop %rbx
|
||||||
|
18052baf6: c3 ret
|
||||||
|
18052baf7: cc int3
|
||||||
|
18052baf8: cc int3
|
||||||
|
18052baf9: cc int3
|
||||||
|
18052bafa: cc int3
|
||||||
|
18052bafb: cc int3
|
||||||
|
18052bafc: cc int3
|
||||||
|
18052bafd: cc int3
|
||||||
|
18052bafe: cc int3
|
||||||
|
18052baff: cc int3
|
||||||
|
18052bb00: f3 0f 11 4c 24 10 movss %xmm1,0x10(%rsp)
|
||||||
|
18052bb06: 8b 44 24 10 mov 0x10(%rsp),%eax
|
||||||
|
18052bb0a: 87 81 74 08 54 00 xchg %eax,0x540874(%rcx)
|
||||||
|
18052bb10: c3 ret
|
||||||
|
18052bb11: cc int3
|
||||||
|
18052bb12: cc int3
|
||||||
|
18052bb13: cc int3
|
||||||
|
18052bb14: cc int3
|
||||||
|
18052bb15: cc int3
|
||||||
|
18052bb16: cc int3
|
||||||
|
18052bb17: cc int3
|
||||||
|
18052bb18: cc int3
|
||||||
|
18052bb19: cc int3
|
||||||
|
18052bb1a: cc int3
|
||||||
|
18052bb1b: cc int3
|
||||||
|
18052bb1c: cc int3
|
||||||
|
18052bb1d: cc int3
|
||||||
|
18052bb1e: cc int3
|
||||||
|
18052bb1f: cc int3
|
||||||
|
18052bb20: ff 81 a4 08 54 00 incl 0x5408a4(%rcx)
|
||||||
|
18052bb26: f3 0f 11 89 84 08 54 movss %xmm1,0x540884(%rcx)
|
||||||
|
18052bb2d: 00
|
||||||
|
18052bb2e: c6 81 a0 08 54 00 01 movb $0x1,0x5408a0(%rcx)
|
||||||
|
18052bb35: c3 ret
|
||||||
|
18052bb36: cc int3
|
||||||
|
18052bb37: cc int3
|
||||||
|
18052bb38: cc int3
|
||||||
|
18052bb39: cc int3
|
||||||
|
18052bb3a: cc int3
|
||||||
|
18052bb3b: cc int3
|
||||||
|
18052bb3c: cc int3
|
||||||
|
18052bb3d: cc int3
|
||||||
|
18052bb3e: cc int3
|
||||||
|
18052bb3f: cc int3
|
||||||
|
18052bb40: ff 81 a4 08 54 00 incl 0x5408a4(%rcx)
|
||||||
|
18052bb46: f3 0f 11 89 80 08 54 movss %xmm1,0x540880(%rcx)
|
||||||
|
18052bb4d: 00
|
||||||
|
18052bb4e: c6 81 9f 08 54 00 01 movb $0x1,0x54089f(%rcx)
|
||||||
|
18052bb55: c3 ret
|
||||||
|
18052bb56: cc int3
|
||||||
|
18052bb57: cc int3
|
||||||
|
18052bb58: cc int3
|
||||||
|
18052bb59: cc int3
|
||||||
|
18052bb5a: cc int3
|
||||||
|
18052bb5b: cc int3
|
||||||
|
18052bb5c: cc int3
|
||||||
|
18052bb5d: cc int3
|
||||||
|
18052bb5e: cc int3
|
||||||
|
18052bb5f: cc int3
|
||||||
|
18052bb60: ff 81 a4 08 54 00 incl 0x5408a4(%rcx)
|
||||||
|
18052bb66: f3 0f 11 89 7c 08 54 movss %xmm1,0x54087c(%rcx)
|
||||||
|
18052bb6d: 00
|
||||||
|
18052bb6e: c6 81 9e 08 54 00 01 movb $0x1,0x54089e(%rcx)
|
||||||
|
18052bb75: c3 ret
|
||||||
|
18052bb76: cc int3
|
||||||
|
18052bb77: cc int3
|
||||||
|
18052bb78: cc int3
|
||||||
|
18052bb79: cc int3
|
||||||
|
18052bb7a: cc int3
|
||||||
|
18052bb7b: cc int3
|
||||||
|
18052bb7c: cc int3
|
||||||
|
18052bb7d: cc int3
|
||||||
|
18052bb7e: cc int3
|
||||||
|
18052bb7f: cc int3
|
||||||
|
18052bb80: ff 81 a4 08 54 00 incl 0x5408a4(%rcx)
|
||||||
|
18052bb86: f3 0f 11 89 78 08 54 movss %xmm1,0x540878(%rcx)
|
||||||
|
18052bb8d: 00
|
||||||
|
18052bb8e: c6 81 9d 08 54 00 01 movb $0x1,0x54089d(%rcx)
|
||||||
|
18052bb95: c3 ret
|
||||||
|
18052bb96: cc int3
|
||||||
|
18052bb97: cc int3
|
||||||
|
18052bb98: cc int3
|
||||||
|
18052bb99: cc int3
|
||||||
|
18052bb9a: cc int3
|
||||||
|
18052bb9b: cc int3
|
||||||
|
18052bb9c: cc int3
|
||||||
|
18052bb9d: cc int3
|
||||||
|
18052bb9e: cc int3
|
||||||
|
18052bb9f: cc int3
|
||||||
|
18052bba0: 40 53 rex push %rbx
|
||||||
|
18052bba2: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
18052bba6: f3 0f 59 0d 9a 87 f9 mulss 0x1f9879a(%rip),%xmm1 # 0x1824c4348
|
||||||
|
18052bbad: 01
|
||||||
|
18052bbae: 48 8b d9 mov %rcx,%rbx
|
||||||
|
18052bbb1: f3 0f 58 0d eb 88 f9 addss 0x1f988eb(%rip),%xmm1 # 0x1824c44a4
|
||||||
|
18052bbb8: 01
|
||||||
|
18052bbb9: f3 0f 59 0d 13 81 f9 mulss 0x1f98113(%rip),%xmm1 # 0x1824c3cd4
|
||||||
|
18052bbc0: 01
|
||||||
|
18052bbc1: 0f 28 c1 movaps %xmm1,%xmm0
|
||||||
|
18052bbc4: e8 e3 90 4e 01 call 0x181a14cac
|
||||||
|
18052bbc9: ff 83 a4 08 54 00 incl 0x5408a4(%rbx)
|
||||||
|
18052bbcf: f3 0f 11 83 70 08 54 movss %xmm0,0x540870(%rbx)
|
||||||
|
18052bbd6: 00
|
||||||
|
18052bbd7: c6 83 9c 08 54 00 01 movb $0x1,0x54089c(%rbx)
|
||||||
|
18052bbde: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
18052bbe2: 5b pop %rbx
|
||||||
|
18052bbe3: c3 ret
|
||||||
|
18052bbe4: cc int3
|
||||||
|
18052bbe5: cc int3
|
||||||
|
18052bbe6: cc int3
|
||||||
|
18052bbe7: cc int3
|
||||||
|
18052bbe8: cc int3
|
||||||
|
18052bbe9: cc int3
|
||||||
|
18052bbea: cc int3
|
||||||
|
18052bbeb: cc int3
|
||||||
|
18052bbec: cc int3
|
||||||
|
18052bbed: cc int3
|
||||||
|
18052bbee: cc int3
|
||||||
|
18052bbef: cc int3
|
||||||
|
18052bbf0: 8b 81 a0 01 00 00 mov 0x1a0(%rcx),%eax
|
||||||
|
18052bbf6: c3 ret
|
||||||
|
18052bbf7: cc int3
|
||||||
|
18052bbf8: cc int3
|
||||||
|
18052bbf9: cc int3
|
||||||
|
18052bbfa: cc int3
|
||||||
|
18052bbfb: cc int3
|
||||||
|
18052bbfc: cc int3
|
||||||
|
18052bbfd: cc int3
|
||||||
|
18052bbfe: cc int3
|
||||||
|
18052bbff: cc int3
|
||||||
|
18052bc00: 45 33 c9 xor %r9d,%r9d
|
||||||
|
18052bc03: 4c 89 09 mov %r9,(%rcx)
|
||||||
|
18052bc06: 45 8b c1 mov %r9d,%r8d
|
||||||
|
18052bc09: 44 39 49 18 cmp %r9d,0x18(%rcx)
|
||||||
|
18052bc0d: 7e 27 jle 0x18052bc36
|
||||||
|
18052bc0f: 41 8b d1 mov %r9d,%edx
|
||||||
|
18052bc12: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
18052bc16: 66 66 0f 1f 84 00 00 data16 nopw 0x0(%rax,%rax,1)
|
||||||
|
18052bc1d: 00 00 00
|
||||||
|
18052bc20: 48 8b 41 10 mov 0x10(%rcx),%rax
|
||||||
|
18052bc24: 48 8d 52 04 lea 0x4(%rdx),%rdx
|
||||||
|
18052bc28: 41 ff c0 inc %r8d
|
||||||
|
18052bc2b: 44 89 4c 02 fc mov %r9d,-0x4(%rdx,%rax,1)
|
||||||
|
18052bc30: 44 3b 41 18 cmp 0x18(%rcx),%r8d
|
||||||
|
18052bc34: 7c ea jl 0x18052bc20
|
||||||
|
18052bc36: 48 8b 41 10 mov 0x10(%rcx),%rax
|
||||||
|
18052bc3a: 48 89 41 20 mov %rax,0x20(%rcx)
|
||||||
|
18052bc3e: c3 ret
|
||||||
|
18052bc3f: cc int3
|
||||||
|
18052bc40: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
18052bc45: 57 push %rdi
|
||||||
|
18052bc46: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
18052bc4a: 48 8b d9 mov %rcx,%rbx
|
||||||
|
18052bc4d: 8b ca mov %edx,%ecx
|
||||||
|
18052bc4f: e8 2c 03 e9 00 call 0x1813bbf80
|
||||||
|
18052bc54: 8b f8 mov %eax,%edi
|
||||||
|
18052bc56: 39 43 08 cmp %eax,0x8(%rbx)
|
||||||
|
18052bc59: 74 0e je 0x18052bc69
|
||||||
|
18052bc5b: 48 8d 4b 10 lea 0x10(%rbx),%rcx
|
||||||
|
18052bc5f: 0f .byte 0xf
|
||||||
@@ -0,0 +1,148 @@
|
|||||||
|
000000018052bba0 <.data>:
|
||||||
|
18052bba0: 40 53 rex push %rbx
|
||||||
|
18052bba2: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
18052bba6: f3 0f 59 0d 9a 87 f9 mulss 0x1f9879a(%rip),%xmm1 # 0x1824c4348
|
||||||
|
18052bbad: 01
|
||||||
|
18052bbae: 48 8b d9 mov %rcx,%rbx
|
||||||
|
18052bbb1: f3 0f 58 0d eb 88 f9 addss 0x1f988eb(%rip),%xmm1 # 0x1824c44a4
|
||||||
|
18052bbb8: 01
|
||||||
|
18052bbb9: f3 0f 59 0d 13 81 f9 mulss 0x1f98113(%rip),%xmm1 # 0x1824c3cd4
|
||||||
|
18052bbc0: 01
|
||||||
|
18052bbc1: 0f 28 c1 movaps %xmm1,%xmm0
|
||||||
|
18052bbc4: e8 e3 90 4e 01 call 0x181a14cac
|
||||||
|
18052bbc9: ff 83 a4 08 54 00 incl 0x5408a4(%rbx)
|
||||||
|
18052bbcf: f3 0f 11 83 70 08 54 movss %xmm0,0x540870(%rbx)
|
||||||
|
18052bbd6: 00
|
||||||
|
18052bbd7: c6 83 9c 08 54 00 01 movb $0x1,0x54089c(%rbx)
|
||||||
|
18052bbde: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
18052bbe2: 5b pop %rbx
|
||||||
|
18052bbe3: c3 ret
|
||||||
|
18052bbe4: cc int3
|
||||||
|
18052bbe5: cc int3
|
||||||
|
18052bbe6: cc int3
|
||||||
|
18052bbe7: cc int3
|
||||||
|
18052bbe8: cc int3
|
||||||
|
18052bbe9: cc int3
|
||||||
|
18052bbea: cc int3
|
||||||
|
18052bbeb: cc int3
|
||||||
|
18052bbec: cc int3
|
||||||
|
18052bbed: cc int3
|
||||||
|
18052bbee: cc int3
|
||||||
|
18052bbef: cc int3
|
||||||
|
18052bbf0: 8b 81 a0 01 00 00 mov 0x1a0(%rcx),%eax
|
||||||
|
18052bbf6: c3 ret
|
||||||
|
18052bbf7: cc int3
|
||||||
|
18052bbf8: cc int3
|
||||||
|
18052bbf9: cc int3
|
||||||
|
18052bbfa: cc int3
|
||||||
|
18052bbfb: cc int3
|
||||||
|
18052bbfc: cc int3
|
||||||
|
18052bbfd: cc int3
|
||||||
|
18052bbfe: cc int3
|
||||||
|
18052bbff: cc int3
|
||||||
|
18052bc00: 45 33 c9 xor %r9d,%r9d
|
||||||
|
18052bc03: 4c 89 09 mov %r9,(%rcx)
|
||||||
|
18052bc06: 45 8b c1 mov %r9d,%r8d
|
||||||
|
18052bc09: 44 39 49 18 cmp %r9d,0x18(%rcx)
|
||||||
|
18052bc0d: 7e 27 jle 0x18052bc36
|
||||||
|
18052bc0f: 41 8b d1 mov %r9d,%edx
|
||||||
|
18052bc12: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
18052bc16: 66 66 0f 1f 84 00 00 data16 nopw 0x0(%rax,%rax,1)
|
||||||
|
18052bc1d: 00 00 00
|
||||||
|
18052bc20: 48 8b 41 10 mov 0x10(%rcx),%rax
|
||||||
|
18052bc24: 48 8d 52 04 lea 0x4(%rdx),%rdx
|
||||||
|
18052bc28: 41 ff c0 inc %r8d
|
||||||
|
18052bc2b: 44 89 4c 02 fc mov %r9d,-0x4(%rdx,%rax,1)
|
||||||
|
18052bc30: 44 3b 41 18 cmp 0x18(%rcx),%r8d
|
||||||
|
18052bc34: 7c ea jl 0x18052bc20
|
||||||
|
18052bc36: 48 8b 41 10 mov 0x10(%rcx),%rax
|
||||||
|
18052bc3a: 48 89 41 20 mov %rax,0x20(%rcx)
|
||||||
|
18052bc3e: c3 ret
|
||||||
|
18052bc3f: cc int3
|
||||||
|
18052bc40: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
18052bc45: 57 push %rdi
|
||||||
|
18052bc46: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
18052bc4a: 48 8b d9 mov %rcx,%rbx
|
||||||
|
18052bc4d: 8b ca mov %edx,%ecx
|
||||||
|
18052bc4f: e8 2c 03 e9 00 call 0x1813bbf80
|
||||||
|
18052bc54: 8b f8 mov %eax,%edi
|
||||||
|
18052bc56: 39 43 08 cmp %eax,0x8(%rbx)
|
||||||
|
18052bc59: 74 0e je 0x18052bc69
|
||||||
|
18052bc5b: 48 8d 4b 10 lea 0x10(%rbx),%rcx
|
||||||
|
18052bc5f: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
18052bc62: 8b d0 mov %eax,%edx
|
||||||
|
18052bc64: e8 27 25 00 00 call 0x18052e190
|
||||||
|
18052bc69: 45 33 c0 xor %r8d,%r8d
|
||||||
|
18052bc6c: 89 7b 08 mov %edi,0x8(%rbx)
|
||||||
|
18052bc6f: 4c 89 03 mov %r8,(%rbx)
|
||||||
|
18052bc72: 41 8b d0 mov %r8d,%edx
|
||||||
|
18052bc75: 44 39 43 18 cmp %r8d,0x18(%rbx)
|
||||||
|
18052bc79: 7e 19 jle 0x18052bc94
|
||||||
|
18052bc7b: 41 8b c8 mov %r8d,%ecx
|
||||||
|
18052bc7e: 66 90 xchg %ax,%ax
|
||||||
|
18052bc80: 48 8b 43 10 mov 0x10(%rbx),%rax
|
||||||
|
18052bc84: 48 8d 49 04 lea 0x4(%rcx),%rcx
|
||||||
|
18052bc88: ff c2 inc %edx
|
||||||
|
18052bc8a: 44 89 44 01 fc mov %r8d,-0x4(%rcx,%rax,1)
|
||||||
|
18052bc8f: 3b 53 18 cmp 0x18(%rbx),%edx
|
||||||
|
18052bc92: 7c ec jl 0x18052bc80
|
||||||
|
18052bc94: 48 8b 43 10 mov 0x10(%rbx),%rax
|
||||||
|
18052bc98: 48 89 43 20 mov %rax,0x20(%rbx)
|
||||||
|
18052bc9c: 48 8b 5c 24 30 mov 0x30(%rsp),%rbx
|
||||||
|
18052bca1: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
18052bca5: 5f pop %rdi
|
||||||
|
18052bca6: c3 ret
|
||||||
|
18052bca7: cc int3
|
||||||
|
18052bca8: cc int3
|
||||||
|
18052bca9: cc int3
|
||||||
|
18052bcaa: cc int3
|
||||||
|
18052bcab: cc int3
|
||||||
|
18052bcac: cc int3
|
||||||
|
18052bcad: cc int3
|
||||||
|
18052bcae: cc int3
|
||||||
|
18052bcaf: cc int3
|
||||||
|
18052bcb0: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
18052bcb5: 57 push %rdi
|
||||||
|
18052bcb6: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
18052bcba: 33 ff xor %edi,%edi
|
||||||
|
18052bcbc: 48 8b d9 mov %rcx,%rbx
|
||||||
|
18052bcbf: 48 89 79 20 mov %rdi,0x20(%rcx)
|
||||||
|
18052bcc3: 39 79 18 cmp %edi,0x18(%rcx)
|
||||||
|
18052bcc6: 7e 20 jle 0x18052bce8
|
||||||
|
18052bcc8: 48 8b 49 10 mov 0x10(%rcx),%rcx
|
||||||
|
18052bccc: 48 85 c9 test %rcx,%rcx
|
||||||
|
18052bccf: 74 05 je 0x18052bcd6
|
||||||
|
18052bcd1: e8 ea 53 ad ff call 0x1800010c0
|
||||||
|
18052bcd6: 48 89 7b 10 mov %rdi,0x10(%rbx)
|
||||||
|
18052bcda: 89 7b 18 mov %edi,0x18(%rbx)
|
||||||
|
18052bcdd: 48 8b 5c 24 30 mov 0x30(%rsp),%rbx
|
||||||
|
18052bce2: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
18052bce6: 5f pop %rdi
|
||||||
|
18052bce7: c3 ret
|
||||||
|
18052bce8: 48 8b 5c 24 30 mov 0x30(%rsp),%rbx
|
||||||
|
18052bced: 48 89 79 10 mov %rdi,0x10(%rcx)
|
||||||
|
18052bcf1: 89 79 18 mov %edi,0x18(%rcx)
|
||||||
|
18052bcf4: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
18052bcf8: 5f pop %rdi
|
||||||
|
18052bcf9: c3 ret
|
||||||
|
18052bcfa: cc int3
|
||||||
|
18052bcfb: cc int3
|
||||||
|
18052bcfc: cc int3
|
||||||
|
18052bcfd: cc int3
|
||||||
|
18052bcfe: cc int3
|
||||||
|
18052bcff: cc int3
|
||||||
|
18052bd00: 40 55 rex push %rbp
|
||||||
|
18052bd02: 56 push %rsi
|
||||||
|
18052bd03: 57 push %rdi
|
||||||
|
18052bd04: 48 83 ec 40 sub $0x40,%rsp
|
||||||
|
18052bd08: 48 c7 44 24 28 fe ff movq $0xfffffffffffffffe,0x28(%rsp)
|
||||||
|
18052bd0f: ff ff
|
||||||
|
18052bd11: 48 89 5c 24 68 mov %rbx,0x68(%rsp)
|
||||||
|
18052bd16: 48 8b 05 53 9c 0e 02 mov 0x20e9c53(%rip),%rax # 0x182615970
|
||||||
|
18052bd1d: 48 33 c4 xor %rsp,%rax
|
||||||
|
18052bd20: 48 89 44 24 38 mov %rax,0x38(%rsp)
|
||||||
|
18052bd25: 49 8b f8 mov %r8,%rdi
|
||||||
|
18052bd28: 4c 8b ca mov %rdx,%r9
|
||||||
|
18052bd2b: 48 8b f1 mov %rcx,%rsi
|
||||||
|
18052bd2e: 4c rex.WR
|
||||||
|
18052bd2f: 89 .byte 0x89
|
||||||
@@ -0,0 +1,253 @@
|
|||||||
|
000000018052d650 <.data>:
|
||||||
|
18052d650: 4d 85 c0 test %r8,%r8
|
||||||
|
18052d653: 4c 8b d2 mov %rdx,%r10
|
||||||
|
18052d656: 4c 0f 44 c2 cmove %rdx,%r8
|
||||||
|
18052d65a: 45 33 c9 xor %r9d,%r9d
|
||||||
|
18052d65d: 4c 89 89 10 00 10 00 mov %r9,0x100010(%rcx)
|
||||||
|
18052d664: 44 39 09 cmp %r9d,(%rcx)
|
||||||
|
18052d667: 7e 4e jle 0x18052d6b7
|
||||||
|
18052d669: 48 8b c2 mov %rdx,%rax
|
||||||
|
18052d66c: 48 8d 91 10 00 08 00 lea 0x80010(%rcx),%rdx
|
||||||
|
18052d673: 4c 2b c0 sub %rax,%r8
|
||||||
|
18052d676: f3 41 0f 10 0c 00 movss (%r8,%rax,1),%xmm1
|
||||||
|
18052d67c: 41 ff c1 inc %r9d
|
||||||
|
18052d67f: f2 0f 10 81 10 00 10 movsd 0x100010(%rcx),%xmm0
|
||||||
|
18052d686: 00
|
||||||
|
18052d687: f2 0f 59 02 mulsd (%rdx),%xmm0
|
||||||
|
18052d68b: 0f 5a c9 cvtps2pd %xmm1,%xmm1
|
||||||
|
18052d68e: f2 0f 59 8a 00 00 f8 mulsd -0x80000(%rdx),%xmm1
|
||||||
|
18052d695: ff
|
||||||
|
18052d696: 48 83 c2 08 add $0x8,%rdx
|
||||||
|
18052d69a: f2 0f 58 c8 addsd %xmm0,%xmm1
|
||||||
|
18052d69e: f2 0f 11 89 10 00 10 movsd %xmm1,0x100010(%rcx)
|
||||||
|
18052d6a5: 00
|
||||||
|
18052d6a6: 66 0f 5a c1 cvtpd2ps %xmm1,%xmm0
|
||||||
|
18052d6aa: f3 0f 11 00 movss %xmm0,(%rax)
|
||||||
|
18052d6ae: 48 83 c0 04 add $0x4,%rax
|
||||||
|
18052d6b2: 44 3b 09 cmp (%rcx),%r9d
|
||||||
|
18052d6b5: 7c bf jl 0x18052d676
|
||||||
|
18052d6b7: 8b 01 mov (%rcx),%eax
|
||||||
|
18052d6b9: 83 e8 02 sub $0x2,%eax
|
||||||
|
18052d6bc: 48 63 d0 movslq %eax,%rdx
|
||||||
|
18052d6bf: 48 83 fa 04 cmp $0x4,%rdx
|
||||||
|
18052d6c3: 0f 8c 0f 01 00 00 jl 0x18052d7d8
|
||||||
|
18052d6c9: 4c 8d 42 fc lea -0x4(%rdx),%r8
|
||||||
|
18052d6cd: 49 c1 e8 02 shr $0x2,%r8
|
||||||
|
18052d6d1: 4d 8d 4a f8 lea -0x8(%r10),%r9
|
||||||
|
18052d6d5: 49 ff c0 inc %r8
|
||||||
|
18052d6d8: 4c 8d 99 10 00 08 00 lea 0x80010(%rcx),%r11
|
||||||
|
18052d6df: 49 8b c0 mov %r8,%rax
|
||||||
|
18052d6e2: 4d 8d 0c 91 lea (%r9,%rdx,4),%r9
|
||||||
|
18052d6e6: 48 f7 d8 neg %rax
|
||||||
|
18052d6e9: 4d 8d 1c d3 lea (%r11,%rdx,8),%r11
|
||||||
|
18052d6ed: 48 8d 14 82 lea (%rdx,%rax,4),%rdx
|
||||||
|
18052d6f1: f2 41 0f 10 03 movsd (%r11),%xmm0
|
||||||
|
18052d6f6: f2 0f 59 81 10 00 10 mulsd 0x100010(%rcx),%xmm0
|
||||||
|
18052d6fd: 00
|
||||||
|
18052d6fe: f3 41 0f 10 49 08 movss 0x8(%r9),%xmm1
|
||||||
|
18052d704: 0f 5a c9 cvtps2pd %xmm1,%xmm1
|
||||||
|
18052d707: f2 41 0f 59 8b 00 00 mulsd -0x80000(%r11),%xmm1
|
||||||
|
18052d70e: f8 ff
|
||||||
|
18052d710: f2 0f 58 c8 addsd %xmm0,%xmm1
|
||||||
|
18052d714: f2 0f 11 89 10 00 10 movsd %xmm1,0x100010(%rcx)
|
||||||
|
18052d71b: 00
|
||||||
|
18052d71c: 66 0f 5a c1 cvtpd2ps %xmm1,%xmm0
|
||||||
|
18052d720: f3 41 0f 11 41 08 movss %xmm0,0x8(%r9)
|
||||||
|
18052d726: f2 41 0f 10 43 f8 movsd -0x8(%r11),%xmm0
|
||||||
|
18052d72c: f2 0f 59 81 10 00 10 mulsd 0x100010(%rcx),%xmm0
|
||||||
|
18052d733: 00
|
||||||
|
18052d734: f3 41 0f 10 49 04 movss 0x4(%r9),%xmm1
|
||||||
|
18052d73a: 0f 5a c9 cvtps2pd %xmm1,%xmm1
|
||||||
|
18052d73d: f2 41 0f 59 8b f8 ff mulsd -0x80008(%r11),%xmm1
|
||||||
|
18052d744: f7 ff
|
||||||
|
18052d746: f2 0f 58 c8 addsd %xmm0,%xmm1
|
||||||
|
18052d74a: f2 0f 11 89 10 00 10 movsd %xmm1,0x100010(%rcx)
|
||||||
|
18052d751: 00
|
||||||
|
18052d752: 66 0f 5a c1 cvtpd2ps %xmm1,%xmm0
|
||||||
|
18052d756: f3 41 0f 11 41 04 movss %xmm0,0x4(%r9)
|
||||||
|
18052d75c: f2 41 0f 10 43 f0 movsd -0x10(%r11),%xmm0
|
||||||
|
18052d762: f2 0f 59 81 10 00 10 mulsd 0x100010(%rcx),%xmm0
|
||||||
|
18052d769: 00
|
||||||
|
18052d76a: f3 41 0f 10 11 movss (%r9),%xmm2
|
||||||
|
18052d76f: 0f 5a d2 cvtps2pd %xmm2,%xmm2
|
||||||
|
18052d772: f2 41 0f 59 93 f0 ff mulsd -0x80010(%r11),%xmm2
|
||||||
|
18052d779: f7 ff
|
||||||
|
18052d77b: f2 0f 58 d0 addsd %xmm0,%xmm2
|
||||||
|
18052d77f: f2 0f 11 91 10 00 10 movsd %xmm2,0x100010(%rcx)
|
||||||
|
18052d786: 00
|
||||||
|
18052d787: 66 0f 5a c2 cvtpd2ps %xmm2,%xmm0
|
||||||
|
18052d78b: f3 41 0f 11 01 movss %xmm0,(%r9)
|
||||||
|
18052d790: f2 41 0f 10 43 e8 movsd -0x18(%r11),%xmm0
|
||||||
|
18052d796: f3 41 0f 10 49 fc movss -0x4(%r9),%xmm1
|
||||||
|
18052d79c: f2 0f 59 81 10 00 10 mulsd 0x100010(%rcx),%xmm0
|
||||||
|
18052d7a3: 00
|
||||||
|
18052d7a4: 0f 5a c9 cvtps2pd %xmm1,%xmm1
|
||||||
|
18052d7a7: f2 41 0f 59 8b e8 ff mulsd -0x80018(%r11),%xmm1
|
||||||
|
18052d7ae: f7 ff
|
||||||
|
18052d7b0: 49 83 eb 20 sub $0x20,%r11
|
||||||
|
18052d7b4: f2 0f 58 c8 addsd %xmm0,%xmm1
|
||||||
|
18052d7b8: 66 0f 5a c1 cvtpd2ps %xmm1,%xmm0
|
||||||
|
18052d7bc: f2 0f 11 89 10 00 10 movsd %xmm1,0x100010(%rcx)
|
||||||
|
18052d7c3: 00
|
||||||
|
18052d7c4: f3 41 0f 11 41 fc movss %xmm0,-0x4(%r9)
|
||||||
|
18052d7ca: 49 83 e9 10 sub $0x10,%r9
|
||||||
|
18052d7ce: 49 83 e8 01 sub $0x1,%r8
|
||||||
|
18052d7d2: 0f 85 19 ff ff ff jne 0x18052d6f1
|
||||||
|
18052d7d8: 48 85 d2 test %rdx,%rdx
|
||||||
|
18052d7db: 7e 4a jle 0x18052d827
|
||||||
|
18052d7dd: 48 8d 81 10 00 08 00 lea 0x80010(%rcx),%rax
|
||||||
|
18052d7e4: 48 8d 04 d0 lea (%rax,%rdx,8),%rax
|
||||||
|
18052d7e8: f2 0f 10 00 movsd (%rax),%xmm0
|
||||||
|
18052d7ec: f3 41 0f 10 0c 92 movss (%r10,%rdx,4),%xmm1
|
||||||
|
18052d7f2: f2 0f 59 81 10 00 10 mulsd 0x100010(%rcx),%xmm0
|
||||||
|
18052d7f9: 00
|
||||||
|
18052d7fa: 0f 5a c9 cvtps2pd %xmm1,%xmm1
|
||||||
|
18052d7fd: f2 0f 59 88 00 00 f8 mulsd -0x80000(%rax),%xmm1
|
||||||
|
18052d804: ff
|
||||||
|
18052d805: 48 83 e8 08 sub $0x8,%rax
|
||||||
|
18052d809: f2 0f 58 c8 addsd %xmm0,%xmm1
|
||||||
|
18052d80d: 66 0f 5a c1 cvtpd2ps %xmm1,%xmm0
|
||||||
|
18052d811: f2 0f 11 89 10 00 10 movsd %xmm1,0x100010(%rcx)
|
||||||
|
18052d818: 00
|
||||||
|
18052d819: f3 41 0f 11 04 92 movss %xmm0,(%r10,%rdx,4)
|
||||||
|
18052d81f: 48 ff ca dec %rdx
|
||||||
|
18052d822: 48 85 d2 test %rdx,%rdx
|
||||||
|
18052d825: 7f c1 jg 0x18052d7e8
|
||||||
|
18052d827: c3 ret
|
||||||
|
18052d828: cc int3
|
||||||
|
18052d829: cc int3
|
||||||
|
18052d82a: cc int3
|
||||||
|
18052d82b: cc int3
|
||||||
|
18052d82c: cc int3
|
||||||
|
18052d82d: cc int3
|
||||||
|
18052d82e: cc int3
|
||||||
|
18052d82f: cc int3
|
||||||
|
18052d830: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
18052d835: 48 89 74 24 10 mov %rsi,0x10(%rsp)
|
||||||
|
18052d83a: 57 push %rdi
|
||||||
|
18052d83b: 48 83 ec 30 sub $0x30,%rsp
|
||||||
|
18052d83f: 48 8b fa mov %rdx,%rdi
|
||||||
|
18052d842: 0f 29 74 24 20 movaps %xmm6,0x20(%rsp)
|
||||||
|
18052d847: 48 8b f1 mov %rcx,%rsi
|
||||||
|
18052d84a: 48 8d 15 67 35 12 02 lea 0x2123567(%rip),%rdx # 0x182650db8
|
||||||
|
18052d851: 48 8d 0d 60 35 12 02 lea 0x2123560(%rip),%rcx # 0x182650db8
|
||||||
|
18052d858: 41 8b d9 mov %r9d,%ebx
|
||||||
|
18052d85b: 0f 28 f2 movaps %xmm2,%xmm6
|
||||||
|
18052d85e: ff 15 a4 d7 67 01 call *0x167d7a4(%rip) # 0x181bab008
|
||||||
|
18052d864: 44 8b cb mov %ebx,%r9d
|
||||||
|
18052d867: 4c 8b c6 mov %rsi,%r8
|
||||||
|
18052d86a: 48 8b cf mov %rdi,%rcx
|
||||||
|
18052d86d: 85 c0 test %eax,%eax
|
||||||
|
18052d86f: 75 0a jne 0x18052d87b
|
||||||
|
18052d871: 0f 28 ce movaps %xmm6,%xmm1
|
||||||
|
18052d874: e8 c7 31 c1 ff call 0x180140a40
|
||||||
|
18052d879: eb 0c jmp 0x18052d887
|
||||||
|
18052d87b: 0f 57 c9 xorps %xmm1,%xmm1
|
||||||
|
18052d87e: f3 0f 5a ce cvtss2sd %xmm6,%xmm1
|
||||||
|
18052d882: e8 79 32 c1 ff call 0x180140b00
|
||||||
|
18052d887: 48 8b 5c 24 40 mov 0x40(%rsp),%rbx
|
||||||
|
18052d88c: 48 8b 74 24 48 mov 0x48(%rsp),%rsi
|
||||||
|
18052d891: 0f 28 74 24 20 movaps 0x20(%rsp),%xmm6
|
||||||
|
18052d896: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
18052d89a: 5f pop %rdi
|
||||||
|
18052d89b: c3 ret
|
||||||
|
18052d89c: cc int3
|
||||||
|
18052d89d: cc int3
|
||||||
|
18052d89e: cc int3
|
||||||
|
18052d89f: cc int3
|
||||||
|
18052d8a0: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
18052d8a5: 48 89 74 24 10 mov %rsi,0x10(%rsp)
|
||||||
|
18052d8aa: 57 push %rdi
|
||||||
|
18052d8ab: 48 83 ec 40 sub $0x40,%rsp
|
||||||
|
18052d8af: 48 8b fa mov %rdx,%rdi
|
||||||
|
18052d8b2: 0f 29 74 24 30 movaps %xmm6,0x30(%rsp)
|
||||||
|
18052d8b7: 48 8b f1 mov %rcx,%rsi
|
||||||
|
18052d8ba: 48 8d 15 f7 34 12 02 lea 0x21234f7(%rip),%rdx # 0x182650db8
|
||||||
|
18052d8c1: 48 8d 0d f0 34 12 02 lea 0x21234f0(%rip),%rcx # 0x182650db8
|
||||||
|
18052d8c8: 41 8b d9 mov %r9d,%ebx
|
||||||
|
18052d8cb: 0f 28 f2 movaps %xmm2,%xmm6
|
||||||
|
18052d8ce: ff 15 34 d7 67 01 call *0x167d734(%rip) # 0x181bab008
|
||||||
|
18052d8d4: c7 44 24 20 00 00 00 movl $0x0,0x20(%rsp)
|
||||||
|
18052d8db: 00
|
||||||
|
18052d8dc: 44 8b c3 mov %ebx,%r8d
|
||||||
|
18052d8df: 48 8b d6 mov %rsi,%rdx
|
||||||
|
18052d8e2: 48 8b cf mov %rdi,%rcx
|
||||||
|
18052d8e5: 85 c0 test %eax,%eax
|
||||||
|
18052d8e7: 75 0a jne 0x18052d8f3
|
||||||
|
18052d8e9: 0f 28 de movaps %xmm6,%xmm3
|
||||||
|
18052d8ec: e8 6f 47 ad ff call 0x180002060
|
||||||
|
18052d8f1: eb 0c jmp 0x18052d8ff
|
||||||
|
18052d8f3: 0f 57 db xorps %xmm3,%xmm3
|
||||||
|
18052d8f6: f3 0f 5a de cvtss2sd %xmm6,%xmm3
|
||||||
|
18052d8fa: e8 21 48 ad ff call 0x180002120
|
||||||
|
18052d8ff: 48 8b 5c 24 50 mov 0x50(%rsp),%rbx
|
||||||
|
18052d904: 48 8b 74 24 58 mov 0x58(%rsp),%rsi
|
||||||
|
18052d909: 0f 28 74 24 30 movaps 0x30(%rsp),%xmm6
|
||||||
|
18052d90e: 48 83 c4 40 add $0x40,%rsp
|
||||||
|
18052d912: 5f pop %rdi
|
||||||
|
18052d913: c3 ret
|
||||||
|
18052d914: cc int3
|
||||||
|
18052d915: cc int3
|
||||||
|
18052d916: cc int3
|
||||||
|
18052d917: cc int3
|
||||||
|
18052d918: cc int3
|
||||||
|
18052d919: cc int3
|
||||||
|
18052d91a: cc int3
|
||||||
|
18052d91b: cc int3
|
||||||
|
18052d91c: cc int3
|
||||||
|
18052d91d: cc int3
|
||||||
|
18052d91e: cc int3
|
||||||
|
18052d91f: cc int3
|
||||||
|
18052d920: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
18052d925: 57 push %rdi
|
||||||
|
18052d926: 48 83 ec 30 sub $0x30,%rsp
|
||||||
|
18052d92a: 48 8b f9 mov %rcx,%rdi
|
||||||
|
18052d92d: 0f 29 74 24 20 movaps %xmm6,0x20(%rsp)
|
||||||
|
18052d932: 48 8d 0d 7f 34 12 02 lea 0x212347f(%rip),%rcx # 0x182650db8
|
||||||
|
18052d939: 41 8b d8 mov %r8d,%ebx
|
||||||
|
18052d93c: 48 8d 15 75 34 12 02 lea 0x2123475(%rip),%rdx # 0x182650db8
|
||||||
|
18052d943: 0f 28 f1 movaps %xmm1,%xmm6
|
||||||
|
18052d946: ff 15 bc d6 67 01 call *0x167d6bc(%rip) # 0x181bab008
|
||||||
|
18052d94c: 44 8b c3 mov %ebx,%r8d
|
||||||
|
18052d94f: 48 8b d7 mov %rdi,%rdx
|
||||||
|
18052d952: 85 c0 test %eax,%eax
|
||||||
|
18052d954: 75 17 jne 0x18052d96d
|
||||||
|
18052d956: 0f 28 c6 movaps %xmm6,%xmm0
|
||||||
|
18052d959: 48 8b 5c 24 40 mov 0x40(%rsp),%rbx
|
||||||
|
18052d95e: 0f 28 74 24 20 movaps 0x20(%rsp),%xmm6
|
||||||
|
18052d963: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
18052d967: 5f pop %rdi
|
||||||
|
18052d968: e9 c3 46 ad ff jmp 0x180002030
|
||||||
|
18052d96d: 0f 57 c0 xorps %xmm0,%xmm0
|
||||||
|
18052d970: f3 0f 5a c6 cvtss2sd %xmm6,%xmm0
|
||||||
|
18052d974: 48 8b 5c 24 40 mov 0x40(%rsp),%rbx
|
||||||
|
18052d979: 0f 28 74 24 20 movaps 0x20(%rsp),%xmm6
|
||||||
|
18052d97e: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
18052d982: 5f pop %rdi
|
||||||
|
18052d983: e9 a8 43 ad ff jmp 0x180001d30
|
||||||
|
18052d988: cc int3
|
||||||
|
18052d989: cc int3
|
||||||
|
18052d98a: cc int3
|
||||||
|
18052d98b: cc int3
|
||||||
|
18052d98c: cc int3
|
||||||
|
18052d98d: cc int3
|
||||||
|
18052d98e: cc int3
|
||||||
|
18052d98f: cc int3
|
||||||
|
18052d990: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
18052d995: 48 89 74 24 10 mov %rsi,0x10(%rsp)
|
||||||
|
18052d99a: 57 push %rdi
|
||||||
|
18052d99b: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
18052d99f: 48 8b fa mov %rdx,%rdi
|
||||||
|
18052d9a2: 48 8b f1 mov %rcx,%rsi
|
||||||
|
18052d9a5: 48 8d 15 0c 34 12 02 lea 0x212340c(%rip),%rdx # 0x182650db8
|
||||||
|
18052d9ac: 41 8b d8 mov %r8d,%ebx
|
||||||
|
18052d9af: 48 8d 0d 02 34 12 02 lea 0x2123402(%rip),%rcx # 0x182650db8
|
||||||
|
18052d9b6: ff 15 4c d6 67 01 call *0x167d64c(%rip) # 0x181bab008
|
||||||
|
18052d9bc: 44 8b c3 mov %ebx,%r8d
|
||||||
|
18052d9bf: 48 8b d6 mov %rsi,%rdx
|
||||||
|
18052d9c2: 48 8b cf mov %rdi,%rcx
|
||||||
|
18052d9c5: 85 c0 test %eax,%eax
|
||||||
|
18052d9c7: 75 14 jne 0x18052d9dd
|
||||||
|
18052d9c9: 48 8b 5c 24 30 mov 0x30(%rsp),%rbx
|
||||||
|
18052d9ce: 48 8b 74 24 38 mov 0x38(%rsp),%rsi
|
||||||
|
18052d9d3: 48 rex.W
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
|
||||||
|
soothe_mem.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
000000000052d920 <.data+0x52d920>:
|
||||||
|
52d920: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
52d925: 57 push %rdi
|
||||||
|
52d926: 48 83 ec 30 sub $0x30,%rsp
|
||||||
|
52d92a: 48 8b f9 mov %rcx,%rdi
|
||||||
|
52d92d: 0f 29 74 24 20 movaps %xmm6,0x20(%rsp)
|
||||||
|
52d932: 48 8d 0d 7f 34 12 02 lea 0x212347f(%rip),%rcx # 0x2650db8
|
||||||
|
52d939: 41 8b d8 mov %r8d,%ebx
|
||||||
|
52d93c: 48 8d 15 75 34 12 02 lea 0x2123475(%rip),%rdx # 0x2650db8
|
||||||
|
52d943: 0f 28 f1 movaps %xmm1,%xmm6
|
||||||
|
52d946: ff 15 bc d6 67 01 call *0x167d6bc(%rip) # 0x1bab008
|
||||||
|
52d94c: 44 8b c3 mov %ebx,%r8d
|
||||||
|
52d94f: 48 8b d7 mov %rdi,%rdx
|
||||||
|
52d952: 85 c0 test %eax,%eax
|
||||||
|
52d954: 75 17 jne 0x52d96d
|
||||||
|
52d956: 0f 28 c6 movaps %xmm6,%xmm0
|
||||||
|
52d959: 48 8b 5c 24 40 mov 0x40(%rsp),%rbx
|
||||||
|
52d95e: 0f 28 74 24 20 movaps 0x20(%rsp),%xmm6
|
||||||
|
52d963: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
52d967: 5f pop %rdi
|
||||||
|
52d968: e9 c3 46 ad ff jmp 0x2030
|
||||||
|
52d96d: 0f 57 c0 xorps %xmm0,%xmm0
|
||||||
|
52d970: f3 0f 5a c6 cvtss2sd %xmm6,%xmm0
|
||||||
|
52d974: 48 8b 5c 24 40 mov 0x40(%rsp),%rbx
|
||||||
|
52d979: 0f 28 74 24 20 movaps 0x20(%rsp),%xmm6
|
||||||
|
52d97e: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
52d982: 5f pop %rdi
|
||||||
|
52d983: e9 a8 43 ad ff jmp 0x1d30
|
||||||
|
52d988: cc int3
|
||||||
|
52d989: cc int3
|
||||||
|
52d98a: cc int3
|
||||||
|
52d98b: cc int3
|
||||||
|
52d98c: cc int3
|
||||||
|
52d98d: cc int3
|
||||||
|
52d98e: cc int3
|
||||||
|
52d98f: cc int3
|
||||||
|
52d990: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
52d995: 48 89 74 24 10 mov %rsi,0x10(%rsp)
|
||||||
|
52d99a: 57 push %rdi
|
||||||
|
52d99b: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
52d99f: 48 mov %rdx,%rdi
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
|
||||||
|
soothe_mem.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
000000000052d990 <.data+0x52d990>:
|
||||||
|
52d990: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
52d995: 48 89 74 24 10 mov %rsi,0x10(%rsp)
|
||||||
|
52d99a: 57 push %rdi
|
||||||
|
52d99b: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
52d99f: 48 8b fa mov %rdx,%rdi
|
||||||
|
52d9a2: 48 8b f1 mov %rcx,%rsi
|
||||||
|
52d9a5: 48 8d 15 0c 34 12 02 lea 0x212340c(%rip),%rdx # 0x2650db8
|
||||||
|
52d9ac: 41 8b d8 mov %r8d,%ebx
|
||||||
|
52d9af: 48 8d 0d 02 34 12 02 lea 0x2123402(%rip),%rcx # 0x2650db8
|
||||||
|
52d9b6: ff 15 4c d6 67 01 call *0x167d64c(%rip) # 0x1bab008
|
||||||
|
52d9bc: 44 8b c3 mov %ebx,%r8d
|
||||||
|
52d9bf: 48 8b d6 mov %rsi,%rdx
|
||||||
|
52d9c2: 48 8b cf mov %rdi,%rcx
|
||||||
|
52d9c5: 85 c0 test %eax,%eax
|
||||||
|
52d9c7: 75 14 jne 0x52d9dd
|
||||||
|
52d9c9: 48 8b 5c 24 30 mov 0x30(%rsp),%rbx
|
||||||
|
52d9ce: 48 8b 74 24 38 mov 0x38(%rsp),%rsi
|
||||||
|
52d9d3: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
52d9d7: 5f pop %rdi
|
||||||
|
52d9d8: e9 23 46 ad ff jmp 0x2000
|
||||||
|
52d9dd: 48 8b 5c 24 30 mov 0x30(%rsp),%rbx
|
||||||
|
52d9e2: 48 8b 74 24 38 mov 0x38(%rsp),%rsi
|
||||||
|
52d9e7: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
52d9eb: 5f pop %rdi
|
||||||
|
52d9ec: e9 4f 42 ad ff jmp 0x1c40
|
||||||
|
52d9f1: cc int3
|
||||||
|
52d9f2: cc int3
|
||||||
|
52d9f3: cc int3
|
||||||
|
52d9f4: cc int3
|
||||||
|
52d9f5: cc int3
|
||||||
|
52d9f6: cc int3
|
||||||
|
52d9f7: cc int3
|
||||||
|
52d9f8: cc int3
|
||||||
|
52d9f9: cc int3
|
||||||
|
52d9fa: cc int3
|
||||||
|
52d9fb: cc int3
|
||||||
|
52d9fc: cc int3
|
||||||
|
52d9fd: cc int3
|
||||||
|
52d9fe: cc int3
|
||||||
|
52d9ff: cc int3
|
||||||
|
52da00: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
52da05: 48 89 74 24 10 mov %rsi,0x10(%rsp)
|
||||||
|
52da0a: 57 push %rdi
|
||||||
|
52da0b: 48 83 ec 30 sub $0x30,%rsp
|
||||||
|
52da0f: 48 mov %rdx,%rdi
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
|
||||||
|
soothe_mem.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
000000000052db50 <.data+0x52db50>:
|
||||||
|
52db50: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
52db55: 57 push %rdi
|
||||||
|
52db56: 48 83 ec 30 sub $0x30,%rsp
|
||||||
|
52db5a: 48 8b f9 mov %rcx,%rdi
|
||||||
|
52db5d: 0f 29 74 24 20 movaps %xmm6,0x20(%rsp)
|
||||||
|
52db62: 48 8d 0d 4f 32 12 02 lea 0x212324f(%rip),%rcx # 0x2650db8
|
||||||
|
52db69: 41 8b d8 mov %r8d,%ebx
|
||||||
|
52db6c: 48 8d 15 45 32 12 02 lea 0x2123245(%rip),%rdx # 0x2650db8
|
||||||
|
52db73: 0f 28 f1 movaps %xmm1,%xmm6
|
||||||
|
52db76: ff 15 8c d4 67 01 call *0x167d48c(%rip) # 0x1bab008
|
||||||
|
52db7c: 44 8b c3 mov %ebx,%r8d
|
||||||
|
52db7f: 48 8b d7 mov %rdi,%rdx
|
||||||
|
52db82: 85 c0 test %eax,%eax
|
||||||
|
52db84: 75 17 jne 0x52db9d
|
||||||
|
52db86: 0f 28 c6 movaps %xmm6,%xmm0
|
||||||
|
52db89: 48 8b 5c 24 40 mov 0x40(%rsp),%rbx
|
||||||
|
52db8e: 0f 28 74 24 20 movaps 0x20(%rsp),%xmm6
|
||||||
|
52db93: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
52db97: 5f pop %rdi
|
||||||
|
52db98: e9 03 3e ad ff jmp 0x19a0
|
||||||
|
52db9d: 0f 57 c0 xorps %xmm0,%xmm0
|
||||||
|
52dba0: f3 0f 5a c6 cvtss2sd %xmm6,%xmm0
|
||||||
|
52dba4: 48 8b 5c 24 40 mov 0x40(%rsp),%rbx
|
||||||
|
52dba9: 0f 28 74 24 20 movaps 0x20(%rsp),%xmm6
|
||||||
|
52dbae: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
52dbb2: 5f pop %rdi
|
||||||
|
52dbb3: e9 18 47 ad ff jmp 0x22d0
|
||||||
|
52dbb8: cc int3
|
||||||
|
52dbb9: cc int3
|
||||||
|
52dbba: cc int3
|
||||||
|
52dbbb: cc int3
|
||||||
|
52dbbc: cc int3
|
||||||
|
52dbbd: cc int3
|
||||||
|
52dbbe: cc int3
|
||||||
|
52dbbf: cc int3
|
||||||
|
52dbc0: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
52dbc5: 48 89 74 24 10 mov %rsi,0x10(%rsp)
|
||||||
|
52dbca: 57 push %rdi
|
||||||
|
52dbcb: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
52dbcf: 48 mov %rdx,%rdi
|
||||||
@@ -0,0 +1,335 @@
|
|||||||
|
|
||||||
|
soothe_mem.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
000000000052dc30 <.data+0x52dc30>:
|
||||||
|
52dc30: 40 53 rex push %rbx
|
||||||
|
52dc32: 48 83 ec 50 sub $0x50,%rsp
|
||||||
|
52dc36: 48 8b d9 mov %rcx,%rbx
|
||||||
|
52dc39: 39 51 04 cmp %edx,0x4(%rcx)
|
||||||
|
52dc3c: 0f 84 db 00 00 00 je 0x52dd1d
|
||||||
|
52dc42: 44 89 41 08 mov %r8d,0x8(%rcx)
|
||||||
|
52dc46: 44 8b c2 mov %edx,%r8d
|
||||||
|
52dc49: 89 51 04 mov %edx,0x4(%rcx)
|
||||||
|
52dc4c: 48 8d 54 24 30 lea 0x30(%rsp),%rdx
|
||||||
|
52dc51: 48 89 74 24 60 mov %rsi,0x60(%rsp)
|
||||||
|
52dc56: 48 89 7c 24 68 mov %rdi,0x68(%rsp)
|
||||||
|
52dc5b: e8 60 59 00 00 call 0x5335c0
|
||||||
|
52dc60: 44 8b 43 08 mov 0x8(%rbx),%r8d
|
||||||
|
52dc64: 45 85 c0 test %r8d,%r8d
|
||||||
|
52dc67: 79 23 jns 0x52dc8c
|
||||||
|
52dc69: 8b 54 24 34 mov 0x34(%rsp),%edx
|
||||||
|
52dc6d: 48 8d 7b 48 lea 0x48(%rbx),%rdi
|
||||||
|
52dc71: 48 8b cf mov %rdi,%rcx
|
||||||
|
52dc74: e8 d7 68 00 00 call 0x534550
|
||||||
|
52dc79: 8b 54 24 38 mov 0x38(%rsp),%edx
|
||||||
|
52dc7d: 48 8d 4b 68 lea 0x68(%rbx),%rcx
|
||||||
|
52dc81: e8 ca 68 00 00 call 0x534550
|
||||||
|
52dc86: 8b 54 24 3c mov 0x3c(%rsp),%edx
|
||||||
|
52dc8a: eb 2e jmp 0x52dcba
|
||||||
|
52dc8c: 48 8d 54 24 40 lea 0x40(%rsp),%rdx
|
||||||
|
52dc91: 48 8b cb mov %rbx,%rcx
|
||||||
|
52dc94: e8 27 59 00 00 call 0x5335c0
|
||||||
|
52dc99: 8b 54 24 44 mov 0x44(%rsp),%edx
|
||||||
|
52dc9d: 48 8d 7b 48 lea 0x48(%rbx),%rdi
|
||||||
|
52dca1: 48 8b cf mov %rdi,%rcx
|
||||||
|
52dca4: e8 a7 68 00 00 call 0x534550
|
||||||
|
52dca9: 8b 54 24 48 mov 0x48(%rsp),%edx
|
||||||
|
52dcad: 48 8d 4b 68 lea 0x68(%rbx),%rcx
|
||||||
|
52dcb1: e8 9a 68 00 00 call 0x534550
|
||||||
|
52dcb6: 8b 54 24 4c mov 0x4c(%rsp),%edx
|
||||||
|
52dcba: 48 8d 73 58 lea 0x58(%rbx),%rsi
|
||||||
|
52dcbe: 48 8b ce mov %rsi,%rcx
|
||||||
|
52dcc1: e8 8a 68 00 00 call 0x534550
|
||||||
|
52dcc6: 48 8d 15 eb 30 12 02 lea 0x21230eb(%rip),%rdx # 0x2650db8
|
||||||
|
52dccd: 48 8d 0d e4 30 12 02 lea 0x21230e4(%rip),%rcx # 0x2650db8
|
||||||
|
52dcd4: ff 15 2e d3 67 01 call *0x167d32e(%rip) # 0x1bab008
|
||||||
|
52dcda: 44 8b 03 mov (%rbx),%r8d
|
||||||
|
52dcdd: 41 b9 01 00 00 00 mov $0x1,%r9d
|
||||||
|
52dce3: 8b 54 24 30 mov 0x30(%rsp),%edx
|
||||||
|
52dce7: 85 c0 test %eax,%eax
|
||||||
|
52dce9: 48 8b 06 mov (%rsi),%rax
|
||||||
|
52dcec: 48 89 44 24 28 mov %rax,0x28(%rsp)
|
||||||
|
52dcf1: 48 8b 07 mov (%rdi),%rax
|
||||||
|
52dcf4: 48 89 44 24 20 mov %rax,0x20(%rsp)
|
||||||
|
52dcf9: 75 0b jne 0x52dd06
|
||||||
|
52dcfb: 48 8d 4b 18 lea 0x18(%rbx),%rcx
|
||||||
|
52dcff: e8 3c 45 ad ff call 0x2240
|
||||||
|
52dd04: eb 09 jmp 0x52dd0f
|
||||||
|
52dd06: 48 8d 4b 20 lea 0x20(%rbx),%rcx
|
||||||
|
52dd0a: e8 01 3f ad ff call 0x1c10
|
||||||
|
52dd0f: 48 8b 7c 24 68 mov 0x68(%rsp),%rdi
|
||||||
|
52dd14: 48 8b 74 24 60 mov 0x60(%rsp),%rsi
|
||||||
|
52dd19: c6 43 15 01 movb $0x1,0x15(%rbx)
|
||||||
|
52dd1d: 48 83 c4 50 add $0x50,%rsp
|
||||||
|
52dd21: 5b pop %rbx
|
||||||
|
52dd22: c3 ret
|
||||||
|
52dd23: cc int3
|
||||||
|
52dd24: cc int3
|
||||||
|
52dd25: cc int3
|
||||||
|
52dd26: cc int3
|
||||||
|
52dd27: cc int3
|
||||||
|
52dd28: cc int3
|
||||||
|
52dd29: cc int3
|
||||||
|
52dd2a: cc int3
|
||||||
|
52dd2b: cc int3
|
||||||
|
52dd2c: cc int3
|
||||||
|
52dd2d: cc int3
|
||||||
|
52dd2e: cc int3
|
||||||
|
52dd2f: cc int3
|
||||||
|
52dd30: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
52dd35: 57 push %rdi
|
||||||
|
52dd36: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
52dd3a: 83 b9 30 01 00 00 00 cmpl $0x0,0x130(%rcx)
|
||||||
|
52dd41: 48 8b d9 mov %rcx,%rbx
|
||||||
|
52dd44: 7e 11 jle 0x52dd57
|
||||||
|
52dd46: 48 8b 89 28 01 00 00 mov 0x128(%rcx),%rcx
|
||||||
|
52dd4d: 48 85 c9 test %rcx,%rcx
|
||||||
|
52dd50: 74 05 je 0x52dd57
|
||||||
|
52dd52: e8 69 33 ad ff call 0x10c0
|
||||||
|
52dd57: 33 ff xor %edi,%edi
|
||||||
|
52dd59: 48 89 bb 28 01 00 00 mov %rdi,0x128(%rbx)
|
||||||
|
52dd60: 89 bb 30 01 00 00 mov %edi,0x130(%rbx)
|
||||||
|
52dd66: 39 bb 20 01 00 00 cmp %edi,0x120(%rbx)
|
||||||
|
52dd6c: 7e 11 jle 0x52dd7f
|
||||||
|
52dd6e: 48 8b 8b 18 01 00 00 mov 0x118(%rbx),%rcx
|
||||||
|
52dd75: 48 85 c9 test %rcx,%rcx
|
||||||
|
52dd78: 74 05 je 0x52dd7f
|
||||||
|
52dd7a: e8 41 33 ad ff call 0x10c0
|
||||||
|
52dd7f: 48 89 bb 18 01 00 00 mov %rdi,0x118(%rbx)
|
||||||
|
52dd86: 89 bb 20 01 00 00 mov %edi,0x120(%rbx)
|
||||||
|
52dd8c: 39 bb 10 01 00 00 cmp %edi,0x110(%rbx)
|
||||||
|
52dd92: 7e 11 jle 0x52dda5
|
||||||
|
52dd94: 48 8b 8b 08 01 00 00 mov 0x108(%rbx),%rcx
|
||||||
|
52dd9b: 48 85 c9 test %rcx,%rcx
|
||||||
|
52dd9e: 74 05 je 0x52dda5
|
||||||
|
52dda0: e8 1b 33 ad ff call 0x10c0
|
||||||
|
52dda5: 48 89 bb 08 01 00 00 mov %rdi,0x108(%rbx)
|
||||||
|
52ddac: 89 bb 10 01 00 00 mov %edi,0x110(%rbx)
|
||||||
|
52ddb2: 39 bb 00 01 00 00 cmp %edi,0x100(%rbx)
|
||||||
|
52ddb8: 7e 11 jle 0x52ddcb
|
||||||
|
52ddba: 48 8b 8b f8 00 00 00 mov 0xf8(%rbx),%rcx
|
||||||
|
52ddc1: 48 85 c9 test %rcx,%rcx
|
||||||
|
52ddc4: 74 05 je 0x52ddcb
|
||||||
|
52ddc6: e8 f5 32 ad ff call 0x10c0
|
||||||
|
52ddcb: 48 89 bb f8 00 00 00 mov %rdi,0xf8(%rbx)
|
||||||
|
52ddd2: 89 bb 00 01 00 00 mov %edi,0x100(%rbx)
|
||||||
|
52ddd8: 39 bb f0 00 00 00 cmp %edi,0xf0(%rbx)
|
||||||
|
52ddde: 7e 11 jle 0x52ddf1
|
||||||
|
52dde0: 48 8b 8b e8 00 00 00 mov 0xe8(%rbx),%rcx
|
||||||
|
52dde7: 48 85 c9 test %rcx,%rcx
|
||||||
|
52ddea: 74 05 je 0x52ddf1
|
||||||
|
52ddec: e8 cf 32 ad ff call 0x10c0
|
||||||
|
52ddf1: 48 89 bb e8 00 00 00 mov %rdi,0xe8(%rbx)
|
||||||
|
52ddf8: 89 bb f0 00 00 00 mov %edi,0xf0(%rbx)
|
||||||
|
52ddfe: 39 bb e0 00 00 00 cmp %edi,0xe0(%rbx)
|
||||||
|
52de04: 7e 11 jle 0x52de17
|
||||||
|
52de06: 48 8b 8b d8 00 00 00 mov 0xd8(%rbx),%rcx
|
||||||
|
52de0d: 48 85 c9 test %rcx,%rcx
|
||||||
|
52de10: 74 05 je 0x52de17
|
||||||
|
52de12: e8 a9 32 ad ff call 0x10c0
|
||||||
|
52de17: 48 89 bb d8 00 00 00 mov %rdi,0xd8(%rbx)
|
||||||
|
52de1e: 89 bb e0 00 00 00 mov %edi,0xe0(%rbx)
|
||||||
|
52de24: 39 bb d0 00 00 00 cmp %edi,0xd0(%rbx)
|
||||||
|
52de2a: 7e 11 jle 0x52de3d
|
||||||
|
52de2c: 48 8b 8b c8 00 00 00 mov 0xc8(%rbx),%rcx
|
||||||
|
52de33: 48 85 c9 test %rcx,%rcx
|
||||||
|
52de36: 74 05 je 0x52de3d
|
||||||
|
52de38: e8 83 32 ad ff call 0x10c0
|
||||||
|
52de3d: 48 89 bb c8 00 00 00 mov %rdi,0xc8(%rbx)
|
||||||
|
52de44: 89 bb d0 00 00 00 mov %edi,0xd0(%rbx)
|
||||||
|
52de4a: 39 bb c0 00 00 00 cmp %edi,0xc0(%rbx)
|
||||||
|
52de50: 7e 11 jle 0x52de63
|
||||||
|
52de52: 48 8b 8b b8 00 00 00 mov 0xb8(%rbx),%rcx
|
||||||
|
52de59: 48 85 c9 test %rcx,%rcx
|
||||||
|
52de5c: 74 05 je 0x52de63
|
||||||
|
52de5e: e8 5d 32 ad ff call 0x10c0
|
||||||
|
52de63: 48 89 bb b8 00 00 00 mov %rdi,0xb8(%rbx)
|
||||||
|
52de6a: 89 bb c0 00 00 00 mov %edi,0xc0(%rbx)
|
||||||
|
52de70: 39 bb b0 00 00 00 cmp %edi,0xb0(%rbx)
|
||||||
|
52de76: 7e 11 jle 0x52de89
|
||||||
|
52de78: 48 8b 8b a8 00 00 00 mov 0xa8(%rbx),%rcx
|
||||||
|
52de7f: 48 85 c9 test %rcx,%rcx
|
||||||
|
52de82: 74 05 je 0x52de89
|
||||||
|
52de84: e8 37 32 ad ff call 0x10c0
|
||||||
|
52de89: 48 89 bb a8 00 00 00 mov %rdi,0xa8(%rbx)
|
||||||
|
52de90: 89 bb b0 00 00 00 mov %edi,0xb0(%rbx)
|
||||||
|
52de96: 39 bb a0 00 00 00 cmp %edi,0xa0(%rbx)
|
||||||
|
52de9c: 7e 11 jle 0x52deaf
|
||||||
|
52de9e: 48 8b 8b 98 00 00 00 mov 0x98(%rbx),%rcx
|
||||||
|
52dea5: 48 85 c9 test %rcx,%rcx
|
||||||
|
52dea8: 74 05 je 0x52deaf
|
||||||
|
52deaa: e8 11 32 ad ff call 0x10c0
|
||||||
|
52deaf: 48 89 bb 98 00 00 00 mov %rdi,0x98(%rbx)
|
||||||
|
52deb6: 89 bb a0 00 00 00 mov %edi,0xa0(%rbx)
|
||||||
|
52debc: 39 bb 90 00 00 00 cmp %edi,0x90(%rbx)
|
||||||
|
52dec2: 7e 11 jle 0x52ded5
|
||||||
|
52dec4: 48 8b 8b 88 00 00 00 mov 0x88(%rbx),%rcx
|
||||||
|
52decb: 48 85 c9 test %rcx,%rcx
|
||||||
|
52dece: 74 05 je 0x52ded5
|
||||||
|
52ded0: e8 eb 31 ad ff call 0x10c0
|
||||||
|
52ded5: 48 89 bb 88 00 00 00 mov %rdi,0x88(%rbx)
|
||||||
|
52dedc: 89 bb 90 00 00 00 mov %edi,0x90(%rbx)
|
||||||
|
52dee2: 39 bb 80 00 00 00 cmp %edi,0x80(%rbx)
|
||||||
|
52dee8: 7e 0e jle 0x52def8
|
||||||
|
52deea: 48 8b 4b 78 mov 0x78(%rbx),%rcx
|
||||||
|
52deee: 48 85 c9 test %rcx,%rcx
|
||||||
|
52def1: 74 05 je 0x52def8
|
||||||
|
52def3: e8 c8 31 ad ff call 0x10c0
|
||||||
|
52def8: 48 89 7b 78 mov %rdi,0x78(%rbx)
|
||||||
|
52defc: 89 bb 80 00 00 00 mov %edi,0x80(%rbx)
|
||||||
|
52df02: 39 7b 70 cmp %edi,0x70(%rbx)
|
||||||
|
52df05: 7e 0e jle 0x52df15
|
||||||
|
52df07: 48 8b 4b 68 mov 0x68(%rbx),%rcx
|
||||||
|
52df0b: 48 85 c9 test %rcx,%rcx
|
||||||
|
52df0e: 74 05 je 0x52df15
|
||||||
|
52df10: e8 ab 31 ad ff call 0x10c0
|
||||||
|
52df15: 48 89 7b 68 mov %rdi,0x68(%rbx)
|
||||||
|
52df19: 89 7b 70 mov %edi,0x70(%rbx)
|
||||||
|
52df1c: 39 7b 60 cmp %edi,0x60(%rbx)
|
||||||
|
52df1f: 7e 0e jle 0x52df2f
|
||||||
|
52df21: 48 8b 4b 58 mov 0x58(%rbx),%rcx
|
||||||
|
52df25: 48 85 c9 test %rcx,%rcx
|
||||||
|
52df28: 74 05 je 0x52df2f
|
||||||
|
52df2a: e8 91 31 ad ff call 0x10c0
|
||||||
|
52df2f: 48 89 7b 58 mov %rdi,0x58(%rbx)
|
||||||
|
52df33: 89 7b 60 mov %edi,0x60(%rbx)
|
||||||
|
52df36: 39 7b 50 cmp %edi,0x50(%rbx)
|
||||||
|
52df39: 7e 0e jle 0x52df49
|
||||||
|
52df3b: 48 8b 4b 48 mov 0x48(%rbx),%rcx
|
||||||
|
52df3f: 48 85 c9 test %rcx,%rcx
|
||||||
|
52df42: 74 05 je 0x52df49
|
||||||
|
52df44: e8 77 31 ad ff call 0x10c0
|
||||||
|
52df49: 48 89 7b 48 mov %rdi,0x48(%rbx)
|
||||||
|
52df4d: 89 7b 50 mov %edi,0x50(%rbx)
|
||||||
|
52df50: 48 8b 5c 24 30 mov 0x30(%rsp),%rbx
|
||||||
|
52df55: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
52df59: 5f pop %rdi
|
||||||
|
52df5a: c3 ret
|
||||||
|
52df5b: cc int3
|
||||||
|
52df5c: cc int3
|
||||||
|
52df5d: cc int3
|
||||||
|
52df5e: cc int3
|
||||||
|
52df5f: cc int3
|
||||||
|
52df60: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
52df65: 48 89 74 24 10 mov %rsi,0x10(%rsp)
|
||||||
|
52df6a: 48 89 7c 24 18 mov %rdi,0x18(%rsp)
|
||||||
|
52df6f: 41 56 push %r14
|
||||||
|
52df71: 48 83 ec 30 sub $0x30,%rsp
|
||||||
|
52df75: 8b 91 a0 01 00 00 mov 0x1a0(%rcx),%edx
|
||||||
|
52df7b: 48 8b f9 mov %rcx,%rdi
|
||||||
|
52df7e: 48 81 c1 40 03 00 00 add $0x340,%rcx
|
||||||
|
52df85: 0f 29 74 24 20 movaps %xmm6,0x20(%rsp)
|
||||||
|
52df8a: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
52df8d: 0f 57 f6 xorps %xmm6,%xmm6
|
||||||
|
52df90: e8 fb 01 00 00 call 0x52e190
|
||||||
|
52df95: 8b 97 a0 01 00 00 mov 0x1a0(%rdi),%edx
|
||||||
|
52df9b: 48 8d 8f 50 03 00 00 lea 0x350(%rdi),%rcx
|
||||||
|
52dfa2: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
52dfa5: e8 e6 01 00 00 call 0x52e190
|
||||||
|
52dfaa: 8b 97 a0 01 00 00 mov 0x1a0(%rdi),%edx
|
||||||
|
52dfb0: 48 8d 8f b0 03 00 00 lea 0x3b0(%rdi),%rcx
|
||||||
|
52dfb7: 03 d2 add %edx,%edx
|
||||||
|
52dfb9: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
52dfbc: e8 cf 01 00 00 call 0x52e190
|
||||||
|
52dfc1: 8b 97 a0 01 00 00 mov 0x1a0(%rdi),%edx
|
||||||
|
52dfc7: 48 8b 8f 50 03 00 00 mov 0x350(%rdi),%rcx
|
||||||
|
52dfce: e8 1d 77 00 00 call 0x5356f0
|
||||||
|
52dfd3: 8b 97 a0 01 00 00 mov 0x1a0(%rdi),%edx
|
||||||
|
52dfd9: 48 8b 8f 40 03 00 00 mov 0x340(%rdi),%rcx
|
||||||
|
52dfe0: e8 0b 77 00 00 call 0x5356f0
|
||||||
|
52dfe5: 80 bf b4 01 00 00 00 cmpb $0x0,0x1b4(%rdi)
|
||||||
|
52dfec: 0f 84 80 00 00 00 je 0x52e072
|
||||||
|
52dff2: 48 8b 97 40 03 00 00 mov 0x340(%rdi),%rdx
|
||||||
|
52dff9: 44 8b 8f a0 01 00 00 mov 0x1a0(%rdi),%r9d
|
||||||
|
52e000: 4c 8b c2 mov %rdx,%r8
|
||||||
|
52e003: 48 8b 8f b0 03 00 00 mov 0x3b0(%rdi),%rcx
|
||||||
|
52e00a: e8 61 fa ff ff call 0x52da70
|
||||||
|
52e00f: 4c 63 97 a0 01 00 00 movslq 0x1a0(%rdi),%r10
|
||||||
|
52e016: 33 c0 xor %eax,%eax
|
||||||
|
52e018: 4c 8b 8f b0 03 00 00 mov 0x3b0(%rdi),%r9
|
||||||
|
52e01f: 49 83 fa 04 cmp $0x4,%r10
|
||||||
|
52e023: 7c 38 jl 0x52e05d
|
||||||
|
52e025: 49 8d 52 fc lea -0x4(%r10),%rdx
|
||||||
|
52e029: 48 c1 ea 02 shr $0x2,%rdx
|
||||||
|
52e02d: 49 8d 49 08 lea 0x8(%r9),%rcx
|
||||||
|
52e031: 48 ff c2 inc %rdx
|
||||||
|
52e034: 48 8d 04 95 00 00 00 lea 0x0(,%rdx,4),%rax
|
||||||
|
52e03b: 00
|
||||||
|
52e03c: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
52e040: f3 0f 58 71 f8 addss -0x8(%rcx),%xmm6
|
||||||
|
52e045: f3 0f 58 71 fc addss -0x4(%rcx),%xmm6
|
||||||
|
52e04a: f3 0f 58 31 addss (%rcx),%xmm6
|
||||||
|
52e04e: f3 0f 58 71 04 addss 0x4(%rcx),%xmm6
|
||||||
|
52e053: 48 83 c1 10 add $0x10,%rcx
|
||||||
|
52e057: 48 83 ea 01 sub $0x1,%rdx
|
||||||
|
52e05b: 75 e3 jne 0x52e040
|
||||||
|
52e05d: 49 3b c2 cmp %r10,%rax
|
||||||
|
52e060: 7d 6e jge 0x52e0d0
|
||||||
|
52e062: f3 41 0f 58 34 81 addss (%r9,%rax,4),%xmm6
|
||||||
|
52e068: 48 ff c0 inc %rax
|
||||||
|
52e06b: 49 3b c2 cmp %r10,%rax
|
||||||
|
52e06e: 7c f2 jl 0x52e062
|
||||||
|
52e070: eb 5e jmp 0x52e0d0
|
||||||
|
52e072: 4c 63 97 a0 01 00 00 movslq 0x1a0(%rdi),%r10
|
||||||
|
52e079: 33 c0 xor %eax,%eax
|
||||||
|
52e07b: 4c 8b 8f 40 03 00 00 mov 0x340(%rdi),%r9
|
||||||
|
52e082: 49 83 fa 04 cmp $0x4,%r10
|
||||||
|
52e086: 7c 35 jl 0x52e0bd
|
||||||
|
52e088: 49 8d 52 fc lea -0x4(%r10),%rdx
|
||||||
|
52e08c: 48 c1 ea 02 shr $0x2,%rdx
|
||||||
|
52e090: 49 8d 49 08 lea 0x8(%r9),%rcx
|
||||||
|
52e094: 48 ff c2 inc %rdx
|
||||||
|
52e097: 48 8d 04 95 00 00 00 lea 0x0(,%rdx,4),%rax
|
||||||
|
52e09e: 00
|
||||||
|
52e09f: 90 nop
|
||||||
|
52e0a0: f3 0f 58 71 f8 addss -0x8(%rcx),%xmm6
|
||||||
|
52e0a5: f3 0f 58 71 fc addss -0x4(%rcx),%xmm6
|
||||||
|
52e0aa: f3 0f 58 31 addss (%rcx),%xmm6
|
||||||
|
52e0ae: f3 0f 58 71 04 addss 0x4(%rcx),%xmm6
|
||||||
|
52e0b3: 48 83 c1 10 add $0x10,%rcx
|
||||||
|
52e0b7: 48 83 ea 01 sub $0x1,%rdx
|
||||||
|
52e0bb: 75 e3 jne 0x52e0a0
|
||||||
|
52e0bd: 49 3b c2 cmp %r10,%rax
|
||||||
|
52e0c0: 7d 0e jge 0x52e0d0
|
||||||
|
52e0c2: f3 41 0f 58 34 81 addss (%r9,%rax,4),%xmm6
|
||||||
|
52e0c8: 48 ff c0 inc %rax
|
||||||
|
52e0cb: 49 3b c2 cmp %r10,%rax
|
||||||
|
52e0ce: 7c f2 jl 0x52e0c2
|
||||||
|
52e0d0: f3 0f 10 0d cc 5d f9 movss 0x1f95dcc(%rip),%xmm1 # 0x24c3ea4
|
||||||
|
52e0d7: 01
|
||||||
|
52e0d8: 48 8b 5c 24 40 mov 0x40(%rsp),%rbx
|
||||||
|
52e0dd: 48 8b 74 24 48 mov 0x48(%rsp),%rsi
|
||||||
|
52e0e2: 66 41 0f 6e c2 movd %r10d,%xmm0
|
||||||
|
52e0e7: 0f 5b c0 cvtdq2ps %xmm0,%xmm0
|
||||||
|
52e0ea: f3 0f 5e f0 divss %xmm0,%xmm6
|
||||||
|
52e0ee: 66 0f 6e 87 ac 01 00 movd 0x1ac(%rdi),%xmm0
|
||||||
|
52e0f5: 00
|
||||||
|
52e0f6: f3 0f 5e ce divss %xmm6,%xmm1
|
||||||
|
52e0fa: 0f 28 74 24 20 movaps 0x20(%rsp),%xmm6
|
||||||
|
52e0ff: f3 0f 11 8f a4 01 00 movss %xmm1,0x1a4(%rdi)
|
||||||
|
52e106: 00
|
||||||
|
52e107: 0f 5b c0 cvtdq2ps %xmm0,%xmm0
|
||||||
|
52e10a: f3 0f 5e c8 divss %xmm0,%xmm1
|
||||||
|
52e10e: f3 0f 11 8f a4 01 00 movss %xmm1,0x1a4(%rdi)
|
||||||
|
52e115: 00
|
||||||
|
52e116: 48 8b 7c 24 50 mov 0x50(%rsp),%rdi
|
||||||
|
52e11b: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
52e11f: 41 5e pop %r14
|
||||||
|
52e121: c3 ret
|
||||||
|
52e122: cc int3
|
||||||
|
52e123: cc int3
|
||||||
|
52e124: cc int3
|
||||||
|
52e125: cc int3
|
||||||
|
52e126: cc int3
|
||||||
|
52e127: cc int3
|
||||||
|
52e128: cc int3
|
||||||
|
52e129: cc int3
|
||||||
|
52e12a: cc int3
|
||||||
|
52e12b: cc int3
|
||||||
|
52e12c: cc int3
|
||||||
|
52e12d: cc int3
|
||||||
|
52e12e: cc int3
|
||||||
|
52e12f: cc int3
|
||||||
@@ -0,0 +1,192 @@
|
|||||||
|
0000000180530b60 <.data>:
|
||||||
|
180530b60: 40 53 rex push %rbx
|
||||||
|
180530b62: 48 81 ec 80 00 00 00 sub $0x80,%rsp
|
||||||
|
180530b69: f3 0f 10 0d 7f 32 f9 movss 0x1f9327f(%rip),%xmm1 # 0x1824c3df0
|
||||||
|
180530b70: 01
|
||||||
|
180530b71: 48 8b d9 mov %rcx,%rbx
|
||||||
|
180530b74: f3 0f 10 81 78 08 54 movss 0x540878(%rcx),%xmm0
|
||||||
|
180530b7b: 00
|
||||||
|
180530b7c: 0f 29 74 24 70 movaps %xmm6,0x70(%rsp)
|
||||||
|
180530b81: 0f 29 7c 24 60 movaps %xmm7,0x60(%rsp)
|
||||||
|
180530b86: 44 0f 29 44 24 50 movaps %xmm8,0x50(%rsp)
|
||||||
|
180530b8c: 44 0f 29 4c 24 40 movaps %xmm9,0x40(%rsp)
|
||||||
|
180530b92: 44 0f 29 5c 24 30 movaps %xmm11,0x30(%rsp)
|
||||||
|
180530b98: e8 3f 41 4e 01 call 0x181a14cdc
|
||||||
|
180530b9d: f3 0f 10 0d 3b 36 f9 movss 0x1f9363b(%rip),%xmm1 # 0x1824c41e0
|
||||||
|
180530ba4: 01
|
||||||
|
180530ba5: 44 0f 28 d8 movaps %xmm0,%xmm11
|
||||||
|
180530ba9: f3 0f 10 83 7c 08 54 movss 0x54087c(%rbx),%xmm0
|
||||||
|
180530bb0: 00
|
||||||
|
180530bb1: e8 26 41 4e 01 call 0x181a14cdc
|
||||||
|
180530bb6: 80 bb b8 08 54 00 00 cmpb $0x0,0x5408b8(%rbx)
|
||||||
|
180530bbd: 0f 28 f8 movaps %xmm0,%xmm7
|
||||||
|
180530bc0: 74 0b je 0x180530bcd
|
||||||
|
180530bc2: f3 44 0f 10 0d c9 39 movss 0x1f939c9(%rip),%xmm9 # 0x1824c4594
|
||||||
|
180530bc9: f9 01
|
||||||
|
180530bcb: eb 09 jmp 0x180530bd6
|
||||||
|
180530bcd: f3 44 0f 10 0d d2 39 movss 0x1f939d2(%rip),%xmm9 # 0x1824c45a8
|
||||||
|
180530bd4: f9 01
|
||||||
|
180530bd6: f3 0f 10 05 3a 38 f9 movss 0x1f9383a(%rip),%xmm0 # 0x1824c4418
|
||||||
|
180530bdd: 01
|
||||||
|
180530bde: e8 ed 40 4e 01 call 0x181a14cd0
|
||||||
|
180530be3: 0f 28 f0 movaps %xmm0,%xmm6
|
||||||
|
180530be6: 41 0f 28 c1 movaps %xmm9,%xmm0
|
||||||
|
180530bea: e8 e1 40 4e 01 call 0x181a14cd0
|
||||||
|
180530bef: f3 0f 5c c6 subss %xmm6,%xmm0
|
||||||
|
180530bf3: f3 41 0f 59 c3 mulss %xmm11,%xmm0
|
||||||
|
180530bf8: f3 0f 58 c6 addss %xmm6,%xmm0
|
||||||
|
180530bfc: e8 ab 40 4e 01 call 0x181a14cac
|
||||||
|
180530c01: 44 0f 28 c0 movaps %xmm0,%xmm8
|
||||||
|
180530c05: f3 0f 10 05 d7 37 f9 movss 0x1f937d7(%rip),%xmm0 # 0x1824c43e4
|
||||||
|
180530c0c: 01
|
||||||
|
180530c0d: f3 44 0f 11 83 94 08 movss %xmm8,0x540894(%rbx)
|
||||||
|
180530c14: 54 00
|
||||||
|
180530c16: e8 b5 40 4e 01 call 0x181a14cd0
|
||||||
|
180530c1b: 0f 28 f0 movaps %xmm0,%xmm6
|
||||||
|
180530c1e: f3 0f 10 05 f2 38 f9 movss 0x1f938f2(%rip),%xmm0 # 0x1824c4518
|
||||||
|
180530c25: 01
|
||||||
|
180530c26: e8 a5 40 4e 01 call 0x181a14cd0
|
||||||
|
180530c2b: f3 0f 5c c6 subss %xmm6,%xmm0
|
||||||
|
180530c2f: f3 0f 59 c7 mulss %xmm7,%xmm0
|
||||||
|
180530c33: f3 0f 58 c6 addss %xmm6,%xmm0
|
||||||
|
180530c37: e8 70 40 4e 01 call 0x181a14cac
|
||||||
|
180530c3c: f3 0f 11 83 98 08 54 movss %xmm0,0x540898(%rbx)
|
||||||
|
180530c43: 00
|
||||||
|
180530c44: f3 0f 10 05 24 30 f9 movss 0x1f93024(%rip),%xmm0 # 0x1824c3c70
|
||||||
|
180530c4b: 01
|
||||||
|
180530c4c: e8 7f 40 4e 01 call 0x181a14cd0
|
||||||
|
180530c51: f3 0f 10 3d 4b 32 f9 movss 0x1f9324b(%rip),%xmm7 # 0x1824c3ea4
|
||||||
|
180530c58: 01
|
||||||
|
180530c59: 0f 28 f0 movaps %xmm0,%xmm6
|
||||||
|
180530c5c: 0f 28 c7 movaps %xmm7,%xmm0
|
||||||
|
180530c5f: e8 6c 40 4e 01 call 0x181a14cd0
|
||||||
|
180530c64: f3 0f 5c c6 subss %xmm6,%xmm0
|
||||||
|
180530c68: f3 41 0f 59 c3 mulss %xmm11,%xmm0
|
||||||
|
180530c6d: f3 0f 58 c6 addss %xmm6,%xmm0
|
||||||
|
180530c71: e8 36 40 4e 01 call 0x181a14cac
|
||||||
|
180530c76: f3 44 0f 59 0d 61 35 mulss 0x1f93561(%rip),%xmm9 # 0x1824c41e0
|
||||||
|
180530c7d: f9 01
|
||||||
|
180530c7f: f3 0f 5c f8 subss %xmm0,%xmm7
|
||||||
|
180530c83: 48 8d 8b e8 04 24 00 lea 0x2404e8(%rbx),%rcx
|
||||||
|
180530c8a: f3 0f 10 35 0a 39 f9 movss 0x1f9390a(%rip),%xmm6 # 0x1824c459c
|
||||||
|
180530c91: 01
|
||||||
|
180530c92: 41 0f 28 c8 movaps %xmm8,%xmm1
|
||||||
|
180530c96: f3 0f 10 5b 24 movss 0x24(%rbx),%xmm3
|
||||||
|
180530c9b: 0f 28 d6 movaps %xmm6,%xmm2
|
||||||
|
180530c9e: f3 44 0f 11 4c 24 28 movss %xmm9,0x28(%rsp)
|
||||||
|
180530ca5: f3 0f 11 7c 24 20 movss %xmm7,0x20(%rsp)
|
||||||
|
180530cab: e8 90 26 00 00 call 0x180533340
|
||||||
|
180530cb0: f3 0f 10 5b 24 movss 0x24(%rbx),%xmm3
|
||||||
|
180530cb5: 48 8d 8b 00 05 34 00 lea 0x340500(%rbx),%rcx
|
||||||
|
180530cbc: f3 0f 10 8b 94 08 54 movss 0x540894(%rbx),%xmm1
|
||||||
|
180530cc3: 00
|
||||||
|
180530cc4: 0f 28 d6 movaps %xmm6,%xmm2
|
||||||
|
180530cc7: f3 44 0f 11 4c 24 28 movss %xmm9,0x28(%rsp)
|
||||||
|
180530cce: f3 0f 11 7c 24 20 movss %xmm7,0x20(%rsp)
|
||||||
|
180530cd4: e8 67 26 00 00 call 0x180533340
|
||||||
|
180530cd9: f3 0f 10 05 83 38 f9 movss 0x1f93883(%rip),%xmm0 # 0x1824c4564
|
||||||
|
180530ce0: 01
|
||||||
|
180530ce1: 48 8d 8b 18 05 44 00 lea 0x440518(%rbx),%rcx
|
||||||
|
180530ce8: f3 0f 10 5b 24 movss 0x24(%rbx),%xmm3
|
||||||
|
180530ced: 0f 28 d6 movaps %xmm6,%xmm2
|
||||||
|
180530cf0: f3 0f 10 8b 98 08 54 movss 0x540898(%rbx),%xmm1
|
||||||
|
180530cf7: 00
|
||||||
|
180530cf8: f3 0f 11 44 24 28 movss %xmm0,0x28(%rsp)
|
||||||
|
180530cfe: f3 0f 11 7c 24 20 movss %xmm7,0x20(%rsp)
|
||||||
|
180530d04: e8 37 26 00 00 call 0x180533340
|
||||||
|
180530d09: 0f 28 74 24 70 movaps 0x70(%rsp),%xmm6
|
||||||
|
180530d0e: 0f 28 7c 24 60 movaps 0x60(%rsp),%xmm7
|
||||||
|
180530d13: 44 0f 28 44 24 50 movaps 0x50(%rsp),%xmm8
|
||||||
|
180530d19: 44 0f 28 4c 24 40 movaps 0x40(%rsp),%xmm9
|
||||||
|
180530d1f: 44 0f 28 5c 24 30 movaps 0x30(%rsp),%xmm11
|
||||||
|
180530d25: 48 81 c4 80 00 00 00 add $0x80,%rsp
|
||||||
|
180530d2c: 5b pop %rbx
|
||||||
|
180530d2d: c3 ret
|
||||||
|
180530d2e: cc int3
|
||||||
|
180530d2f: cc int3
|
||||||
|
180530d30: 48 8b c4 mov %rsp,%rax
|
||||||
|
180530d33: 48 89 58 08 mov %rbx,0x8(%rax)
|
||||||
|
180530d37: 48 89 68 10 mov %rbp,0x10(%rax)
|
||||||
|
180530d3b: 48 89 70 18 mov %rsi,0x18(%rax)
|
||||||
|
180530d3f: 57 push %rdi
|
||||||
|
180530d40: 48 81 ec c0 00 00 00 sub $0xc0,%rsp
|
||||||
|
180530d47: f3 0f 10 51 24 movss 0x24(%rcx),%xmm2
|
||||||
|
180530d4c: 48 8b d9 mov %rcx,%rbx
|
||||||
|
180530d4f: 66 0f 6e 81 a0 01 00 movd 0x1a0(%rcx),%xmm0
|
||||||
|
180530d56: 00
|
||||||
|
180530d57: 0f 28 da movaps %xmm2,%xmm3
|
||||||
|
180530d5a: f3 0f 59 15 2a 30 f9 mulss 0x1f9302a(%rip),%xmm2 # 0x1824c3d8c
|
||||||
|
180530d61: 01
|
||||||
|
180530d62: 66 0f 6e 89 ac 01 00 movd 0x1ac(%rcx),%xmm1
|
||||||
|
180530d69: 00
|
||||||
|
180530d6a: 0f 29 78 d8 movaps %xmm7,-0x28(%rax)
|
||||||
|
180530d6e: f3 0f 10 3d 3e 38 f9 movss 0x1f9383e(%rip),%xmm7 # 0x1824c45b4
|
||||||
|
180530d75: 01
|
||||||
|
180530d76: 44 0f 29 40 c8 movaps %xmm8,-0x38(%rax)
|
||||||
|
180530d7b: f3 44 0f 10 05 20 31 movss 0x1f93120(%rip),%xmm8 # 0x1824c3ea4
|
||||||
|
180530d82: f9 01
|
||||||
|
180530d84: 44 0f 29 50 a8 movaps %xmm10,-0x58(%rax)
|
||||||
|
180530d89: 44 0f 29 58 98 movaps %xmm11,-0x68(%rax)
|
||||||
|
180530d8e: 8b 41 64 mov 0x64(%rcx),%eax
|
||||||
|
180530d91: f3 44 0f 10 1d 9a 35 movss 0x1f9359a(%rip),%xmm11 # 0x1824c4334
|
||||||
|
180530d98: f9 01
|
||||||
|
180530d9a: 99 cltd
|
||||||
|
180530d9b: 0f 5b c0 cvtdq2ps %xmm0,%xmm0
|
||||||
|
180530d9e: 2b c2 sub %edx,%eax
|
||||||
|
180530da0: d1 f8 sar $1,%eax
|
||||||
|
180530da2: ff c0 inc %eax
|
||||||
|
180530da4: 80 b9 b8 08 54 00 00 cmpb $0x0,0x5408b8(%rcx)
|
||||||
|
180530dab: f3 0f 5e fa divss %xmm2,%xmm7
|
||||||
|
180530daf: f3 0f 5e d8 divss %xmm0,%xmm3
|
||||||
|
180530db3: 66 0f 6e c0 movd %eax,%xmm0
|
||||||
|
180530db7: 0f 5b c9 cvtdq2ps %xmm1,%xmm1
|
||||||
|
180530dba: 0f 5b c0 cvtdq2ps %xmm0,%xmm0
|
||||||
|
180530dbd: f3 0f 59 d9 mulss %xmm1,%xmm3
|
||||||
|
180530dc1: f3 0f 59 f8 mulss %xmm0,%xmm7
|
||||||
|
180530dc5: 74 06 je 0x180530dcd
|
||||||
|
180530dc7: 45 0f 28 d0 movaps %xmm8,%xmm10
|
||||||
|
180530dcb: eb 04 jmp 0x180530dd1
|
||||||
|
180530dcd: 45 0f 28 d3 movaps %xmm11,%xmm10
|
||||||
|
180530dd1: 33 ff xor %edi,%edi
|
||||||
|
180530dd3: 48 63 e8 movslq %eax,%rbp
|
||||||
|
180530dd6: 8b f7 mov %edi,%esi
|
||||||
|
180530dd8: 85 c0 test %eax,%eax
|
||||||
|
180530dda: 0f 8e e0 01 00 00 jle 0x180530fc0
|
||||||
|
180530de0: 0f 29 b4 24 b0 00 00 movaps %xmm6,0xb0(%rsp)
|
||||||
|
180530de7: 00
|
||||||
|
180530de8: 44 0f 29 8c 24 80 00 movaps %xmm9,0x80(%rsp)
|
||||||
|
180530def: 00 00
|
||||||
|
180530df1: 44 0f 29 64 24 50 movaps %xmm12,0x50(%rsp)
|
||||||
|
180530df7: f2 44 0f 10 25 40 33 movsd 0x1f93340(%rip),%xmm12 # 0x1824c4140
|
||||||
|
180530dfe: f9 01
|
||||||
|
180530e00: 44 0f 29 6c 24 40 movaps %xmm13,0x40(%rsp)
|
||||||
|
180530e06: f3 44 0f 10 2d 2d 2f movss 0x1f92f2d(%rip),%xmm13 # 0x1824c3d3c
|
||||||
|
180530e0d: f9 01
|
||||||
|
180530e0f: 44 0f 29 74 24 30 movaps %xmm14,0x30(%rsp)
|
||||||
|
180530e15: f2 44 0f 10 35 f2 40 movsd 0x1f940f2(%rip),%xmm14 # 0x1824c4f10
|
||||||
|
180530e1c: f9 01
|
||||||
|
180530e1e: 44 0f 5a cb cvtps2pd %xmm3,%xmm9
|
||||||
|
180530e22: 44 0f 29 7c 24 20 movaps %xmm15,0x20(%rsp)
|
||||||
|
180530e28: f2 44 0f 59 0d ff 2f mulsd 0x1f92fff(%rip),%xmm9 # 0x1824c3e30
|
||||||
|
180530e2f: f9 01
|
||||||
|
180530e31: f2 44 0f 10 3d be 2e movsd 0x1f92ebe(%rip),%xmm15 # 0x1824c3cf8
|
||||||
|
180530e38: f9 01
|
||||||
|
180530e3a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
|
||||||
|
180530e40: 0f 57 c9 xorps %xmm1,%xmm1
|
||||||
|
180530e43: 0f 28 c7 movaps %xmm7,%xmm0
|
||||||
|
180530e46: f3 0f 2a cf cvtsi2ss %edi,%xmm1
|
||||||
|
180530e4a: f3 41 0f 58 c8 addss %xmm8,%xmm1
|
||||||
|
180530e4f: f3 0f 5e c1 divss %xmm1,%xmm0
|
||||||
|
180530e53: 41 0f 28 cd movaps %xmm13,%xmm1
|
||||||
|
180530e57: e8 80 3e 4e 01 call 0x181a14cdc
|
||||||
|
180530e5c: f3 0f 10 93 80 08 54 movss 0x540880(%rbx),%xmm2
|
||||||
|
180530e63: 00
|
||||||
|
180530e64: 0f 28 f0 movaps %xmm0,%xmm6
|
||||||
|
180530e67: 0f 28 da movaps %xmm2,%xmm3
|
||||||
|
180530e6a: f3 41 0f 59 f2 mulss %xmm10,%xmm6
|
||||||
|
180530e6f: f3 41 0f 59 dd mulss %xmm13,%xmm3
|
||||||
|
180530e74: 41 0f 28 c0 movaps %xmm8,%xmm0
|
||||||
|
180530e78: f3 41 0f 59 d3 mulss %xmm11,%xmm2
|
||||||
|
180530e7d: f3 repz
|
||||||
|
180530e7e: 0f .byte 0xf
|
||||||
|
180530e7f: 59 pop %rcx
|
||||||
@@ -0,0 +1,182 @@
|
|||||||
|
0000000180533340 <.data>:
|
||||||
|
180533340: 4c 8b dc mov %rsp,%r11
|
||||||
|
180533343: 49 89 5b 10 mov %rbx,0x10(%r11)
|
||||||
|
180533347: 57 push %rdi
|
||||||
|
180533348: 48 81 ec a0 00 00 00 sub $0xa0,%rsp
|
||||||
|
18053334f: 66 0f 6e 01 movd (%rcx),%xmm0
|
||||||
|
180533353: 48 b8 00 00 00 00 00 movabs $0x3ff0000000000000,%rax
|
||||||
|
18053335a: 00 f0 3f
|
||||||
|
18053335d: f3 0f 59 1d 27 0a f9 mulss 0x1f90a27(%rip),%xmm3 # 0x1824c3d8c
|
||||||
|
180533364: 01
|
||||||
|
180533365: bb 01 00 00 00 mov $0x1,%ebx
|
||||||
|
18053336a: 48 8b f9 mov %rcx,%rdi
|
||||||
|
18053336d: 48 c7 81 10 00 08 00 movq $0x0,0x80010(%rcx)
|
||||||
|
180533374: 00 00 00 00
|
||||||
|
180533378: 41 0f 29 73 e8 movaps %xmm6,-0x18(%r11)
|
||||||
|
18053337d: 0f 28 f2 movaps %xmm2,%xmm6
|
||||||
|
180533380: 0f 5b c0 cvtdq2ps %xmm0,%xmm0
|
||||||
|
180533383: 48 89 41 10 mov %rax,0x10(%rcx)
|
||||||
|
180533387: f3 0f 5e f3 divss %xmm3,%xmm6
|
||||||
|
18053338b: 44 0f 29 6c 24 20 movaps %xmm13,0x20(%rsp)
|
||||||
|
180533391: 44 0f 28 e9 movaps %xmm1,%xmm13
|
||||||
|
180533395: f3 0f 59 f0 mulss %xmm0,%xmm6
|
||||||
|
180533399: 39 19 cmp %ebx,(%rcx)
|
||||||
|
18053339b: 0f 8e 22 01 00 00 jle 0x1805334c3
|
||||||
|
1805333a1: 49 89 73 08 mov %rsi,0x8(%r11)
|
||||||
|
1805333a5: 48 8d 71 18 lea 0x18(%rcx),%rsi
|
||||||
|
1805333a9: 41 0f 29 7b d8 movaps %xmm7,-0x28(%r11)
|
||||||
|
1805333ae: f3 0f 10 bc 24 d0 00 movss 0xd0(%rsp),%xmm7
|
||||||
|
1805333b5: 00 00
|
||||||
|
1805333b7: 45 0f 29 43 c8 movaps %xmm8,-0x38(%r11)
|
||||||
|
1805333bc: f3 44 0f 10 05 df 0a movss 0x1f90adf(%rip),%xmm8 # 0x1824c3ea4
|
||||||
|
1805333c3: f9 01
|
||||||
|
1805333c5: 45 0f 29 4b b8 movaps %xmm9,-0x48(%r11)
|
||||||
|
1805333ca: f3 44 0f 10 8c 24 d8 movss 0xd8(%rsp),%xmm9
|
||||||
|
1805333d1: 00 00 00
|
||||||
|
1805333d4: 45 0f 29 53 a8 movaps %xmm10,-0x58(%r11)
|
||||||
|
1805333d9: f2 44 0f 10 15 2e 1b movsd 0x1f91b2e(%rip),%xmm10 # 0x1824c4f10
|
||||||
|
1805333e0: f9 01
|
||||||
|
1805333e2: 45 0f 29 5b 98 movaps %xmm11,-0x68(%r11)
|
||||||
|
1805333e7: f2 44 0f 10 1d c8 12 movsd 0x1f912c8(%rip),%xmm11 # 0x1824c46b8
|
||||||
|
1805333ee: f9 01
|
||||||
|
1805333f0: 45 0f 29 63 88 movaps %xmm12,-0x78(%r11)
|
||||||
|
1805333f5: f2 44 0f 10 25 42 0d movsd 0x1f90d42(%rip),%xmm12 # 0x1824c4140
|
||||||
|
1805333fc: f9 01
|
||||||
|
1805333fe: 66 90 xchg %ax,%ax
|
||||||
|
180533400: 66 0f 6e cb movd %ebx,%xmm1
|
||||||
|
180533404: 0f 5b c9 cvtdq2ps %xmm1,%xmm1
|
||||||
|
180533407: 0f 2f ce comiss %xmm6,%xmm1
|
||||||
|
18053340a: 76 14 jbe 0x180533420
|
||||||
|
18053340c: 0f 28 c6 movaps %xmm6,%xmm0
|
||||||
|
18053340f: f3 0f 5e c1 divss %xmm1,%xmm0
|
||||||
|
180533413: 0f 28 cf movaps %xmm7,%xmm1
|
||||||
|
180533416: e8 c1 18 4e 01 call 0x181a14cdc
|
||||||
|
18053341b: 0f 28 d8 movaps %xmm0,%xmm3
|
||||||
|
18053341e: eb 07 jmp 0x180533427
|
||||||
|
180533420: 0f 28 de movaps %xmm6,%xmm3
|
||||||
|
180533423: f3 0f 5e d9 divss %xmm1,%xmm3
|
||||||
|
180533427: f3 41 0f 59 dd mulss %xmm13,%xmm3
|
||||||
|
18053342c: 41 0f 28 c0 movaps %xmm8,%xmm0
|
||||||
|
180533430: 0f 28 cb movaps %xmm3,%xmm1
|
||||||
|
180533433: f3 41 0f 5e c9 divss %xmm9,%xmm1
|
||||||
|
180533438: f3 41 0f 58 c8 addss %xmm8,%xmm1
|
||||||
|
18053343d: f3 0f 5e c1 divss %xmm1,%xmm0
|
||||||
|
180533441: 0f 57 c9 xorps %xmm1,%xmm1
|
||||||
|
180533444: f3 0f 5a c8 cvtss2sd %xmm0,%xmm1
|
||||||
|
180533448: 41 0f 54 ca andps %xmm10,%xmm1
|
||||||
|
18053344c: 66 0f 5a d1 cvtpd2ps %xmm1,%xmm2
|
||||||
|
180533450: f3 0f 59 d3 mulss %xmm3,%xmm2
|
||||||
|
180533454: f3 0f 5e 57 08 divss 0x8(%rdi),%xmm2
|
||||||
|
180533459: 0f 5a c2 cvtps2pd %xmm2,%xmm0
|
||||||
|
18053345c: f2 41 0f 59 c3 mulsd %xmm11,%xmm0
|
||||||
|
180533461: e8 40 18 4e 01 call 0x181a14ca6
|
||||||
|
180533466: 0f 57 d2 xorps %xmm2,%xmm2
|
||||||
|
180533469: ff c3 inc %ebx
|
||||||
|
18053346b: f2 0f 5a d0 cvtsd2ss %xmm0,%xmm2
|
||||||
|
18053346f: 0f 5a ca cvtps2pd %xmm2,%xmm1
|
||||||
|
180533472: 0f 5a c2 cvtps2pd %xmm2,%xmm0
|
||||||
|
180533475: f2 0f 11 8e 00 00 08 movsd %xmm1,0x80000(%rsi)
|
||||||
|
18053347c: 00
|
||||||
|
18053347d: 41 0f 28 d4 movaps %xmm12,%xmm2
|
||||||
|
180533481: f2 0f 5c d0 subsd %xmm0,%xmm2
|
||||||
|
180533485: f2 0f 11 16 movsd %xmm2,(%rsi)
|
||||||
|
180533489: 48 83 c6 08 add $0x8,%rsi
|
||||||
|
18053348d: 3b 1f cmp (%rdi),%ebx
|
||||||
|
18053348f: 0f 8c 6b ff ff ff jl 0x180533400
|
||||||
|
180533495: 44 0f 28 64 24 30 movaps 0x30(%rsp),%xmm12
|
||||||
|
18053349b: 44 0f 28 5c 24 40 movaps 0x40(%rsp),%xmm11
|
||||||
|
1805334a1: 44 0f 28 54 24 50 movaps 0x50(%rsp),%xmm10
|
||||||
|
1805334a7: 44 0f 28 4c 24 60 movaps 0x60(%rsp),%xmm9
|
||||||
|
1805334ad: 44 0f 28 44 24 70 movaps 0x70(%rsp),%xmm8
|
||||||
|
1805334b3: 0f 28 bc 24 80 00 00 movaps 0x80(%rsp),%xmm7
|
||||||
|
1805334ba: 00
|
||||||
|
1805334bb: 48 8b b4 24 b0 00 00 mov 0xb0(%rsp),%rsi
|
||||||
|
1805334c2: 00
|
||||||
|
1805334c3: 4c 8d 9c 24 a0 00 00 lea 0xa0(%rsp),%r11
|
||||||
|
1805334ca: 00
|
||||||
|
1805334cb: 49 8b 5b 18 mov 0x18(%r11),%rbx
|
||||||
|
1805334cf: 41 0f 28 73 f0 movaps -0x10(%r11),%xmm6
|
||||||
|
1805334d4: 45 0f 28 6b 80 movaps -0x80(%r11),%xmm13
|
||||||
|
1805334d9: 49 8b e3 mov %r11,%rsp
|
||||||
|
1805334dc: 5f pop %rdi
|
||||||
|
1805334dd: c3 ret
|
||||||
|
1805334de: cc int3
|
||||||
|
1805334df: cc int3
|
||||||
|
1805334e0: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
1805334e5: 48 89 6c 24 10 mov %rbp,0x10(%rsp)
|
||||||
|
1805334ea: 48 89 74 24 18 mov %rsi,0x18(%rsp)
|
||||||
|
1805334ef: 48 89 7c 24 20 mov %rdi,0x20(%rsp)
|
||||||
|
1805334f4: 41 56 push %r14
|
||||||
|
1805334f6: 48 83 ec 40 sub $0x40,%rsp
|
||||||
|
1805334fa: 41 8b c1 mov %r9d,%eax
|
||||||
|
1805334fd: c6 44 24 20 00 movb $0x0,0x20(%rsp)
|
||||||
|
180533502: 49 8b f0 mov %r8,%rsi
|
||||||
|
180533505: 4c 8b f2 mov %rdx,%r14
|
||||||
|
180533508: 44 8b c0 mov %eax,%r8d
|
||||||
|
18053350b: 48 8d 54 24 30 lea 0x30(%rsp),%rdx
|
||||||
|
180533510: 45 33 c9 xor %r9d,%r9d
|
||||||
|
180533513: 48 8b e9 mov %rcx,%rbp
|
||||||
|
180533516: e8 25 c1 ff ff call 0x18052f640
|
||||||
|
18053351b: 48 8b 45 20 mov 0x20(%rbp),%rax
|
||||||
|
18053351f: 48 8d 15 92 d8 11 02 lea 0x211d892(%rip),%rdx # 0x182650db8
|
||||||
|
180533526: 4c 63 4c 24 30 movslq 0x30(%rsp),%r9
|
||||||
|
18053352b: 48 8d 0d 86 d8 11 02 lea 0x211d886(%rip),%rcx # 0x182650db8
|
||||||
|
180533532: 4a 8d 3c 88 lea (%rax,%r9,4),%rdi
|
||||||
|
180533536: ff 15 cc 7a 67 01 call *0x1677acc(%rip) # 0x181bab008
|
||||||
|
18053353c: 8b 5c 24 34 mov 0x34(%rsp),%ebx
|
||||||
|
180533540: 4d 8b c6 mov %r14,%r8
|
||||||
|
180533543: 48 8b d7 mov %rdi,%rdx
|
||||||
|
180533546: 48 8b ce mov %rsi,%rcx
|
||||||
|
180533549: 44 8b cb mov %ebx,%r9d
|
||||||
|
18053354c: 85 c0 test %eax,%eax
|
||||||
|
18053354e: 75 07 jne 0x180533557
|
||||||
|
180533550: e8 5b e9 ac ff call 0x180001eb0
|
||||||
|
180533555: eb 05 jmp 0x18053355c
|
||||||
|
180533557: e8 c4 e5 ac ff call 0x180001b20
|
||||||
|
18053355c: 48 8b 7d 20 mov 0x20(%rbp),%rdi
|
||||||
|
180533560: 48 8d 15 51 d8 11 02 lea 0x211d851(%rip),%rdx # 0x182650db8
|
||||||
|
180533567: 48 63 c3 movslq %ebx,%rax
|
||||||
|
18053356a: 48 8d 0d 47 d8 11 02 lea 0x211d847(%rip),%rcx # 0x182650db8
|
||||||
|
180533571: 48 8d 1c 86 lea (%rsi,%rax,4),%rbx
|
||||||
|
180533575: 49 8d 34 86 lea (%r14,%rax,4),%rsi
|
||||||
|
180533579: ff 15 89 7a 67 01 call *0x1677a89(%rip) # 0x181bab008
|
||||||
|
18053357f: 44 8b 4c 24 38 mov 0x38(%rsp),%r9d
|
||||||
|
180533584: 4c 8b c6 mov %rsi,%r8
|
||||||
|
180533587: 48 8b d7 mov %rdi,%rdx
|
||||||
|
18053358a: 48 8b cb mov %rbx,%rcx
|
||||||
|
18053358d: 85 c0 test %eax,%eax
|
||||||
|
18053358f: 75 07 jne 0x180533598
|
||||||
|
180533591: e8 1a e9 ac ff call 0x180001eb0
|
||||||
|
180533596: eb 05 jmp 0x18053359d
|
||||||
|
180533598: e8 83 e5 ac ff call 0x180001b20
|
||||||
|
18053359d: 48 8b 5c 24 50 mov 0x50(%rsp),%rbx
|
||||||
|
1805335a2: 48 8b 6c 24 58 mov 0x58(%rsp),%rbp
|
||||||
|
1805335a7: 48 8b 74 24 60 mov 0x60(%rsp),%rsi
|
||||||
|
1805335ac: 48 8b 7c 24 68 mov 0x68(%rsp),%rdi
|
||||||
|
1805335b1: 48 83 c4 40 add $0x40,%rsp
|
||||||
|
1805335b5: 41 5e pop %r14
|
||||||
|
1805335b7: c3 ret
|
||||||
|
1805335b8: cc int3
|
||||||
|
1805335b9: cc int3
|
||||||
|
1805335ba: cc int3
|
||||||
|
1805335bb: cc int3
|
||||||
|
1805335bc: cc int3
|
||||||
|
1805335bd: cc int3
|
||||||
|
1805335be: cc int3
|
||||||
|
1805335bf: cc int3
|
||||||
|
1805335c0: 40 53 rex push %rbx
|
||||||
|
1805335c2: 56 push %rsi
|
||||||
|
1805335c3: 57 push %rdi
|
||||||
|
1805335c4: 48 83 ec 40 sub $0x40,%rsp
|
||||||
|
1805335c8: 66 41 0f 6e c0 movd %r8d,%xmm0
|
||||||
|
1805335cd: 48 8b da mov %rdx,%rbx
|
||||||
|
1805335d0: f3 0f e6 c0 cvtdq2pd %xmm0,%xmm0
|
||||||
|
1805335d4: 48 8b f1 mov %rcx,%rsi
|
||||||
|
1805335d7: 0f 29 74 24 30 movaps %xmm6,0x30(%rsp)
|
||||||
|
1805335dc: e8 e3 16 4e 01 call 0x181a14cc4
|
||||||
|
1805335e1: 0f 28 f0 movaps %xmm0,%xmm6
|
||||||
|
1805335e4: f2 0f 10 05 fc 0b f9 movsd 0x1f90bfc(%rip),%xmm0 # 0x1824c41e8
|
||||||
|
1805335eb: 01
|
||||||
|
1805335ec: e8 d3 16 4e 01 call 0x181a14cc4
|
||||||
|
1805335f1: f2 0f 5e f0 divsd %xmm0,%xmm6
|
||||||
|
1805335f5: 48 8d 15 bc d7 11 02 lea 0x211d7bc(%rip),%rdx # 0x182650db8
|
||||||
@@ -0,0 +1,527 @@
|
|||||||
|
|
||||||
|
soothe_mem.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000000535a70 <.data+0x535a70>:
|
||||||
|
535a70: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
535a75: 48 89 74 24 10 mov %rsi,0x10(%rsp)
|
||||||
|
535a7a: 57 push %rdi
|
||||||
|
535a7b: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
535a7f: 48 8b fa mov %rdx,%rdi
|
||||||
|
535a82: 48 8b f1 mov %rcx,%rsi
|
||||||
|
535a85: 48 8d 15 2c b3 11 02 lea 0x211b32c(%rip),%rdx # 0x2650db8
|
||||||
|
535a8c: 41 8b d8 mov %r8d,%ebx
|
||||||
|
535a8f: 48 8d 0d 22 b3 11 02 lea 0x211b322(%rip),%rcx # 0x2650db8
|
||||||
|
535a96: ff 15 6c 55 67 01 call *0x167556c(%rip) # 0x1bab008
|
||||||
|
535a9c: 44 8b c3 mov %ebx,%r8d
|
||||||
|
535a9f: 48 8b d6 mov %rsi,%rdx
|
||||||
|
535aa2: 48 8b cf mov %rdi,%rcx
|
||||||
|
535aa5: 85 c0 test %eax,%eax
|
||||||
|
535aa7: 75 14 jne 0x535abd
|
||||||
|
535aa9: 48 8b 5c 24 30 mov 0x30(%rsp),%rbx
|
||||||
|
535aae: 48 8b 74 24 38 mov 0x38(%rsp),%rsi
|
||||||
|
535ab3: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
535ab7: 5f pop %rdi
|
||||||
|
535ab8: e9 53 af c0 ff jmp 0x140a10
|
||||||
|
535abd: 48 8b 5c 24 30 mov 0x30(%rsp),%rbx
|
||||||
|
535ac2: 48 8b 74 24 38 mov 0x38(%rsp),%rsi
|
||||||
|
535ac7: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
535acb: 5f pop %rdi
|
||||||
|
535acc: e9 9f af c0 ff jmp 0x140a70
|
||||||
|
535ad1: cc int3
|
||||||
|
535ad2: cc int3
|
||||||
|
535ad3: cc int3
|
||||||
|
535ad4: cc int3
|
||||||
|
535ad5: cc int3
|
||||||
|
535ad6: cc int3
|
||||||
|
535ad7: cc int3
|
||||||
|
535ad8: cc int3
|
||||||
|
535ad9: cc int3
|
||||||
|
535ada: cc int3
|
||||||
|
535adb: cc int3
|
||||||
|
535adc: cc int3
|
||||||
|
535add: cc int3
|
||||||
|
535ade: cc int3
|
||||||
|
535adf: cc int3
|
||||||
|
535ae0: 48 89 4c 24 08 mov %rcx,0x8(%rsp)
|
||||||
|
535ae5: 57 push %rdi
|
||||||
|
535ae6: 48 83 ec 40 sub $0x40,%rsp
|
||||||
|
535aea: 48 c7 44 24 30 fe ff movq $0xfffffffffffffffe,0x30(%rsp)
|
||||||
|
535af1: ff ff
|
||||||
|
535af3: 48 89 5c 24 58 mov %rbx,0x58(%rsp)
|
||||||
|
535af8: 48 89 6c 24 60 mov %rbp,0x60(%rsp)
|
||||||
|
535afd: 48 89 74 24 68 mov %rsi,0x68(%rsp)
|
||||||
|
535b02: 48 8b da mov %rdx,%rbx
|
||||||
|
535b05: 48 8b f9 mov %rcx,%rdi
|
||||||
|
535b08: e8 13 9e ff ff call 0x52f920
|
||||||
|
535b0d: 90 nop
|
||||||
|
535b0e: 48 8d 05 fb 66 f7 01 lea 0x1f766fb(%rip),%rax # 0x24ac210
|
||||||
|
535b15: 48 89 07 mov %rax,(%rdi)
|
||||||
|
535b18: 48 8d 05 e9 6a f7 01 lea 0x1f76ae9(%rip),%rax # 0x24ac608
|
||||||
|
535b1f: 48 89 87 d0 03 00 00 mov %rax,0x3d0(%rdi)
|
||||||
|
535b26: 33 ed xor %ebp,%ebp
|
||||||
|
535b28: 48 89 af d8 04 24 00 mov %rbp,0x2404d8(%rdi)
|
||||||
|
535b2f: 8b c5 mov %ebp,%eax
|
||||||
|
535b31: 87 87 dc 04 24 00 xchg %eax,0x2404dc(%rdi)
|
||||||
|
535b37: 89 af e0 04 24 00 mov %ebp,0x2404e0(%rdi)
|
||||||
|
535b3d: 48 8d 8f e8 04 24 00 lea 0x2404e8(%rdi),%rcx
|
||||||
|
535b44: e8 07 07 00 00 call 0x536250
|
||||||
|
535b49: 48 8d 8f 00 05 34 00 lea 0x340500(%rdi),%rcx
|
||||||
|
535b50: e8 fb 06 00 00 call 0x536250
|
||||||
|
535b55: 48 8d 8f 18 05 44 00 lea 0x440518(%rdi),%rcx
|
||||||
|
535b5c: e8 ef 06 00 00 call 0x536250
|
||||||
|
535b61: 48 8d 8f 30 05 54 00 lea 0x540530(%rdi),%rcx
|
||||||
|
535b68: e8 03 db ff ff call 0x533670
|
||||||
|
535b6d: 90 nop
|
||||||
|
535b6e: 48 89 af 68 06 54 00 mov %rbp,0x540668(%rdi)
|
||||||
|
535b75: 89 af 70 06 54 00 mov %ebp,0x540670(%rdi)
|
||||||
|
535b7b: 48 8d 8f 78 06 54 00 lea 0x540678(%rdi),%rcx
|
||||||
|
535b82: 48 8d 35 97 86 ff ff lea -0x7969(%rip),%rsi # 0x52e220
|
||||||
|
535b89: 48 89 74 24 20 mov %rsi,0x20(%rsp)
|
||||||
|
535b8e: 4c 8d 0d 9b d7 ff ff lea -0x2865(%rip),%r9 # 0x533330
|
||||||
|
535b95: 8d 55 10 lea 0x10(%rbp),%edx
|
||||||
|
535b98: 44 8d 45 02 lea 0x2(%rbp),%r8d
|
||||||
|
535b9c: e8 63 c0 bf 00 call 0x1131c04
|
||||||
|
535ba1: 90 nop
|
||||||
|
535ba2: 48 89 af 98 06 54 00 mov %rbp,0x540698(%rdi)
|
||||||
|
535ba9: 89 af a0 06 54 00 mov %ebp,0x5406a0(%rdi)
|
||||||
|
535baf: 48 89 af a8 06 54 00 mov %rbp,0x5406a8(%rdi)
|
||||||
|
535bb6: 89 af b0 06 54 00 mov %ebp,0x5406b0(%rdi)
|
||||||
|
535bbc: 48 89 af b8 06 54 00 mov %rbp,0x5406b8(%rdi)
|
||||||
|
535bc3: 89 af c0 06 54 00 mov %ebp,0x5406c0(%rdi)
|
||||||
|
535bc9: 48 89 af c8 06 54 00 mov %rbp,0x5406c8(%rdi)
|
||||||
|
535bd0: 89 af d0 06 54 00 mov %ebp,0x5406d0(%rdi)
|
||||||
|
535bd6: 48 89 af d8 06 54 00 mov %rbp,0x5406d8(%rdi)
|
||||||
|
535bdd: 89 af e0 06 54 00 mov %ebp,0x5406e0(%rdi)
|
||||||
|
535be3: 48 89 af e8 06 54 00 mov %rbp,0x5406e8(%rdi)
|
||||||
|
535bea: 89 af f0 06 54 00 mov %ebp,0x5406f0(%rdi)
|
||||||
|
535bf0: 48 89 af f8 06 54 00 mov %rbp,0x5406f8(%rdi)
|
||||||
|
535bf7: 89 af 00 07 54 00 mov %ebp,0x540700(%rdi)
|
||||||
|
535bfd: 48 89 af 08 07 54 00 mov %rbp,0x540708(%rdi)
|
||||||
|
535c04: 89 af 10 07 54 00 mov %ebp,0x540710(%rdi)
|
||||||
|
535c0a: 48 89 af 18 07 54 00 mov %rbp,0x540718(%rdi)
|
||||||
|
535c11: 89 af 20 07 54 00 mov %ebp,0x540720(%rdi)
|
||||||
|
535c17: 48 8d 8f 28 07 54 00 lea 0x540728(%rdi),%rcx
|
||||||
|
535c1e: 48 89 74 24 20 mov %rsi,0x20(%rsp)
|
||||||
|
535c23: 4c 8d 0d 06 d7 ff ff lea -0x28fa(%rip),%r9 # 0x533330
|
||||||
|
535c2a: 8d 55 10 lea 0x10(%rbp),%edx
|
||||||
|
535c2d: 44 8d 45 02 lea 0x2(%rbp),%r8d
|
||||||
|
535c31: e8 ce bf bf 00 call 0x1131c04
|
||||||
|
535c36: 90 nop
|
||||||
|
535c37: 48 89 af 48 07 54 00 mov %rbp,0x540748(%rdi)
|
||||||
|
535c3e: 89 af 50 07 54 00 mov %ebp,0x540750(%rdi)
|
||||||
|
535c44: 48 89 af 58 07 54 00 mov %rbp,0x540758(%rdi)
|
||||||
|
535c4b: 89 af 60 07 54 00 mov %ebp,0x540760(%rdi)
|
||||||
|
535c51: 48 8d 8f 68 07 54 00 lea 0x540768(%rdi),%rcx
|
||||||
|
535c58: 48 89 74 24 20 mov %rsi,0x20(%rsp)
|
||||||
|
535c5d: 4c 8d 0d cc d6 ff ff lea -0x2934(%rip),%r9 # 0x533330
|
||||||
|
535c64: 8d 55 10 lea 0x10(%rbp),%edx
|
||||||
|
535c67: 44 8d 45 02 lea 0x2(%rbp),%r8d
|
||||||
|
535c6b: e8 94 bf bf 00 call 0x1131c04
|
||||||
|
535c70: 90 nop
|
||||||
|
535c71: 48 89 af 88 07 54 00 mov %rbp,0x540788(%rdi)
|
||||||
|
535c78: 89 af 90 07 54 00 mov %ebp,0x540790(%rdi)
|
||||||
|
535c7e: 48 89 af 98 07 54 00 mov %rbp,0x540798(%rdi)
|
||||||
|
535c85: 89 af a0 07 54 00 mov %ebp,0x5407a0(%rdi)
|
||||||
|
535c8b: 48 8d 8f a8 07 54 00 lea 0x5407a8(%rdi),%rcx
|
||||||
|
535c92: 48 89 74 24 20 mov %rsi,0x20(%rsp)
|
||||||
|
535c97: 4c 8d 0d 92 d6 ff ff lea -0x296e(%rip),%r9 # 0x533330
|
||||||
|
535c9e: 8d 55 10 lea 0x10(%rbp),%edx
|
||||||
|
535ca1: 44 8d 45 02 lea 0x2(%rbp),%r8d
|
||||||
|
535ca5: e8 5a bf bf 00 call 0x1131c04
|
||||||
|
535caa: 90 nop
|
||||||
|
535cab: 48 8d 8f c8 07 54 00 lea 0x5407c8(%rdi),%rcx
|
||||||
|
535cb2: 48 89 74 24 20 mov %rsi,0x20(%rsp)
|
||||||
|
535cb7: 4c 8d 0d 72 d6 ff ff lea -0x298e(%rip),%r9 # 0x533330
|
||||||
|
535cbe: 8d 55 10 lea 0x10(%rbp),%edx
|
||||||
|
535cc1: 44 8d 45 02 lea 0x2(%rbp),%r8d
|
||||||
|
535cc5: e8 3a bf bf 00 call 0x1131c04
|
||||||
|
535cca: 90 nop
|
||||||
|
535ccb: 48 8d 8f e8 07 54 00 lea 0x5407e8(%rdi),%rcx
|
||||||
|
535cd2: 48 89 74 24 20 mov %rsi,0x20(%rsp)
|
||||||
|
535cd7: 4c 8d 0d 52 d6 ff ff lea -0x29ae(%rip),%r9 # 0x533330
|
||||||
|
535cde: 8d 55 10 lea 0x10(%rbp),%edx
|
||||||
|
535ce1: 44 8d 45 08 lea 0x8(%rbp),%r8d
|
||||||
|
535ce5: e8 1a bf bf 00 call 0x1131c04
|
||||||
|
535cea: 48 89 af 68 08 54 00 mov %rbp,0x540868(%rdi)
|
||||||
|
535cf1: c7 87 70 08 54 00 00 movl $0x3f800000,0x540870(%rdi)
|
||||||
|
535cf8: 00 80 3f
|
||||||
|
535cfb: c7 87 74 08 54 00 00 movl $0x3f800000,0x540874(%rdi)
|
||||||
|
535d02: 00 80 3f
|
||||||
|
535d05: c7 87 78 08 54 00 00 movl $0x3f000000,0x540878(%rdi)
|
||||||
|
535d0c: 00 00 3f
|
||||||
|
535d0f: c7 87 7c 08 54 00 00 movl $0x3f000000,0x54087c(%rdi)
|
||||||
|
535d16: 00 00 3f
|
||||||
|
535d19: c7 87 80 08 54 00 00 movl $0x3f800000,0x540880(%rdi)
|
||||||
|
535d20: 00 80 3f
|
||||||
|
535d23: c7 87 84 08 54 00 00 movl $0x3f800000,0x540884(%rdi)
|
||||||
|
535d2a: 00 80 3f
|
||||||
|
535d2d: c7 87 88 08 54 00 00 movl $0x3f800000,0x540888(%rdi)
|
||||||
|
535d34: 00 80 3f
|
||||||
|
535d37: c7 87 8c 08 54 00 00 movl $0x3f800000,0x54088c(%rdi)
|
||||||
|
535d3e: 00 80 3f
|
||||||
|
535d41: 66 89 af 90 08 54 00 mov %bp,0x540890(%rdi)
|
||||||
|
535d48: c7 87 94 08 54 00 00 movl $0x3f800000,0x540894(%rdi)
|
||||||
|
535d4f: 00 80 3f
|
||||||
|
535d52: 48 c7 87 98 08 54 00 movq $0x3f800000,0x540898(%rdi)
|
||||||
|
535d59: 00 00 80 3f
|
||||||
|
535d5d: 40 88 af a0 08 54 00 mov %bpl,0x5408a0(%rdi)
|
||||||
|
535d64: 48 89 af a4 08 54 00 mov %rbp,0x5408a4(%rdi)
|
||||||
|
535d6b: c7 87 ac 08 54 00 00 movl $0x1000000,0x5408ac(%rdi)
|
||||||
|
535d72: 00 00 01
|
||||||
|
535d75: 48 89 9f b0 08 54 00 mov %rbx,0x5408b0(%rdi)
|
||||||
|
535d7c: c6 87 b8 08 54 00 01 movb $0x1,0x5408b8(%rdi)
|
||||||
|
535d83: c7 47 24 00 44 2c 47 movl $0x472c4400,0x24(%rdi)
|
||||||
|
535d8a: 48 8b c7 mov %rdi,%rax
|
||||||
|
535d8d: 48 8b 5c 24 58 mov 0x58(%rsp),%rbx
|
||||||
|
535d92: 48 8b 6c 24 60 mov 0x60(%rsp),%rbp
|
||||||
|
535d97: 48 8b 74 24 68 mov 0x68(%rsp),%rsi
|
||||||
|
535d9c: 48 83 c4 40 add $0x40,%rsp
|
||||||
|
535da0: 5f pop %rdi
|
||||||
|
535da1: c3 ret
|
||||||
|
535da2: cc int3
|
||||||
|
535da3: cc int3
|
||||||
|
535da4: cc int3
|
||||||
|
535da5: cc int3
|
||||||
|
535da6: cc int3
|
||||||
|
535da7: cc int3
|
||||||
|
535da8: cc int3
|
||||||
|
535da9: cc int3
|
||||||
|
535daa: cc int3
|
||||||
|
535dab: cc int3
|
||||||
|
535dac: cc int3
|
||||||
|
535dad: cc int3
|
||||||
|
535dae: cc int3
|
||||||
|
535daf: cc int3
|
||||||
|
535db0: 48 89 4c 24 08 mov %rcx,0x8(%rsp)
|
||||||
|
535db5: 57 push %rdi
|
||||||
|
535db6: 48 83 ec 40 sub $0x40,%rsp
|
||||||
|
535dba: 48 c7 44 24 20 fe ff movq $0xfffffffffffffffe,0x20(%rsp)
|
||||||
|
535dc1: ff ff
|
||||||
|
535dc3: 48 89 5c 24 58 mov %rbx,0x58(%rsp)
|
||||||
|
535dc8: 48 89 6c 24 60 mov %rbp,0x60(%rsp)
|
||||||
|
535dcd: 48 89 74 24 68 mov %rsi,0x68(%rsp)
|
||||||
|
535dd2: 48 8b f9 mov %rcx,%rdi
|
||||||
|
535dd5: 89 11 mov %edx,(%rcx)
|
||||||
|
535dd7: 44 89 41 04 mov %r8d,0x4(%rcx)
|
||||||
|
535ddb: 33 f6 xor %esi,%esi
|
||||||
|
535ddd: 48 89 71 08 mov %rsi,0x8(%rcx)
|
||||||
|
535de1: 48 89 71 18 mov %rsi,0x18(%rcx)
|
||||||
|
535de5: 40 88 b1 20 01 00 00 mov %sil,0x120(%rcx)
|
||||||
|
535dec: 48 63 11 movslq (%rcx),%rdx
|
||||||
|
535def: 8d 42 01 lea 0x1(%rdx),%eax
|
||||||
|
535df2: 48 63 e8 movslq %eax,%rbp
|
||||||
|
535df5: 48 c1 e5 03 shl $0x3,%rbp
|
||||||
|
535df9: 48 8b cd mov %rbp,%rcx
|
||||||
|
535dfc: 83 e1 03 and $0x3,%ecx
|
||||||
|
535dff: 74 0b je 0x535e0c
|
||||||
|
535e01: b8 04 00 00 00 mov $0x4,%eax
|
||||||
|
535e06: 48 2b c1 sub %rcx,%rax
|
||||||
|
535e09: 48 03 e8 add %rax,%rbp
|
||||||
|
535e0c: 48 8b ca mov %rdx,%rcx
|
||||||
|
535e0f: 48 63 47 04 movslq 0x4(%rdi),%rax
|
||||||
|
535e13: 48 0f af c8 imul %rax,%rcx
|
||||||
|
535e17: 48 8d 1c 8d 20 00 00 lea 0x20(,%rcx,4),%rbx
|
||||||
|
535e1e: 00
|
||||||
|
535e1f: 48 03 dd add %rbp,%rbx
|
||||||
|
535e22: 48 89 5f 08 mov %rbx,0x8(%rdi)
|
||||||
|
535e26: 48 8b ce mov %rsi,%rcx
|
||||||
|
535e29: ff 15 79 54 67 01 call *0x1675479(%rip) # 0x1bab2a8
|
||||||
|
535e2f: 48 8b cb mov %rbx,%rcx
|
||||||
|
535e32: ff 15 78 54 67 01 call *0x1675478(%rip) # 0x1bab2b0
|
||||||
|
535e38: 48 89 47 18 mov %rax,0x18(%rdi)
|
||||||
|
535e3c: 48 85 c0 test %rax,%rax
|
||||||
|
535e3f: 74 65 je 0x535ea6
|
||||||
|
535e41: 48 89 47 10 mov %rax,0x10(%rdi)
|
||||||
|
535e45: 48 8d 14 28 lea (%rax,%rbp,1),%rdx
|
||||||
|
535e49: 44 8b c6 mov %esi,%r8d
|
||||||
|
535e4c: 39 37 cmp %esi,(%rdi)
|
||||||
|
535e4e: 7e 2c jle 0x535e7c
|
||||||
|
535e50: 48 8b ce mov %rsi,%rcx
|
||||||
|
535e53: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
535e57: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
|
||||||
|
535e5e: 00 00
|
||||||
|
535e60: 48 8b 47 10 mov 0x10(%rdi),%rax
|
||||||
|
535e64: 48 89 14 01 mov %rdx,(%rcx,%rax,1)
|
||||||
|
535e68: 48 63 47 04 movslq 0x4(%rdi),%rax
|
||||||
|
535e6c: 48 8d 14 82 lea (%rdx,%rax,4),%rdx
|
||||||
|
535e70: 41 ff c0 inc %r8d
|
||||||
|
535e73: 48 8d 49 08 lea 0x8(%rcx),%rcx
|
||||||
|
535e77: 44 3b 07 cmp (%rdi),%r8d
|
||||||
|
535e7a: 7c e4 jl 0x535e60
|
||||||
|
535e7c: 48 63 0f movslq (%rdi),%rcx
|
||||||
|
535e7f: 48 8b 47 10 mov 0x10(%rdi),%rax
|
||||||
|
535e83: 48 89 34 c8 mov %rsi,(%rax,%rcx,8)
|
||||||
|
535e87: 40 86 b7 20 01 00 00 xchg %sil,0x120(%rdi)
|
||||||
|
535e8e: 48 8b c7 mov %rdi,%rax
|
||||||
|
535e91: 48 8b 5c 24 58 mov 0x58(%rsp),%rbx
|
||||||
|
535e96: 48 8b 6c 24 60 mov 0x60(%rsp),%rbp
|
||||||
|
535e9b: 48 8b 74 24 68 mov 0x68(%rsp),%rsi
|
||||||
|
535ea0: 48 83 c4 40 add $0x40,%rsp
|
||||||
|
535ea4: 5f pop %rdi
|
||||||
|
535ea5: c3 ret
|
||||||
|
535ea6: 48 8d 4c 24 28 lea 0x28(%rsp),%rcx
|
||||||
|
535eab: e8 30 bb f3 ff call 0x4719e0
|
||||||
|
535eb0: 48 8d 15 b1 8d 0c 02 lea 0x20c8db1(%rip),%rdx # 0x25fec68
|
||||||
|
535eb7: 48 8d 4c 24 28 lea 0x28(%rsp),%rcx
|
||||||
|
535ebc: e8 b1 c9 bf 00 call 0x1132872
|
||||||
|
535ec1: cc int3
|
||||||
|
535ec2: cc int3
|
||||||
|
535ec3: cc int3
|
||||||
|
535ec4: cc int3
|
||||||
|
535ec5: cc int3
|
||||||
|
535ec6: cc int3
|
||||||
|
535ec7: cc int3
|
||||||
|
535ec8: cc int3
|
||||||
|
535ec9: cc int3
|
||||||
|
535eca: cc int3
|
||||||
|
535ecb: cc int3
|
||||||
|
535ecc: cc int3
|
||||||
|
535ecd: cc int3
|
||||||
|
535ece: cc int3
|
||||||
|
535ecf: cc int3
|
||||||
|
535ed0: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
535ed5: 57 push %rdi
|
||||||
|
535ed6: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
535eda: 8b da mov %edx,%ebx
|
||||||
|
535edc: 48 8b f9 mov %rcx,%rdi
|
||||||
|
535edf: e8 2c 00 00 00 call 0x535f10
|
||||||
|
535ee4: f6 c3 01 test $0x1,%bl
|
||||||
|
535ee7: 74 0d je 0x535ef6
|
||||||
|
535ee9: ba c0 08 54 00 mov $0x5408c0,%edx
|
||||||
|
535eee: 48 8b cf mov %rdi,%rcx
|
||||||
|
535ef1: e8 fe b1 bf 00 call 0x11310f4
|
||||||
|
535ef6: 48 8b 5c 24 30 mov 0x30(%rsp),%rbx
|
||||||
|
535efb: 48 8b c7 mov %rdi,%rax
|
||||||
|
535efe: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
535f02: 5f pop %rdi
|
||||||
|
535f03: c3 ret
|
||||||
|
535f04: cc int3
|
||||||
|
535f05: cc int3
|
||||||
|
535f06: cc int3
|
||||||
|
535f07: cc int3
|
||||||
|
535f08: cc int3
|
||||||
|
535f09: cc int3
|
||||||
|
535f0a: cc int3
|
||||||
|
535f0b: cc int3
|
||||||
|
535f0c: cc int3
|
||||||
|
535f0d: cc int3
|
||||||
|
535f0e: cc int3
|
||||||
|
535f0f: cc int3
|
||||||
|
535f10: 40 57 rex push %rdi
|
||||||
|
535f12: 48 83 ec 30 sub $0x30,%rsp
|
||||||
|
535f16: 48 c7 44 24 20 fe ff movq $0xfffffffffffffffe,0x20(%rsp)
|
||||||
|
535f1d: ff ff
|
||||||
|
535f1f: 48 89 5c 24 40 mov %rbx,0x40(%rsp)
|
||||||
|
535f24: 48 8b d9 mov %rcx,%rbx
|
||||||
|
535f27: 48 81 c1 e8 07 54 00 add $0x5407e8,%rcx
|
||||||
|
535f2e: 4c 8d 0d eb 82 ff ff lea -0x7d15(%rip),%r9 # 0x52e220
|
||||||
|
535f35: ba 10 00 00 00 mov $0x10,%edx
|
||||||
|
535f3a: 44 8d 42 f8 lea -0x8(%rdx),%r8d
|
||||||
|
535f3e: e8 d9 b7 bf 00 call 0x113171c
|
||||||
|
535f43: 90 nop
|
||||||
|
535f44: 48 8d 8b c8 07 54 00 lea 0x5407c8(%rbx),%rcx
|
||||||
|
535f4b: 4c 8d 0d ce 82 ff ff lea -0x7d32(%rip),%r9 # 0x52e220
|
||||||
|
535f52: ba 10 00 00 00 mov $0x10,%edx
|
||||||
|
535f57: 44 8d 42 f2 lea -0xe(%rdx),%r8d
|
||||||
|
535f5b: e8 bc b7 bf 00 call 0x113171c
|
||||||
|
535f60: 90 nop
|
||||||
|
535f61: 48 8d 8b a8 07 54 00 lea 0x5407a8(%rbx),%rcx
|
||||||
|
535f68: 4c 8d 0d b1 82 ff ff lea -0x7d4f(%rip),%r9 # 0x52e220
|
||||||
|
535f6f: ba 10 00 00 00 mov $0x10,%edx
|
||||||
|
535f74: 44 8d 42 f2 lea -0xe(%rdx),%r8d
|
||||||
|
535f78: e8 9f b7 bf 00 call 0x113171c
|
||||||
|
535f7d: 90 nop
|
||||||
|
535f7e: 83 bb a0 07 54 00 00 cmpl $0x0,0x5407a0(%rbx)
|
||||||
|
535f85: 7e 12 jle 0x535f99
|
||||||
|
535f87: 48 8b 8b 98 07 54 00 mov 0x540798(%rbx),%rcx
|
||||||
|
535f8e: 48 85 c9 test %rcx,%rcx
|
||||||
|
535f91: 74 06 je 0x535f99
|
||||||
|
535f93: e8 28 b1 ac ff call 0x10c0
|
||||||
|
535f98: 90 nop
|
||||||
|
535f99: 33 ff xor %edi,%edi
|
||||||
|
535f9b: 48 89 bb 98 07 54 00 mov %rdi,0x540798(%rbx)
|
||||||
|
535fa2: 89 bb a0 07 54 00 mov %edi,0x5407a0(%rbx)
|
||||||
|
535fa8: 39 bb 90 07 54 00 cmp %edi,0x540790(%rbx)
|
||||||
|
535fae: 7e 12 jle 0x535fc2
|
||||||
|
535fb0: 48 8b 8b 88 07 54 00 mov 0x540788(%rbx),%rcx
|
||||||
|
535fb7: 48 85 c9 test %rcx,%rcx
|
||||||
|
535fba: 74 06 je 0x535fc2
|
||||||
|
535fbc: e8 ff b0 ac ff call 0x10c0
|
||||||
|
535fc1: 90 nop
|
||||||
|
535fc2: 48 89 bb 88 07 54 00 mov %rdi,0x540788(%rbx)
|
||||||
|
535fc9: 89 bb 90 07 54 00 mov %edi,0x540790(%rbx)
|
||||||
|
535fcf: 48 8d 8b 68 07 54 00 lea 0x540768(%rbx),%rcx
|
||||||
|
535fd6: 4c 8d 0d 43 82 ff ff lea -0x7dbd(%rip),%r9 # 0x52e220
|
||||||
|
535fdd: ba 10 00 00 00 mov $0x10,%edx
|
||||||
|
535fe2: 44 8d 42 f2 lea -0xe(%rdx),%r8d
|
||||||
|
535fe6: e8 31 b7 bf 00 call 0x113171c
|
||||||
|
535feb: 90 nop
|
||||||
|
535fec: 39 bb 60 07 54 00 cmp %edi,0x540760(%rbx)
|
||||||
|
535ff2: 7e 12 jle 0x536006
|
||||||
|
535ff4: 48 8b 8b 58 07 54 00 mov 0x540758(%rbx),%rcx
|
||||||
|
535ffb: 48 85 c9 test %rcx,%rcx
|
||||||
|
535ffe: 74 06 je 0x536006
|
||||||
|
536000: e8 bb b0 ac ff call 0x10c0
|
||||||
|
536005: 90 nop
|
||||||
|
536006: 48 89 bb 58 07 54 00 mov %rdi,0x540758(%rbx)
|
||||||
|
53600d: 89 bb 60 07 54 00 mov %edi,0x540760(%rbx)
|
||||||
|
536013: 39 bb 50 07 54 00 cmp %edi,0x540750(%rbx)
|
||||||
|
536019: 7e 12 jle 0x53602d
|
||||||
|
53601b: 48 8b 8b 48 07 54 00 mov 0x540748(%rbx),%rcx
|
||||||
|
536022: 48 85 c9 test %rcx,%rcx
|
||||||
|
536025: 74 06 je 0x53602d
|
||||||
|
536027: e8 94 b0 ac ff call 0x10c0
|
||||||
|
53602c: 90 nop
|
||||||
|
53602d: 48 89 bb 48 07 54 00 mov %rdi,0x540748(%rbx)
|
||||||
|
536034: 89 bb 50 07 54 00 mov %edi,0x540750(%rbx)
|
||||||
|
53603a: 48 8d 8b 28 07 54 00 lea 0x540728(%rbx),%rcx
|
||||||
|
536041: 4c 8d 0d d8 81 ff ff lea -0x7e28(%rip),%r9 # 0x52e220
|
||||||
|
536048: ba 10 00 00 00 mov $0x10,%edx
|
||||||
|
53604d: 44 8d 42 f2 lea -0xe(%rdx),%r8d
|
||||||
|
536051: e8 c6 b6 bf 00 call 0x113171c
|
||||||
|
536056: 90 nop
|
||||||
|
536057: 39 bb 20 07 54 00 cmp %edi,0x540720(%rbx)
|
||||||
|
53605d: 7e 12 jle 0x536071
|
||||||
|
53605f: 48 8b 8b 18 07 54 00 mov 0x540718(%rbx),%rcx
|
||||||
|
536066: 48 85 c9 test %rcx,%rcx
|
||||||
|
536069: 74 06 je 0x536071
|
||||||
|
53606b: e8 50 b0 ac ff call 0x10c0
|
||||||
|
536070: 90 nop
|
||||||
|
536071: 48 89 bb 18 07 54 00 mov %rdi,0x540718(%rbx)
|
||||||
|
536078: 89 bb 20 07 54 00 mov %edi,0x540720(%rbx)
|
||||||
|
53607e: 39 bb 10 07 54 00 cmp %edi,0x540710(%rbx)
|
||||||
|
536084: 7e 12 jle 0x536098
|
||||||
|
536086: 48 8b 8b 08 07 54 00 mov 0x540708(%rbx),%rcx
|
||||||
|
53608d: 48 85 c9 test %rcx,%rcx
|
||||||
|
536090: 74 06 je 0x536098
|
||||||
|
536092: e8 29 b0 ac ff call 0x10c0
|
||||||
|
536097: 90 nop
|
||||||
|
536098: 48 89 bb 08 07 54 00 mov %rdi,0x540708(%rbx)
|
||||||
|
53609f: 89 bb 10 07 54 00 mov %edi,0x540710(%rbx)
|
||||||
|
5360a5: 39 bb 00 07 54 00 cmp %edi,0x540700(%rbx)
|
||||||
|
5360ab: 7e 12 jle 0x5360bf
|
||||||
|
5360ad: 48 8b 8b f8 06 54 00 mov 0x5406f8(%rbx),%rcx
|
||||||
|
5360b4: 48 85 c9 test %rcx,%rcx
|
||||||
|
5360b7: 74 06 je 0x5360bf
|
||||||
|
5360b9: e8 02 b0 ac ff call 0x10c0
|
||||||
|
5360be: 90 nop
|
||||||
|
5360bf: 48 89 bb f8 06 54 00 mov %rdi,0x5406f8(%rbx)
|
||||||
|
5360c6: 89 bb 00 07 54 00 mov %edi,0x540700(%rbx)
|
||||||
|
5360cc: 39 bb f0 06 54 00 cmp %edi,0x5406f0(%rbx)
|
||||||
|
5360d2: 7e 12 jle 0x5360e6
|
||||||
|
5360d4: 48 8b 8b e8 06 54 00 mov 0x5406e8(%rbx),%rcx
|
||||||
|
5360db: 48 85 c9 test %rcx,%rcx
|
||||||
|
5360de: 74 06 je 0x5360e6
|
||||||
|
5360e0: e8 db af ac ff call 0x10c0
|
||||||
|
5360e5: 90 nop
|
||||||
|
5360e6: 48 89 bb e8 06 54 00 mov %rdi,0x5406e8(%rbx)
|
||||||
|
5360ed: 89 bb f0 06 54 00 mov %edi,0x5406f0(%rbx)
|
||||||
|
5360f3: 39 bb e0 06 54 00 cmp %edi,0x5406e0(%rbx)
|
||||||
|
5360f9: 7e 12 jle 0x53610d
|
||||||
|
5360fb: 48 8b 8b d8 06 54 00 mov 0x5406d8(%rbx),%rcx
|
||||||
|
536102: 48 85 c9 test %rcx,%rcx
|
||||||
|
536105: 74 06 je 0x53610d
|
||||||
|
536107: e8 b4 af ac ff call 0x10c0
|
||||||
|
53610c: 90 nop
|
||||||
|
53610d: 48 89 bb d8 06 54 00 mov %rdi,0x5406d8(%rbx)
|
||||||
|
536114: 89 bb e0 06 54 00 mov %edi,0x5406e0(%rbx)
|
||||||
|
53611a: 39 bb d0 06 54 00 cmp %edi,0x5406d0(%rbx)
|
||||||
|
536120: 7e 12 jle 0x536134
|
||||||
|
536122: 48 8b 8b c8 06 54 00 mov 0x5406c8(%rbx),%rcx
|
||||||
|
536129: 48 85 c9 test %rcx,%rcx
|
||||||
|
53612c: 74 06 je 0x536134
|
||||||
|
53612e: e8 8d af ac ff call 0x10c0
|
||||||
|
536133: 90 nop
|
||||||
|
536134: 48 89 bb c8 06 54 00 mov %rdi,0x5406c8(%rbx)
|
||||||
|
53613b: 89 bb d0 06 54 00 mov %edi,0x5406d0(%rbx)
|
||||||
|
536141: 39 bb c0 06 54 00 cmp %edi,0x5406c0(%rbx)
|
||||||
|
536147: 7e 12 jle 0x53615b
|
||||||
|
536149: 48 8b 8b b8 06 54 00 mov 0x5406b8(%rbx),%rcx
|
||||||
|
536150: 48 85 c9 test %rcx,%rcx
|
||||||
|
536153: 74 06 je 0x53615b
|
||||||
|
536155: e8 66 af ac ff call 0x10c0
|
||||||
|
53615a: 90 nop
|
||||||
|
53615b: 48 89 bb b8 06 54 00 mov %rdi,0x5406b8(%rbx)
|
||||||
|
536162: 89 bb c0 06 54 00 mov %edi,0x5406c0(%rbx)
|
||||||
|
536168: 39 bb b0 06 54 00 cmp %edi,0x5406b0(%rbx)
|
||||||
|
53616e: 7e 12 jle 0x536182
|
||||||
|
536170: 48 8b 8b a8 06 54 00 mov 0x5406a8(%rbx),%rcx
|
||||||
|
536177: 48 85 c9 test %rcx,%rcx
|
||||||
|
53617a: 74 06 je 0x536182
|
||||||
|
53617c: e8 3f af ac ff call 0x10c0
|
||||||
|
536181: 90 nop
|
||||||
|
536182: 48 89 bb a8 06 54 00 mov %rdi,0x5406a8(%rbx)
|
||||||
|
536189: 89 bb b0 06 54 00 mov %edi,0x5406b0(%rbx)
|
||||||
|
53618f: 39 bb a0 06 54 00 cmp %edi,0x5406a0(%rbx)
|
||||||
|
536195: 7e 12 jle 0x5361a9
|
||||||
|
536197: 48 8b 8b 98 06 54 00 mov 0x540698(%rbx),%rcx
|
||||||
|
53619e: 48 85 c9 test %rcx,%rcx
|
||||||
|
5361a1: 74 06 je 0x5361a9
|
||||||
|
5361a3: e8 18 af ac ff call 0x10c0
|
||||||
|
5361a8: 90 nop
|
||||||
|
5361a9: 48 89 bb 98 06 54 00 mov %rdi,0x540698(%rbx)
|
||||||
|
5361b0: 89 bb a0 06 54 00 mov %edi,0x5406a0(%rbx)
|
||||||
|
5361b6: 48 8d 8b 78 06 54 00 lea 0x540678(%rbx),%rcx
|
||||||
|
5361bd: 4c 8d 0d 5c 80 ff ff lea -0x7fa4(%rip),%r9 # 0x52e220
|
||||||
|
5361c4: ba 10 00 00 00 mov $0x10,%edx
|
||||||
|
5361c9: 44 8d 42 f2 lea -0xe(%rdx),%r8d
|
||||||
|
5361cd: e8 4a b5 bf 00 call 0x113171c
|
||||||
|
5361d2: 90 nop
|
||||||
|
5361d3: 39 bb 70 06 54 00 cmp %edi,0x540670(%rbx)
|
||||||
|
5361d9: 7e 12 jle 0x5361ed
|
||||||
|
5361db: 48 8b 8b 68 06 54 00 mov 0x540668(%rbx),%rcx
|
||||||
|
5361e2: 48 85 c9 test %rcx,%rcx
|
||||||
|
5361e5: 74 06 je 0x5361ed
|
||||||
|
5361e7: e8 d4 ae ac ff call 0x10c0
|
||||||
|
5361ec: 90 nop
|
||||||
|
5361ed: 48 89 bb 68 06 54 00 mov %rdi,0x540668(%rbx)
|
||||||
|
5361f4: 89 bb 70 06 54 00 mov %edi,0x540670(%rbx)
|
||||||
|
5361fa: 48 8d 8b 30 05 54 00 lea 0x540530(%rbx),%rcx
|
||||||
|
536201: e8 2a 7b ff ff call 0x52dd30
|
||||||
|
536206: 90 nop
|
||||||
|
536207: 89 bb cc 04 24 00 mov %edi,0x2404cc(%rbx)
|
||||||
|
53620d: 48 8b 8b c0 04 24 00 mov 0x2404c0(%rbx),%rcx
|
||||||
|
536214: ff 15 8e 50 67 01 call *0x167508e(%rip) # 0x1bab2a8
|
||||||
|
53621a: 90 nop
|
||||||
|
53621b: 48 8d 8b d8 03 00 00 lea 0x3d8(%rbx),%rcx
|
||||||
|
536222: e8 59 70 ff ff call 0x52d280
|
||||||
|
536227: 90 nop
|
||||||
|
536228: 48 8d 05 49 5e f7 01 lea 0x1f75e49(%rip),%rax # 0x24ac078
|
||||||
|
53622f: 48 89 83 d0 03 00 00 mov %rax,0x3d0(%rbx)
|
||||||
|
536236: 48 8b cb mov %rbx,%rcx
|
||||||
|
536239: 48 8b 5c 24 40 mov 0x40(%rsp),%rbx
|
||||||
|
53623e: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
536242: 5f pop %rdi
|
||||||
|
536243: e9 58 38 ff ff jmp 0x529aa0
|
||||||
|
536248: cc int3
|
||||||
|
536249: cc int3
|
||||||
|
53624a: cc int3
|
||||||
|
53624b: cc int3
|
||||||
|
53624c: cc int3
|
||||||
|
53624d: cc int3
|
||||||
|
53624e: cc int3
|
||||||
|
53624f: cc int3
|
||||||
|
536250: f2 0f 10 0d e8 de f8 movsd 0x1f8dee8(%rip),%xmm1 # 0x24c4140
|
||||||
|
536257: 01
|
||||||
|
536258: 48 8d 81 10 00 08 00 lea 0x80010(%rcx),%rax
|
||||||
|
53625f: f2 0f 11 4c 24 08 movsd %xmm1,0x8(%rsp)
|
||||||
|
536265: ba 00 80 00 00 mov $0x8000,%edx
|
||||||
|
53626a: f2 0f 10 44 24 08 movsd 0x8(%rsp),%xmm0
|
||||||
|
536270: 4c 8b c1 mov %rcx,%r8
|
||||||
|
536273: c6 41 04 00 movb $0x0,0x4(%rcx)
|
||||||
|
536277: 48 c7 81 10 00 10 00 movq $0x0,0x100010(%rcx)
|
||||||
|
53627e: 00 00 00 00
|
||||||
|
536282: 8b ca mov %edx,%ecx
|
||||||
|
536284: 66 0f c6 c0 00 shufpd $0x0,%xmm0,%xmm0
|
||||||
|
536289: a8 0f test $0xf,%al
|
||||||
|
53628b: 75 13 jne 0x5362a0
|
||||||
|
53628d: 0f 1f 00 nopl (%rax)
|
||||||
|
536290: 0f 11 00 movups %xmm0,(%rax)
|
||||||
|
536293: 48 8d 40 10 lea 0x10(%rax),%rax
|
||||||
|
536297: 48 83 e9 01 sub $0x1,%rcx
|
||||||
|
53629b: 75 f3 jne 0x536290
|
||||||
|
53629d: eb 0e jmp 0x5362ad
|
||||||
|
53629f: 90 nop
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
soothe_mem.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
00000000005631c0 <.data+0x5631c0>:
|
||||||
|
5631c0: 40 53 rex push %rbx
|
||||||
|
5631c2: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
5631c6: 48 8b d9 mov %rcx,%rbx
|
||||||
|
5631c9: e8 72 02 00 00 call 0x563440
|
||||||
|
5631ce: 80 bb 91 00 00 00 00 cmpb $0x0,0x91(%rbx)
|
||||||
|
5631d5: 75 08 jne 0x5631df
|
||||||
|
5631d7: 48 8b cb mov %rbx,%rcx
|
||||||
|
5631da: e8 01 0b 00 00 call 0x563ce0
|
||||||
|
5631df: 48 8b cb mov %rbx,%rcx
|
||||||
|
5631e2: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
5631e6: 5b pop %rbx
|
||||||
|
5631e7: e9 b4 0d 00 00 jmp 0x563fa0
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
soothe_mem.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
00000000005631f0 <.data+0x5631f0>:
|
||||||
|
5631f0: 40 53 rex push %rbx
|
||||||
|
5631f2: 48 83 ec 40 sub $0x40,%rsp
|
||||||
|
5631f6: 48 8b 05 73 27 0b 02 mov 0x20b2773(%rip),%rax # 0x2615970
|
||||||
|
5631fd: 48 33 c4 xor %rsp,%rax
|
||||||
|
563200: 48 89 44 24 30 mov %rax,0x30(%rsp)
|
||||||
|
563205: 48 89 54 24 20 mov %rdx,0x20(%rsp)
|
||||||
|
56320a: 4c 8d 44 24 2c lea 0x2c(%rsp),%r8
|
||||||
|
56320f: 33 c0 xor %eax,%eax
|
||||||
|
563211: c7 44 24 24 01 00 00 movl $0x1,0x24(%rsp)
|
||||||
|
563218: 00
|
||||||
|
563219: 48 8b da mov %rdx,%rbx
|
||||||
|
56321c: 48 89 02 mov %rax,(%rdx)
|
||||||
|
56321f: 48 89 42 08 mov %rax,0x8(%rdx)
|
||||||
|
563223: 48 8b cb mov %rbx,%rcx
|
||||||
|
563226: 48 89 42 10 mov %rax,0x10(%rdx)
|
||||||
|
56322a: 48 8d 54 24 20 lea 0x20(%rsp),%rdx
|
||||||
|
56322f: 89 44 24 20 mov %eax,0x20(%rsp)
|
||||||
|
563233: c7 44 24 28 02 00 00 movl $0x2,0x28(%rsp)
|
||||||
|
56323a: 00
|
||||||
|
56323b: e8 10 a1 00 00 call 0x56d350
|
||||||
|
563240: 48 8b c3 mov %rbx,%rax
|
||||||
|
563243: 48 8b 4c 24 30 mov 0x30(%rsp),%rcx
|
||||||
|
563248: 48 33 cc xor %rsp,%rcx
|
||||||
|
56324b: e8 80 de bc 00 call 0x11310d0
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
soothe_mem.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000000563260 <.data+0x563260>:
|
||||||
|
563260: 40 53 rex push %rbx
|
||||||
|
563262: 48 83 ec 20 sub $0x20,%rsp
|
||||||
|
563266: 48 8b d9 mov %rcx,%rbx
|
||||||
|
563269: 83 ea 01 sub $0x1,%edx
|
||||||
|
56326c: 74 28 je 0x563296
|
||||||
|
56326e: 83 fa 01 cmp $0x1,%edx
|
||||||
|
563271: 74 08 je 0x56327b
|
||||||
|
563273: 32 c0 xor %al,%al
|
||||||
|
563275: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
563279: 5b pop %rbx
|
||||||
|
56327a: c3 ret
|
||||||
|
56327b: 8b 89 c0 00 00 00 mov 0xc0(%rcx),%ecx
|
||||||
|
563281: 39 8b c4 00 00 00 cmp %ecx,0xc4(%rbx)
|
||||||
|
563287: 89 8b c4 00 00 00 mov %ecx,0xc4(%rbx)
|
||||||
|
56328d: 0f 95 c0 setne %al
|
||||||
|
563290: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
563294: 5b pop %rbx
|
||||||
|
563295: c3 ret
|
||||||
|
563296: e8 a5 01 00 00 call 0x563440
|
||||||
|
56329b: 80 bb 91 00 00 00 00 cmpb $0x0,0x91(%rbx)
|
||||||
|
5632a2: 75 08 jne 0x5632ac
|
||||||
|
5632a4: 48 8b cb mov %rbx,%rcx
|
||||||
|
5632a7: e8 34 0a 00 00 call 0x563ce0
|
||||||
|
5632ac: 48 8b cb mov %rbx,%rcx
|
||||||
|
5632af: 48 83 c4 20 add $0x20,%rsp
|
||||||
|
5632b3: 5b pop %rbx
|
||||||
|
5632b4: e9 e7 0c 00 00 jmp 0x563fa0
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
|
||||||
|
soothe_mem.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
00000000005632c0 <.data+0x5632c0>:
|
||||||
|
5632c0: 40 57 rex push %rdi
|
||||||
|
5632c2: 48 83 ec 60 sub $0x60,%rsp
|
||||||
|
5632c6: 48 c7 44 24 30 fe ff movq $0xfffffffffffffffe,0x30(%rsp)
|
||||||
|
5632cd: ff ff
|
||||||
|
5632cf: 48 89 5c 24 70 mov %rbx,0x70(%rsp)
|
||||||
|
5632d4: 0f 29 74 24 50 movaps %xmm6,0x50(%rsp)
|
||||||
|
5632d9: 0f 29 7c 24 40 movaps %xmm7,0x40(%rsp)
|
||||||
|
5632de: 49 8b d8 mov %r8,%rbx
|
||||||
|
5632e1: 48 8b f9 mov %rcx,%rdi
|
||||||
|
5632e4: f2 0f 10 ba 98 01 00 movsd 0x198(%rdx),%xmm7
|
||||||
|
5632eb: 00
|
||||||
|
5632ec: 66 0f 5a ff cvtpd2ps %xmm7,%xmm7
|
||||||
|
5632f0: 48 8b 81 98 01 05 00 mov 0x50198(%rcx),%rax
|
||||||
|
5632f7: f3 0f 10 b0 88 00 00 movss 0x88(%rax),%xmm6
|
||||||
|
5632fe: 00
|
||||||
|
5632ff: 49 8b 00 mov (%r8),%rax
|
||||||
|
563302: 48 8d 15 e7 d1 f4 01 lea 0x1f4d1e7(%rip),%rdx # 0x24b04f0
|
||||||
|
563309: 41 8b 48 08 mov 0x8(%r8),%ecx
|
||||||
|
56330d: ff 90 98 00 00 00 call *0x98(%rax)
|
||||||
|
563313: 90 nop
|
||||||
|
563314: 48 8b 13 mov (%rbx),%rdx
|
||||||
|
563317: f3 0f 59 35 c1 0e f6 mulss 0x1f60ec1(%rip),%xmm6 # 0x24c41e0
|
||||||
|
56331e: 01
|
||||||
|
56331f: f3 0f 59 f7 mulss %xmm7,%xmm6
|
||||||
|
563323: 0f 28 ce movaps %xmm6,%xmm1
|
||||||
|
563326: 8b c8 mov %eax,%ecx
|
||||||
|
563328: ff 92 c0 00 00 00 call *0xc0(%rdx)
|
||||||
|
56332e: 90 nop
|
||||||
|
56332f: 48 8b 03 mov (%rbx),%rax
|
||||||
|
563332: 48 8d 15 9f d1 f4 01 lea 0x1f4d19f(%rip),%rdx # 0x24b04d8
|
||||||
|
563339: 8b 4b 08 mov 0x8(%rbx),%ecx
|
||||||
|
56333c: ff 90 98 00 00 00 call *0x98(%rax)
|
||||||
|
563342: 90 nop
|
||||||
|
563343: 48 8b 13 mov (%rbx),%rdx
|
||||||
|
563346: f3 0f 10 35 56 0b f6 movss 0x1f60b56(%rip),%xmm6 # 0x24c3ea4
|
||||||
|
56334d: 01
|
||||||
|
56334e: f3 0f 11 74 24 20 movss %xmm6,0x20(%rsp)
|
||||||
|
563354: 0f 28 de movaps %xmm6,%xmm3
|
||||||
|
563357: 0f 28 d6 movaps %xmm6,%xmm2
|
||||||
|
56335a: 0f 28 ce movaps %xmm6,%xmm1
|
||||||
|
56335d: 8b c8 mov %eax,%ecx
|
||||||
|
56335f: ff 92 e0 00 00 00 call *0xe0(%rdx)
|
||||||
|
563365: 90 nop
|
||||||
|
563366: 48 8b 03 mov (%rbx),%rax
|
||||||
|
563369: 48 8d 15 c0 d1 f4 01 lea 0x1f4d1c0(%rip),%rdx # 0x24b0530
|
||||||
|
563370: 8b 4b 08 mov 0x8(%rbx),%ecx
|
||||||
|
563373: ff 90 98 00 00 00 call *0x98(%rax)
|
||||||
|
563379: 90 nop
|
||||||
|
56337a: 48 8b 13 mov (%rbx),%rdx
|
||||||
|
56337d: f3 0f 11 74 24 20 movss %xmm6,0x20(%rsp)
|
||||||
|
563383: f3 0f 10 1d 21 0a f6 movss 0x1f60a21(%rip),%xmm3 # 0x24c3dac
|
||||||
|
56338a: 01
|
||||||
|
56338b: f3 0f 10 15 0d 0a f6 movss 0x1f60a0d(%rip),%xmm2 # 0x24c3da0
|
||||||
|
563392: 01
|
||||||
|
563393: f3 0f 10 0d e9 09 f6 movss 0x1f609e9(%rip),%xmm1 # 0x24c3d84
|
||||||
|
56339a: 01
|
||||||
|
56339b: 8b c8 mov %eax,%ecx
|
||||||
|
56339d: ff 92 e0 00 00 00 call *0xe0(%rdx)
|
||||||
|
5633a3: 90 nop
|
||||||
|
5633a4: 83 bf c0 00 00 00 00 cmpl $0x0,0xc0(%rdi)
|
||||||
|
5633ab: 7c 24 jl 0x5633d1
|
||||||
|
5633ad: f3 0f 10 05 2b 0e f6 movss 0x1f60e2b(%rip),%xmm0 # 0x24c41e0
|
||||||
|
5633b4: 01
|
||||||
|
5633b5: ff 15 ed 77 64 01 call *0x16477ed(%rip) # 0x1baaba8
|
||||||
|
5633bb: ba fc 0f 00 00 mov $0xffc,%edx
|
||||||
|
5633c0: b9 03 00 00 00 mov $0x3,%ecx
|
||||||
|
5633c5: 41 b8 ff 03 00 00 mov $0x3ff,%r8d
|
||||||
|
5633cb: ff 15 bf 77 64 01 call *0x16477bf(%rip) # 0x1baab90
|
||||||
|
5633d1: 48 8b 87 70 01 00 00 mov 0x170(%rdi),%rax
|
||||||
|
5633d8: 48 8b 90 68 01 00 00 mov 0x168(%rax),%rdx
|
||||||
|
5633df: 83 7a 30 02 cmpl $0x2,0x30(%rdx)
|
||||||
|
5633e3: 75 13 jne 0x5633f8
|
||||||
|
5633e5: ba fe 07 00 00 mov $0x7fe,%edx
|
||||||
|
5633ea: b9 05 00 00 00 mov $0x5,%ecx
|
||||||
|
5633ef: 44 8b c2 mov %edx,%r8d
|
||||||
|
5633f2: ff 15 98 77 64 01 call *0x1647798(%rip) # 0x1baab90
|
||||||
|
5633f8: 33 d2 xor %edx,%edx
|
||||||
|
5633fa: 8d 4a 05 lea 0x5(%rdx),%ecx
|
||||||
|
5633fd: 41 b8 fe 07 00 00 mov $0x7fe,%r8d
|
||||||
|
563403: 48 8b 5c 24 70 mov 0x70(%rsp),%rbx
|
||||||
|
563408: 0f 28 74 24 50 movaps 0x50(%rsp),%xmm6
|
||||||
|
56340d: 0f 28 7c 24 40 movaps 0x40(%rsp),%xmm7
|
||||||
|
563412: 48 83 c4 60 add $0x60,%rsp
|
||||||
|
563416: 5f pop %rdi
|
||||||
|
563417: 48 ff 25 72 77 64 01 rex.W jmp *0x1647772(%rip) # 0x1baab90
|
||||||
@@ -0,0 +1,165 @@
|
|||||||
|
|
||||||
|
soothe_mem.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000000563a60 <.data+0x563a60>:
|
||||||
|
563a60: 48 8b c4 mov %rsp,%rax
|
||||||
|
563a63: 55 push %rbp
|
||||||
|
563a64: 56 push %rsi
|
||||||
|
563a65: 57 push %rdi
|
||||||
|
563a66: 41 56 push %r14
|
||||||
|
563a68: 41 57 push %r15
|
||||||
|
563a6a: 48 81 ec c0 00 00 00 sub $0xc0,%rsp
|
||||||
|
563a71: 48 c7 44 24 20 fe ff movq $0xfffffffffffffffe,0x20(%rsp)
|
||||||
|
563a78: ff ff
|
||||||
|
563a7a: 48 89 58 08 mov %rbx,0x8(%rax)
|
||||||
|
563a7e: 0f 29 70 c8 movaps %xmm6,-0x38(%rax)
|
||||||
|
563a82: 0f 29 78 b8 movaps %xmm7,-0x48(%rax)
|
||||||
|
563a86: 44 0f 29 40 a8 movaps %xmm8,-0x58(%rax)
|
||||||
|
563a8b: 44 0f 29 48 98 movaps %xmm9,-0x68(%rax)
|
||||||
|
563a90: 44 0f 29 50 88 movaps %xmm10,-0x78(%rax)
|
||||||
|
563a95: 44 0f 29 5c 24 60 movaps %xmm11,0x60(%rsp)
|
||||||
|
563a9b: 44 0f 29 64 24 50 movaps %xmm12,0x50(%rsp)
|
||||||
|
563aa1: 44 0f 29 6c 24 40 movaps %xmm13,0x40(%rsp)
|
||||||
|
563aa7: 44 0f 29 74 24 30 movaps %xmm14,0x30(%rsp)
|
||||||
|
563aad: 4c 8b f9 mov %rcx,%r15
|
||||||
|
563ab0: 45 33 f6 xor %r14d,%r14d
|
||||||
|
563ab3: 48 8d a9 98 41 00 00 lea 0x4198(%rcx),%rbp
|
||||||
|
563aba: 48 8d b1 e0 00 00 00 lea 0xe0(%rcx),%rsi
|
||||||
|
563ac1: f2 44 0f 10 2d 46 14 movsd 0x1f61446(%rip),%xmm13 # 0x24c4f10
|
||||||
|
563ac8: f6 01
|
||||||
|
563aca: f3 44 0f 10 1d 0d 09 movss 0x1f6090d(%rip),%xmm11 # 0x24c43e0
|
||||||
|
563ad1: f6 01
|
||||||
|
563ad3: f3 44 0f 10 25 74 01 movss 0x1f60174(%rip),%xmm12 # 0x24c3c50
|
||||||
|
563ada: f6 01
|
||||||
|
563adc: 45 0f 57 c0 xorps %xmm8,%xmm8
|
||||||
|
563ae0: f3 0f 10 35 bc 03 f6 movss 0x1f603bc(%rip),%xmm6 # 0x24c3ea4
|
||||||
|
563ae7: 01
|
||||||
|
563ae8: f3 44 0f 10 15 ef 06 movss 0x1f606ef(%rip),%xmm10 # 0x24c41e0
|
||||||
|
563aef: f6 01
|
||||||
|
563af1: f3 44 0f 10 0d 86 0b movss 0x1f60b86(%rip),%xmm9 # 0x24c4680
|
||||||
|
563af8: f6 01
|
||||||
|
563afa: f3 44 0f 10 35 89 02 movss 0x1f60289(%rip),%xmm14 # 0x24c3d8c
|
||||||
|
563b01: f6 01
|
||||||
|
563b03: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
563b07: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
|
||||||
|
563b0e: 00 00
|
||||||
|
563b10: 48 8b 46 08 mov 0x8(%rsi),%rax
|
||||||
|
563b14: 48 2b 06 sub (%rsi),%rax
|
||||||
|
563b17: 48 c1 f8 03 sar $0x3,%rax
|
||||||
|
563b1b: 48 85 c0 test %rax,%rax
|
||||||
|
563b1e: 75 19 jne 0x563b39
|
||||||
|
563b20: 49 63 c6 movslq %r14d,%rax
|
||||||
|
563b23: 48 8d 48 0e lea 0xe(%rax),%rcx
|
||||||
|
563b27: 48 8d 0c 48 lea (%rax,%rcx,2),%rcx
|
||||||
|
563b2b: 49 8d 0c cf lea (%r15,%rcx,8),%rcx
|
||||||
|
563b2f: ba 00 04 00 00 mov $0x400,%edx
|
||||||
|
563b34: e8 07 8b 00 00 call 0x56c640
|
||||||
|
563b39: 33 ff xor %edi,%edi
|
||||||
|
563b3b: 33 db xor %ebx,%ebx
|
||||||
|
563b3d: 0f 1f 00 nopl (%rax)
|
||||||
|
563b40: f2 0f 10 04 2b movsd (%rbx,%rbp,1),%xmm0
|
||||||
|
563b45: 66 0f 5a c0 cvtpd2ps %xmm0,%xmm0
|
||||||
|
563b49: e8 82 11 4b 01 call 0x1a14cd0
|
||||||
|
563b4e: 0f 28 d0 movaps %xmm0,%xmm2
|
||||||
|
563b51: f3 41 0f 59 d3 mulss %xmm11,%xmm2
|
||||||
|
563b56: 66 0f 6e cf movd %edi,%xmm1
|
||||||
|
563b5a: 0f 5b c9 cvtdq2ps %xmm1,%xmm1
|
||||||
|
563b5d: f3 41 0f 59 cc mulss %xmm12,%xmm1
|
||||||
|
563b62: 48 8b 06 mov (%rsi),%rax
|
||||||
|
563b65: f3 0f 11 0c 03 movss %xmm1,(%rbx,%rax,1)
|
||||||
|
563b6a: 49 8b 87 80 01 00 00 mov 0x180(%r15),%rax
|
||||||
|
563b71: f3 0f 10 40 04 movss 0x4(%rax),%xmm0
|
||||||
|
563b76: 48 83 b8 90 00 00 00 cmpq $0x0,0x90(%rax)
|
||||||
|
563b7d: 00
|
||||||
|
563b7e: 74 65 je 0x563be5
|
||||||
|
563b80: f3 0f 11 94 24 f8 00 movss %xmm2,0xf8(%rsp)
|
||||||
|
563b87: 00 00
|
||||||
|
563b89: f3 0f 11 84 24 00 01 movss %xmm0,0x100(%rsp)
|
||||||
|
563b90: 00 00
|
||||||
|
563b92: f3 0f 10 08 movss (%rax),%xmm1
|
||||||
|
563b96: f3 0f 11 8c 24 08 01 movss %xmm1,0x108(%rsp)
|
||||||
|
563b9d: 00 00
|
||||||
|
563b9f: 48 8b 88 90 00 00 00 mov 0x90(%rax),%rcx
|
||||||
|
563ba6: 48 85 c9 test %rcx,%rcx
|
||||||
|
563ba9: 0f 84 1c 01 00 00 je 0x563ccb
|
||||||
|
563baf: 48 8b 01 mov (%rcx),%rax
|
||||||
|
563bb2: 4c 8d 8c 24 f8 00 00 lea 0xf8(%rsp),%r9
|
||||||
|
563bb9: 00
|
||||||
|
563bba: 4c 8d 84 24 00 01 00 lea 0x100(%rsp),%r8
|
||||||
|
563bc1: 00
|
||||||
|
563bc2: 48 8d 94 24 08 01 00 lea 0x108(%rsp),%rdx
|
||||||
|
563bc9: 00
|
||||||
|
563bca: ff 50 10 call *0x10(%rax)
|
||||||
|
563bcd: 0f 28 c8 movaps %xmm0,%xmm1
|
||||||
|
563bd0: 44 0f 2f c1 comiss %xmm1,%xmm8
|
||||||
|
563bd4: 76 06 jbe 0x563bdc
|
||||||
|
563bd6: 41 0f 28 c0 movaps %xmm8,%xmm0
|
||||||
|
563bda: eb 77 jmp 0x563c53
|
||||||
|
563bdc: 0f 28 c6 movaps %xmm6,%xmm0
|
||||||
|
563bdf: f3 0f 5d c1 minss %xmm1,%xmm0
|
||||||
|
563be3: eb 6e jmp 0x563c53
|
||||||
|
563be5: f3 0f 5c 10 subss (%rax),%xmm2
|
||||||
|
563be9: f3 0f 5c 00 subss (%rax),%xmm0
|
||||||
|
563bed: f3 0f 5e d0 divss %xmm0,%xmm2
|
||||||
|
563bf1: 44 0f 2f c2 comiss %xmm2,%xmm8
|
||||||
|
563bf5: 76 06 jbe 0x563bfd
|
||||||
|
563bf7: 41 0f 28 c0 movaps %xmm8,%xmm0
|
||||||
|
563bfb: eb 07 jmp 0x563c04
|
||||||
|
563bfd: 0f 28 c6 movaps %xmm6,%xmm0
|
||||||
|
563c00: f3 0f 5d c2 minss %xmm2,%xmm0
|
||||||
|
563c04: f3 0f 10 48 0c movss 0xc(%rax),%xmm1
|
||||||
|
563c09: 0f 2e ce ucomiss %xmm6,%xmm1
|
||||||
|
563c0c: 7a 02 jp 0x563c10
|
||||||
|
563c0e: 74 43 je 0x563c53
|
||||||
|
563c10: 80 78 10 00 cmpb $0x0,0x10(%rax)
|
||||||
|
563c14: 75 07 jne 0x563c1d
|
||||||
|
563c16: e8 c1 10 4b 01 call 0x1a14cdc
|
||||||
|
563c1b: eb 36 jmp 0x563c53
|
||||||
|
563c1d: f3 41 0f 59 c2 mulss %xmm10,%xmm0
|
||||||
|
563c22: f3 0f 5c c6 subss %xmm6,%xmm0
|
||||||
|
563c26: 44 0f 2f c0 comiss %xmm0,%xmm8
|
||||||
|
563c2a: 76 06 jbe 0x563c32
|
||||||
|
563c2c: 41 0f 28 f9 movaps %xmm9,%xmm7
|
||||||
|
563c30: eb 03 jmp 0x563c35
|
||||||
|
563c32: 0f 28 fe movaps %xmm6,%xmm7
|
||||||
|
563c35: f3 0f 5a c0 cvtss2sd %xmm0,%xmm0
|
||||||
|
563c39: 41 0f 54 c5 andps %xmm13,%xmm0
|
||||||
|
563c3d: f2 0f 5a c0 cvtsd2ss %xmm0,%xmm0
|
||||||
|
563c41: e8 96 10 4b 01 call 0x1a14cdc
|
||||||
|
563c46: f3 0f 59 c7 mulss %xmm7,%xmm0
|
||||||
|
563c4a: f3 0f 58 c6 addss %xmm6,%xmm0
|
||||||
|
563c4e: f3 41 0f 59 c6 mulss %xmm14,%xmm0
|
||||||
|
563c53: 48 8b 06 mov (%rsi),%rax
|
||||||
|
563c56: f3 0f 11 44 03 04 movss %xmm0,0x4(%rbx,%rax,1)
|
||||||
|
563c5c: ff c7 inc %edi
|
||||||
|
563c5e: 48 83 c3 08 add $0x8,%rbx
|
||||||
|
563c62: 81 ff 00 04 00 00 cmp $0x400,%edi
|
||||||
|
563c68: 0f 8c d2 fe ff ff jl 0x563b40
|
||||||
|
563c6e: 41 ff c6 inc %r14d
|
||||||
|
563c71: 48 83 c6 18 add $0x18,%rsi
|
||||||
|
563c75: 48 81 c5 00 20 00 00 add $0x2000,%rbp
|
||||||
|
563c7c: 41 83 fe 06 cmp $0x6,%r14d
|
||||||
|
563c80: 0f 8c 8a fe ff ff jl 0x563b10
|
||||||
|
563c86: 4c 8d 9c 24 c0 00 00 lea 0xc0(%rsp),%r11
|
||||||
|
563c8d: 00
|
||||||
|
563c8e: 49 8b 5b 30 mov 0x30(%r11),%rbx
|
||||||
|
563c92: 41 0f 28 73 f0 movaps -0x10(%r11),%xmm6
|
||||||
|
563c97: 41 0f 28 7b e0 movaps -0x20(%r11),%xmm7
|
||||||
|
563c9c: 45 0f 28 43 d0 movaps -0x30(%r11),%xmm8
|
||||||
|
563ca1: 45 0f 28 4b c0 movaps -0x40(%r11),%xmm9
|
||||||
|
563ca6: 45 0f 28 53 b0 movaps -0x50(%r11),%xmm10
|
||||||
|
563cab: 45 0f 28 5b a0 movaps -0x60(%r11),%xmm11
|
||||||
|
563cb0: 45 0f 28 63 90 movaps -0x70(%r11),%xmm12
|
||||||
|
563cb5: 45 0f 28 6b 80 movaps -0x80(%r11),%xmm13
|
||||||
|
563cba: 44 0f 28 74 24 30 movaps 0x30(%rsp),%xmm14
|
||||||
|
563cc0: 49 8b e3 mov %r11,%rsp
|
||||||
|
563cc3: 41 5f pop %r15
|
||||||
|
563cc5: 41 5e pop %r14
|
||||||
|
563cc7: 5f pop %rdi
|
||||||
|
563cc8: 5e pop %rsi
|
||||||
|
563cc9: 5d pop %rbp
|
||||||
|
563cca: c3 ret
|
||||||
|
563ccb: ff 15 67 6d 64 01 call *0x1646d67(%rip) # 0x1baaa38
|
||||||
@@ -0,0 +1,187 @@
|
|||||||
|
|
||||||
|
soothe_mem.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000000563fa0 <.data+0x563fa0>:
|
||||||
|
563fa0: 48 83 ec 18 sub $0x18,%rsp
|
||||||
|
563fa4: 48 8b 81 a0 00 00 00 mov 0xa0(%rcx),%rax
|
||||||
|
563fab: 4c 8b c1 mov %rcx,%r8
|
||||||
|
563fae: 48 2b 81 98 00 00 00 sub 0x98(%rcx),%rax
|
||||||
|
563fb5: 48 a9 f8 ff ff ff test $0xfffffffffffffff8,%rax
|
||||||
|
563fbb: 0f 84 33 03 00 00 je 0x5642f4
|
||||||
|
563fc1: 80 b9 90 00 00 00 00 cmpb $0x0,0x90(%rcx)
|
||||||
|
563fc8: 0f 84 26 03 00 00 je 0x5642f4
|
||||||
|
563fce: 48 8b 81 70 01 00 00 mov 0x170(%rcx),%rax
|
||||||
|
563fd5: c6 81 90 00 00 00 00 movb $0x0,0x90(%rcx)
|
||||||
|
563fdc: 48 8b 88 68 01 00 00 mov 0x168(%rax),%rcx
|
||||||
|
563fe3: b8 02 00 00 00 mov $0x2,%eax
|
||||||
|
563fe8: 39 41 30 cmp %eax,0x30(%rcx)
|
||||||
|
563feb: 0f 4c 41 30 cmovl 0x30(%rcx),%eax
|
||||||
|
563fef: 45 33 c9 xor %r9d,%r9d
|
||||||
|
563ff2: 4c 63 d8 movslq %eax,%r11
|
||||||
|
563ff5: 85 c0 test %eax,%eax
|
||||||
|
563ff7: 0f 8e 31 01 00 00 jle 0x56412e
|
||||||
|
563ffd: 48 89 5c 24 10 mov %rbx,0x10(%rsp)
|
||||||
|
564002: 41 8b d1 mov %r9d,%edx
|
||||||
|
564005: 45 8b d1 mov %r9d,%r10d
|
||||||
|
564008: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
56400f: 00
|
||||||
|
564010: bb 55 01 00 00 mov $0x155,%ebx
|
||||||
|
564015: 66 66 66 0f 1f 84 00 data16 data16 nopw 0x0(%rax,%rax,1)
|
||||||
|
56401c: 00 00 00 00
|
||||||
|
564020: 49 8b 80 98 00 00 00 mov 0x98(%r8),%rax
|
||||||
|
564027: f3 0f 10 44 02 08 movss 0x8(%rdx,%rax,1),%xmm0
|
||||||
|
56402d: f3 0f 10 4c 02 04 movss 0x4(%rdx,%rax,1),%xmm1
|
||||||
|
564033: f3 0f 10 54 02 0c movss 0xc(%rdx,%rax,1),%xmm2
|
||||||
|
564039: f3 0f 10 1c 02 movss (%rdx,%rax,1),%xmm3
|
||||||
|
56403e: 49 8b 40 40 mov 0x40(%r8),%rax
|
||||||
|
564042: 0f c6 db e1 shufps $0xe1,%xmm3,%xmm3
|
||||||
|
564046: f3 0f 10 d8 movss %xmm0,%xmm3
|
||||||
|
56404a: 0f c6 db c6 shufps $0xc6,%xmm3,%xmm3
|
||||||
|
56404e: f3 0f 10 d9 movss %xmm1,%xmm3
|
||||||
|
564052: 0f c6 db 27 shufps $0x27,%xmm3,%xmm3
|
||||||
|
564056: f3 0f 10 da movss %xmm2,%xmm3
|
||||||
|
56405a: 0f c6 db 39 shufps $0x39,%xmm3,%xmm3
|
||||||
|
56405e: 42 0f 11 1c 10 movups %xmm3,(%rax,%r10,1)
|
||||||
|
564063: 49 8b 40 40 mov 0x40(%r8),%rax
|
||||||
|
564067: 42 0f 11 5c 10 10 movups %xmm3,0x10(%rax,%r10,1)
|
||||||
|
56406d: 49 8b 80 98 00 00 00 mov 0x98(%r8),%rax
|
||||||
|
564074: f3 0f 10 44 10 10 movss 0x10(%rax,%rdx,1),%xmm0
|
||||||
|
56407a: f3 0f 10 4c 10 0c movss 0xc(%rax,%rdx,1),%xmm1
|
||||||
|
564080: f3 0f 10 54 10 14 movss 0x14(%rax,%rdx,1),%xmm2
|
||||||
|
564086: f3 0f 10 5c 10 08 movss 0x8(%rax,%rdx,1),%xmm3
|
||||||
|
56408c: 49 8b 40 40 mov 0x40(%r8),%rax
|
||||||
|
564090: 0f c6 db e1 shufps $0xe1,%xmm3,%xmm3
|
||||||
|
564094: f3 0f 10 d8 movss %xmm0,%xmm3
|
||||||
|
564098: 0f c6 db c6 shufps $0xc6,%xmm3,%xmm3
|
||||||
|
56409c: f3 0f 10 d9 movss %xmm1,%xmm3
|
||||||
|
5640a0: 0f c6 db 27 shufps $0x27,%xmm3,%xmm3
|
||||||
|
5640a4: f3 0f 10 da movss %xmm2,%xmm3
|
||||||
|
5640a8: 0f c6 db 39 shufps $0x39,%xmm3,%xmm3
|
||||||
|
5640ac: 42 0f 11 5c 10 20 movups %xmm3,0x20(%rax,%r10,1)
|
||||||
|
5640b2: 49 8b 40 40 mov 0x40(%r8),%rax
|
||||||
|
5640b6: 42 0f 11 5c 10 30 movups %xmm3,0x30(%rax,%r10,1)
|
||||||
|
5640bc: 49 8b 88 98 00 00 00 mov 0x98(%r8),%rcx
|
||||||
|
5640c3: f3 0f 10 5c 11 10 movss 0x10(%rcx,%rdx,1),%xmm3
|
||||||
|
5640c9: 48 8d 04 11 lea (%rcx,%rdx,1),%rax
|
||||||
|
5640cd: f3 0f 10 48 14 movss 0x14(%rax),%xmm1
|
||||||
|
5640d2: 48 83 c2 18 add $0x18,%rdx
|
||||||
|
5640d6: 49 8b 40 40 mov 0x40(%r8),%rax
|
||||||
|
5640da: 0f c6 db e1 shufps $0xe1,%xmm3,%xmm3
|
||||||
|
5640de: f3 0f 10 04 11 movss (%rcx,%rdx,1),%xmm0
|
||||||
|
5640e3: f3 0f 10 54 11 04 movss 0x4(%rcx,%rdx,1),%xmm2
|
||||||
|
5640e9: f3 0f 10 d8 movss %xmm0,%xmm3
|
||||||
|
5640ed: 0f c6 db c6 shufps $0xc6,%xmm3,%xmm3
|
||||||
|
5640f1: f3 0f 10 d9 movss %xmm1,%xmm3
|
||||||
|
5640f5: 0f c6 db 27 shufps $0x27,%xmm3,%xmm3
|
||||||
|
5640f9: f3 0f 10 da movss %xmm2,%xmm3
|
||||||
|
5640fd: 0f c6 db 39 shufps $0x39,%xmm3,%xmm3
|
||||||
|
564101: 42 0f 11 5c 10 40 movups %xmm3,0x40(%rax,%r10,1)
|
||||||
|
564107: 49 8b 40 40 mov 0x40(%r8),%rax
|
||||||
|
56410b: 42 0f 11 5c 10 50 movups %xmm3,0x50(%rax,%r10,1)
|
||||||
|
564111: 49 83 c2 60 add $0x60,%r10
|
||||||
|
564115: 48 83 eb 01 sub $0x1,%rbx
|
||||||
|
564119: 0f 85 01 ff ff ff jne 0x564020
|
||||||
|
56411f: 49 83 eb 01 sub $0x1,%r11
|
||||||
|
564123: 0f 85 e7 fe ff ff jne 0x564010
|
||||||
|
564129: 48 8b 5c 24 10 mov 0x10(%rsp),%rbx
|
||||||
|
56412e: 49 63 80 c0 00 00 00 movslq 0xc0(%r8),%rax
|
||||||
|
564135: 83 f8 ff cmp $0xffffffff,%eax
|
||||||
|
564138: 0f 8e 42 01 00 00 jle 0x564280
|
||||||
|
56413e: f3 0f 10 05 02 04 f6 movss 0x1f60402(%rip),%xmm0 # 0x24c4548
|
||||||
|
564145: 01
|
||||||
|
564146: 48 8b c8 mov %rax,%rcx
|
||||||
|
564149: 41 8b 84 80 c8 00 00 mov 0xc8(%r8,%rax,4),%eax
|
||||||
|
564150: 00
|
||||||
|
564151: 41 ba d0 ff 00 00 mov $0xffd0,%r10d
|
||||||
|
564157: 89 44 24 20 mov %eax,0x20(%rsp)
|
||||||
|
56415b: 4c 8d 1c 49 lea (%rcx,%rcx,2),%r11
|
||||||
|
56415f: 0f b6 4c 24 22 movzbl 0x22(%rsp),%ecx
|
||||||
|
564164: 66 0f 6e c9 movd %ecx,%xmm1
|
||||||
|
564168: 0f b6 4c 24 21 movzbl 0x21(%rsp),%ecx
|
||||||
|
56416d: 0f 5b c9 cvtdq2ps %xmm1,%xmm1
|
||||||
|
564170: 66 0f 6e d1 movd %ecx,%xmm2
|
||||||
|
564174: 0f b6 c8 movzbl %al,%ecx
|
||||||
|
564177: 0f 5b d2 cvtdq2ps %xmm2,%xmm2
|
||||||
|
56417a: 66 0f 6e d9 movd %ecx,%xmm3
|
||||||
|
56417e: 0f 5b db cvtdq2ps %xmm3,%xmm3
|
||||||
|
564181: f3 0f 5e c8 divss %xmm0,%xmm1
|
||||||
|
564185: f3 0f 5e d8 divss %xmm0,%xmm3
|
||||||
|
564189: f3 0f 5e d0 divss %xmm0,%xmm2
|
||||||
|
56418d: 0f 1f 00 nopl (%rax)
|
||||||
|
564190: 4b 8b 94 d8 e0 00 00 mov 0xe0(%r8,%r11,8),%rdx
|
||||||
|
564197: 00
|
||||||
|
564198: 4d 8d 49 18 lea 0x18(%r9),%r9
|
||||||
|
56419c: 49 8b 48 40 mov 0x40(%r8),%rcx
|
||||||
|
5641a0: 41 8b 44 11 e8 mov -0x18(%r9,%rdx,1),%eax
|
||||||
|
5641a5: 41 89 44 0a f0 mov %eax,-0x10(%r10,%rcx,1)
|
||||||
|
5641aa: 41 8b 44 11 ec mov -0x14(%r9,%rdx,1),%eax
|
||||||
|
5641af: 49 8b 48 40 mov 0x40(%r8),%rcx
|
||||||
|
5641b3: 42 89 44 11 f4 mov %eax,-0xc(%rcx,%r10,1)
|
||||||
|
5641b8: 49 8b 40 58 mov 0x58(%r8),%rax
|
||||||
|
5641bc: f3 41 0f 11 4c 02 f0 movss %xmm1,-0x10(%r10,%rax,1)
|
||||||
|
5641c3: 49 8b 40 58 mov 0x58(%r8),%rax
|
||||||
|
5641c7: f3 42 0f 11 54 10 f4 movss %xmm2,-0xc(%rax,%r10,1)
|
||||||
|
5641ce: 49 8b 40 58 mov 0x58(%r8),%rax
|
||||||
|
5641d2: f3 42 0f 11 5c 10 f8 movss %xmm3,-0x8(%rax,%r10,1)
|
||||||
|
5641d9: 4b 8b 94 d8 e0 00 00 mov 0xe0(%r8,%r11,8),%rdx
|
||||||
|
5641e0: 00
|
||||||
|
5641e1: 49 8b 48 40 mov 0x40(%r8),%rcx
|
||||||
|
5641e5: 42 8b 44 0a f0 mov -0x10(%rdx,%r9,1),%eax
|
||||||
|
5641ea: 41 89 04 0a mov %eax,(%r10,%rcx,1)
|
||||||
|
5641ee: 42 8b 44 0a f4 mov -0xc(%rdx,%r9,1),%eax
|
||||||
|
5641f3: 49 8b 48 40 mov 0x40(%r8),%rcx
|
||||||
|
5641f7: 42 89 44 11 04 mov %eax,0x4(%rcx,%r10,1)
|
||||||
|
5641fc: 49 8b 40 58 mov 0x58(%r8),%rax
|
||||||
|
564200: f3 41 0f 11 0c 02 movss %xmm1,(%r10,%rax,1)
|
||||||
|
564206: 49 8b 40 58 mov 0x58(%r8),%rax
|
||||||
|
56420a: f3 42 0f 11 54 10 04 movss %xmm2,0x4(%rax,%r10,1)
|
||||||
|
564211: 49 8b 40 58 mov 0x58(%r8),%rax
|
||||||
|
564215: f3 42 0f 11 5c 10 08 movss %xmm3,0x8(%rax,%r10,1)
|
||||||
|
56421c: 4b 8b 94 d8 e0 00 00 mov 0xe0(%r8,%r11,8),%rdx
|
||||||
|
564223: 00
|
||||||
|
564224: 49 8b 48 40 mov 0x40(%r8),%rcx
|
||||||
|
564228: 42 8b 44 0a f8 mov -0x8(%rdx,%r9,1),%eax
|
||||||
|
56422d: 41 89 44 0a 10 mov %eax,0x10(%r10,%rcx,1)
|
||||||
|
564232: 42 8b 44 0a fc mov -0x4(%rdx,%r9,1),%eax
|
||||||
|
564237: 49 8b 48 40 mov 0x40(%r8),%rcx
|
||||||
|
56423b: 42 89 44 11 14 mov %eax,0x14(%rcx,%r10,1)
|
||||||
|
564240: 49 8b 40 58 mov 0x58(%r8),%rax
|
||||||
|
564244: f3 41 0f 11 4c 02 10 movss %xmm1,0x10(%r10,%rax,1)
|
||||||
|
56424b: 49 8b 40 58 mov 0x58(%r8),%rax
|
||||||
|
56424f: f3 42 0f 11 54 10 14 movss %xmm2,0x14(%rax,%r10,1)
|
||||||
|
564256: 49 8b 40 58 mov 0x58(%r8),%rax
|
||||||
|
56425a: f3 42 0f 11 5c 10 18 movss %xmm3,0x18(%rax,%r10,1)
|
||||||
|
564261: 49 83 c2 30 add $0x30,%r10
|
||||||
|
564265: 49 81 fa c0 3f 01 00 cmp $0x13fc0,%r10
|
||||||
|
56426c: 0f 8c 1e ff ff ff jl 0x564190
|
||||||
|
564272: b0 01 mov $0x1,%al
|
||||||
|
564274: 48 83 c4 18 add $0x18,%rsp
|
||||||
|
564278: c3 ret
|
||||||
|
564279: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
564280: 49 8b 40 40 mov 0x40(%r8),%rax
|
||||||
|
564284: 42 c7 84 08 c0 ff 00 movl $0xc0000000,0xffc0(%rax,%r9,1)
|
||||||
|
56428b: 00 00 00 00 c0
|
||||||
|
564290: 49 8b 40 40 mov 0x40(%r8),%rax
|
||||||
|
564294: 42 c7 84 08 c4 ff 00 movl $0xc0000000,0xffc4(%rax,%r9,1)
|
||||||
|
56429b: 00 00 00 00 c0
|
||||||
|
5642a0: 49 8b 40 40 mov 0x40(%r8),%rax
|
||||||
|
5642a4: 41 c7 84 01 d0 ff 00 movl $0xc0000000,0xffd0(%r9,%rax,1)
|
||||||
|
5642ab: 00 00 00 00 c0
|
||||||
|
5642b0: 49 8b 40 40 mov 0x40(%r8),%rax
|
||||||
|
5642b4: 42 c7 84 08 d4 ff 00 movl $0xc0000000,0xffd4(%rax,%r9,1)
|
||||||
|
5642bb: 00 00 00 00 c0
|
||||||
|
5642c0: 49 8b 40 40 mov 0x40(%r8),%rax
|
||||||
|
5642c4: 42 c7 84 08 e0 ff 00 movl $0xc0000000,0xffe0(%rax,%r9,1)
|
||||||
|
5642cb: 00 00 00 00 c0
|
||||||
|
5642d0: 49 8b 40 40 mov 0x40(%r8),%rax
|
||||||
|
5642d4: 42 c7 84 08 e4 ff 00 movl $0xc0000000,0xffe4(%rax,%r9,1)
|
||||||
|
5642db: 00 00 00 00 c0
|
||||||
|
5642e0: 49 83 c1 30 add $0x30,%r9
|
||||||
|
5642e4: 49 81 f9 f0 3f 00 00 cmp $0x3ff0,%r9
|
||||||
|
5642eb: 7c 93 jl 0x564280
|
||||||
|
5642ed: b0 01 mov $0x1,%al
|
||||||
|
5642ef: 48 83 c4 18 add $0x18,%rsp
|
||||||
|
5642f3: c3 ret
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
|
||||||
|
soothe_mem.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
000000000056e3e0 <.data+0x56e3e0>:
|
||||||
|
56e3e0: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
|
||||||
|
56e3e5: 48 89 6c 24 18 mov %rbp,0x18(%rsp)
|
||||||
|
56e3ea: 48 89 74 24 20 mov %rsi,0x20(%rsp)
|
||||||
|
56e3ef: 48 89 54 24 10 mov %rdx,0x10(%rsp)
|
||||||
|
56e3f4: 57 push %rdi
|
||||||
|
56e3f5: 41 54 push %r12
|
||||||
|
56e3f7: 41 55 push %r13
|
||||||
|
56e3f9: 41 56 push %r14
|
||||||
|
56e3fb: 41 57 push %r15
|
||||||
|
56e3fd: 48 83 ec 50 sub $0x50,%rsp
|
||||||
|
56e401: 66 0f 6e 81 80 00 24 movd 0x240080(%rcx),%xmm0
|
||||||
|
56e408: 00
|
||||||
|
56e409: 4c 8b fa mov %rdx,%r15
|
||||||
|
56e40c: 48 8b bc 24 b0 00 00 mov 0xb0(%rsp),%rdi
|
||||||
|
56e413: 00
|
||||||
|
56e414: 48 8d 15 9d 29 0e 02 lea 0x20e299d(%rip),%rdx # 0x2650db8
|
||||||
|
56e41b: 0f 5b c0 cvtdq2ps %xmm0,%xmm0
|
||||||
|
56e41e: 49 8b e9 mov %r9,%rbp
|
||||||
|
56e421: 49 8b f0 mov %r8,%rsi
|
||||||
|
56e424: 4c 8d a7 00 00 01 00 lea 0x10000(%rdi),%r12
|
||||||
|
56e42b: 49 8d 9c 24 00 60 00 lea 0x6000(%r12),%rbx
|
||||||
|
56e432: 00
|
||||||
|
56e433: 0f 29 74 24 40 movaps %xmm6,0x40(%rsp)
|
||||||
|
56e438: 4c 8d b3 00 40 00 00 lea 0x4000(%rbx),%r14
|
||||||
|
56e43f: f3 0f 59 41 24 mulss 0x24(%rcx),%xmm0
|
||||||
|
56e444: 48 8d 0d 3d 26 0e 02 lea 0x20e263d(%rip),%rcx # 0x2650a88
|
||||||
|
56e44b: 0f 29 7c 24 30 movaps %xmm7,0x30(%rsp)
|
||||||
|
56e450: 0f 5a f0 cvtps2pd %xmm0,%xmm6
|
||||||
|
56e453: ff 15 af cb 63 01 call *0x163cbaf(%rip) # 0x1bab008
|
||||||
|
56e459: f2 0f 10 3d e7 5d f5 movsd 0x1f55de7(%rip),%xmm7 # 0x24c4248
|
||||||
|
56e460: 01
|
||||||
|
56e461: 48 8d 15 50 29 0e 02 lea 0x20e2950(%rip),%rdx # 0x2650db8
|
||||||
|
56e468: 85 c0 test %eax,%eax
|
||||||
|
56e46a: 48 8d 0d 17 26 0e 02 lea 0x20e2617(%rip),%rcx # 0x2650a88
|
||||||
|
56e471: f2 0f 5e fe divsd %xmm6,%xmm7
|
||||||
|
56e475: 0f 94 84 24 a8 00 00 sete 0xa8(%rsp)
|
||||||
|
56e47c: 00
|
||||||
|
56e47d: ff 15 85 cb 63 01 call *0x163cb85(%rip) # 0x1bab008
|
||||||
|
56e483: 41 b9 00 04 00 00 mov $0x400,%r9d
|
||||||
|
56e489: 4d 8b c4 mov %r12,%r8
|
||||||
|
56e48c: 48 8b ce mov %rsi,%rcx
|
||||||
|
56e48f: 85 c0 test %eax,%eax
|
||||||
|
56e491: 75 0b jne 0x56e49e
|
||||||
|
56e493: 66 0f 5a cf cvtpd2ps %xmm7,%xmm1
|
||||||
|
56e497: e8 64 35 a9 ff call 0x1a00
|
||||||
|
56e49c: eb 08 jmp 0x56e4a6
|
||||||
|
56e49e: 0f 28 cf movaps %xmm7,%xmm1
|
||||||
|
56e4a1: e8 3a 37 call 0x1be0
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
/tmp/det/fun_18001a540.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180000000 <.data>:
|
||||||
|
180000000: 48 83 ec 28 sub $0x28,%rsp
|
||||||
|
180000004: 48 85 c9 test %rcx,%rcx
|
||||||
|
180000007: 74 26 je 0x18000002f
|
||||||
|
180000009: 48 85 d2 test %rdx,%rdx
|
||||||
|
18000000c: 74 21 je 0x18000002f
|
||||||
|
18000000e: 45 85 c0 test %r8d,%r8d
|
||||||
|
180000011: 7e 26 jle 0x180000039
|
||||||
|
180000013: 41 81 f8 00 80 00 00 cmp $0x8000,%r8d
|
||||||
|
18000001a: 7d 07 jge 0x180000023
|
||||||
|
18000001c: e8 bf 94 a4 01 call 0x181a494e0
|
||||||
|
180000021: eb 05 jmp 0x180000028
|
||||||
|
180000023: e8 b8 98 a4 01 call 0x181a498e0
|
||||||
|
180000028: 33 c0 xor %eax,%eax
|
||||||
|
18000002a: 48 83 c4 28 add $0x28,%rsp
|
||||||
|
18000002e: c3 ret
|
||||||
|
18000002f: b8 f8 ff ff ff mov $0xfffffff8,%eax
|
||||||
|
180000034: 48 83 c4 28 add $0x28,%rsp
|
||||||
|
180000038: c3 ret
|
||||||
|
180000039: b8 fa ff ff ff mov $0xfffffffa,%eax
|
||||||
|
18000003e: 48 83 c4 28 add $0x28,%rsp
|
||||||
|
180000042: c3 ret
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
/tmp/det/fun_18001a5a0.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180000000 <.data>:
|
||||||
|
180000000: 48 83 ec 28 sub $0x28,%rsp
|
||||||
|
180000004: 48 85 c9 test %rcx,%rcx
|
||||||
|
180000007: 74 26 je 0x18000002f
|
||||||
|
180000009: 48 85 d2 test %rdx,%rdx
|
||||||
|
18000000c: 74 21 je 0x18000002f
|
||||||
|
18000000e: 45 85 c0 test %r8d,%r8d
|
||||||
|
180000011: 7e 26 jle 0x180000039
|
||||||
|
180000013: 41 81 f8 00 80 00 00 cmp $0x8000,%r8d
|
||||||
|
18000001a: 7d 07 jge 0x180000023
|
||||||
|
18000001c: e8 ff a0 a4 01 call 0x181a4a120
|
||||||
|
180000021: eb 05 jmp 0x180000028
|
||||||
|
180000023: e8 78 56 0b 00 call 0x1800b56a0
|
||||||
|
180000028: 33 c0 xor %eax,%eax
|
||||||
|
18000002a: 48 83 c4 28 add $0x28,%rsp
|
||||||
|
18000002e: c3 ret
|
||||||
|
18000002f: b8 f8 ff ff ff mov $0xfffffff8,%eax
|
||||||
|
180000034: 48 83 c4 28 add $0x28,%rsp
|
||||||
|
180000038: c3 ret
|
||||||
|
180000039: b8 fa ff ff ff mov $0xfffffffa,%eax
|
||||||
|
18000003e: 48 83 c4 28 add $0x28,%rsp
|
||||||
|
180000042: c3 ret
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
/tmp/det/fun_180040cc0.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180000000 <.data>:
|
||||||
|
180000000: 48 83 ec 28 sub $0x28,%rsp
|
||||||
|
180000004: 48 89 4c 24 30 mov %rcx,0x30(%rsp)
|
||||||
|
180000009: 48 8d 4c 24 30 lea 0x30(%rsp),%rcx
|
||||||
|
18000000e: e8 fd b7 a6 01 call 0x181a6b810
|
||||||
|
180000013: 48 83 c4 28 add $0x28,%rsp
|
||||||
|
180000017: c3 ret
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
/tmp/det/fun_180040ce0.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180000000 <.data>:
|
||||||
|
180000000: 48 8d 64 24 d8 lea -0x28(%rsp),%rsp
|
||||||
|
180000005: 48 89 4c 24 30 mov %rcx,0x30(%rsp)
|
||||||
|
18000000a: 48 8d 4c 24 30 lea 0x30(%rsp),%rcx
|
||||||
|
18000000f: e8 fc c1 a6 01 call 0x181a6c210
|
||||||
|
180000014: 48 8d 64 24 28 lea 0x28(%rsp),%rsp
|
||||||
|
180000019: c3 ret
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
/tmp/det/fun_180040d00.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180000000 <.data>:
|
||||||
|
180000000: 48 83 ec 28 sub $0x28,%rsp
|
||||||
|
180000004: 48 89 4c 24 30 mov %rcx,0x30(%rsp)
|
||||||
|
180000009: 48 8d 4c 24 30 lea 0x30(%rsp),%rcx
|
||||||
|
18000000e: e8 fd cb a6 01 call 0x181a6cc10
|
||||||
|
180000013: 48 83 c4 28 add $0x28,%rsp
|
||||||
|
180000017: c3 ret
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
/tmp/det/fun_180040d20.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180000000 <.data>:
|
||||||
|
180000000: 48 83 ec 28 sub $0x28,%rsp
|
||||||
|
180000004: 48 89 4c 24 30 mov %rcx,0x30(%rsp)
|
||||||
|
180000009: 48 8d 4c 24 30 lea 0x30(%rsp),%rcx
|
||||||
|
18000000e: e8 2d 9d ae 01 call 0x181ae9d40
|
||||||
|
180000013: 48 83 c4 28 add $0x28,%rsp
|
||||||
|
180000017: c3 ret
|
||||||
@@ -0,0 +1,221 @@
|
|||||||
|
|
||||||
|
/tmp/det/fun_180040d40.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180000000 <.data>:
|
||||||
|
180000000: 41 54 push %r12
|
||||||
|
180000002: 41 56 push %r14
|
||||||
|
180000004: 41 57 push %r15
|
||||||
|
180000006: 48 83 ec 30 sub $0x30,%rsp
|
||||||
|
18000000a: 45 89 c6 mov %r8d,%r14d
|
||||||
|
18000000d: 49 89 d7 mov %rdx,%r15
|
||||||
|
180000010: 49 89 cc mov %rcx,%r12
|
||||||
|
180000013: 41 81 fe 00 00 04 00 cmp $0x40000,%r14d
|
||||||
|
18000001a: 0f 8e 1e 02 00 00 jle 0x18000023e
|
||||||
|
180000020: 49 f7 c7 07 00 00 00 test $0x7,%r15
|
||||||
|
180000027: 0f 85 11 02 00 00 jne 0x18000023e
|
||||||
|
18000002d: 48 8d 4c 24 20 lea 0x20(%rsp),%rcx
|
||||||
|
180000032: c7 01 00 00 00 00 movl $0x0,(%rcx)
|
||||||
|
180000038: e8 a3 0d 42 00 call 0x180420de0
|
||||||
|
18000003d: 85 c0 test %eax,%eax
|
||||||
|
18000003f: 0f 85 1b 01 00 00 jne 0x180000160
|
||||||
|
180000045: 8b 54 24 20 mov 0x20(%rsp),%edx
|
||||||
|
180000049: c1 fa 03 sar $0x3,%edx
|
||||||
|
18000004c: 44 3b f2 cmp %edx,%r14d
|
||||||
|
18000004f: 0f 8e 0b 01 00 00 jle 0x180000160
|
||||||
|
180000055: 4c 89 f9 mov %r15,%rcx
|
||||||
|
180000058: c4 c1 f9 6e c4 vmovq %r12,%xmm0
|
||||||
|
18000005d: 48 83 e1 38 and $0x38,%rcx
|
||||||
|
180000061: c4 e2 7d 59 c8 vpbroadcastq %xmm0,%ymm1
|
||||||
|
180000066: 85 c9 test %ecx,%ecx
|
||||||
|
180000068: 74 28 je 0x180000092
|
||||||
|
18000006a: c1 e9 03 shr $0x3,%ecx
|
||||||
|
18000006d: 33 d2 xor %edx,%edx
|
||||||
|
18000006f: f7 d9 neg %ecx
|
||||||
|
180000071: 83 c1 08 add $0x8,%ecx
|
||||||
|
180000074: c5 f8 28 c1 vmovaps %xmm1,%xmm0
|
||||||
|
180000078: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18000007f: 00
|
||||||
|
180000080: ff c2 inc %edx
|
||||||
|
180000082: c4 c1 79 d6 07 vmovq %xmm0,(%r15)
|
||||||
|
180000087: 49 83 c7 08 add $0x8,%r15
|
||||||
|
18000008b: 3b d1 cmp %ecx,%edx
|
||||||
|
18000008d: 7c f1 jl 0x180000080
|
||||||
|
18000008f: 44 2b f1 sub %ecx,%r14d
|
||||||
|
180000092: 44 89 f1 mov %r14d,%ecx
|
||||||
|
180000095: 4c 89 fa mov %r15,%rdx
|
||||||
|
180000098: 41 c1 fe 03 sar $0x3,%r14d
|
||||||
|
18000009c: 83 e1 07 and $0x7,%ecx
|
||||||
|
18000009f: 45 85 f6 test %r14d,%r14d
|
||||||
|
1800000a2: 0f 8e 6f 00 00 00 jle 0x180000117
|
||||||
|
1800000a8: 45 89 f0 mov %r14d,%r8d
|
||||||
|
1800000ab: 45 33 d2 xor %r10d,%r10d
|
||||||
|
1800000ae: 41 d1 e8 shr $1,%r8d
|
||||||
|
1800000b1: 41 bb 01 00 00 00 mov $0x1,%r11d
|
||||||
|
1800000b7: 45 33 c9 xor %r9d,%r9d
|
||||||
|
1800000ba: 45 85 c0 test %r8d,%r8d
|
||||||
|
1800000bd: 76 37 jbe 0x1800000f6
|
||||||
|
1800000bf: 90 nop
|
||||||
|
1800000c0: 49 ff c2 inc %r10
|
||||||
|
1800000c3: c4 81 7d e7 0c 39 vmovntdq %ymm1,(%r9,%r15,1)
|
||||||
|
1800000c9: c4 81 7d e7 4c 39 20 vmovntdq %ymm1,0x20(%r9,%r15,1)
|
||||||
|
1800000d0: c4 81 7d e7 4c 39 40 vmovntdq %ymm1,0x40(%r9,%r15,1)
|
||||||
|
1800000d7: c4 81 7d e7 4c 39 60 vmovntdq %ymm1,0x60(%r9,%r15,1)
|
||||||
|
1800000de: 49 81 c1 80 00 00 00 add $0x80,%r9
|
||||||
|
1800000e5: 4d 3b d0 cmp %r8,%r10
|
||||||
|
1800000e8: 72 d6 jb 0x1800000c0
|
||||||
|
1800000ea: 47 8d 5c 12 01 lea 0x1(%r10,%r10,1),%r11d
|
||||||
|
1800000ef: 49 c1 e2 07 shl $0x7,%r10
|
||||||
|
1800000f3: 4d 03 fa add %r10,%r15
|
||||||
|
1800000f6: 45 8d 43 ff lea -0x1(%r11),%r8d
|
||||||
|
1800000fa: 45 3b c6 cmp %r14d,%r8d
|
||||||
|
1800000fd: 73 18 jae 0x180000117
|
||||||
|
1800000ff: 4d 63 fb movslq %r11d,%r15
|
||||||
|
180000102: 49 c1 e7 06 shl $0x6,%r15
|
||||||
|
180000106: c4 c1 7d e7 4c 17 c0 vmovntdq %ymm1,-0x40(%r15,%rdx,1)
|
||||||
|
18000010d: c4 c1 7d e7 4c 17 e0 vmovntdq %ymm1,-0x20(%r15,%rdx,1)
|
||||||
|
180000114: 4c 03 fa add %rdx,%r15
|
||||||
|
180000117: 0f ae f8 sfence
|
||||||
|
18000011a: 85 c9 test %ecx,%ecx
|
||||||
|
18000011c: 74 31 je 0x18000014f
|
||||||
|
18000011e: ba 00 00 00 00 mov $0x0,%edx
|
||||||
|
180000123: 7e 2a jle 0x18000014f
|
||||||
|
180000125: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18000012c: 00
|
||||||
|
18000012d: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
180000134: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000139: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
180000140: ff c2 inc %edx
|
||||||
|
180000142: c4 c1 79 d6 0f vmovq %xmm1,(%r15)
|
||||||
|
180000147: 49 83 c7 08 add $0x8,%r15
|
||||||
|
18000014b: 3b d1 cmp %ecx,%edx
|
||||||
|
18000014d: 7c f1 jl 0x180000140
|
||||||
|
18000014f: 4c 89 f8 mov %r15,%rax
|
||||||
|
180000152: c5 f8 77 vzeroupper
|
||||||
|
180000155: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
180000159: 41 5f pop %r15
|
||||||
|
18000015b: 41 5e pop %r14
|
||||||
|
18000015d: 41 5c pop %r12
|
||||||
|
18000015f: c3 ret
|
||||||
|
180000160: 49 63 d6 movslq %r14d,%rdx
|
||||||
|
180000163: 48 83 fa 08 cmp $0x8,%rdx
|
||||||
|
180000167: 0f 8c b1 01 00 00 jl 0x18000031e
|
||||||
|
18000016d: 48 83 fa 0f cmp $0xf,%rdx
|
||||||
|
180000171: 0f 8c af 01 00 00 jl 0x180000326
|
||||||
|
180000177: 4d 89 f9 mov %r15,%r9
|
||||||
|
18000017a: 49 83 e1 1f and $0x1f,%r9
|
||||||
|
18000017e: 45 85 c9 test %r9d,%r9d
|
||||||
|
180000181: 74 18 je 0x18000019b
|
||||||
|
180000183: 41 f7 c1 07 00 00 00 test $0x7,%r9d
|
||||||
|
18000018a: 0f 85 8e 01 00 00 jne 0x18000031e
|
||||||
|
180000190: 41 f7 d9 neg %r9d
|
||||||
|
180000193: 41 83 c1 20 add $0x20,%r9d
|
||||||
|
180000197: 41 c1 e9 03 shr $0x3,%r9d
|
||||||
|
18000019b: 45 89 c8 mov %r9d,%r8d
|
||||||
|
18000019e: 49 8d 48 08 lea 0x8(%r8),%rcx
|
||||||
|
1800001a2: 48 3b d1 cmp %rcx,%rdx
|
||||||
|
1800001a5: 0f 8c 73 01 00 00 jl 0x18000031e
|
||||||
|
1800001ab: 44 89 f1 mov %r14d,%ecx
|
||||||
|
1800001ae: 41 2b c9 sub %r9d,%ecx
|
||||||
|
1800001b1: 83 e1 07 and $0x7,%ecx
|
||||||
|
1800001b4: 44 2b f1 sub %ecx,%r14d
|
||||||
|
1800001b7: 4d 63 f6 movslq %r14d,%r14
|
||||||
|
1800001ba: 33 c9 xor %ecx,%ecx
|
||||||
|
1800001bc: 45 85 c9 test %r9d,%r9d
|
||||||
|
1800001bf: 76 2b jbe 0x1800001ec
|
||||||
|
1800001c1: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800001c8: 00
|
||||||
|
1800001c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800001d0: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800001d7: 00
|
||||||
|
1800001d8: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800001df: 90 nop
|
||||||
|
1800001e0: 4d 89 24 cf mov %r12,(%r15,%rcx,8)
|
||||||
|
1800001e4: 48 ff c1 inc %rcx
|
||||||
|
1800001e7: 49 3b c8 cmp %r8,%rcx
|
||||||
|
1800001ea: 72 f4 jb 0x1800001e0
|
||||||
|
1800001ec: c4 c1 f9 6e c4 vmovq %r12,%xmm0
|
||||||
|
1800001f1: c4 e2 7d 59 c0 vpbroadcastq %xmm0,%ymm0
|
||||||
|
1800001f6: 0f 1f 00 nopl (%rax)
|
||||||
|
1800001f9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
180000200: c4 81 7e 7f 04 c7 vmovdqu %ymm0,(%r15,%r8,8)
|
||||||
|
180000206: c4 81 7e 7f 44 c7 20 vmovdqu %ymm0,0x20(%r15,%r8,8)
|
||||||
|
18000020d: 49 83 c0 08 add $0x8,%r8
|
||||||
|
180000211: 4d 3b c6 cmp %r14,%r8
|
||||||
|
180000214: 72 ea jb 0x180000200
|
||||||
|
180000216: 4c 3b f2 cmp %rdx,%r14
|
||||||
|
180000219: 73 11 jae 0x18000022c
|
||||||
|
18000021b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000220: 4f 89 24 f7 mov %r12,(%r15,%r14,8)
|
||||||
|
180000224: 49 ff c6 inc %r14
|
||||||
|
180000227: 4c 3b f2 cmp %rdx,%r14
|
||||||
|
18000022a: 72 f4 jb 0x180000220
|
||||||
|
18000022c: 49 8d 04 d7 lea (%r15,%rdx,8),%rax
|
||||||
|
180000230: c5 f8 77 vzeroupper
|
||||||
|
180000233: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
180000237: 41 5f pop %r15
|
||||||
|
180000239: 41 5e pop %r14
|
||||||
|
18000023b: 41 5c pop %r12
|
||||||
|
18000023d: c3 ret
|
||||||
|
18000023e: 49 63 d6 movslq %r14d,%rdx
|
||||||
|
180000241: 45 85 f6 test %r14d,%r14d
|
||||||
|
180000244: 0f 8e c2 00 00 00 jle 0x18000030c
|
||||||
|
18000024a: 48 83 fa 08 cmp $0x8,%rdx
|
||||||
|
18000024e: 0f 8c e1 00 00 00 jl 0x180000335
|
||||||
|
180000254: 48 83 fa 0f cmp $0xf,%rdx
|
||||||
|
180000258: 0f 8c dc 00 00 00 jl 0x18000033a
|
||||||
|
18000025e: 4d 89 f9 mov %r15,%r9
|
||||||
|
180000261: 49 83 e1 1f and $0x1f,%r9
|
||||||
|
180000265: 45 85 c9 test %r9d,%r9d
|
||||||
|
180000268: 74 18 je 0x180000282
|
||||||
|
18000026a: 41 f7 c1 07 00 00 00 test $0x7,%r9d
|
||||||
|
180000271: 0f 85 be 00 00 00 jne 0x180000335
|
||||||
|
180000277: 41 f7 d9 neg %r9d
|
||||||
|
18000027a: 41 83 c1 20 add $0x20,%r9d
|
||||||
|
18000027e: 41 c1 e9 03 shr $0x3,%r9d
|
||||||
|
180000282: 45 89 c8 mov %r9d,%r8d
|
||||||
|
180000285: 49 8d 48 08 lea 0x8(%r8),%rcx
|
||||||
|
180000289: 48 3b d1 cmp %rcx,%rdx
|
||||||
|
18000028c: 0f 8c a3 00 00 00 jl 0x180000335
|
||||||
|
180000292: 44 89 f1 mov %r14d,%ecx
|
||||||
|
180000295: 41 2b c9 sub %r9d,%ecx
|
||||||
|
180000298: 83 e1 07 and $0x7,%ecx
|
||||||
|
18000029b: 44 2b f1 sub %ecx,%r14d
|
||||||
|
18000029e: 4d 63 f6 movslq %r14d,%r14
|
||||||
|
1800002a1: 33 c9 xor %ecx,%ecx
|
||||||
|
1800002a3: 45 85 c9 test %r9d,%r9d
|
||||||
|
1800002a6: 76 24 jbe 0x1800002cc
|
||||||
|
1800002a8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800002af: 00
|
||||||
|
1800002b0: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800002b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
|
||||||
|
1800002be: 00 00
|
||||||
|
1800002c0: 4d 89 24 cf mov %r12,(%r15,%rcx,8)
|
||||||
|
1800002c4: 48 ff c1 inc %rcx
|
||||||
|
1800002c7: 49 3b c8 cmp %r8,%rcx
|
||||||
|
1800002ca: 72 f4 jb 0x1800002c0
|
||||||
|
1800002cc: c4 c1 f9 6e c4 vmovq %r12,%xmm0
|
||||||
|
1800002d1: c4 e2 7d 59 c0 vpbroadcastq %xmm0,%ymm0
|
||||||
|
1800002d6: 0f 1f 00 nopl (%rax)
|
||||||
|
1800002d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800002e0: c4 81 7e 7f 04 c7 vmovdqu %ymm0,(%r15,%r8,8)
|
||||||
|
1800002e6: c4 81 7e 7f 44 c7 20 vmovdqu %ymm0,0x20(%r15,%r8,8)
|
||||||
|
1800002ed: 49 83 c0 08 add $0x8,%r8
|
||||||
|
1800002f1: 4d 3b c6 cmp %r14,%r8
|
||||||
|
1800002f4: 72 ea jb 0x1800002e0
|
||||||
|
1800002f6: 4c 3b f2 cmp %rdx,%r14
|
||||||
|
1800002f9: 73 11 jae 0x18000030c
|
||||||
|
1800002fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000300: 4f 89 24 f7 mov %r12,(%r15,%r14,8)
|
||||||
|
180000304: 49 ff c6 inc %r14
|
||||||
|
180000307: 4c 3b f2 cmp %rdx,%r14
|
||||||
|
18000030a: 72 f4 jb 0x180000300
|
||||||
|
18000030c: 49 8d 04 d7 lea (%r15,%rdx,8),%rax
|
||||||
|
180000310: c5 f8 77 vzeroupper
|
||||||
|
180000313: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
180000317: 41 5f pop %r15
|
||||||
|
180000319: 41 5e pop %r14
|
||||||
|
18000031b: 41 5c pop %r12
|
||||||
|
18000031d: c3 ret
|
||||||
@@ -0,0 +1,216 @@
|
|||||||
|
|
||||||
|
/tmp/det/fun_1800410a0.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180000000 <.data>:
|
||||||
|
180000000: 53 push %rbx
|
||||||
|
180000001: 41 57 push %r15
|
||||||
|
180000003: 55 push %rbp
|
||||||
|
180000004: 48 83 ec 30 sub $0x30,%rsp
|
||||||
|
180000008: 44 89 c5 mov %r8d,%ebp
|
||||||
|
18000000b: 49 89 d7 mov %rdx,%r15
|
||||||
|
18000000e: 48 89 cb mov %rcx,%rbx
|
||||||
|
180000011: 81 fd 00 00 04 00 cmp $0x40000,%ebp
|
||||||
|
180000017: 0f 8e ff 01 00 00 jle 0x18000021c
|
||||||
|
18000001d: 49 f7 c7 07 00 00 00 test $0x7,%r15
|
||||||
|
180000024: 0f 85 f2 01 00 00 jne 0x18000021c
|
||||||
|
18000002a: 48 8d 4c 24 20 lea 0x20(%rsp),%rcx
|
||||||
|
18000002f: c7 01 00 00 00 00 movl $0x0,(%rcx)
|
||||||
|
180000035: e8 46 0a 42 00 call 0x180420a80
|
||||||
|
18000003a: 85 c0 test %eax,%eax
|
||||||
|
18000003c: 0f 85 1c 01 00 00 jne 0x18000015e
|
||||||
|
180000042: 8b 54 24 20 mov 0x20(%rsp),%edx
|
||||||
|
180000046: c1 fa 03 sar $0x3,%edx
|
||||||
|
180000049: 3b ea cmp %edx,%ebp
|
||||||
|
18000004b: 0f 8e 0d 01 00 00 jle 0x18000015e
|
||||||
|
180000051: 4c 89 f9 mov %r15,%rcx
|
||||||
|
180000054: 48 83 e1 38 and $0x38,%rcx
|
||||||
|
180000058: 62 f2 fd 28 7c cb vpbroadcastq %rbx,%ymm1
|
||||||
|
18000005e: 85 c9 test %ecx,%ecx
|
||||||
|
180000060: 74 2f je 0x180000091
|
||||||
|
180000062: c1 e9 03 shr $0x3,%ecx
|
||||||
|
180000065: 33 d2 xor %edx,%edx
|
||||||
|
180000067: f7 d9 neg %ecx
|
||||||
|
180000069: 83 c1 08 add $0x8,%ecx
|
||||||
|
18000006c: c5 f8 28 c1 vmovaps %xmm1,%xmm0
|
||||||
|
180000070: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000077: 00
|
||||||
|
180000078: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000007f: 90 nop
|
||||||
|
180000080: ff c2 inc %edx
|
||||||
|
180000082: c4 c1 79 d6 07 vmovq %xmm0,(%r15)
|
||||||
|
180000087: 49 83 c7 08 add $0x8,%r15
|
||||||
|
18000008b: 3b d1 cmp %ecx,%edx
|
||||||
|
18000008d: 7c f1 jl 0x180000080
|
||||||
|
18000008f: 2b e9 sub %ecx,%ebp
|
||||||
|
180000091: 89 e9 mov %ebp,%ecx
|
||||||
|
180000093: 4c 89 fa mov %r15,%rdx
|
||||||
|
180000096: c1 fd 03 sar $0x3,%ebp
|
||||||
|
180000099: 83 e1 07 and $0x7,%ecx
|
||||||
|
18000009c: 85 ed test %ebp,%ebp
|
||||||
|
18000009e: 0f 8e 72 00 00 00 jle 0x180000116
|
||||||
|
1800000a4: 89 eb mov %ebp,%ebx
|
||||||
|
1800000a6: 45 33 c9 xor %r9d,%r9d
|
||||||
|
1800000a9: d1 eb shr $1,%ebx
|
||||||
|
1800000ab: 41 ba 01 00 00 00 mov $0x1,%r10d
|
||||||
|
1800000b1: 45 33 c0 xor %r8d,%r8d
|
||||||
|
1800000b4: 85 db test %ebx,%ebx
|
||||||
|
1800000b6: 76 3e jbe 0x1800000f6
|
||||||
|
1800000b8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800000bf: 00
|
||||||
|
1800000c0: 49 ff c1 inc %r9
|
||||||
|
1800000c3: c4 81 7d e7 0c 38 vmovntdq %ymm1,(%r8,%r15,1)
|
||||||
|
1800000c9: c4 81 7d e7 4c 38 20 vmovntdq %ymm1,0x20(%r8,%r15,1)
|
||||||
|
1800000d0: c4 81 7d e7 4c 38 40 vmovntdq %ymm1,0x40(%r8,%r15,1)
|
||||||
|
1800000d7: c4 81 7d e7 4c 38 60 vmovntdq %ymm1,0x60(%r8,%r15,1)
|
||||||
|
1800000de: 49 81 c0 80 00 00 00 add $0x80,%r8
|
||||||
|
1800000e5: 4c 3b cb cmp %rbx,%r9
|
||||||
|
1800000e8: 72 d6 jb 0x1800000c0
|
||||||
|
1800000ea: 47 8d 54 09 01 lea 0x1(%r9,%r9,1),%r10d
|
||||||
|
1800000ef: 49 c1 e1 07 shl $0x7,%r9
|
||||||
|
1800000f3: 4d 03 f9 add %r9,%r15
|
||||||
|
1800000f6: 41 8d 5a ff lea -0x1(%r10),%ebx
|
||||||
|
1800000fa: 3b dd cmp %ebp,%ebx
|
||||||
|
1800000fc: 73 18 jae 0x180000116
|
||||||
|
1800000fe: 4d 63 fa movslq %r10d,%r15
|
||||||
|
180000101: 49 c1 e7 06 shl $0x6,%r15
|
||||||
|
180000105: c4 c1 7d e7 4c 17 c0 vmovntdq %ymm1,-0x40(%r15,%rdx,1)
|
||||||
|
18000010c: c4 c1 7d e7 4c 17 e0 vmovntdq %ymm1,-0x20(%r15,%rdx,1)
|
||||||
|
180000113: 4c 03 fa add %rdx,%r15
|
||||||
|
180000116: 0f ae f8 sfence
|
||||||
|
180000119: 85 c9 test %ecx,%ecx
|
||||||
|
18000011b: 74 32 je 0x18000014f
|
||||||
|
18000011d: ba 00 00 00 00 mov $0x0,%edx
|
||||||
|
180000122: 7e 2b jle 0x18000014f
|
||||||
|
180000124: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18000012b: 00
|
||||||
|
18000012c: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
180000133: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000138: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18000013f: 00
|
||||||
|
180000140: ff c2 inc %edx
|
||||||
|
180000142: c4 c1 79 d6 0f vmovq %xmm1,(%r15)
|
||||||
|
180000147: 49 83 c7 08 add $0x8,%r15
|
||||||
|
18000014b: 3b d1 cmp %ecx,%edx
|
||||||
|
18000014d: 7c f1 jl 0x180000140
|
||||||
|
18000014f: 4c 89 f8 mov %r15,%rax
|
||||||
|
180000152: c5 f8 77 vzeroupper
|
||||||
|
180000155: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
180000159: 5d pop %rbp
|
||||||
|
18000015a: 41 5f pop %r15
|
||||||
|
18000015c: 5b pop %rbx
|
||||||
|
18000015d: c3 ret
|
||||||
|
18000015e: 48 63 d5 movslq %ebp,%rdx
|
||||||
|
180000161: 48 83 fa 08 cmp $0x8,%rdx
|
||||||
|
180000165: 0f 8c 91 01 00 00 jl 0x1800002fc
|
||||||
|
18000016b: 48 83 fa 0f cmp $0xf,%rdx
|
||||||
|
18000016f: 0f 8c 8e 01 00 00 jl 0x180000303
|
||||||
|
180000175: 4d 89 f9 mov %r15,%r9
|
||||||
|
180000178: 49 83 e1 1f and $0x1f,%r9
|
||||||
|
18000017c: 45 85 c9 test %r9d,%r9d
|
||||||
|
18000017f: 74 18 je 0x180000199
|
||||||
|
180000181: 41 f7 c1 07 00 00 00 test $0x7,%r9d
|
||||||
|
180000188: 0f 85 6e 01 00 00 jne 0x1800002fc
|
||||||
|
18000018e: 41 f7 d9 neg %r9d
|
||||||
|
180000191: 41 83 c1 20 add $0x20,%r9d
|
||||||
|
180000195: 41 c1 e9 03 shr $0x3,%r9d
|
||||||
|
180000199: 45 89 c8 mov %r9d,%r8d
|
||||||
|
18000019c: 49 8d 48 08 lea 0x8(%r8),%rcx
|
||||||
|
1800001a0: 48 3b d1 cmp %rcx,%rdx
|
||||||
|
1800001a3: 0f 8c 53 01 00 00 jl 0x1800002fc
|
||||||
|
1800001a9: 89 e9 mov %ebp,%ecx
|
||||||
|
1800001ab: 41 2b c9 sub %r9d,%ecx
|
||||||
|
1800001ae: 83 e1 07 and $0x7,%ecx
|
||||||
|
1800001b1: 2b e9 sub %ecx,%ebp
|
||||||
|
1800001b3: 48 63 ed movslq %ebp,%rbp
|
||||||
|
1800001b6: 33 c9 xor %ecx,%ecx
|
||||||
|
1800001b8: 45 85 c9 test %r9d,%r9d
|
||||||
|
1800001bb: 76 0f jbe 0x1800001cc
|
||||||
|
1800001bd: 0f 1f 00 nopl (%rax)
|
||||||
|
1800001c0: 49 89 1c cf mov %rbx,(%r15,%rcx,8)
|
||||||
|
1800001c4: 48 ff c1 inc %rcx
|
||||||
|
1800001c7: 49 3b c8 cmp %r8,%rcx
|
||||||
|
1800001ca: 72 f4 jb 0x1800001c0
|
||||||
|
1800001cc: 62 f2 fd 28 7c c3 vpbroadcastq %rbx,%ymm0
|
||||||
|
1800001d2: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800001d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800001e0: c4 81 7e 7f 04 c7 vmovdqu %ymm0,(%r15,%r8,8)
|
||||||
|
1800001e6: c4 81 7e 7f 44 c7 20 vmovdqu %ymm0,0x20(%r15,%r8,8)
|
||||||
|
1800001ed: 49 83 c0 08 add $0x8,%r8
|
||||||
|
1800001f1: 4c 3b c5 cmp %rbp,%r8
|
||||||
|
1800001f4: 72 ea jb 0x1800001e0
|
||||||
|
1800001f6: 48 3b ea cmp %rdx,%rbp
|
||||||
|
1800001f9: 73 11 jae 0x18000020c
|
||||||
|
1800001fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000200: 49 89 1c ef mov %rbx,(%r15,%rbp,8)
|
||||||
|
180000204: 48 ff c5 inc %rbp
|
||||||
|
180000207: 48 3b ea cmp %rdx,%rbp
|
||||||
|
18000020a: 72 f4 jb 0x180000200
|
||||||
|
18000020c: 49 8d 04 d7 lea (%r15,%rdx,8),%rax
|
||||||
|
180000210: c5 f8 77 vzeroupper
|
||||||
|
180000213: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
180000217: 5d pop %rbp
|
||||||
|
180000218: 41 5f pop %r15
|
||||||
|
18000021a: 5b pop %rbx
|
||||||
|
18000021b: c3 ret
|
||||||
|
18000021c: 48 63 d5 movslq %ebp,%rdx
|
||||||
|
18000021f: 85 ed test %ebp,%ebp
|
||||||
|
180000221: 0f 8e c5 00 00 00 jle 0x1800002ec
|
||||||
|
180000227: 48 83 fa 08 cmp $0x8,%rdx
|
||||||
|
18000022b: 0f 8c e0 00 00 00 jl 0x180000311
|
||||||
|
180000231: 48 83 fa 0f cmp $0xf,%rdx
|
||||||
|
180000235: 0f 8c da 00 00 00 jl 0x180000315
|
||||||
|
18000023b: 4d 89 f9 mov %r15,%r9
|
||||||
|
18000023e: 49 83 e1 1f and $0x1f,%r9
|
||||||
|
180000242: 45 85 c9 test %r9d,%r9d
|
||||||
|
180000245: 74 18 je 0x18000025f
|
||||||
|
180000247: 41 f7 c1 07 00 00 00 test $0x7,%r9d
|
||||||
|
18000024e: 0f 85 bd 00 00 00 jne 0x180000311
|
||||||
|
180000254: 41 f7 d9 neg %r9d
|
||||||
|
180000257: 41 83 c1 20 add $0x20,%r9d
|
||||||
|
18000025b: 41 c1 e9 03 shr $0x3,%r9d
|
||||||
|
18000025f: 45 89 c8 mov %r9d,%r8d
|
||||||
|
180000262: 49 8d 48 08 lea 0x8(%r8),%rcx
|
||||||
|
180000266: 48 3b d1 cmp %rcx,%rdx
|
||||||
|
180000269: 0f 8c a2 00 00 00 jl 0x180000311
|
||||||
|
18000026f: 89 e9 mov %ebp,%ecx
|
||||||
|
180000271: 41 2b c9 sub %r9d,%ecx
|
||||||
|
180000274: 83 e1 07 and $0x7,%ecx
|
||||||
|
180000277: 2b e9 sub %ecx,%ebp
|
||||||
|
180000279: 48 63 ed movslq %ebp,%rbp
|
||||||
|
18000027c: 33 c9 xor %ecx,%ecx
|
||||||
|
18000027e: 45 85 c9 test %r9d,%r9d
|
||||||
|
180000281: 76 29 jbe 0x1800002ac
|
||||||
|
180000283: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18000028a: 00
|
||||||
|
18000028b: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
180000292: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
180000299: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800002a0: 49 89 1c cf mov %rbx,(%r15,%rcx,8)
|
||||||
|
1800002a4: 48 ff c1 inc %rcx
|
||||||
|
1800002a7: 49 3b c8 cmp %r8,%rcx
|
||||||
|
1800002aa: 72 f4 jb 0x1800002a0
|
||||||
|
1800002ac: 62 f2 fd 28 7c c3 vpbroadcastq %rbx,%ymm0
|
||||||
|
1800002b2: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800002b9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800002c0: c4 81 7e 7f 04 c7 vmovdqu %ymm0,(%r15,%r8,8)
|
||||||
|
1800002c6: c4 81 7e 7f 44 c7 20 vmovdqu %ymm0,0x20(%r15,%r8,8)
|
||||||
|
1800002cd: 49 83 c0 08 add $0x8,%r8
|
||||||
|
1800002d1: 4c 3b c5 cmp %rbp,%r8
|
||||||
|
1800002d4: 72 ea jb 0x1800002c0
|
||||||
|
1800002d6: 48 3b ea cmp %rdx,%rbp
|
||||||
|
1800002d9: 73 11 jae 0x1800002ec
|
||||||
|
1800002db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800002e0: 49 89 1c ef mov %rbx,(%r15,%rbp,8)
|
||||||
|
1800002e4: 48 ff c5 inc %rbp
|
||||||
|
1800002e7: 48 3b ea cmp %rdx,%rbp
|
||||||
|
1800002ea: 72 f4 jb 0x1800002e0
|
||||||
|
1800002ec: 49 8d 04 d7 lea (%r15,%rdx,8),%rax
|
||||||
|
1800002f0: c5 f8 77 vzeroupper
|
||||||
|
1800002f3: 48 83 c4 30 add $0x30,%rsp
|
||||||
|
1800002f7: 5d pop %rbp
|
||||||
|
1800002f8: 41 5f pop %r15
|
||||||
|
1800002fa: 5b pop %rbx
|
||||||
|
1800002fb: c3 ret
|
||||||
@@ -0,0 +1,89 @@
|
|||||||
|
|
||||||
|
/tmp/det/fun_1800413c0.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180000000 <.data>:
|
||||||
|
180000000: f2 0f 12 c0 movddup %xmm0,%xmm0
|
||||||
|
180000004: 41 83 f8 05 cmp $0x5,%r8d
|
||||||
|
180000008: 7d 30 jge 0x18000003a
|
||||||
|
18000000a: 41 ff c8 dec %r8d
|
||||||
|
18000000d: 41 83 f8 ff cmp $0xffffffff,%r8d
|
||||||
|
180000011: 74 26 je 0x180000039
|
||||||
|
180000013: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000018: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18000001f: 00
|
||||||
|
180000020: f2 0f 10 0a movsd (%rdx),%xmm1
|
||||||
|
180000024: 41 ff c8 dec %r8d
|
||||||
|
180000027: f2 0f 59 c8 mulsd %xmm0,%xmm1
|
||||||
|
18000002b: f2 0f 11 0a movsd %xmm1,(%rdx)
|
||||||
|
18000002f: 48 83 c2 08 add $0x8,%rdx
|
||||||
|
180000033: 41 83 f8 ff cmp $0xffffffff,%r8d
|
||||||
|
180000037: 75 e7 jne 0x180000020
|
||||||
|
180000039: c3 ret
|
||||||
|
18000003a: 48 f7 c2 07 00 00 00 test $0x7,%rdx
|
||||||
|
180000041: 0f 84 9c 00 00 00 je 0x1800000e3
|
||||||
|
180000047: 44 89 c0 mov %r8d,%eax
|
||||||
|
18000004a: 41 83 e0 03 and $0x3,%r8d
|
||||||
|
18000004e: 83 e0 fc and $0xfffffffc,%eax
|
||||||
|
180000051: 3d 00 00 02 00 cmp $0x20000,%eax
|
||||||
|
180000056: 7f 48 jg 0x1800000a0
|
||||||
|
180000058: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18000005f: 00
|
||||||
|
180000060: f2 0f 10 0a movsd (%rdx),%xmm1
|
||||||
|
180000064: f2 0f 10 52 10 movsd 0x10(%rdx),%xmm2
|
||||||
|
180000069: 66 0f 16 4a 08 movhpd 0x8(%rdx),%xmm1
|
||||||
|
18000006e: 66 0f 16 52 18 movhpd 0x18(%rdx),%xmm2
|
||||||
|
180000073: 66 0f 59 c8 mulpd %xmm0,%xmm1
|
||||||
|
180000077: 66 0f 59 d0 mulpd %xmm0,%xmm2
|
||||||
|
18000007b: f2 0f 11 0a movsd %xmm1,(%rdx)
|
||||||
|
18000007f: 66 0f 17 4a 08 movhpd %xmm1,0x8(%rdx)
|
||||||
|
180000084: f2 0f 11 52 10 movsd %xmm2,0x10(%rdx)
|
||||||
|
180000089: 66 0f 17 52 18 movhpd %xmm2,0x18(%rdx)
|
||||||
|
18000008e: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000092: 83 c0 fc add $0xfffffffc,%eax
|
||||||
|
180000095: 75 c9 jne 0x180000060
|
||||||
|
180000097: e9 6e ff ff ff jmp 0x18000000a
|
||||||
|
18000009c: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
1800000a0: 0f 18 42 20 prefetchnta 0x20(%rdx)
|
||||||
|
1800000a4: 48 8d 4a 20 lea 0x20(%rdx),%rcx
|
||||||
|
1800000a8: f2 0f 10 0a movsd (%rdx),%xmm1
|
||||||
|
1800000ac: 83 c0 fc add $0xfffffffc,%eax
|
||||||
|
1800000af: f2 0f 10 52 10 movsd 0x10(%rdx),%xmm2
|
||||||
|
1800000b4: 66 0f 16 4a 08 movhpd 0x8(%rdx),%xmm1
|
||||||
|
1800000b9: 66 0f 16 52 18 movhpd 0x18(%rdx),%xmm2
|
||||||
|
1800000be: 66 0f 59 c8 mulpd %xmm0,%xmm1
|
||||||
|
1800000c2: 66 0f 59 d0 mulpd %xmm0,%xmm2
|
||||||
|
1800000c6: f2 0f 11 0a movsd %xmm1,(%rdx)
|
||||||
|
1800000ca: 66 0f 17 4a 08 movhpd %xmm1,0x8(%rdx)
|
||||||
|
1800000cf: f2 0f 11 52 10 movsd %xmm2,0x10(%rdx)
|
||||||
|
1800000d4: 66 0f 17 52 18 movhpd %xmm2,0x18(%rdx)
|
||||||
|
1800000d9: 48 89 ca mov %rcx,%rdx
|
||||||
|
1800000dc: 75 c2 jne 0x1800000a0
|
||||||
|
1800000de: e9 27 ff ff ff jmp 0x18000000a
|
||||||
|
1800000e3: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
1800000ea: 74 13 je 0x1800000ff
|
||||||
|
1800000ec: f2 0f 10 0a movsd (%rdx),%xmm1
|
||||||
|
1800000f0: 41 ff c8 dec %r8d
|
||||||
|
1800000f3: f2 0f 59 c8 mulsd %xmm0,%xmm1
|
||||||
|
1800000f7: f2 0f 11 0a movsd %xmm1,(%rdx)
|
||||||
|
1800000fb: 48 83 c2 08 add $0x8,%rdx
|
||||||
|
1800000ff: 44 89 c0 mov %r8d,%eax
|
||||||
|
180000102: 41 83 e0 03 and $0x3,%r8d
|
||||||
|
180000106: 83 e0 fc and $0xfffffffc,%eax
|
||||||
|
180000109: 3d 00 00 02 00 cmp $0x20000,%eax
|
||||||
|
18000010e: 7f 50 jg 0x180000160
|
||||||
|
180000110: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000117: 00
|
||||||
|
180000118: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000011f: 90 nop
|
||||||
|
180000120: 0f 28 0a movaps (%rdx),%xmm1
|
||||||
|
180000123: 0f 28 52 10 movaps 0x10(%rdx),%xmm2
|
||||||
|
180000127: 66 0f 59 c8 mulpd %xmm0,%xmm1
|
||||||
|
18000012b: 66 0f 59 d0 mulpd %xmm0,%xmm2
|
||||||
|
18000012f: 0f 29 0a movaps %xmm1,(%rdx)
|
||||||
|
180000132: 0f 29 52 10 movaps %xmm2,0x10(%rdx)
|
||||||
|
180000136: 48 rex.W
|
||||||
|
180000137: 83 .byte 0x83
|
||||||
|
180000138: c2 .byte 0xc2
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
|
||||||
|
/tmp/det/fun_180041560.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180000000 <.data>:
|
||||||
|
180000000: f2 0f 12 c0 movddup %xmm0,%xmm0
|
||||||
|
180000004: 41 83 f8 05 cmp $0x5,%r8d
|
||||||
|
180000008: 7d 30 jge 0x18000003a
|
||||||
|
18000000a: 41 ff c8 dec %r8d
|
||||||
|
18000000d: 41 83 f8 ff cmp $0xffffffff,%r8d
|
||||||
|
180000011: 74 26 je 0x180000039
|
||||||
|
180000013: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000018: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18000001f: 00
|
||||||
|
180000020: f2 0f 10 0a movsd (%rdx),%xmm1
|
||||||
|
180000024: 41 ff c8 dec %r8d
|
||||||
|
180000027: f2 0f 59 c8 mulsd %xmm0,%xmm1
|
||||||
|
18000002b: f2 0f 11 0a movsd %xmm1,(%rdx)
|
||||||
|
18000002f: 48 8d 52 08 lea 0x8(%rdx),%rdx
|
||||||
|
180000033: 41 83 f8 ff cmp $0xffffffff,%r8d
|
||||||
|
180000037: 75 e7 jne 0x180000020
|
||||||
|
180000039: c3 ret
|
||||||
|
18000003a: 48 f7 c2 07 00 00 00 test $0x7,%rdx
|
||||||
|
180000041: 0f 84 9c 00 00 00 je 0x1800000e3
|
||||||
|
180000047: 44 89 c0 mov %r8d,%eax
|
||||||
|
18000004a: 41 83 e0 03 and $0x3,%r8d
|
||||||
|
18000004e: 83 e0 fc and $0xfffffffc,%eax
|
||||||
|
180000051: 3d 00 00 02 00 cmp $0x20000,%eax
|
||||||
|
180000056: 7f 48 jg 0x1800000a0
|
||||||
|
180000058: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18000005f: 00
|
||||||
|
180000060: f2 0f 10 0a movsd (%rdx),%xmm1
|
||||||
|
180000064: f2 0f 10 52 10 movsd 0x10(%rdx),%xmm2
|
||||||
|
180000069: 66 0f 16 4a 08 movhpd 0x8(%rdx),%xmm1
|
||||||
|
18000006e: 66 0f 16 52 18 movhpd 0x18(%rdx),%xmm2
|
||||||
|
180000073: 66 0f 59 c8 mulpd %xmm0,%xmm1
|
||||||
|
180000077: 66 0f 59 d0 mulpd %xmm0,%xmm2
|
||||||
|
18000007b: f2 0f 11 0a movsd %xmm1,(%rdx)
|
||||||
|
18000007f: 66 0f 17 4a 08 movhpd %xmm1,0x8(%rdx)
|
||||||
|
180000084: f2 0f 11 52 10 movsd %xmm2,0x10(%rdx)
|
||||||
|
180000089: 66 0f 17 52 18 movhpd %xmm2,0x18(%rdx)
|
||||||
|
18000008e: 48 8d 52 20 lea 0x20(%rdx),%rdx
|
||||||
|
180000092: 83 c0 fc add $0xfffffffc,%eax
|
||||||
|
180000095: 75 c9 jne 0x180000060
|
||||||
|
180000097: e9 6e ff ff ff jmp 0x18000000a
|
||||||
|
18000009c: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
1800000a0: 0f 18 42 20 prefetchnta 0x20(%rdx)
|
||||||
|
1800000a4: 48 8d 4a 20 lea 0x20(%rdx),%rcx
|
||||||
|
1800000a8: f2 0f 10 0a movsd (%rdx),%xmm1
|
||||||
|
1800000ac: 83 c0 fc add $0xfffffffc,%eax
|
||||||
|
1800000af: f2 0f 10 52 10 movsd 0x10(%rdx),%xmm2
|
||||||
|
1800000b4: 66 0f 16 4a 08 movhpd 0x8(%rdx),%xmm1
|
||||||
|
1800000b9: 66 0f 16 52 18 movhpd 0x18(%rdx),%xmm2
|
||||||
|
1800000be: 66 0f 59 c8 mulpd %xmm0,%xmm1
|
||||||
|
1800000c2: 66 0f 59 d0 mulpd %xmm0,%xmm2
|
||||||
|
1800000c6: f2 0f 11 0a movsd %xmm1,(%rdx)
|
||||||
|
1800000ca: 66 0f 17 4a 08 movhpd %xmm1,0x8(%rdx)
|
||||||
|
1800000cf: f2 0f 11 52 10 movsd %xmm2,0x10(%rdx)
|
||||||
|
1800000d4: 66 0f 17 52 18 movhpd %xmm2,0x18(%rdx)
|
||||||
|
1800000d9: 48 8d 11 lea (%rcx),%rdx
|
||||||
|
1800000dc: 75 c2 jne 0x1800000a0
|
||||||
|
1800000de: e9 27 ff ff ff jmp 0x18000000a
|
||||||
|
1800000e3: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
1800000ea: 74 13 je 0x1800000ff
|
||||||
|
1800000ec: f2 0f 10 0a movsd (%rdx),%xmm1
|
||||||
|
1800000f0: 41 ff c8 dec %r8d
|
||||||
|
1800000f3: f2 0f 59 c8 mulsd %xmm0,%xmm1
|
||||||
|
1800000f7: f2 0f 11 0a movsd %xmm1,(%rdx)
|
||||||
|
1800000fb: 48 rex.W
|
||||||
|
1800000fc: 83 .byte 0x83
|
||||||
|
1800000fd: c2 .byte 0xc2
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,371 @@
|
|||||||
|
|
||||||
|
/tmp/det/fun_1800425a0.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180000000 <.data>:
|
||||||
|
180000000: 55 push %rbp
|
||||||
|
180000001: 48 89 e5 mov %rsp,%rbp
|
||||||
|
180000004: 44 89 c8 mov %r9d,%eax
|
||||||
|
180000007: 41 d1 f9 sar $1,%r9d
|
||||||
|
18000000a: 83 e0 01 and $0x1,%eax
|
||||||
|
18000000d: 45 85 c9 test %r9d,%r9d
|
||||||
|
180000010: 0f 84 e0 05 00 00 je 0x1800005f6
|
||||||
|
180000016: 49 f7 c0 0f 00 00 00 test $0xf,%r8
|
||||||
|
18000001d: 0f 85 a0 03 00 00 jne 0x1800003c3
|
||||||
|
180000023: 48 f7 c1 0f 00 00 00 test $0xf,%rcx
|
||||||
|
18000002a: 0f 84 7f 01 00 00 je 0x1800001af
|
||||||
|
180000030: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
180000037: 0f 84 70 00 00 00 je 0x1800000ad
|
||||||
|
18000003d: 0f 1f 00 nopl (%rax)
|
||||||
|
180000040: f2 0f 10 21 movsd (%rcx),%xmm4
|
||||||
|
180000044: f2 0f 10 69 10 movsd 0x10(%rcx),%xmm5
|
||||||
|
180000049: 66 0f 16 61 08 movhpd 0x8(%rcx),%xmm4
|
||||||
|
18000004e: 66 0f 16 69 18 movhpd 0x18(%rcx),%xmm5
|
||||||
|
180000053: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
180000056: f2 0f 12 0a movddup (%rdx),%xmm1
|
||||||
|
18000005a: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
18000005d: f2 0f 12 52 10 movddup 0x10(%rdx),%xmm2
|
||||||
|
180000062: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
180000066: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
18000006b: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
180000070: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
180000074: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
180000078: f2 0f 12 62 08 movddup 0x8(%rdx),%xmm4
|
||||||
|
18000007d: f2 0f 12 6a 18 movddup 0x18(%rdx),%xmm5
|
||||||
|
180000082: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000086: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
18000008a: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
18000008e: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
180000092: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
180000096: 41 0f 29 08 movaps %xmm1,(%r8)
|
||||||
|
18000009a: 41 0f 29 50 10 movaps %xmm2,0x10(%r8)
|
||||||
|
18000009f: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800000a3: 41 ff c9 dec %r9d
|
||||||
|
1800000a6: 75 98 jne 0x180000040
|
||||||
|
1800000a8: e9 49 05 00 00 jmp 0x1800005f6
|
||||||
|
1800000ad: 41 81 f9 aa 2a 00 00 cmp $0x2aaa,%r9d
|
||||||
|
1800000b4: 0f 87 86 00 00 00 ja 0x180000140
|
||||||
|
1800000ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
|
||||||
|
1800000c0: f2 0f 10 21 movsd (%rcx),%xmm4
|
||||||
|
1800000c4: f2 0f 10 69 10 movsd 0x10(%rcx),%xmm5
|
||||||
|
1800000c9: 66 0f 16 61 08 movhpd 0x8(%rcx),%xmm4
|
||||||
|
1800000ce: 66 0f 16 69 18 movhpd 0x18(%rcx),%xmm5
|
||||||
|
1800000d3: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
1800000d6: f2 0f 12 0a movddup (%rdx),%xmm1
|
||||||
|
1800000da: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
1800000dd: f2 0f 12 52 10 movddup 0x10(%rdx),%xmm2
|
||||||
|
1800000e2: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
1800000e6: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
1800000eb: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
1800000f0: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
1800000f4: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
1800000f8: f2 0f 12 62 08 movddup 0x8(%rdx),%xmm4
|
||||||
|
1800000fd: f2 0f 12 6a 18 movddup 0x18(%rdx),%xmm5
|
||||||
|
180000102: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000106: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
18000010a: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
18000010e: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
180000112: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
180000116: 41 0f 29 08 movaps %xmm1,(%r8)
|
||||||
|
18000011a: 41 0f 29 50 10 movaps %xmm2,0x10(%r8)
|
||||||
|
18000011f: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000123: 41 ff c9 dec %r9d
|
||||||
|
180000126: 75 98 jne 0x1800000c0
|
||||||
|
180000128: e9 c9 04 00 00 jmp 0x1800005f6
|
||||||
|
18000012d: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000134: 00
|
||||||
|
180000135: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000013c: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
180000140: f2 0f 10 21 movsd (%rcx),%xmm4
|
||||||
|
180000144: f2 0f 10 69 10 movsd 0x10(%rcx),%xmm5
|
||||||
|
180000149: 66 0f 16 61 08 movhpd 0x8(%rcx),%xmm4
|
||||||
|
18000014e: 66 0f 16 69 18 movhpd 0x18(%rcx),%xmm5
|
||||||
|
180000153: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
180000156: f2 0f 12 0a movddup (%rdx),%xmm1
|
||||||
|
18000015a: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
18000015d: f2 0f 12 52 10 movddup 0x10(%rdx),%xmm2
|
||||||
|
180000162: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
180000166: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
18000016b: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
18000016f: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
180000173: f2 0f 12 62 08 movddup 0x8(%rdx),%xmm4
|
||||||
|
180000178: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
18000017d: f2 0f 12 6a 18 movddup 0x18(%rdx),%xmm5
|
||||||
|
180000182: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000186: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
18000018a: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
18000018e: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
180000192: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
180000196: 66 41 0f 2b 08 movntpd %xmm1,(%r8)
|
||||||
|
18000019b: 66 41 0f 2b 50 10 movntpd %xmm2,0x10(%r8)
|
||||||
|
1800001a1: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800001a5: 41 ff c9 dec %r9d
|
||||||
|
1800001a8: 75 96 jne 0x180000140
|
||||||
|
1800001aa: e9 47 04 00 00 jmp 0x1800005f6
|
||||||
|
1800001af: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
1800001b6: 0f 84 13 01 00 00 je 0x1800002cf
|
||||||
|
1800001bc: 41 81 f9 aa 2a 00 00 cmp $0x2aaa,%r9d
|
||||||
|
1800001c3: 0f 87 97 00 00 00 ja 0x180000260
|
||||||
|
1800001c9: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800001d0: 00
|
||||||
|
1800001d1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800001d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800001df: 00
|
||||||
|
1800001e0: f2 0f 10 22 movsd (%rdx),%xmm4
|
||||||
|
1800001e4: f2 0f 10 6a 10 movsd 0x10(%rdx),%xmm5
|
||||||
|
1800001e9: 66 0f 16 62 08 movhpd 0x8(%rdx),%xmm4
|
||||||
|
1800001ee: 66 0f 16 6a 18 movhpd 0x18(%rdx),%xmm5
|
||||||
|
1800001f3: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
1800001f6: f2 0f 12 09 movddup (%rcx),%xmm1
|
||||||
|
1800001fa: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
1800001fd: f2 0f 12 51 10 movddup 0x10(%rcx),%xmm2
|
||||||
|
180000202: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000206: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
18000020b: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
180000210: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
180000214: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
180000218: f2 0f 12 61 08 movddup 0x8(%rcx),%xmm4
|
||||||
|
18000021d: f2 0f 12 69 18 movddup 0x18(%rcx),%xmm5
|
||||||
|
180000222: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
180000226: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
18000022a: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
18000022e: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
180000232: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
180000236: 41 0f 29 08 movaps %xmm1,(%r8)
|
||||||
|
18000023a: 41 0f 29 50 10 movaps %xmm2,0x10(%r8)
|
||||||
|
18000023f: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000243: 41 ff c9 dec %r9d
|
||||||
|
180000246: 75 98 jne 0x1800001e0
|
||||||
|
180000248: e9 a9 03 00 00 jmp 0x1800005f6
|
||||||
|
18000024d: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000254: 00
|
||||||
|
180000255: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000025c: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
180000260: f2 0f 10 22 movsd (%rdx),%xmm4
|
||||||
|
180000264: f2 0f 10 6a 10 movsd 0x10(%rdx),%xmm5
|
||||||
|
180000269: 66 0f 16 62 08 movhpd 0x8(%rdx),%xmm4
|
||||||
|
18000026e: 66 0f 16 6a 18 movhpd 0x18(%rdx),%xmm5
|
||||||
|
180000273: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
180000276: f2 0f 12 09 movddup (%rcx),%xmm1
|
||||||
|
18000027a: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
18000027d: f2 0f 12 51 10 movddup 0x10(%rcx),%xmm2
|
||||||
|
180000282: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000286: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
18000028b: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
18000028f: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
180000293: f2 0f 12 61 08 movddup 0x8(%rcx),%xmm4
|
||||||
|
180000298: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
18000029d: f2 0f 12 69 18 movddup 0x18(%rcx),%xmm5
|
||||||
|
1800002a2: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
1800002a6: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
1800002aa: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
1800002ae: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
1800002b2: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
1800002b6: 66 41 0f 2b 08 movntpd %xmm1,(%r8)
|
||||||
|
1800002bb: 66 41 0f 2b 50 10 movntpd %xmm2,0x10(%r8)
|
||||||
|
1800002c1: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800002c5: 41 ff c9 dec %r9d
|
||||||
|
1800002c8: 75 96 jne 0x180000260
|
||||||
|
1800002ca: e9 27 03 00 00 jmp 0x1800005f6
|
||||||
|
1800002cf: 41 81 f9 aa 2a 00 00 cmp $0x2aaa,%r9d
|
||||||
|
1800002d6: 0f 87 84 00 00 00 ja 0x180000360
|
||||||
|
1800002dc: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
1800002e0: 0f 28 21 movaps (%rcx),%xmm4
|
||||||
|
1800002e3: 0f 28 69 10 movaps 0x10(%rcx),%xmm5
|
||||||
|
1800002e7: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
1800002ea: f2 0f 12 0a movddup (%rdx),%xmm1
|
||||||
|
1800002ee: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
1800002f1: f2 0f 12 52 10 movddup 0x10(%rdx),%xmm2
|
||||||
|
1800002f6: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
1800002fa: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
1800002ff: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
180000304: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
180000308: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
18000030c: f2 0f 12 62 08 movddup 0x8(%rdx),%xmm4
|
||||||
|
180000311: f2 0f 12 6a 18 movddup 0x18(%rdx),%xmm5
|
||||||
|
180000316: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
18000031a: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
18000031e: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
180000322: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
180000326: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
18000032a: 41 0f 29 08 movaps %xmm1,(%r8)
|
||||||
|
18000032e: 41 0f 29 50 10 movaps %xmm2,0x10(%r8)
|
||||||
|
180000333: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000337: 41 ff c9 dec %r9d
|
||||||
|
18000033a: 75 a4 jne 0x1800002e0
|
||||||
|
18000033c: e9 b5 02 00 00 jmp 0x1800005f6
|
||||||
|
180000341: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000348: 00
|
||||||
|
180000349: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
180000350: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000357: 00
|
||||||
|
180000358: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000035f: 90 nop
|
||||||
|
180000360: 0f 28 21 movaps (%rcx),%xmm4
|
||||||
|
180000363: 0f 28 69 10 movaps 0x10(%rcx),%xmm5
|
||||||
|
180000367: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
18000036a: f2 0f 12 0a movddup (%rdx),%xmm1
|
||||||
|
18000036e: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
180000371: f2 0f 12 52 10 movddup 0x10(%rdx),%xmm2
|
||||||
|
180000376: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
18000037a: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
18000037f: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
180000383: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
180000387: f2 0f 12 62 08 movddup 0x8(%rdx),%xmm4
|
||||||
|
18000038c: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
180000391: f2 0f 12 6a 18 movddup 0x18(%rdx),%xmm5
|
||||||
|
180000396: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
18000039a: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
18000039e: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
1800003a2: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
1800003a6: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
1800003aa: 66 41 0f 2b 08 movntpd %xmm1,(%r8)
|
||||||
|
1800003af: 66 41 0f 2b 50 10 movntpd %xmm2,0x10(%r8)
|
||||||
|
1800003b5: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800003b9: 41 ff c9 dec %r9d
|
||||||
|
1800003bc: 75 a2 jne 0x180000360
|
||||||
|
1800003be: e9 33 02 00 00 jmp 0x1800005f6
|
||||||
|
1800003c3: 48 f7 c1 0f 00 00 00 test $0xf,%rcx
|
||||||
|
1800003ca: 0f 84 0b 01 00 00 je 0x1800004db
|
||||||
|
1800003d0: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
1800003d7: 0f 85 83 00 00 00 jne 0x180000460
|
||||||
|
1800003dd: 0f 1f 00 nopl (%rax)
|
||||||
|
1800003e0: f2 0f 10 21 movsd (%rcx),%xmm4
|
||||||
|
1800003e4: f2 0f 10 69 10 movsd 0x10(%rcx),%xmm5
|
||||||
|
1800003e9: 66 0f 16 61 08 movhpd 0x8(%rcx),%xmm4
|
||||||
|
1800003ee: 66 0f 16 69 18 movhpd 0x18(%rcx),%xmm5
|
||||||
|
1800003f3: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
1800003f6: f2 0f 12 0a movddup (%rdx),%xmm1
|
||||||
|
1800003fa: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
1800003fd: f2 0f 12 52 10 movddup 0x10(%rdx),%xmm2
|
||||||
|
180000402: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
180000406: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
18000040b: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
180000410: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
180000414: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
180000418: f2 0f 12 62 08 movddup 0x8(%rdx),%xmm4
|
||||||
|
18000041d: f2 0f 12 6a 18 movddup 0x18(%rdx),%xmm5
|
||||||
|
180000422: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000426: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
18000042a: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
18000042e: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
180000432: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
180000436: f2 41 0f 11 08 movsd %xmm1,(%r8)
|
||||||
|
18000043b: 66 41 0f 17 48 08 movhpd %xmm1,0x8(%r8)
|
||||||
|
180000441: f2 41 0f 11 50 10 movsd %xmm2,0x10(%r8)
|
||||||
|
180000447: 66 41 0f 17 50 18 movhpd %xmm2,0x18(%r8)
|
||||||
|
18000044d: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000451: 41 ff c9 dec %r9d
|
||||||
|
180000454: 75 8a jne 0x1800003e0
|
||||||
|
180000456: e9 9b 01 00 00 jmp 0x1800005f6
|
||||||
|
18000045b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000460: f2 0f 10 21 movsd (%rcx),%xmm4
|
||||||
|
180000464: f2 0f 10 69 10 movsd 0x10(%rcx),%xmm5
|
||||||
|
180000469: 66 0f 16 61 08 movhpd 0x8(%rcx),%xmm4
|
||||||
|
18000046e: 66 0f 16 69 18 movhpd 0x18(%rcx),%xmm5
|
||||||
|
180000473: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
180000476: f2 0f 12 0a movddup (%rdx),%xmm1
|
||||||
|
18000047a: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
18000047d: f2 0f 12 52 10 movddup 0x10(%rdx),%xmm2
|
||||||
|
180000482: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
180000486: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
18000048b: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
180000490: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
180000494: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
180000498: f2 0f 12 62 08 movddup 0x8(%rdx),%xmm4
|
||||||
|
18000049d: f2 0f 12 6a 18 movddup 0x18(%rdx),%xmm5
|
||||||
|
1800004a2: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
1800004a6: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
1800004aa: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
1800004ae: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
1800004b2: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
1800004b6: f2 41 0f 11 08 movsd %xmm1,(%r8)
|
||||||
|
1800004bb: 66 41 0f 17 48 08 movhpd %xmm1,0x8(%r8)
|
||||||
|
1800004c1: f2 41 0f 11 50 10 movsd %xmm2,0x10(%r8)
|
||||||
|
1800004c7: 66 41 0f 17 50 18 movhpd %xmm2,0x18(%r8)
|
||||||
|
1800004cd: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800004d1: 41 ff c9 dec %r9d
|
||||||
|
1800004d4: 75 8a jne 0x180000460
|
||||||
|
1800004d6: e9 1b 01 00 00 jmp 0x1800005f6
|
||||||
|
1800004db: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
1800004e2: 0f 85 98 00 00 00 jne 0x180000580
|
||||||
|
1800004e8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800004ef: 00
|
||||||
|
1800004f0: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800004f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
|
||||||
|
1800004fe: 00 00
|
||||||
|
180000500: 0f 28 21 movaps (%rcx),%xmm4
|
||||||
|
180000503: 0f 28 69 10 movaps 0x10(%rcx),%xmm5
|
||||||
|
180000507: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
18000050a: f2 0f 12 0a movddup (%rdx),%xmm1
|
||||||
|
18000050e: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
180000511: f2 0f 12 52 10 movddup 0x10(%rdx),%xmm2
|
||||||
|
180000516: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
18000051a: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
18000051f: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
180000524: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
180000528: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
18000052c: f2 0f 12 62 08 movddup 0x8(%rdx),%xmm4
|
||||||
|
180000531: f2 0f 12 6a 18 movddup 0x18(%rdx),%xmm5
|
||||||
|
180000536: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
18000053a: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
18000053e: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
180000542: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
180000546: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
18000054a: f2 41 0f 11 08 movsd %xmm1,(%r8)
|
||||||
|
18000054f: 66 41 0f 17 48 08 movhpd %xmm1,0x8(%r8)
|
||||||
|
180000555: f2 41 0f 11 50 10 movsd %xmm2,0x10(%r8)
|
||||||
|
18000055b: 66 41 0f 17 50 18 movhpd %xmm2,0x18(%r8)
|
||||||
|
180000561: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000565: 41 ff c9 dec %r9d
|
||||||
|
180000568: 75 96 jne 0x180000500
|
||||||
|
18000056a: e9 87 00 00 00 jmp 0x1800005f6
|
||||||
|
18000056f: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000576: 00
|
||||||
|
180000577: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000057e: 66 90 xchg %ax,%ax
|
||||||
|
180000580: f2 0f 10 22 movsd (%rdx),%xmm4
|
||||||
|
180000584: f2 0f 10 6a 10 movsd 0x10(%rdx),%xmm5
|
||||||
|
180000589: 66 0f 16 62 08 movhpd 0x8(%rdx),%xmm4
|
||||||
|
18000058e: 66 0f 16 6a 18 movhpd 0x18(%rdx),%xmm5
|
||||||
|
180000593: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
180000596: f2 0f 12 09 movddup (%rcx),%xmm1
|
||||||
|
18000059a: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
18000059d: f2 0f 12 51 10 movddup 0x10(%rcx),%xmm2
|
||||||
|
1800005a2: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
1800005a6: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
1800005ab: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
1800005b0: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
1800005b4: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
1800005b8: f2 0f 12 61 08 movddup 0x8(%rcx),%xmm4
|
||||||
|
1800005bd: f2 0f 12 69 18 movddup 0x18(%rcx),%xmm5
|
||||||
|
1800005c2: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
1800005c6: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
1800005ca: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
1800005ce: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
1800005d2: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
1800005d6: f2 41 0f 11 08 movsd %xmm1,(%r8)
|
||||||
|
1800005db: 66 41 0f 17 48 08 movhpd %xmm1,0x8(%r8)
|
||||||
|
1800005e1: f2 41 0f 11 50 10 movsd %xmm2,0x10(%r8)
|
||||||
|
1800005e7: 66 41 0f 17 50 18 movhpd %xmm2,0x18(%r8)
|
||||||
|
1800005ed: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800005f1: 41 ff c9 dec %r9d
|
||||||
|
1800005f4: 75 8a jne 0x180000580
|
||||||
|
1800005f6: 85 c0 test %eax,%eax
|
||||||
|
1800005f8: 74 31 je 0x18000062b
|
||||||
|
1800005fa: f2 0f 10 01 movsd (%rcx),%xmm0
|
||||||
|
1800005fe: 66 0f 16 41 08 movhpd 0x8(%rcx),%xmm0
|
||||||
|
180000603: 0f 28 d0 movaps %xmm0,%xmm2
|
||||||
|
180000606: f2 0f 12 1a movddup (%rdx),%xmm3
|
||||||
|
18000060a: f2 0f 12 4a 08 movddup 0x8(%rdx),%xmm1
|
||||||
|
18000060f: 66 0f c6 d0 01 shufpd $0x1,%xmm0,%xmm2
|
||||||
|
180000614: 66 0f 59 d8 mulpd %xmm0,%xmm3
|
||||||
|
180000618: 66 0f 59 d1 mulpd %xmm1,%xmm2
|
||||||
|
18000061c: 66 0f d0 da addsubpd %xmm2,%xmm3
|
||||||
|
180000620: f2 41 0f 11 18 movsd %xmm3,(%r8)
|
||||||
|
180000625: 66 41 0f 17 58 08 movhpd %xmm3,0x8(%r8)
|
||||||
|
18000062b: 48 8d 65 00 lea 0x0(%rbp),%rsp
|
||||||
|
18000062f: 5d pop %rbp
|
||||||
|
180000630: c3 ret
|
||||||
@@ -0,0 +1,360 @@
|
|||||||
|
|
||||||
|
/tmp/det/fun_180042be0.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180000000 <.data>:
|
||||||
|
180000000: 55 push %rbp
|
||||||
|
180000001: 48 8d 2c 24 lea (%rsp),%rbp
|
||||||
|
180000005: 44 89 c8 mov %r9d,%eax
|
||||||
|
180000008: 41 d1 f9 sar $1,%r9d
|
||||||
|
18000000b: 83 e0 01 and $0x1,%eax
|
||||||
|
18000000e: 45 85 c9 test %r9d,%r9d
|
||||||
|
180000011: 0f 84 bf 05 00 00 je 0x1800005d6
|
||||||
|
180000017: 49 f7 c0 0f 00 00 00 test $0xf,%r8
|
||||||
|
18000001e: 0f 85 7a 03 00 00 jne 0x18000039e
|
||||||
|
180000024: 48 f7 c1 0f 00 00 00 test $0xf,%rcx
|
||||||
|
18000002b: 0f 84 7e 01 00 00 je 0x1800001af
|
||||||
|
180000031: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
180000038: 0f 84 6f 00 00 00 je 0x1800000ad
|
||||||
|
18000003e: 66 90 xchg %ax,%ax
|
||||||
|
180000040: f2 0f 10 21 movsd (%rcx),%xmm4
|
||||||
|
180000044: f2 0f 10 69 10 movsd 0x10(%rcx),%xmm5
|
||||||
|
180000049: 66 0f 16 61 08 movhpd 0x8(%rcx),%xmm4
|
||||||
|
18000004e: 66 0f 16 69 18 movhpd 0x18(%rcx),%xmm5
|
||||||
|
180000053: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
180000056: f2 0f 12 0a movddup (%rdx),%xmm1
|
||||||
|
18000005a: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
18000005d: f2 0f 12 52 10 movddup 0x10(%rdx),%xmm2
|
||||||
|
180000062: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
180000066: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
18000006b: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
180000070: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
180000074: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
180000078: f2 0f 12 62 08 movddup 0x8(%rdx),%xmm4
|
||||||
|
18000007d: f2 0f 12 6a 18 movddup 0x18(%rdx),%xmm5
|
||||||
|
180000082: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000086: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
18000008a: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
18000008e: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
180000092: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
180000096: 41 0f 29 08 movaps %xmm1,(%r8)
|
||||||
|
18000009a: 41 0f 29 50 10 movaps %xmm2,0x10(%r8)
|
||||||
|
18000009f: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800000a3: 41 ff c9 dec %r9d
|
||||||
|
1800000a6: 75 98 jne 0x180000040
|
||||||
|
1800000a8: e9 29 05 00 00 jmp 0x1800005d6
|
||||||
|
1800000ad: 41 81 f9 aa 2a 00 00 cmp $0x2aaa,%r9d
|
||||||
|
1800000b4: 0f 87 86 00 00 00 ja 0x180000140
|
||||||
|
1800000ba: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
|
||||||
|
1800000c0: f2 0f 10 21 movsd (%rcx),%xmm4
|
||||||
|
1800000c4: f2 0f 10 69 10 movsd 0x10(%rcx),%xmm5
|
||||||
|
1800000c9: 66 0f 16 61 08 movhpd 0x8(%rcx),%xmm4
|
||||||
|
1800000ce: 66 0f 16 69 18 movhpd 0x18(%rcx),%xmm5
|
||||||
|
1800000d3: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
1800000d6: f2 0f 12 0a movddup (%rdx),%xmm1
|
||||||
|
1800000da: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
1800000dd: f2 0f 12 52 10 movddup 0x10(%rdx),%xmm2
|
||||||
|
1800000e2: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
1800000e6: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
1800000eb: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
1800000f0: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
1800000f4: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
1800000f8: f2 0f 12 62 08 movddup 0x8(%rdx),%xmm4
|
||||||
|
1800000fd: f2 0f 12 6a 18 movddup 0x18(%rdx),%xmm5
|
||||||
|
180000102: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000106: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
18000010a: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
18000010e: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
180000112: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
180000116: 41 0f 29 08 movaps %xmm1,(%r8)
|
||||||
|
18000011a: 41 0f 29 50 10 movaps %xmm2,0x10(%r8)
|
||||||
|
18000011f: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000123: 41 ff c9 dec %r9d
|
||||||
|
180000126: 75 98 jne 0x1800000c0
|
||||||
|
180000128: e9 a9 04 00 00 jmp 0x1800005d6
|
||||||
|
18000012d: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000134: 00
|
||||||
|
180000135: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000013c: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
180000140: f2 0f 10 21 movsd (%rcx),%xmm4
|
||||||
|
180000144: f2 0f 10 69 10 movsd 0x10(%rcx),%xmm5
|
||||||
|
180000149: 66 0f 16 61 08 movhpd 0x8(%rcx),%xmm4
|
||||||
|
18000014e: 66 0f 16 69 18 movhpd 0x18(%rcx),%xmm5
|
||||||
|
180000153: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
180000156: f2 0f 12 0a movddup (%rdx),%xmm1
|
||||||
|
18000015a: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
18000015d: f2 0f 12 52 10 movddup 0x10(%rdx),%xmm2
|
||||||
|
180000162: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
180000166: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
18000016b: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
18000016f: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
180000173: f2 0f 12 62 08 movddup 0x8(%rdx),%xmm4
|
||||||
|
180000178: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
18000017d: f2 0f 12 6a 18 movddup 0x18(%rdx),%xmm5
|
||||||
|
180000182: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000186: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
18000018a: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
18000018e: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
180000192: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
180000196: 66 41 0f 2b 08 movntpd %xmm1,(%r8)
|
||||||
|
18000019b: 66 41 0f 2b 50 10 movntpd %xmm2,0x10(%r8)
|
||||||
|
1800001a1: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800001a5: 41 ff c9 dec %r9d
|
||||||
|
1800001a8: 75 96 jne 0x180000140
|
||||||
|
1800001aa: e9 27 04 00 00 jmp 0x1800005d6
|
||||||
|
1800001af: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
1800001b6: 0f 84 13 01 00 00 je 0x1800002cf
|
||||||
|
1800001bc: 41 81 f9 aa 2a 00 00 cmp $0x2aaa,%r9d
|
||||||
|
1800001c3: 0f 87 97 00 00 00 ja 0x180000260
|
||||||
|
1800001c9: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800001d0: 00
|
||||||
|
1800001d1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800001d8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800001df: 00
|
||||||
|
1800001e0: f2 0f 10 22 movsd (%rdx),%xmm4
|
||||||
|
1800001e4: f2 0f 10 6a 10 movsd 0x10(%rdx),%xmm5
|
||||||
|
1800001e9: 66 0f 16 62 08 movhpd 0x8(%rdx),%xmm4
|
||||||
|
1800001ee: 66 0f 16 6a 18 movhpd 0x18(%rdx),%xmm5
|
||||||
|
1800001f3: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
1800001f6: f2 0f 12 09 movddup (%rcx),%xmm1
|
||||||
|
1800001fa: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
1800001fd: f2 0f 12 51 10 movddup 0x10(%rcx),%xmm2
|
||||||
|
180000202: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000206: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
18000020b: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
180000210: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
180000214: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
180000218: f2 0f 12 61 08 movddup 0x8(%rcx),%xmm4
|
||||||
|
18000021d: f2 0f 12 69 18 movddup 0x18(%rcx),%xmm5
|
||||||
|
180000222: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
180000226: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
18000022a: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
18000022e: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
180000232: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
180000236: 41 0f 29 08 movaps %xmm1,(%r8)
|
||||||
|
18000023a: 41 0f 29 50 10 movaps %xmm2,0x10(%r8)
|
||||||
|
18000023f: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000243: 41 ff c9 dec %r9d
|
||||||
|
180000246: 75 98 jne 0x1800001e0
|
||||||
|
180000248: e9 89 03 00 00 jmp 0x1800005d6
|
||||||
|
18000024d: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000254: 00
|
||||||
|
180000255: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000025c: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
180000260: f2 0f 10 22 movsd (%rdx),%xmm4
|
||||||
|
180000264: f2 0f 10 6a 10 movsd 0x10(%rdx),%xmm5
|
||||||
|
180000269: 66 0f 16 62 08 movhpd 0x8(%rdx),%xmm4
|
||||||
|
18000026e: 66 0f 16 6a 18 movhpd 0x18(%rdx),%xmm5
|
||||||
|
180000273: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
180000276: f2 0f 12 09 movddup (%rcx),%xmm1
|
||||||
|
18000027a: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
18000027d: f2 0f 12 51 10 movddup 0x10(%rcx),%xmm2
|
||||||
|
180000282: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000286: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
18000028b: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
18000028f: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
180000293: f2 0f 12 61 08 movddup 0x8(%rcx),%xmm4
|
||||||
|
180000298: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
18000029d: f2 0f 12 69 18 movddup 0x18(%rcx),%xmm5
|
||||||
|
1800002a2: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
1800002a6: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
1800002aa: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
1800002ae: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
1800002b2: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
1800002b6: 66 41 0f 2b 08 movntpd %xmm1,(%r8)
|
||||||
|
1800002bb: 66 41 0f 2b 50 10 movntpd %xmm2,0x10(%r8)
|
||||||
|
1800002c1: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800002c5: 41 ff c9 dec %r9d
|
||||||
|
1800002c8: 75 96 jne 0x180000260
|
||||||
|
1800002ca: e9 07 03 00 00 jmp 0x1800005d6
|
||||||
|
1800002cf: 41 81 f9 aa 2a 00 00 cmp $0x2aaa,%r9d
|
||||||
|
1800002d6: 0f 87 64 00 00 00 ja 0x180000340
|
||||||
|
1800002dc: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
1800002e0: 0f 28 11 movaps (%rcx),%xmm2
|
||||||
|
1800002e3: 0f 28 59 10 movaps 0x10(%rcx),%xmm3
|
||||||
|
1800002e7: f2 0f 12 22 movddup (%rdx),%xmm4
|
||||||
|
1800002eb: f2 0f 12 6a 10 movddup 0x10(%rdx),%xmm5
|
||||||
|
1800002f0: f2 0f 12 42 08 movddup 0x8(%rdx),%xmm0
|
||||||
|
1800002f5: f2 0f 12 4a 18 movddup 0x18(%rdx),%xmm1
|
||||||
|
1800002fa: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
1800002fe: 66 0f c6 d2 01 shufpd $0x1,%xmm2,%xmm2
|
||||||
|
180000303: 66 0f c6 db 01 shufpd $0x1,%xmm3,%xmm3
|
||||||
|
180000308: 66 0f 59 21 mulpd (%rcx),%xmm4
|
||||||
|
18000030c: 66 0f 59 69 10 mulpd 0x10(%rcx),%xmm5
|
||||||
|
180000311: 66 0f 59 d0 mulpd %xmm0,%xmm2
|
||||||
|
180000315: 66 0f 59 d9 mulpd %xmm1,%xmm3
|
||||||
|
180000319: 66 0f d0 e2 addsubpd %xmm2,%xmm4
|
||||||
|
18000031d: 66 0f d0 eb addsubpd %xmm3,%xmm5
|
||||||
|
180000321: 41 0f 29 20 movaps %xmm4,(%r8)
|
||||||
|
180000325: 48 8d 49 20 lea 0x20(%rcx),%rcx
|
||||||
|
180000329: 41 0f 29 68 10 movaps %xmm5,0x10(%r8)
|
||||||
|
18000032e: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000332: 41 ff c9 dec %r9d
|
||||||
|
180000335: 75 a9 jne 0x1800002e0
|
||||||
|
180000337: e9 9a 02 00 00 jmp 0x1800005d6
|
||||||
|
18000033c: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
180000340: 0f 28 11 movaps (%rcx),%xmm2
|
||||||
|
180000343: 0f 28 59 10 movaps 0x10(%rcx),%xmm3
|
||||||
|
180000347: f2 0f 12 22 movddup (%rdx),%xmm4
|
||||||
|
18000034b: f2 0f 12 42 08 movddup 0x8(%rdx),%xmm0
|
||||||
|
180000350: 66 0f c6 d2 01 shufpd $0x1,%xmm2,%xmm2
|
||||||
|
180000355: f2 0f 12 6a 10 movddup 0x10(%rdx),%xmm5
|
||||||
|
18000035a: f2 0f 12 4a 18 movddup 0x18(%rdx),%xmm1
|
||||||
|
18000035f: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000363: 66 0f c6 db 01 shufpd $0x1,%xmm3,%xmm3
|
||||||
|
180000368: 66 0f 59 21 mulpd (%rcx),%xmm4
|
||||||
|
18000036c: 66 0f 59 d0 mulpd %xmm0,%xmm2
|
||||||
|
180000370: 66 0f 59 69 10 mulpd 0x10(%rcx),%xmm5
|
||||||
|
180000375: 66 0f 59 d9 mulpd %xmm1,%xmm3
|
||||||
|
180000379: 66 0f d0 e2 addsubpd %xmm2,%xmm4
|
||||||
|
18000037d: 66 0f d0 eb addsubpd %xmm3,%xmm5
|
||||||
|
180000381: 66 41 0f 2b 20 movntpd %xmm4,(%r8)
|
||||||
|
180000386: 48 8d 49 20 lea 0x20(%rcx),%rcx
|
||||||
|
18000038a: 66 41 0f 2b 68 10 movntpd %xmm5,0x10(%r8)
|
||||||
|
180000390: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000394: 41 ff c9 dec %r9d
|
||||||
|
180000397: 75 a7 jne 0x180000340
|
||||||
|
180000399: e9 38 02 00 00 jmp 0x1800005d6
|
||||||
|
18000039e: 48 f7 c1 0f 00 00 00 test $0xf,%rcx
|
||||||
|
1800003a5: 0f 84 10 01 00 00 je 0x1800004bb
|
||||||
|
1800003ab: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
1800003b2: 0f 85 88 00 00 00 jne 0x180000440
|
||||||
|
1800003b8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800003bf: 00
|
||||||
|
1800003c0: f2 0f 10 21 movsd (%rcx),%xmm4
|
||||||
|
1800003c4: f2 0f 10 69 10 movsd 0x10(%rcx),%xmm5
|
||||||
|
1800003c9: 66 0f 16 61 08 movhpd 0x8(%rcx),%xmm4
|
||||||
|
1800003ce: 66 0f 16 69 18 movhpd 0x18(%rcx),%xmm5
|
||||||
|
1800003d3: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
1800003d6: f2 0f 12 0a movddup (%rdx),%xmm1
|
||||||
|
1800003da: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
1800003dd: f2 0f 12 52 10 movddup 0x10(%rdx),%xmm2
|
||||||
|
1800003e2: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
1800003e6: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
1800003eb: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
1800003f0: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
1800003f4: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
1800003f8: f2 0f 12 62 08 movddup 0x8(%rdx),%xmm4
|
||||||
|
1800003fd: f2 0f 12 6a 18 movddup 0x18(%rdx),%xmm5
|
||||||
|
180000402: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000406: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
18000040a: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
18000040e: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
180000412: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
180000416: f2 41 0f 11 08 movsd %xmm1,(%r8)
|
||||||
|
18000041b: 66 41 0f 17 48 08 movhpd %xmm1,0x8(%r8)
|
||||||
|
180000421: f2 41 0f 11 50 10 movsd %xmm2,0x10(%r8)
|
||||||
|
180000427: 66 41 0f 17 50 18 movhpd %xmm2,0x18(%r8)
|
||||||
|
18000042d: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000431: 41 ff c9 dec %r9d
|
||||||
|
180000434: 75 8a jne 0x1800003c0
|
||||||
|
180000436: e9 9b 01 00 00 jmp 0x1800005d6
|
||||||
|
18000043b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000440: f2 0f 10 21 movsd (%rcx),%xmm4
|
||||||
|
180000444: f2 0f 10 69 10 movsd 0x10(%rcx),%xmm5
|
||||||
|
180000449: 66 0f 16 61 08 movhpd 0x8(%rcx),%xmm4
|
||||||
|
18000044e: 66 0f 16 69 18 movhpd 0x18(%rcx),%xmm5
|
||||||
|
180000453: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
180000456: f2 0f 12 0a movddup (%rdx),%xmm1
|
||||||
|
18000045a: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
18000045d: f2 0f 12 52 10 movddup 0x10(%rdx),%xmm2
|
||||||
|
180000462: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
180000466: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
18000046b: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
180000470: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
180000474: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
180000478: f2 0f 12 62 08 movddup 0x8(%rdx),%xmm4
|
||||||
|
18000047d: f2 0f 12 6a 18 movddup 0x18(%rdx),%xmm5
|
||||||
|
180000482: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000486: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
18000048a: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
18000048e: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
180000492: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
180000496: f2 41 0f 11 08 movsd %xmm1,(%r8)
|
||||||
|
18000049b: 66 41 0f 17 48 08 movhpd %xmm1,0x8(%r8)
|
||||||
|
1800004a1: f2 41 0f 11 50 10 movsd %xmm2,0x10(%r8)
|
||||||
|
1800004a7: 66 41 0f 17 50 18 movhpd %xmm2,0x18(%r8)
|
||||||
|
1800004ad: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800004b1: 41 ff c9 dec %r9d
|
||||||
|
1800004b4: 75 8a jne 0x180000440
|
||||||
|
1800004b6: e9 1b 01 00 00 jmp 0x1800005d6
|
||||||
|
1800004bb: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
1800004c2: 0f 85 98 00 00 00 jne 0x180000560
|
||||||
|
1800004c8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800004cf: 00
|
||||||
|
1800004d0: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800004d7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
|
||||||
|
1800004de: 00 00
|
||||||
|
1800004e0: 0f 28 11 movaps (%rcx),%xmm2
|
||||||
|
1800004e3: 0f 28 59 10 movaps 0x10(%rcx),%xmm3
|
||||||
|
1800004e7: f2 0f 12 22 movddup (%rdx),%xmm4
|
||||||
|
1800004eb: f2 0f 12 6a 10 movddup 0x10(%rdx),%xmm5
|
||||||
|
1800004f0: f2 0f 12 42 08 movddup 0x8(%rdx),%xmm0
|
||||||
|
1800004f5: f2 0f 12 4a 18 movddup 0x18(%rdx),%xmm1
|
||||||
|
1800004fa: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
1800004fe: 66 0f c6 d2 01 shufpd $0x1,%xmm2,%xmm2
|
||||||
|
180000503: 66 0f c6 db 01 shufpd $0x1,%xmm3,%xmm3
|
||||||
|
180000508: 66 0f 59 21 mulpd (%rcx),%xmm4
|
||||||
|
18000050c: 66 0f 59 69 10 mulpd 0x10(%rcx),%xmm5
|
||||||
|
180000511: 66 0f 59 d0 mulpd %xmm0,%xmm2
|
||||||
|
180000515: 66 0f 59 d9 mulpd %xmm1,%xmm3
|
||||||
|
180000519: 66 0f d0 e2 addsubpd %xmm2,%xmm4
|
||||||
|
18000051d: 66 0f d0 eb addsubpd %xmm3,%xmm5
|
||||||
|
180000521: f2 41 0f 11 20 movsd %xmm4,(%r8)
|
||||||
|
180000526: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
18000052a: 66 41 0f 17 60 08 movhpd %xmm4,0x8(%r8)
|
||||||
|
180000530: f2 41 0f 11 68 10 movsd %xmm5,0x10(%r8)
|
||||||
|
180000536: 66 41 0f 17 68 18 movhpd %xmm5,0x18(%r8)
|
||||||
|
18000053c: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000540: 41 ff c9 dec %r9d
|
||||||
|
180000543: 75 9b jne 0x1800004e0
|
||||||
|
180000545: e9 8c 00 00 00 jmp 0x1800005d6
|
||||||
|
18000054a: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000551: 00
|
||||||
|
180000552: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
180000559: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
180000560: f2 0f 10 22 movsd (%rdx),%xmm4
|
||||||
|
180000564: f2 0f 10 6a 10 movsd 0x10(%rdx),%xmm5
|
||||||
|
180000569: 66 0f 16 62 08 movhpd 0x8(%rdx),%xmm4
|
||||||
|
18000056e: 66 0f 16 6a 18 movhpd 0x18(%rdx),%xmm5
|
||||||
|
180000573: 0f 28 dc movaps %xmm4,%xmm3
|
||||||
|
180000576: f2 0f 12 09 movddup (%rcx),%xmm1
|
||||||
|
18000057a: 0f 28 c5 movaps %xmm5,%xmm0
|
||||||
|
18000057d: f2 0f 12 51 10 movddup 0x10(%rcx),%xmm2
|
||||||
|
180000582: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000586: 66 0f c6 dc 01 shufpd $0x1,%xmm4,%xmm3
|
||||||
|
18000058b: 66 0f c6 c5 01 shufpd $0x1,%xmm5,%xmm0
|
||||||
|
180000590: 66 0f 59 cc mulpd %xmm4,%xmm1
|
||||||
|
180000594: 66 0f 59 d5 mulpd %xmm5,%xmm2
|
||||||
|
180000598: f2 0f 12 61 08 movddup 0x8(%rcx),%xmm4
|
||||||
|
18000059d: f2 0f 12 69 18 movddup 0x18(%rcx),%xmm5
|
||||||
|
1800005a2: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
1800005a6: 66 0f 59 dc mulpd %xmm4,%xmm3
|
||||||
|
1800005aa: 66 0f 59 c5 mulpd %xmm5,%xmm0
|
||||||
|
1800005ae: 66 0f d0 cb addsubpd %xmm3,%xmm1
|
||||||
|
1800005b2: 66 0f d0 d0 addsubpd %xmm0,%xmm2
|
||||||
|
1800005b6: f2 41 0f 11 08 movsd %xmm1,(%r8)
|
||||||
|
1800005bb: 66 41 0f 17 48 08 movhpd %xmm1,0x8(%r8)
|
||||||
|
1800005c1: f2 41 0f 11 50 10 movsd %xmm2,0x10(%r8)
|
||||||
|
1800005c7: 66 41 0f 17 50 18 movhpd %xmm2,0x18(%r8)
|
||||||
|
1800005cd: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800005d1: 41 ff c9 dec %r9d
|
||||||
|
1800005d4: 75 8a jne 0x180000560
|
||||||
|
1800005d6: 85 c0 test %eax,%eax
|
||||||
|
1800005d8: 74 31 je 0x18000060b
|
||||||
|
1800005da: f2 0f 10 01 movsd (%rcx),%xmm0
|
||||||
|
1800005de: 66 0f 16 41 08 movhpd 0x8(%rcx),%xmm0
|
||||||
|
1800005e3: 0f 28 d0 movaps %xmm0,%xmm2
|
||||||
|
1800005e6: f2 0f 12 1a movddup (%rdx),%xmm3
|
||||||
|
1800005ea: f2 0f 12 4a 08 movddup 0x8(%rdx),%xmm1
|
||||||
|
1800005ef: 66 0f c6 d0 01 shufpd $0x1,%xmm0,%xmm2
|
||||||
|
1800005f4: 66 0f 59 d8 mulpd %xmm0,%xmm3
|
||||||
|
1800005f8: 66 0f 59 d1 mulpd %xmm1,%xmm2
|
||||||
|
1800005fc: 66 0f d0 da addsubpd %xmm2,%xmm3
|
||||||
|
180000600: f2 41 0f 11 18 movsd %xmm3,(%r8)
|
||||||
|
180000605: 66 41 0f 17 58 08 movhpd %xmm3,0x8(%r8)
|
||||||
|
18000060b: 48 8d 65 00 lea 0x0(%rbp),%rsp
|
||||||
|
18000060f: 5d pop %rbp
|
||||||
|
180000610: c3 ret
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,188 @@
|
|||||||
|
|
||||||
|
/tmp/det/fun_180045de0.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180000000 <.data>:
|
||||||
|
180000000: 41 83 f9 0b cmp $0xb,%r9d
|
||||||
|
180000004: 7d 3d jge 0x180000043
|
||||||
|
180000006: 41 ff c9 dec %r9d
|
||||||
|
180000009: 41 83 f9 ff cmp $0xffffffff,%r9d
|
||||||
|
18000000d: 74 33 je 0x180000042
|
||||||
|
18000000f: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000016: 00
|
||||||
|
180000017: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000001e: 66 90 xchg %ax,%ax
|
||||||
|
180000020: f3 0f 10 01 movss (%rcx),%xmm0
|
||||||
|
180000024: 41 ff c9 dec %r9d
|
||||||
|
180000027: f3 0f 59 02 mulss (%rdx),%xmm0
|
||||||
|
18000002b: 48 83 c1 04 add $0x4,%rcx
|
||||||
|
18000002f: f3 41 0f 11 00 movss %xmm0,(%r8)
|
||||||
|
180000034: 48 83 c2 04 add $0x4,%rdx
|
||||||
|
180000038: 49 83 c0 04 add $0x4,%r8
|
||||||
|
18000003c: 41 83 f9 ff cmp $0xffffffff,%r9d
|
||||||
|
180000040: 75 de jne 0x180000020
|
||||||
|
180000042: c3 ret
|
||||||
|
180000043: 49 f7 c0 03 00 00 00 test $0x3,%r8
|
||||||
|
18000004a: 0f 85 5c 01 00 00 jne 0x1800001ac
|
||||||
|
180000050: 4c 89 c0 mov %r8,%rax
|
||||||
|
180000053: 48 83 e0 0f and $0xf,%rax
|
||||||
|
180000057: 85 c0 test %eax,%eax
|
||||||
|
180000059: 74 42 je 0x18000009d
|
||||||
|
18000005b: c1 e8 02 shr $0x2,%eax
|
||||||
|
18000005e: f7 d8 neg %eax
|
||||||
|
180000060: 83 e0 03 and $0x3,%eax
|
||||||
|
180000063: 44 2b c8 sub %eax,%r9d
|
||||||
|
180000066: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18000006d: 00
|
||||||
|
18000006e: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
180000075: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
180000079: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
180000080: f3 0f 10 01 movss (%rcx),%xmm0
|
||||||
|
180000084: 48 83 c1 04 add $0x4,%rcx
|
||||||
|
180000088: f3 0f 59 02 mulss (%rdx),%xmm0
|
||||||
|
18000008c: 48 83 c2 04 add $0x4,%rdx
|
||||||
|
180000090: f3 41 0f 11 00 movss %xmm0,(%r8)
|
||||||
|
180000095: 49 83 c0 04 add $0x4,%r8
|
||||||
|
180000099: ff c8 dec %eax
|
||||||
|
18000009b: 75 e3 jne 0x180000080
|
||||||
|
18000009d: 44 89 c8 mov %r9d,%eax
|
||||||
|
1800000a0: 41 83 e1 07 and $0x7,%r9d
|
||||||
|
1800000a4: c1 f8 03 sar $0x3,%eax
|
||||||
|
1800000a7: 48 f7 c1 0f 00 00 00 test $0xf,%rcx
|
||||||
|
1800000ae: 0f 84 7e 00 00 00 je 0x180000132
|
||||||
|
1800000b4: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
1800000bb: 75 43 jne 0x180000100
|
||||||
|
1800000bd: 0f 1f 00 nopl (%rax)
|
||||||
|
1800000c0: 0f 10 01 movups (%rcx),%xmm0
|
||||||
|
1800000c3: 0f 10 49 10 movups 0x10(%rcx),%xmm1
|
||||||
|
1800000c7: 0f 59 02 mulps (%rdx),%xmm0
|
||||||
|
1800000ca: 0f 59 4a 10 mulps 0x10(%rdx),%xmm1
|
||||||
|
1800000ce: 41 0f 29 00 movaps %xmm0,(%r8)
|
||||||
|
1800000d2: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
1800000d6: 41 0f 29 48 10 movaps %xmm1,0x10(%r8)
|
||||||
|
1800000db: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
1800000df: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800000e3: ff c8 dec %eax
|
||||||
|
1800000e5: 75 d9 jne 0x1800000c0
|
||||||
|
1800000e7: e9 1a ff ff ff jmp 0x180000006
|
||||||
|
1800000ec: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800000f3: 00
|
||||||
|
1800000f4: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800000fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000100: 0f 10 11 movups (%rcx),%xmm2
|
||||||
|
180000103: 0f 10 59 10 movups 0x10(%rcx),%xmm3
|
||||||
|
180000107: 0f 10 02 movups (%rdx),%xmm0
|
||||||
|
18000010a: 0f 10 4a 10 movups 0x10(%rdx),%xmm1
|
||||||
|
18000010e: 0f 59 d0 mulps %xmm0,%xmm2
|
||||||
|
180000111: 0f 59 d9 mulps %xmm1,%xmm3
|
||||||
|
180000114: 41 0f 29 10 movaps %xmm2,(%r8)
|
||||||
|
180000118: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
18000011c: 41 0f 29 58 10 movaps %xmm3,0x10(%r8)
|
||||||
|
180000121: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000125: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000129: ff c8 dec %eax
|
||||||
|
18000012b: 75 d3 jne 0x180000100
|
||||||
|
18000012d: e9 d4 fe ff ff jmp 0x180000006
|
||||||
|
180000132: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
180000139: 75 45 jne 0x180000180
|
||||||
|
18000013b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000140: 0f 28 01 movaps (%rcx),%xmm0
|
||||||
|
180000143: 0f 28 49 10 movaps 0x10(%rcx),%xmm1
|
||||||
|
180000147: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
18000014b: 0f 59 02 mulps (%rdx),%xmm0
|
||||||
|
18000014e: 0f 59 4a 10 mulps 0x10(%rdx),%xmm1
|
||||||
|
180000152: 41 0f 29 00 movaps %xmm0,(%r8)
|
||||||
|
180000156: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
18000015a: 41 0f 29 48 10 movaps %xmm1,0x10(%r8)
|
||||||
|
18000015f: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000163: ff c8 dec %eax
|
||||||
|
180000165: 75 d9 jne 0x180000140
|
||||||
|
180000167: e9 9a fe ff ff jmp 0x180000006
|
||||||
|
18000016c: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000173: 00
|
||||||
|
180000174: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000017b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000180: 0f 10 02 movups (%rdx),%xmm0
|
||||||
|
180000183: 0f 10 4a 10 movups 0x10(%rdx),%xmm1
|
||||||
|
180000187: 0f 59 01 mulps (%rcx),%xmm0
|
||||||
|
18000018a: 0f 59 49 10 mulps 0x10(%rcx),%xmm1
|
||||||
|
18000018e: 41 0f 29 00 movaps %xmm0,(%r8)
|
||||||
|
180000192: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
180000196: 41 0f 29 48 10 movaps %xmm1,0x10(%r8)
|
||||||
|
18000019b: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
18000019f: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800001a3: ff c8 dec %eax
|
||||||
|
1800001a5: 75 d9 jne 0x180000180
|
||||||
|
1800001a7: e9 5a fe ff ff jmp 0x180000006
|
||||||
|
1800001ac: 44 89 c8 mov %r9d,%eax
|
||||||
|
1800001af: 41 83 e1 07 and $0x7,%r9d
|
||||||
|
1800001b3: c1 f8 03 sar $0x3,%eax
|
||||||
|
1800001b6: 48 f7 c1 0f 00 00 00 test $0xf,%rcx
|
||||||
|
1800001bd: 0f 84 8f 00 00 00 je 0x180000252
|
||||||
|
1800001c3: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
1800001ca: 75 54 jne 0x180000220
|
||||||
|
1800001cc: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800001d3: 00
|
||||||
|
1800001d4: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800001db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800001e0: 0f 10 01 movups (%rcx),%xmm0
|
||||||
|
1800001e3: 0f 10 49 10 movups 0x10(%rcx),%xmm1
|
||||||
|
1800001e7: 0f 59 02 mulps (%rdx),%xmm0
|
||||||
|
1800001ea: 0f 59 4a 10 mulps 0x10(%rdx),%xmm1
|
||||||
|
1800001ee: 41 0f 11 00 movups %xmm0,(%r8)
|
||||||
|
1800001f2: 41 0f 11 48 10 movups %xmm1,0x10(%r8)
|
||||||
|
1800001f7: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
1800001fb: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
1800001ff: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000203: ff c8 dec %eax
|
||||||
|
180000205: 75 d9 jne 0x1800001e0
|
||||||
|
180000207: e9 fa fd ff ff jmp 0x180000006
|
||||||
|
18000020c: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000213: 00
|
||||||
|
180000214: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000021b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000220: 0f 10 11 movups (%rcx),%xmm2
|
||||||
|
180000223: 0f 10 59 10 movups 0x10(%rcx),%xmm3
|
||||||
|
180000227: 0f 10 02 movups (%rdx),%xmm0
|
||||||
|
18000022a: 0f 10 4a 10 movups 0x10(%rdx),%xmm1
|
||||||
|
18000022e: 0f 59 d0 mulps %xmm0,%xmm2
|
||||||
|
180000231: 0f 59 d9 mulps %xmm1,%xmm3
|
||||||
|
180000234: 41 0f 11 10 movups %xmm2,(%r8)
|
||||||
|
180000238: 41 0f 11 58 10 movups %xmm3,0x10(%r8)
|
||||||
|
18000023d: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
180000241: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000245: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000249: ff c8 dec %eax
|
||||||
|
18000024b: 75 d3 jne 0x180000220
|
||||||
|
18000024d: e9 b4 fd ff ff jmp 0x180000006
|
||||||
|
180000252: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
180000259: 75 45 jne 0x1800002a0
|
||||||
|
18000025b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000260: 0f 28 01 movaps (%rcx),%xmm0
|
||||||
|
180000263: 0f 28 49 10 movaps 0x10(%rcx),%xmm1
|
||||||
|
180000267: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
18000026b: 0f 59 02 mulps (%rdx),%xmm0
|
||||||
|
18000026e: 0f 59 4a 10 mulps 0x10(%rdx),%xmm1
|
||||||
|
180000272: 41 0f 11 00 movups %xmm0,(%r8)
|
||||||
|
180000276: 41 0f 11 48 10 movups %xmm1,0x10(%r8)
|
||||||
|
18000027b: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
18000027f: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000283: ff c8 dec %eax
|
||||||
|
180000285: 75 d9 jne 0x180000260
|
||||||
|
180000287: e9 7a fd ff ff jmp 0x180000006
|
||||||
|
18000028c: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000293: 00
|
||||||
|
180000294: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000029b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800002a0: 0f 10 02 movups (%rdx),%xmm0
|
||||||
|
1800002a3: 0f 10 4a 10 movups 0x10(%rdx),%xmm1
|
||||||
|
1800002a7: 0f 59 01 mulps (%rcx),%xmm0
|
||||||
|
1800002aa: 0f 59 49 10 mulps 0x10(%rcx),%xmm1
|
||||||
|
1800002ae: 41 0f 11 00 movups %xmm0,(%r8)
|
||||||
|
1800002b2: 41 0f 11 48 10 movups %xmm1,0x10(%r8)
|
||||||
|
1800002b7: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
1800002bb: 48 rex.W
|
||||||
|
1800002bc: 83 .byte 0x83
|
||||||
|
1800002bd: c2 .byte 0xc2
|
||||||
@@ -0,0 +1,172 @@
|
|||||||
|
|
||||||
|
/tmp/det/fun_1800460c0.bin: file format binary
|
||||||
|
|
||||||
|
|
||||||
|
Disassembly of section .data:
|
||||||
|
|
||||||
|
0000000180000000 <.data>:
|
||||||
|
180000000: 41 83 f9 0b cmp $0xb,%r9d
|
||||||
|
180000004: 7d 3d jge 0x180000043
|
||||||
|
180000006: 41 ff c9 dec %r9d
|
||||||
|
180000009: 41 83 f9 ff cmp $0xffffffff,%r9d
|
||||||
|
18000000d: 74 33 je 0x180000042
|
||||||
|
18000000f: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000016: 00
|
||||||
|
180000017: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000001e: 66 90 xchg %ax,%ax
|
||||||
|
180000020: f3 0f 10 01 movss (%rcx),%xmm0
|
||||||
|
180000024: 41 ff c9 dec %r9d
|
||||||
|
180000027: f3 0f 59 02 mulss (%rdx),%xmm0
|
||||||
|
18000002b: 48 83 c1 04 add $0x4,%rcx
|
||||||
|
18000002f: f3 41 0f 11 00 movss %xmm0,(%r8)
|
||||||
|
180000034: 48 83 c2 04 add $0x4,%rdx
|
||||||
|
180000038: 49 83 c0 04 add $0x4,%r8
|
||||||
|
18000003c: 41 83 f9 ff cmp $0xffffffff,%r9d
|
||||||
|
180000040: 75 de jne 0x180000020
|
||||||
|
180000042: c3 ret
|
||||||
|
180000043: 49 f7 c0 03 00 00 00 test $0x3,%r8
|
||||||
|
18000004a: 0f 85 5c 01 00 00 jne 0x1800001ac
|
||||||
|
180000050: 4c 89 c0 mov %r8,%rax
|
||||||
|
180000053: 48 83 e0 0f and $0xf,%rax
|
||||||
|
180000057: 85 c0 test %eax,%eax
|
||||||
|
180000059: 74 42 je 0x18000009d
|
||||||
|
18000005b: c1 e8 02 shr $0x2,%eax
|
||||||
|
18000005e: f7 d8 neg %eax
|
||||||
|
180000060: 83 e0 03 and $0x3,%eax
|
||||||
|
180000063: 44 2b c8 sub %eax,%r9d
|
||||||
|
180000066: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
18000006d: 00
|
||||||
|
18000006e: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
180000075: 0f 1f 40 00 nopl 0x0(%rax)
|
||||||
|
180000079: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
180000080: f3 0f 10 01 movss (%rcx),%xmm0
|
||||||
|
180000084: 48 83 c1 04 add $0x4,%rcx
|
||||||
|
180000088: f3 0f 59 02 mulss (%rdx),%xmm0
|
||||||
|
18000008c: 48 83 c2 04 add $0x4,%rdx
|
||||||
|
180000090: f3 41 0f 11 00 movss %xmm0,(%r8)
|
||||||
|
180000095: 49 83 c0 04 add $0x4,%r8
|
||||||
|
180000099: ff c8 dec %eax
|
||||||
|
18000009b: 75 e3 jne 0x180000080
|
||||||
|
18000009d: 44 89 c8 mov %r9d,%eax
|
||||||
|
1800000a0: 41 83 e1 07 and $0x7,%r9d
|
||||||
|
1800000a4: c1 f8 03 sar $0x3,%eax
|
||||||
|
1800000a7: 48 f7 c1 0f 00 00 00 test $0xf,%rcx
|
||||||
|
1800000ae: 0f 84 7e 00 00 00 je 0x180000132
|
||||||
|
1800000b4: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
1800000bb: 75 43 jne 0x180000100
|
||||||
|
1800000bd: 0f 1f 00 nopl (%rax)
|
||||||
|
1800000c0: 0f 10 01 movups (%rcx),%xmm0
|
||||||
|
1800000c3: 0f 10 49 10 movups 0x10(%rcx),%xmm1
|
||||||
|
1800000c7: 0f 59 02 mulps (%rdx),%xmm0
|
||||||
|
1800000ca: 0f 59 4a 10 mulps 0x10(%rdx),%xmm1
|
||||||
|
1800000ce: 41 0f 29 00 movaps %xmm0,(%r8)
|
||||||
|
1800000d2: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
1800000d6: 41 0f 29 48 10 movaps %xmm1,0x10(%r8)
|
||||||
|
1800000db: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
1800000df: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800000e3: ff c8 dec %eax
|
||||||
|
1800000e5: 75 d9 jne 0x1800000c0
|
||||||
|
1800000e7: e9 1a ff ff ff jmp 0x180000006
|
||||||
|
1800000ec: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800000f3: 00
|
||||||
|
1800000f4: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800000fb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000100: 0f 10 11 movups (%rcx),%xmm2
|
||||||
|
180000103: 0f 10 59 10 movups 0x10(%rcx),%xmm3
|
||||||
|
180000107: 0f 10 02 movups (%rdx),%xmm0
|
||||||
|
18000010a: 0f 10 4a 10 movups 0x10(%rdx),%xmm1
|
||||||
|
18000010e: 0f 59 d0 mulps %xmm0,%xmm2
|
||||||
|
180000111: 0f 59 d9 mulps %xmm1,%xmm3
|
||||||
|
180000114: 41 0f 29 10 movaps %xmm2,(%r8)
|
||||||
|
180000118: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
18000011c: 41 0f 29 58 10 movaps %xmm3,0x10(%r8)
|
||||||
|
180000121: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000125: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000129: ff c8 dec %eax
|
||||||
|
18000012b: 75 d3 jne 0x180000100
|
||||||
|
18000012d: e9 d4 fe ff ff jmp 0x180000006
|
||||||
|
180000132: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
180000139: 75 45 jne 0x180000180
|
||||||
|
18000013b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000140: 0f 28 01 movaps (%rcx),%xmm0
|
||||||
|
180000143: 0f 28 49 10 movaps 0x10(%rcx),%xmm1
|
||||||
|
180000147: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
18000014b: 0f 59 02 mulps (%rdx),%xmm0
|
||||||
|
18000014e: 0f 59 4a 10 mulps 0x10(%rdx),%xmm1
|
||||||
|
180000152: 41 0f 29 00 movaps %xmm0,(%r8)
|
||||||
|
180000156: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
18000015a: 41 0f 29 48 10 movaps %xmm1,0x10(%r8)
|
||||||
|
18000015f: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000163: ff c8 dec %eax
|
||||||
|
180000165: 75 d9 jne 0x180000140
|
||||||
|
180000167: e9 9a fe ff ff jmp 0x180000006
|
||||||
|
18000016c: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000173: 00
|
||||||
|
180000174: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000017b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000180: 0f 10 02 movups (%rdx),%xmm0
|
||||||
|
180000183: 0f 10 4a 10 movups 0x10(%rdx),%xmm1
|
||||||
|
180000187: 0f 59 01 mulps (%rcx),%xmm0
|
||||||
|
18000018a: 0f 59 49 10 mulps 0x10(%rcx),%xmm1
|
||||||
|
18000018e: 41 0f 29 00 movaps %xmm0,(%r8)
|
||||||
|
180000192: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
180000196: 41 0f 29 48 10 movaps %xmm1,0x10(%r8)
|
||||||
|
18000019b: 48 8d 52 20 lea 0x20(%rdx),%rdx
|
||||||
|
18000019f: 49 83 c0 20 add $0x20,%r8
|
||||||
|
1800001a3: ff c8 dec %eax
|
||||||
|
1800001a5: 75 d9 jne 0x180000180
|
||||||
|
1800001a7: e9 5a fe ff ff jmp 0x180000006
|
||||||
|
1800001ac: 44 89 c8 mov %r9d,%eax
|
||||||
|
1800001af: 41 83 e1 07 and $0x7,%r9d
|
||||||
|
1800001b3: c1 f8 03 sar $0x3,%eax
|
||||||
|
1800001b6: 48 f7 c1 0f 00 00 00 test $0xf,%rcx
|
||||||
|
1800001bd: 0f 84 8f 00 00 00 je 0x180000252
|
||||||
|
1800001c3: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
1800001ca: 75 54 jne 0x180000220
|
||||||
|
1800001cc: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800001d3: 00
|
||||||
|
1800001d4: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
1800001db: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
1800001e0: 0f 10 01 movups (%rcx),%xmm0
|
||||||
|
1800001e3: 0f 10 49 10 movups 0x10(%rcx),%xmm1
|
||||||
|
1800001e7: 0f 59 02 mulps (%rdx),%xmm0
|
||||||
|
1800001ea: 0f 59 4a 10 mulps 0x10(%rdx),%xmm1
|
||||||
|
1800001ee: 41 0f 11 00 movups %xmm0,(%r8)
|
||||||
|
1800001f2: 41 0f 11 48 10 movups %xmm1,0x10(%r8)
|
||||||
|
1800001f7: 48 8d 49 20 lea 0x20(%rcx),%rcx
|
||||||
|
1800001fb: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
1800001ff: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000203: ff c8 dec %eax
|
||||||
|
180000205: 75 d9 jne 0x1800001e0
|
||||||
|
180000207: e9 fa fd ff ff jmp 0x180000006
|
||||||
|
18000020c: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000213: 00
|
||||||
|
180000214: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
|
||||||
|
18000021b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000220: 0f 10 11 movups (%rcx),%xmm2
|
||||||
|
180000223: 0f 10 59 10 movups 0x10(%rcx),%xmm3
|
||||||
|
180000227: 0f 10 02 movups (%rdx),%xmm0
|
||||||
|
18000022a: 0f 10 4a 10 movups 0x10(%rdx),%xmm1
|
||||||
|
18000022e: 0f 59 d0 mulps %xmm0,%xmm2
|
||||||
|
180000231: 0f 59 d9 mulps %xmm1,%xmm3
|
||||||
|
180000234: 41 0f 11 10 movups %xmm2,(%r8)
|
||||||
|
180000238: 41 0f 11 58 10 movups %xmm3,0x10(%r8)
|
||||||
|
18000023d: 48 8d 49 20 lea 0x20(%rcx),%rcx
|
||||||
|
180000241: 48 83 c2 20 add $0x20,%rdx
|
||||||
|
180000245: 49 83 c0 20 add $0x20,%r8
|
||||||
|
180000249: ff c8 dec %eax
|
||||||
|
18000024b: 75 d3 jne 0x180000220
|
||||||
|
18000024d: e9 b4 fd ff ff jmp 0x180000006
|
||||||
|
180000252: 48 f7 c2 0f 00 00 00 test $0xf,%rdx
|
||||||
|
180000259: 75 45 jne 0x1800002a0
|
||||||
|
18000025b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
|
||||||
|
180000260: 0f 28 01 movaps (%rcx),%xmm0
|
||||||
|
180000263: 0f 28 49 10 movaps 0x10(%rcx),%xmm1
|
||||||
|
180000267: 48 83 c1 20 add $0x20,%rcx
|
||||||
|
18000026b: 0f 59 02 mulps (%rdx),%xmm0
|
||||||
|
18000026e: 0f 59 4a 10 mulps 0x10(%rdx),%xmm1
|
||||||
|
180000272: 41 0f 11 00 movups %xmm0,(%r8)
|
||||||
|
180000276: 41 0f 11 48 10 movups %xmm1,0x10(%r8)
|
||||||
|
18000027b: 48 rex.W
|
||||||
|
18000027c: 83 .byte 0x83
|
||||||
|
18000027d: c2 .byte 0xc2
|
||||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user