![]() |
eXeL@B —› Вопросы новичков —› Результат декомпилирования Hex-Ray |
Посл.ответ | Сообщение |
|
Создано: 22 декабря 2011 16:05 · Личное сообщение · #1 |
|
Создано: 22 декабря 2011 16:48 · Поправил: PE_Kill · Личное сообщение · #2 Прога на делфи/си билдере. llushr - расшифровывается как long long unsigned shift right, т.е. на делфи это var v167_v168: UInt64; v15 : Cardinal; v166 : Cardinal; begin v15 := v167_v168 shr (63 - v14 - 8 * v13); v166 := v166 or (v15 and 1) shl v12; v12 := v12 + 1; end; Дальше уже оптимизировать некуда, только если знать досконально алгоритм. Так что Hex-Ray тут сработал на 5+, оптимизировать нечего. ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 22 декабря 2011 20:55 · Личное сообщение · #3 |
|
Создано: 22 декабря 2011 21:04 · Личное сообщение · #4 WORD v45 = (v73 >> 16) & 0xFFFF; WORD v43 = v73 & 0xFFFF; из dword делается два word ----- ...или ты работаешь хорошо, или ты работаешь много... ![]() |
|
Создано: 23 декабря 2011 09:17 · Личное сообщение · #5 |
|
Создано: 23 декабря 2011 11:21 · Личное сообщение · #6 |
|
Создано: 23 декабря 2011 12:26 · Личное сообщение · #7 |
|
Создано: 23 декабря 2011 17:56 · Поправил: PE_Kill · Личное сообщение · #8 BfoX пишет: WORD v45 = (v73 >> 16) & 0xFFFF; При сдвиге вправо, слева и так будут нули, & 0xFFFF тут лишнее. BfoX пишет: WORD v43 = v73 & 0xFFFF; Здесь тоже лишнее, при присвоении 2 байтовой переменной 4 байтовой, компилятор сам срежет левую часть. yanus0 пишет: LOWORD(v45) = HIWORD(v73); LOWORD(v43) = v73; Если в Delphi то будет так: var v43, v45, v73 : Cardinal; begin v73 := $12345678; PWord(@v45)^ := v73 shr 16; PWord(@v43)^ := v73; end; ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 26 декабря 2011 11:51 · Личное сообщение · #9 |
![]() |
eXeL@B —› Вопросы новичков —› Результат декомпилирования Hex-Ray |