消失的岛屿
题目来源: 2019_看雪CTF_晋级赛Q2
题目描述:flag{xxxxxxxxxxxx} 本题考查了修改过编码table的base64算法,重点在于单个字符的变换强度。真实的编码table从头到尾不会在内存中显示。所以攻击者需要先将断点设置在charEncrypt处,找出编码的变换规则,然后找到修改过后的编码table,根据变换规则推导出真正的编码table。
附件是一个,额,exe
看来是和re结合的题
用IDA32位打开,F5进入主程序
base64_encode
int __cdecl base64_encode(const uint8_t *bindata, char *base64, int binlength)
{
int v3; // eax@2
char *v4; // ebx@2
int v5; // eax@3
int v6; // ST0C_4@3
char *v7; // ebx@3
int v8; // eax@3
int v9; // eax@4
char *v10; // ebx@4
int v11; // eax@5
int v12; // eax@6
char *v13; // ebx@6
uint8_t current; // [sp+Bh] [bp-Dh]@2
uint8_t currenta; // [sp+Bh] [bp-Dh]@4
int j; // [sp+Ch] [bp-Ch]@1
int ja; // [sp+Ch] [bp-Ch]@2
int jb; // [sp+Ch] [bp-Ch]@4
int i; // [sp+10h] [bp-8h]@1
i = 0;
j = 0;
while ( i < binlength )
{
v3 = j;
ja = j + 1;
v4 = &base64[v3];
*v4 = charEncrypt((bindata[i] >> 2) & 0x3F);
current = 16 * bindata[i] & 0x30;
if ( i + 1 >= binlength )
{
v5 = ja;
v6 = ja + 1;
v7 = &base64[v5];
*v7 = charEncrypt(current);
base64[v6] = 61;
v8 = v6 + 1;
j = v6 + 2;
base64[v8] = 61;
break;
}
v9 = ja;
jb = ja + 1;
v10 = &base64[v9];
*v10 = charEncrypt((bindata[i + 1] >> 4) | current);
currenta = 4 * bindata[i + 1] & 0x3C;
if ( i + 2 >= binlength )
{
base64[jb] = charEncrypt(currenta);
v11 = jb + 1;
j = jb + 2;
base64[v11] = 61;
break;
}
base64[jb] = charEncrypt((bindata[i + 2] >> 6) | currenta);
v12 = jb + 1;
j = jb + 2;
v13 = &base64[v12];
*v13 = charEncrypt(bindata[i + 2] & 0x3F);
i += 3;
}
base64[j] = 0;
return j;
}
charEncrypt
int __cdecl charEncrypt(int data)
{
int result; // eax@3
int dataa; // [sp+18h] [bp+8h]@1
dataa = aTuvwxtulmnopqr[data];
if ( dataa <= 64 || dataa > 90 )
{
if ( dataa <= 96 || dataa > 122 )
{
if ( dataa <= 47 || dataa > 57 )
{
if ( dataa == 43 )
{
result = 119;
}
else
{
if ( dataa == 47 )
dataa = 121;
result = dataa;
}
}
else
{
result = dataa + 50;
}
}
else
{
result = dataa - 64;
}
}
else
{
result = 155 - dataa;
}
return result;
}
可以看出来 是Base加密,但是
但是这里加密表依旧不是这里的tuvwxTUlmnopqrs7YZabcdefghij8yz0123456VWXkABCDEFGHIJKLMNOPQRS9+/
而是在这个基础上通过函数进行了一些变化,也就是charEncrypt函数
通过读代码我们可以推断出
加密表是45678GF,-./0123iBA!"#$%&'()*j9:bcdefghEDC+ZYXWVUTSRQPONMLKJIHkwy
并不是base64标准的ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
所以我们需要将密文!NGV%,$h1f4S3%2P(hkQ94==
解密
得到KanXue2019ctf_st
达芬奇密码
题目描述:恭喜你成功进入金字塔,但这并不是结束。一阵冷风慢慢的由脚底爬到背后,让人不由得一哆嗦,映入眼帘的是两排高耸的圆形柱子,柱子上刻着古埃及的种种神话与传说。空气中弥漫着寂静的味道,只能听到你的脚步声和火把上火苗孜孜爆裂的声音。
沿着这排柱子走去,看到了道路那头坐着一扇长方形的门。门上刻着一串古埃及文字:“open the door”,下方是一串密密麻麻的数字和符号…能量宝石就藏在门后,只有破解这些密码,才能打开这扇门,成功获取能量宝石。
附件打开是.exe文件
IDA打开
并没有找到main函数
字符也没有查到flag等词语
尝试动态调试
由于运行程序里有check,点击会出现Wrong!
查找Wrong
我依旧没找到,换OD
再返回IDA,按地址就可以找到了
进入函数
int __thiscall sub_531EA0(CWnd *this)
{
CWnd *v1; // esi@1
int v2; // eax@2
WCHAR String; // [sp+Ch] [bp-310h]@1
char v5; // [sp+Eh] [bp-30Eh]@1
char v6; // [sp+20Ch] [bp-110h]@1
char v7; // [sp+20Dh] [bp-10Fh]@1
DWORD v8; // [sp+30Ch] [bp-10h]@5
CWnd *v9; // [sp+310h] [bp-Ch]@1
int v10; // [sp+314h] [bp-8h]@7
DWORD flOldProtect; // [sp+318h] [bp-4h]@5
v1 = this;
v9 = this;
String = 0;
memset(&v5, 0, 0x1FEu);
v6 = 0;
memset(&v7, 0, 0xFFu);
CWnd::GetDlgItemTextW(v1, 1000, &String, 20);
if ( wcslen(&String) == 16 )
{
v2 = 0;
while ( !(*(&String + v2) & 0xFF00) )
{
*(&v6 + v2) = *((_BYTE *)&String + 2 * v2);
if ( ++v2 >= 16 )
{
v8 = 64;
flOldProtect = 0;
VirtualProtect(sub_5310E0, 0xD17u, 0x40u, &flOldProtect);
if ( GetLastError() )
return CWnd::MessageBoxW(v1, L"Wrong!", 0, 0);
qmemcpy(sub_5310E0, &byte_6947B8, 0x330u);
VirtualProtect(sub_5310E0, 0xD17u, flOldProtect, &v8);
if ( !GetLastError() )
{
v10 = 0;
v10 = sub_5310E0(&v6);
if ( v10 == 1 )
return CWnd::MessageBoxW(v9, L"Congratulations! You are right!", 0, 0);
}
v1 = v9;
return CWnd::MessageBoxW(v1, L"Wrong!", 0, 0);
}
}
}
return CWnd::MessageBoxW(v1, L"Wrong!", 0, 0);
}
读代码
发现
要求输入字符串长度为16、是ascii码
之后会将wchar转换为char并存储到另一个字符串中,之后操作的都是char类型的字符串
然后就用到函数为sub_5310E0,大小为0xD17u
通过查找sub_5310E0的引用,发现sub_5310E0起始的大小为0x330的数据之前在函数sub_5310E0中
打开sub_5310E0
signed int sub_5310E0()
{
__int16 v0; // bx@1
__int16 v1; // bx@1
__int16 v2; // dx@1
unsigned __int8 v3; // ST14_1@1
char v4; // al@1
__int16 v5; // bx@1
__int16 v6; // dx@1
unsigned __int8 v7; // ST14_1@1
char v8; // al@1
__int16 v9; // dx@1
__int16 v10; // dx@1
__int16 v11; // dx@1
__int16 v12; // dx@1
__int16 v13; // dx@1
unsigned __int8 v14; // ST14_1@1
char v15; // al@1
__int16 v16; // dx@1
__int16 v17; // dx@1
__int16 v18; // dx@1
__int16 v19; // dx@1
unsigned __int8 v20; // ST14_1@1
char v21; // al@1
__int16 v22; // dx@1
__int16 v23; // dx@1
__int16 v24; // dx@1
__int16 v25; // dx@1
unsigned __int8 v26; // ST14_1@1
char v27; // al@1
__int16 v28; // dx@1
__int16 v29; // dx@1
__int16 v30; // dx@1
__int16 v31; // dx@1
unsigned __int8 v32; // ST14_1@1
char v33; // al@1
__int16 v34; // dx@1
__int16 v35; // dx@1
__int16 v36; // dx@1
__int16 v37; // dx@1
unsigned __int8 v38; // ST14_1@1
char v39; // al@1
__int16 v40; // dx@1
__int16 v41; // dx@1
__int16 v42; // dx@1
__int16 v43; // dx@1
unsigned __int8 v44; // ST14_1@1
char v45; // al@1
__int16 v46; // dx@1
__int16 v47; // dx@1
__int16 v48; // dx@1
__int16 v49; // dx@1
unsigned __int8 v50; // ST14_1@1
char v51; // al@1
__int16 v52; // bx@1
__int16 v53; // dx@1
__int16 v54; // dx@1
__int16 v55; // dx@1
unsigned __int8 v56; // ST14_1@1
char v57; // al@1
__int16 v58; // dx@1
__int16 v59; // dx@1
__int16 v60; // dx@1
__int16 v61; // dx@1
__int16 v62; // dx@1
unsigned __int8 v63; // ST14_1@1
char v64; // al@1
__int16 v65; // dx@1
__int16 v66; // dx@1
__int16 v67; // dx@1
__int16 v68; // dx@1
__int16 v69; // dx@1
unsigned __int8 v70; // ST14_1@1
char v71; // al@1
__int16 v72; // dx@1
__int16 v73; // dx@1
__int16 v74; // dx@1
__int16 v75; // dx@1
__int16 v76; // ST14_2@1
__int16 v77; // dx@1
__int16 v78; // cx@1
__int16 v79; // cx@1
__int16 v80; // cx@1
__int16 v81; // cx@1
int v82; // eax@1
int v83; // eax@4
int v85; // [sp+18h] [bp-44h]@1
int v86; // [sp+1Ch] [bp-40h]@1
int v87; // [sp+20h] [bp-3Ch]@1
int v88; // [sp+24h] [bp-38h]@1
char v89; // [sp+28h] [bp-34h]@1
unsigned __int8 v90[12]; // [sp+29h] [bp-33h]@1
int v91; // [sp+31h] [bp-2Bh]@1
int v92; // [sp+35h] [bp-27h]@1
int v93; // [sp+3Ch] [bp-20h]@1
int v94; // [sp+40h] [bp-1Ch]@1
int v95; // [sp+44h] [bp-18h]@1
int v96; // [sp+48h] [bp-14h]@1
int v97; // [sp+4Ch] [bp-10h]@1
int v98; // [sp+50h] [bp-Ch]@1
int v99; // [sp+54h] [bp-8h]@1
int v100; // [sp+58h] [bp-4h]@1
v93 = 50462976;
v97 = 0;
v98 = 0;
v99 = 0;
v100 = 0;
v91 = 0;
v92 = 0;
v87 = 50462976;
v94 = 117835012;
v95 = 185207048;
v88 = 117835012;
v85 = 185207048;
v96 = 252579084;
v86 = 252579084;
v0 = (unsigned __int8)(BYTE1(v86)
+ BYTE1(v86)
+ BYTE1(v88)
+ ((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12) >> 8)
+ 14) >> 8)
+ 16) >> 8)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14) >> 8)
+ 16)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12)
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11) >> 8)
+ 12) >> 8));
*(_DWORD *)&v90[4] = (unsigned __int8)(BYTE1(v86)
+ v0
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14) >> 8)
+ 16
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8) + 14)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10) >> 8)
+ 11) >> 8)
+ 12)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10) >> 8)
+ 11)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12 + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10) + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8) + 10) >> 8)
+ 11) >> 8)
+ 12) >> 8));
v1 = (char)((unsigned __int16)(BYTE1(v86)
+ v0
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14) >> 8)
+ 16
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8) + 14)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10) >> 8)
+ 11) >> 8)
+ 12)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10) >> 8)
+ 11)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12 + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10)
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11) >> 8)
+ 12) >> 8)) >> 8);
v2 = (unsigned __int8)(((unsigned __int16)(BYTE1(v86)
+ BYTE1(v88)
+ ((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14) >> 8)
+ 16) >> 8)) >> 8)
+ 20
+ ((unsigned __int16)(BYTE1(v86)
+ (unsigned __int8)(BYTE1(v86)
+ BYTE1(v88)
+ ((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8) + 14) >> 8)
+ 16) >> 8))
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8) + 14) >> 8)
+ 16)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8) + 14)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10) >> 8)
+ 11) >> 8)
+ 12) >> 8)) >> 8)
+ 14)
+ v1
+ 14;
v3 = ((unsigned __int16)(BYTE1(v86)
+ BYTE1(v88)
+ ((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12) >> 8)
+ 14) >> 8)
+ 16) >> 8)) >> 8)
+ 20
+ ((unsigned __int16)(BYTE1(v86)
+ (unsigned __int8)(BYTE1(v86)
+ BYTE1(v88)
+ ((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14) >> 8)
+ 16) >> 8))
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14) >> 8)
+ 16)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12)
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11) >> 8)
+ 12) >> 8)) >> 8)
+ 14
+ v1
+ 14;
v4 = HIBYTE(v2)
+ 15
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v86)
+ BYTE1(v88)
+ ((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8) + 14) >> 8)
+ 16) >> 8)) >> 8)
+ 20)
+ ((unsigned __int16)(BYTE1(v86)
+ (unsigned __int8)(BYTE1(v86)
+ BYTE1(v88)
+ ((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8) + 14) >> 8)
+ 16) >> 8))
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8) + 14) >> 8)
+ 16)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8) + 14)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10) >> 8)
+ 11) >> 8)
+ 12) >> 8)) >> 8)
+ 14) >> 8)
+ 15
+ ((unsigned __int16)(((unsigned __int16)(BYTE1(v86)
+ BYTE1(v88)
+ ((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14) >> 8)
+ 16) >> 8)) >> 8)
+ 20) >> 8)
+ 22;
v5 = (unsigned __int8)(((unsigned __int16)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14) >> 8)
+ 16
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12) >> 8)
+ 14)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11) >> 8)
+ 12
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12) >> 8)
+ 14
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12)
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11) >> 8)
+ 12);
v6 = v3
+ ((unsigned __int16)(BYTE1(v86)
+ v90[4]
+ ((unsigned __int16)(v5
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10) >> 8)
+ 11
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12 + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10) + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8) + 10) >> 8)
+ 11)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12 + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10 + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8) + 10)
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11) >> 8)
+ 12) >> 8)) >> 8)
+ 14;
v7 = v3
+ ((unsigned __int16)(BYTE1(v86)
+ v90[4]
+ ((unsigned __int16)(v5
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10) >> 8)
+ 11
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12 + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10) + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8) + 10) >> 8)
+ 11)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12 + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10 + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8) + 10)
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11) >> 8)
+ 12) >> 8)) >> 8)
+ 14;
v8 = HIBYTE(v6) + 15 + v4;
v9 = (char)((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8);
v10 = (unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12)
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11)
+ v9
+ 11;
v90[2] = v10;
v11 = (unsigned __int8)(v5
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12) >> 8)
+ 14
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12)
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12 + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10)
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11) >> 8)
+ 12)
+ SHIBYTE(v10)
+ 12;
v90[3] = v11;
v12 = BYTE1(v86)
+ (unsigned __int8)(BYTE1(v86)
+ v90[4]
+ ((unsigned __int16)(v5
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) >> 8)
+ 14
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12) + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10) >> 8)
+ 11
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12 + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10) + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8) + 10) >> 8)
+ 11)
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8) + 12 + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8) + 10 + ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8) + 10)
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11) >> 8)
+ 12) >> 8))
+ SHIBYTE(v11);
v90[4] = v12;
v13 = v7 + SHIBYTE(v12) + 14;
v14 = v13;
v15 = HIBYTE(v13) + 15 + v8;
v16 = v90[2]
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11;
v90[2] += ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11;
v17 = v90[3] + SHIBYTE(v16) + 12;
v90[3] = v17;
v18 = BYTE1(v86) + v90[4] + SHIBYTE(v17);
v90[4] = v18;
v19 = v14 + SHIBYTE(v18) + 14;
v20 = v19;
v21 = HIBYTE(v19) + 15 + v15;
v22 = v90[2]
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11;
v90[2] += ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11;
v23 = v90[3] + SHIBYTE(v22) + 12;
v90[3] = v23;
v24 = BYTE1(v86) + v90[4] + SHIBYTE(v23);
v90[4] = v24;
v25 = v20 + SHIBYTE(v24) + 14;
v26 = v25;
v27 = HIBYTE(v25) + 15 + v21;
v28 = v90[2]
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11;
v90[2] += ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11;
v29 = v90[3] + SHIBYTE(v28) + 12;
v90[3] = v29;
v30 = BYTE1(v86) + v90[4] + SHIBYTE(v29);
v90[4] = v30;
v31 = v26 + SHIBYTE(v30) + 14;
v32 = v31;
v33 = HIBYTE(v31) + 15 + v27;
v34 = v90[2]
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11;
v90[2] += ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11;
v35 = v90[3] + SHIBYTE(v34) + 12;
v90[3] = v35;
v36 = BYTE1(v86) + v90[4] + SHIBYTE(v35);
v90[4] = v36;
v37 = v32 + SHIBYTE(v36) + 14;
v38 = v37;
v39 = HIBYTE(v37) + 15 + v33;
v40 = v90[2]
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11;
v90[2] += ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11;
v41 = v90[3] + SHIBYTE(v40) + 12;
v90[3] = v41;
v42 = BYTE1(v86) + v90[4] + SHIBYTE(v41);
v90[4] = v42;
v43 = v38 + SHIBYTE(v42) + 14;
v44 = v43;
v45 = HIBYTE(v43) + 15 + v39;
v46 = v90[2]
+ ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11;
v90[2] += ((unsigned __int16)((unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10)
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11;
v47 = v90[3] + SHIBYTE(v46) + 12;
v90[3] = v47;
v48 = BYTE1(v86) + v90[4] + SHIBYTE(v47);
v90[4] = v48;
v49 = v44 + SHIBYTE(v48) + 14;
v50 = v49;
v51 = HIBYTE(v49) + 15 + v45;
v52 = (unsigned __int8)(((unsigned __int16)(BYTE1(v85) + BYTE1(v87)) >> 8)
+ 12
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85) + (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85) + BYTE1(v85) + BYTE1(v85) + BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10);
v90[1] = v52
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10;
v53 = v90[3]
+ ((unsigned __int16)(v90[2]
+ ((unsigned __int16)(v52
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11) >> 8)
+ 12;
v90[3] += ((unsigned __int16)(v90[2]
+ ((unsigned __int16)(v52
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11) >> 8)
+ 12;
v54 = BYTE1(v86) + v90[4] + SHIBYTE(v53);
v90[4] = v54;
v55 = v50 + SHIBYTE(v54) + 14;
v56 = v55;
v57 = HIBYTE(v55) + 15 + v51;
v58 = v90[1]
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10;
v90[1] += ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10;
v59 = (unsigned __int8)(v90[2]
+ ((unsigned __int16)(v52
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10) >> 8)
+ 11)
+ SHIBYTE(v58)
+ 11;
v90[2] = v59;
v60 = v90[3] + SHIBYTE(v59) + 12;
v90[3] = v60;
v61 = BYTE1(v86) + v90[4] + SHIBYTE(v60);
v90[4] = v61;
v62 = v56 + SHIBYTE(v61) + 14;
v63 = v62;
v64 = HIBYTE(v62) + 15 + v57;
v65 = v90[1]
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10;
v90[1] += ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10;
v66 = v90[2] + SHIBYTE(v65) + 11;
v90[2] = v66;
v67 = v90[3] + SHIBYTE(v66) + 12;
v90[3] = v67;
v68 = BYTE1(v86) + v90[4] + SHIBYTE(v67);
v90[4] = v68;
v69 = v63 + SHIBYTE(v68) + 14;
v70 = v69;
v71 = HIBYTE(v69) + 15 + v64;
v72 = v90[1]
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10;
v90[1] += ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10;
v73 = v90[2] + SHIBYTE(v72) + 11;
v90[2] = v73;
v74 = v90[3] + SHIBYTE(v73) + 12;
v90[3] = v74;
v75 = BYTE1(v86) + v90[4] + SHIBYTE(v74);
v90[4] = v75;
v76 = v70 + SHIBYTE(v75) + 14;
v89 = -128;
v90[0] = BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87);
v77 = v90[1]
+ ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10;
v90[1] += ((unsigned __int16)(BYTE1(v85)
+ (unsigned __int8)(BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v85)
+ BYTE1(v87))) >> 8)
+ 10;
v78 = v90[2] + SHIBYTE(v77) + 11;
v90[2] += HIBYTE(v77) + 11;
v79 = v90[3] + SHIBYTE(v78) + 12;
v90[3] = v79;
v80 = BYTE1(v86) + v90[4] + SHIBYTE(v79);
v90[4] = v80;
v81 = (unsigned __int8)v76 + SHIBYTE(v80) + 14;
v90[5] = v81;
v90[6] = HIBYTE(v81) + 15 + HIBYTE(v76) + 15 + v71;
v82 = 0;
while ( *(&v89 + v82) == *((_BYTE *)&v94 + v82) )
{
if ( ++v82 >= 8 )
{
v83 = 0;
while ( *((_BYTE *)&v87 + v83) == *((_BYTE *)&v85 + v83) )
{
if ( ++v83 >= 8 )
return 0;
}
return -1;
}
}
return -1;
}
读程序
发现代码实现了2**128以内的大数运算,有乘法、减法、判断等
有大佬非常简练的描述出来
p,q为正整数
(p*p) - (q*q*7) == 8
p >= 2**56
p < 2**60
q >= 2**56
q < 2**64
佩尔方程有一种递推解的方法,可以用一组特解产生多组解
以上,取d=7,k=8,式1特解a=8,b=3,式3特解x3=6,y3=2,带入式4迭代14次即可。
p=385044246406735194
q=145533045678356702
然后从p,q逆推回去,细心一点,注册码为L3mZ2k9aZ0a36DMM