4679 lines
104 KiB
C++
4679 lines
104 KiB
C++
|
||
#include "math.h"
|
||
#include "float.h"//for _isnan
|
||
#include "BaseFun.h"
|
||
#include "wvst.h"
|
||
int __cdecl fir(double *in_buffer,int array_num,int wave_len,double mfl,double fl,double fh);
|
||
int Index_table[16]={
|
||
-1,
|
||
-1,
|
||
-1,
|
||
-1,
|
||
0x02,
|
||
0x04,
|
||
0x06,
|
||
0x08,
|
||
-1,
|
||
-1,
|
||
-1,
|
||
-1,
|
||
0x02,
|
||
0x04,
|
||
0x06,
|
||
0x08
|
||
};
|
||
|
||
DWORD value_table[90]={
|
||
7,
|
||
8,
|
||
9,
|
||
0xA,
|
||
0xB,
|
||
0xC,
|
||
0xD,
|
||
0xE,
|
||
0x10,
|
||
0x11,
|
||
0x13,
|
||
0x15,
|
||
0x17,
|
||
0x19,
|
||
0x1C,
|
||
0x1F,
|
||
0x22,
|
||
0x25,
|
||
0x29,
|
||
0x2D,
|
||
0x32,
|
||
0x37,
|
||
0x3C,
|
||
0x42,
|
||
0x49,
|
||
0x50,
|
||
0x58,
|
||
0x61,
|
||
0x6B,
|
||
0x76,
|
||
0x82,
|
||
0x8F,
|
||
0x9D,
|
||
0xAD,
|
||
0xBE,
|
||
0xD1,
|
||
0xE6,
|
||
0xFD,
|
||
0x117,
|
||
0x133,
|
||
0x151,
|
||
0x173,
|
||
0x198,
|
||
0x1C1,
|
||
0x1EE,
|
||
0x220,
|
||
0x256,
|
||
0x292,
|
||
0x2D4,
|
||
0x31C,
|
||
0x36C,
|
||
0x3C3,
|
||
0x424,
|
||
0x48E,
|
||
0x502,
|
||
0x583,
|
||
0x610,
|
||
0x6AB,
|
||
0x756,
|
||
0x812,
|
||
0x8E0,
|
||
0x9C3,
|
||
0xABD,
|
||
0xBD0,
|
||
0xCFF,
|
||
0xE4C,
|
||
0xFBA,
|
||
0x114C,
|
||
0x1307,
|
||
0x14EE,
|
||
0x1706,
|
||
0x1954,
|
||
0x1BDC,
|
||
0x1EA5,
|
||
0x21B6,
|
||
0x2515,
|
||
0x28CA,
|
||
0x2CDF,
|
||
0x315B,
|
||
0x364B,
|
||
0x3BB9,
|
||
0x41B2,
|
||
0x4844,
|
||
0x4F7E,
|
||
0x5771,
|
||
0x602F,
|
||
0x69CE,
|
||
0x7462,
|
||
0x7FFF
|
||
};
|
||
|
||
int MFL=19,MFH=20,DFL=21,DFH=22;
|
||
int par[]={
|
||
0,0,//1
|
||
0,0,//2
|
||
0,0x3f000000,//3
|
||
0,1,//4
|
||
0,8,//5
|
||
0,0x190,//6
|
||
0x205BC01A,0x40345141,//7
|
||
0,0,//8
|
||
0x548A9BD0,0x40247B18,//9
|
||
0x205BC01A,0x40445141,//10
|
||
0,0,//11
|
||
0x0C6A7EF9E,0x4022774B,//12
|
||
0,0x3FE00000,//13=1
|
||
0,0,//14
|
||
0,2,//15
|
||
|
||
0,0x3FF00000,//16=1
|
||
0,0x40000000,//17=2
|
||
0,0,//18
|
||
0,0,//19
|
||
|
||
0,0,//20 //MFL
|
||
0xCCCCCCCD,0x3FDCCCCC,//21 //MFH=0.45
|
||
0,0,//22 //DFL
|
||
0xCCCCCCCD,0x3FDCCCCC,//23 //DFH=0.45
|
||
|
||
0,0x3FF00000,//24=1
|
||
0,0x3FF00000,//28
|
||
0,0x3FF00000,//29
|
||
0,0x3FF00000,//30
|
||
0,0x3FF00000,//31
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000,
|
||
0,0x3FF00000//58
|
||
};
|
||
|
||
void polishing_head_data(double *in_buffer,int array_num,int wave_len,int flag)
|
||
{
|
||
for(int i=0;i<array_num;i++) {
|
||
int array_pos=i*wave_len;
|
||
if(flag>0) {
|
||
for(int j=0;j<4;j++) {
|
||
in_buffer[array_pos+j]=in_buffer[array_pos+4];
|
||
}
|
||
}
|
||
else if(flag<0){
|
||
for(int j=0;j<4;j++) {
|
||
in_buffer[wave_len-1-j+array_pos]=in_buffer[array_pos+wave_len-5];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
void fun_a_b(double *x1,double *x2,int wave_len,double *mult_val,double *add_val)
|
||
{
|
||
*add_val=0;
|
||
*mult_val=0;
|
||
double x1_mul_x2=0;
|
||
double x1_mul_x1=0;
|
||
double x2_add=0;
|
||
double x1_add=0;
|
||
for(int i=0;i<wave_len;i++) {
|
||
x1_add+=x1[i];
|
||
x1_mul_x1+=x1[i]*x1[i];
|
||
x2_add+=x2[i];
|
||
x1_mul_x2+=x1[i]*x2[i];
|
||
}
|
||
double d=x1_add*x1_add-x1_mul_x1*wave_len;
|
||
if(d!=0.0) {
|
||
*add_val=(x1_add*x1_mul_x2-x1_mul_x1*x2_add)/d;
|
||
*mult_val=(x1_add*x2_add-x1_mul_x2*wave_len)/d;
|
||
}
|
||
}
|
||
void method2(double *in_buffer,int array_num,int wave_len,int method)
|
||
{
|
||
double *temp_buffer=new double[wave_len+1];
|
||
double mult_val=0;
|
||
double add_val=0;
|
||
for(int i=0;i<wave_len;i++) temp_buffer[i]=i;
|
||
for(int i=0;i<array_num;i++) {
|
||
int array_pos=i*wave_len;
|
||
fun_a_b(temp_buffer,&in_buffer[array_pos],wave_len,&mult_val,&add_val);
|
||
for(int j=0;j<wave_len;j++) {
|
||
in_buffer[array_pos+j]-=mult_val*temp_buffer[j]+add_val;
|
||
}
|
||
}
|
||
delete temp_buffer;
|
||
}
|
||
int delay(double *in_buffer,int array_num,int wave_len,int input_par)
|
||
{
|
||
if(input_par==0) return 0;
|
||
double *temp=new double[wave_len+1];
|
||
for(int i=0;i<array_num;i++) {
|
||
memset(temp,0,wave_len*8);
|
||
int array_pos=i*wave_len;
|
||
for(int j=0;j<wave_len;j++) {
|
||
int par=j-input_par;
|
||
if(par>=0&&par<wave_len) {
|
||
temp[j]=in_buffer[par+array_pos];
|
||
}
|
||
else if(par<0) {
|
||
temp[j]=in_buffer[array_pos];
|
||
}
|
||
else if(par>wave_len-1) {
|
||
temp[j]=in_buffer[array_pos+wave_len-1];
|
||
}
|
||
}
|
||
for(int j=0;j<wave_len;j++) {
|
||
in_buffer[array_pos+j]=temp[j];
|
||
}
|
||
}
|
||
delete temp;
|
||
return 1;
|
||
}
|
||
void Add_Array(double *in_buffer,int array_num,int wave_len,double *out_buffer)//没用到
|
||
{
|
||
double var_14;
|
||
int array_pos;
|
||
for(int i=0;i<array_num;i++) {
|
||
int array_pos=i*wave_len;
|
||
out_buffer[i]=0;
|
||
for(int j=0;j<wave_len;j++) {
|
||
if(in_buffer[array_pos+j]>0) {
|
||
var_14=in_buffer[array_pos+j];
|
||
}
|
||
else {
|
||
var_14=-in_buffer[array_pos+j];
|
||
}
|
||
out_buffer[i]+=var_14;
|
||
}
|
||
}
|
||
}
|
||
void Qurt(double *par)//没用到
|
||
{
|
||
for(int array_num=0;array_num<8;array_num++) {
|
||
double add_value=0.0;
|
||
int j=0;
|
||
int a_b_c_d=0;
|
||
for(a_b_c_d=0;a_b_c_d<4;a_b_c_d++) {
|
||
if(par[array_num*4+a_b_c_d]!=0.0) {
|
||
add_value+=par[array_num+a_b_c_d];
|
||
j++;
|
||
}
|
||
}
|
||
if(j!=0) add_value/=j;
|
||
for(a_b_c_d=0;a_b_c_d<4;a_b_c_d++) {
|
||
double Rij=1;
|
||
if(par[array_num*4+a_b_c_d]!=0.0) Rij=add_value/par[array_num*4+a_b_c_d];
|
||
par[array_num*4+a_b_c_d]=Rij;
|
||
}
|
||
}
|
||
}
|
||
void Compute_Input_Par(MyDataTypeEnum vVdl,int x_delay,int y_delay,int ndim)
|
||
{
|
||
int off=0;
|
||
int d_len=400;
|
||
int d_byte=202;
|
||
if(ndim==19788) {
|
||
d_len=340;
|
||
d_byte=206;
|
||
off=4;
|
||
}
|
||
double *pp=(double *)&par[0];
|
||
int nu=(ndim-12)/d_byte;
|
||
short *temp=(short *)malloc(nu*d_len*2+1);
|
||
short te[1024];
|
||
//wvst_dipole
|
||
|
||
int t=vVdl.vushort[4];
|
||
float tt=t/1000./20.;
|
||
t=tt;
|
||
if(t<1) t=1;
|
||
pp[6]=t*20.3174;
|
||
pp[7]=vVdl.vshort[2]*20.3174;
|
||
|
||
t=vVdl.vushort[5];
|
||
tt=t/1000./20.;
|
||
t=tt;
|
||
if(t<1) t=1;
|
||
|
||
pp[9]=t*20.3174;
|
||
pp[10]=vVdl.vshort[3]*20.3174;
|
||
|
||
int flag=0;
|
||
if(pp[15]>0) {
|
||
flag=pp[15]+0.5;//取整
|
||
}
|
||
else {
|
||
flag=pp[15]-0.5;//取整
|
||
}
|
||
double temp_monpole_sampling_dela=0.0;
|
||
if(flag==0) {
|
||
pp[17]=0;
|
||
temp_monpole_sampling_dela=pp[7];
|
||
}
|
||
else if(flag==1) {
|
||
pp[17]=vVdl.vshort[2];
|
||
temp_monpole_sampling_dela=0;
|
||
}
|
||
else {
|
||
pp[17]=int(pp[15]/pp[6]);
|
||
temp_monpole_sampling_dela=pp[17]/pp[6]+pp[7];
|
||
}
|
||
|
||
double temp_dipole_sampling_dela=0.0;
|
||
double x_delay_value=x_delay;
|
||
|
||
if(x_delay<y_delay) x_delay_value=y_delay;
|
||
else if(x_delay>=y_delay) x_delay_value=x_delay;
|
||
|
||
if(pp[16]>0) {
|
||
flag=pp[16]+0.5;
|
||
}
|
||
else {
|
||
flag=pp[16]-0.5;
|
||
}
|
||
|
||
if(flag==0) {
|
||
pp[18]=0;
|
||
temp_dipole_sampling_dela=pp[10];
|
||
}
|
||
else if(flag==1) {
|
||
pp[18]=vVdl.vshort[3];
|
||
temp_dipole_sampling_dela=0;
|
||
}
|
||
else if(flag==2){
|
||
pp[18]=vVdl.vshort[3]-int(x_delay_value/pp[9]);
|
||
temp_dipole_sampling_dela=0;
|
||
}
|
||
else {
|
||
pp[18]=int(pp[16]/pp[9]);
|
||
temp_dipole_sampling_dela=pp[18]/pp[9]+pp[10];
|
||
}
|
||
|
||
pp[7]=temp_monpole_sampling_dela;
|
||
pp[10]=temp_dipole_sampling_dela;
|
||
|
||
if(par[27]>=0) {
|
||
free(temp);
|
||
return;
|
||
}
|
||
int i=0;
|
||
|
||
for(int j=0;j<8;j++) {//8
|
||
double *in_buff=new double[d_len*4];
|
||
for(int k=0;k<4;k++) {//a,b,c,d
|
||
int si=i*d_byte*4*8+j*4*d_byte+k*d_byte+0xe;
|
||
GetWvst((unsigned char*)&vVdl.vchar[si+off],&te[0],d_len);
|
||
short l=*(short*)&vVdl.vchar[si-2];
|
||
if(l>4) l=0;
|
||
if(l<0) l=0;
|
||
for(int n=0;n<d_len;n++)
|
||
{
|
||
in_buff[n]=(te[n]<<l);
|
||
}
|
||
}
|
||
polishing_head_data(in_buff,4,d_len,1);
|
||
method2(in_buff,4,d_len,2);
|
||
|
||
int p=pp[17];
|
||
delay(in_buff,4,d_len,p);
|
||
fir(in_buff,4,d_len,pp[6],pp[MFL],pp[MFH]);
|
||
Add_Array(in_buff,4,d_len,&pp[23+j*4]);
|
||
delete in_buff;
|
||
}
|
||
Qurt(&pp[23]);
|
||
free(temp);
|
||
}
|
||
void GetWvst(unsigned char *inbuf,short *outbuf,int len)
|
||
{
|
||
int in_data=0;
|
||
int IIndex=0;
|
||
int temp_table_value=0;
|
||
int value_index=0;
|
||
int OValue=0;
|
||
int First=0;
|
||
int i=0;
|
||
int OIndex=0;
|
||
int wave_leng=len;
|
||
int wave_leng_abs=abs(len);
|
||
temp_table_value=value_table[value_index];
|
||
if(wave_leng<=0) {
|
||
OIndex=wave_leng_abs;
|
||
}
|
||
else {
|
||
OIndex=-1;
|
||
}
|
||
i=0;
|
||
int bit_index=0;
|
||
int value=0;
|
||
while(i<wave_leng_abs) {
|
||
if(wave_leng<=0) OIndex--;
|
||
else OIndex++;
|
||
if(First!=0) {//lower 4 bits
|
||
bit_index=in_data&0xf;
|
||
}
|
||
else {//hight 4 bits
|
||
in_data=inbuf[IIndex];
|
||
IIndex++;
|
||
bit_index=((in_data>>4))&0xf;
|
||
}
|
||
First=!First;//one byte will be opentioned two
|
||
value_index=Index_table[bit_index]+value_index;
|
||
|
||
if(value_index<0) value_index=0;
|
||
if(value_index>0x58) value_index=0x58;
|
||
|
||
int maxhight_bit_index=bit_index&0x8;
|
||
bit_index=bit_index&0x7;
|
||
value=(temp_table_value>>3);//|0x70000000;
|
||
if(bit_index&0x4) {
|
||
value+=temp_table_value;
|
||
}
|
||
if(bit_index&0x2) {
|
||
value+=(temp_table_value>>1);//|0x80000000;
|
||
}
|
||
if(bit_index&0x1) {
|
||
value+=(temp_table_value>>2);//|0x30000000;
|
||
}
|
||
if(maxhight_bit_index) {
|
||
OValue-=value;
|
||
}
|
||
else {
|
||
OValue+=value;
|
||
}
|
||
if(OValue>= 32767) OValue= 32767;
|
||
if(OValue<=-32767) OValue=-32767;
|
||
temp_table_value=value_table[value_index];
|
||
outbuf[OIndex]=OValue;
|
||
i++;
|
||
}
|
||
}
|
||
///////////////////////////////
|
||
//
|
||
// Dpsx=>
|
||
// Dpsx[0]=>tool model
|
||
// Dpsx[1]=>Dipole_Source_frequency (HZ)
|
||
// Dpsx[2]=>Dipole_SourcePulse_delay (us)
|
||
//
|
||
//
|
||
void Get_Wave_Object(/*int mone_or_dipole,*/CMemRdWt *slf,float dep,int *outcurve,short *in_buffer,int ndim)
|
||
{
|
||
int d_len=400;
|
||
if(ndim==19788) d_len=340;
|
||
|
||
short *inbuffer=new short[8*d_len+1];
|
||
double *out_buffer=new double[8*d_len+1];
|
||
double *pp=(double *)&par[0];
|
||
int no=0;
|
||
// if(mone_or_dipole)
|
||
{
|
||
//MP
|
||
for(int array_num=0;array_num<8;array_num++) {
|
||
for(int num=0;num<d_len;num++) {
|
||
out_buffer[array_num*d_len+num]=0;
|
||
}
|
||
for(int a_b_c_d=0;a_b_c_d<4;a_b_c_d++) {
|
||
for(int num=0;num<d_len;num++) {
|
||
out_buffer[array_num*d_len+num]+=in_buffer[array_num*4*d_len+a_b_c_d*d_len+num];
|
||
}
|
||
}
|
||
}
|
||
|
||
fir(out_buffer,par[9],d_len,pp[6],pp[MFL],pp[MFH]);
|
||
for(int array_num=0;array_num<8;array_num++) {
|
||
for(int num=0;num<d_len;num++) {
|
||
inbuffer[array_num*d_len+num]=out_buffer[array_num*d_len+num];
|
||
}
|
||
}
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
///////////////////////////////////////////////////////////////////////////
|
||
//XX
|
||
for(int array_num=0;array_num<8;array_num++) {
|
||
for(int num=0;num<d_len;num++) {
|
||
out_buffer[array_num*d_len+num]=in_buffer[array_num*4*d_len+4*8*d_len+num]-in_buffer[array_num*4*d_len+4*8*d_len+2*d_len+num];
|
||
}
|
||
}
|
||
fir(out_buffer,par[9],d_len,pp[9],pp[DFL],pp[DFH]);
|
||
for(int array_num=0;array_num<8;array_num++) {
|
||
for(int num=0;num<d_len;num++) {
|
||
inbuffer[array_num*d_len+num]=out_buffer[array_num*d_len+num];
|
||
}
|
||
}
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
//////////////////////////////////////////////////////////////////////////
|
||
//XY
|
||
for(int array_num=0;array_num<8;array_num++) {
|
||
for(int num=0;num<d_len;num++) {
|
||
out_buffer[array_num*d_len+num]=in_buffer[array_num*4*d_len+4*8*d_len+d_len+num]-in_buffer[array_num*4*d_len+4*8*d_len+3*d_len+num];
|
||
}
|
||
}
|
||
fir(out_buffer,par[9],d_len,pp[9],pp[DFL],pp[DFH]);
|
||
for(int array_num=0;array_num<8;array_num++) {
|
||
for(int num=0;num<d_len;num++) {
|
||
inbuffer[array_num*d_len+num]=out_buffer[array_num*d_len+num];
|
||
}
|
||
}
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
////////////////////////////////////////////////////////////////////////
|
||
//YX
|
||
for(int array_num=0;array_num<8;array_num++) {
|
||
for(int num=0;num<d_len;num++) {
|
||
out_buffer[array_num*d_len+num]=in_buffer[array_num*4*d_len+2*4*8*d_len+num]-in_buffer[array_num*4*d_len+2*4*8*d_len+2*d_len+num];
|
||
}
|
||
}
|
||
fir(out_buffer,par[9],d_len,pp[9],pp[DFL],pp[DFH]);
|
||
for(int array_num=0;array_num<8;array_num++) {
|
||
for(int num=0;num<d_len;num++) {
|
||
inbuffer[array_num*d_len+num]=out_buffer[array_num*d_len+num];
|
||
}
|
||
}
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
///////////////////////////////////////////////////////////////////////
|
||
//YY
|
||
for(int array_num=0;array_num<8;array_num++) {
|
||
for(int num=0;num<d_len;num++) {
|
||
out_buffer[array_num*d_len+num]=in_buffer[array_num*4*d_len+2*4*8*d_len+d_len+num]-in_buffer[array_num*4*d_len+2*4*8*d_len+3*d_len+num];
|
||
}
|
||
}
|
||
fir(out_buffer,par[9],d_len,pp[9],pp[DFL],pp[DFH]);
|
||
for(int array_num=0;array_num<8;array_num++) {
|
||
for(int num=0;num<d_len;num++) {
|
||
inbuffer[array_num*d_len+num]=out_buffer[array_num*d_len+num];
|
||
}
|
||
}
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
}
|
||
//////////////////////////////////////////////////////////////////////////////////
|
||
// else
|
||
{
|
||
for(int m_x_y=0;m_x_y<3;m_x_y++) {
|
||
for(int a_b_c_d=0;a_b_c_d<4;a_b_c_d++) {
|
||
for(int array_num=0;array_num<8;array_num++) {
|
||
for(int num=0;num<d_len;num++) {
|
||
inbuffer[array_num*d_len+num]=in_buffer[m_x_y*4*d_len*8+array_num*4*d_len+a_b_c_d*d_len+num];
|
||
}
|
||
}
|
||
if(m_x_y==0) {
|
||
if(a_b_c_d==0) {
|
||
// MA=inbuffer;
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
}
|
||
else if(a_b_c_d==1) {
|
||
// MB=inbuffer;
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
}
|
||
else if(a_b_c_d==2) {
|
||
// MC=inbuffer;
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
}
|
||
else if(a_b_c_d==3) {
|
||
// MD=inbuffer;
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
}
|
||
}
|
||
else if(m_x_y==1) {
|
||
if(a_b_c_d==0) {
|
||
// XA=inbuffer;
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
}
|
||
else if(a_b_c_d==1) {
|
||
// XB=inbuffer;
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
}
|
||
else if(a_b_c_d==2) {
|
||
// XC=inbuffer;
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
}
|
||
else if(a_b_c_d==3) {
|
||
// XD=inbuffer;
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
}
|
||
}
|
||
else if(m_x_y==2) {
|
||
if(a_b_c_d==0) {
|
||
// YA=inbuffer;
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
}
|
||
else if(a_b_c_d==1) {
|
||
// YB=inbuffer;
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
}
|
||
else if(a_b_c_d==2) {
|
||
// YC=inbuffer;
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
}
|
||
else if(a_b_c_d==3) {
|
||
// YD=inbuffer;
|
||
slf->WriteWave(outcurve[no++],dep,1,inbuffer);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
delete inbuffer;
|
||
delete out_buffer;
|
||
}
|
||
|
||
void WriteWvst(CMemRdWt *m_Slf,float dep,int *outcurve,MyDataTypeEnum vVdl,int ndim)//main
|
||
{
|
||
int off=0;
|
||
int d_len=400;
|
||
int d_byte=202;
|
||
if(ndim==19788) {
|
||
d_len=340;
|
||
d_byte=206;
|
||
off=4;
|
||
}
|
||
int nu=(ndim-12)/d_byte;
|
||
short *temp=(short *)malloc(nu*d_len*2+1);
|
||
short te[1024];
|
||
double *pp=(double *)&par[0];
|
||
// pp[MFL]=0.0;
|
||
//wvst_dipole
|
||
for(int i=0;i<3;i++) {//m.x.y
|
||
for(int j=0;j<8;j++) {//8
|
||
for(int k=0;k<4;k++) {//a,b,c,d
|
||
int si=i*d_byte*4*8+j*4*d_byte+k*d_byte+0xe;
|
||
|
||
GetWvst((unsigned char*)&vVdl.vchar[si+off],&te[0],d_len);
|
||
|
||
double *in_buff=new double[d_len];
|
||
short l=*(short*)&vVdl.vchar[si-2];
|
||
if(l>4) l=0;
|
||
if(l<0) l=0;
|
||
for(int n=0;n<d_len;n++)
|
||
{
|
||
in_buff[n]=(te[n]<<l);
|
||
}
|
||
|
||
polishing_head_data(in_buff,1,d_len,1);
|
||
method2(in_buff,1,d_len,2);
|
||
|
||
|
||
if(!i) {
|
||
int p=pp[17];
|
||
delay(in_buff,1,d_len,p);
|
||
fir(in_buff,1,d_len,pp[6],pp[MFL],pp[MFH]);//main fir
|
||
}
|
||
else {
|
||
int p=pp[18];
|
||
delay(in_buff,1,d_len,p);
|
||
fir(in_buff,1,d_len,pp[9],pp[DFL],pp[DFH]);//main fir
|
||
}
|
||
for(int n=0;n<d_len;n++) {
|
||
temp[i*4*8*d_len+j*d_len*4+k*d_len+d_len-n-1]=pp[23+j*4+k]*in_buff[n];
|
||
}
|
||
|
||
float f=vVdl.vushort[4];
|
||
f/=1000.0;
|
||
f/=20.0;
|
||
int m=f;
|
||
float monopole_interval=m*20.3174;
|
||
f=vVdl.vushort[5];
|
||
f/=1000.0;
|
||
f/=20.0;
|
||
int d=f;
|
||
float dipole_interval=d*20.3174;
|
||
|
||
delete in_buff;
|
||
|
||
}
|
||
}
|
||
}
|
||
Get_Wave_Object(m_Slf,dep,outcurve,temp,ndim);
|
||
float Seq_no=temp[0];
|
||
m_Slf->WriteCurve(outcurve[17],dep,1,(char *)&Seq_no);
|
||
delete temp;
|
||
}
|
||
double mysin(double ff)
|
||
{
|
||
return sin(ff);
|
||
}
|
||
double mycos(double ff)
|
||
{
|
||
return cos(ff);
|
||
}
|
||
double mylog(double ff)
|
||
{
|
||
return log(ff);
|
||
}
|
||
long myftol(double ff)
|
||
{
|
||
return ff;
|
||
}
|
||
int dft(double *in_buffer,int *wave_len,int array_num,int eq_1,int eq_0)//int *wave_len __cdecl
|
||
{
|
||
double var_374 ;//;// -374h
|
||
int var_364;//;// -364h
|
||
int var_360;//;// -360h
|
||
int var_35C;//;// -35Ch
|
||
int var_358;//;// -358h
|
||
int var_354;//;// -354h
|
||
int var_350;//;// -350h
|
||
int var_34C;//;// -34Ch
|
||
int var_348;//;// -348h
|
||
int var_344;//;// -344h
|
||
int var_340;//;// -340h
|
||
int var_33C;//;// -33Ch
|
||
int var_338;//;// -338h
|
||
int var_334;//;// -334h
|
||
int var_330;//;// -330h
|
||
int var_32C;//;// -32Ch
|
||
int var_328;//;// -328h
|
||
int var_324;//;// -324h
|
||
int var_320;//;// -320h
|
||
int var_31C;//;// -31Ch
|
||
int var_318;//;// -318h
|
||
int var_314;//;// -314h
|
||
int out_val;//;// -310h
|
||
int save_const_1;// -30Ch
|
||
int temp[100];
|
||
int var_288;//;// -288h
|
||
int varmyexp;//;// -284h
|
||
double const3 ;//;// -280h
|
||
int var_278;//;// -278h
|
||
double var_274 ;//;// -274h
|
||
int var_26C;//;// -26Ch
|
||
int var_268;//;// -268h
|
||
int var_264;//;// -264h
|
||
double var_260 ;//;// -260h
|
||
double var_258 ;//;// -258h
|
||
double var_250 ;//;// -250h
|
||
double var_248 ;//;// -248h
|
||
double var_240 ;//;// -240h
|
||
int var_238;//;// -238h
|
||
int i;//;// -234h
|
||
int var_230;//;// -230h
|
||
int var_22C;//;// -22Ch
|
||
int var_228;//;// -228h
|
||
int var_out_val;//;// -224h
|
||
int var_220;//;// -220h
|
||
double var_21C ;//;// -21Ch
|
||
double var_214 ;//;// -214h
|
||
int var_20C;//;// -20Ch
|
||
int var_208;//;// -208h
|
||
int var_204;//;// -204h
|
||
int var_200;//;// -200h
|
||
int var_1FC;//;// -1FCh
|
||
int var_1F8;//;// -1F8h
|
||
double const1 ;//;// -1F4h
|
||
int var_1EC;//;// -1ECh
|
||
int var_1E8;//;// -1E8h
|
||
double var_1E4 ;//;// -1E4h
|
||
double var_1DC ;//;// -1DCh
|
||
int var_1D4;//;// -1D4h
|
||
int var_1D0;//;// -1D0h
|
||
int var_1CC;//;// -1CCh
|
||
double var_1C8 ;//;// -1C8h
|
||
double var_1C0 ;//;// -1C0h
|
||
int j;//;// -1B8h
|
||
int var_1B4;//;// -1B4h
|
||
int var_eq_2;//;// -1B0h
|
||
double var_1AC ;//;// -1ACh
|
||
int var_1A4;//;// -1A4h
|
||
int l;//;// -1A0h
|
||
int var_19C;//;// -19Ch
|
||
int var_198;//;// -198h
|
||
int var_194;//;// -194h
|
||
double var_190 ;//;// -190h
|
||
double var_188 ;//;// -188h
|
||
int var_180;//;// -180h
|
||
int var_17C;//;// -17Ch
|
||
double var_178 ;//;// -178h
|
||
double var_170 ;//;// -170h
|
||
int first_val;//;// -168h
|
||
double var_164 ;//;// -164h
|
||
int k;//;// -15Ch
|
||
int var_158;//;// -158h
|
||
double var_154 ;//;// -154h
|
||
int var_14C;//;// -14Ch
|
||
int var_148;//;// -148h
|
||
int var_len;//;// -144h
|
||
int out_cut;//;// -140h
|
||
int mul_more2_exd_1;//;// -13Ch
|
||
int var_138;//;// -138h
|
||
double var_134 ;//;// -134h
|
||
int const_1;//;// -12Ch
|
||
int var_128;//;// -128h
|
||
int var_124;//;// -124h
|
||
double var_120 ;//;// -120h
|
||
double var_118 ;//;// -118h
|
||
double var_110 ;//;// -110h
|
||
double var_108 ;//;// -108h
|
||
int var_100;//;// -100h
|
||
int var_FC;//;// -0FCh
|
||
int var_F8;//;// -0F8h
|
||
double var_F4 ;//;// -0F4h
|
||
int var_EC;//;// -0ECh
|
||
int var_E8;//;// -0E8h
|
||
int var_E4;//;// -0E4h
|
||
int var_E0;//;// -0E0h
|
||
int var_DC;//;// -0DCh
|
||
double var_D8 ;//;// -0D8h
|
||
double var_D0 ;//;// -0D0h
|
||
double var_C8 ;//;// -0C8h
|
||
double var_C0 ;//;// -0C0h
|
||
int var_B8;//;// -0B8h
|
||
int var_B4;//;// -0B4h
|
||
int var_B0;//;// -0B0h
|
||
int var_AC;//;// -0ACh
|
||
int var_A8;//;// -0A8h
|
||
double* buffer;//;// -0A4h
|
||
int var_A0;//;// -0A0h
|
||
int var_9C;//;// -9Ch
|
||
int var_98;//;// -98h
|
||
double var_94 ;//;// -94h
|
||
int var_8C;//;// -8Ch
|
||
double var_88 ;//;// -88h
|
||
double var_80 ;//;// -80h
|
||
double var_78 ;//;// -78h
|
||
double var_70 ;//;// -70h
|
||
double var_68 ;//;// -68h
|
||
int var_60;//;// -60h
|
||
int var_5C;//;// -5Ch
|
||
int mul_more1;//;// -58h
|
||
double var_54 ;//;// -54h
|
||
int var_4C;//;// -4Ch
|
||
int var48;//;// -48h
|
||
double var44 ;//;// -44h
|
||
double var_3C ;//;// -3Ch
|
||
double var_34 ;//;// -34h
|
||
double const4 ;//;// -2Ch
|
||
int var_24;//;// -24h
|
||
int var_20;//;// -20h
|
||
int var_1C;//;// -1Ch
|
||
int var_18;//;// -18h
|
||
double var_14 ;//;// -14h
|
||
double const2 ;//;// -0Ch
|
||
int var_4;//;// -4
|
||
double eq2=2.0;
|
||
double eq0=0.0;
|
||
double eq1=1.0;
|
||
|
||
// mov eax, wave_len
|
||
// sub eax, 4
|
||
// mov wave_len, eax ; //arg_4-=4;
|
||
// wave_len-=4;
|
||
// mov ecx, in_buffer
|
||
// sub ecx, 8
|
||
// mov in_buffer, ecx ; //arg_0-=8;
|
||
// in_buffer-=8;
|
||
// cmp array_num, 1
|
||
// jge short loc_415956
|
||
// mov eax, 1 ; //<1
|
||
// jmp return
|
||
if(array_num<1) return 1;
|
||
// mov var_20, 1
|
||
// mov var_1C, 2
|
||
var_20=1;
|
||
var_1C=2;
|
||
char p1[8]={0x54,0x41,0x17,0x44,0x40,0x19,0x21,0xFB};
|
||
char p2[8]={0x66,0x81,0x15,0x1E,0x3F,0xE6,0xA0,0x9E};
|
||
char p3[8]={0xFE,0xFA,0x39,0xEF,0x3F,0xE6,0x2E,0x42};
|
||
char p4[8]={0xFE,0xFA,0x39,0xEF,0x3F,0xF6,0x2E,0x42};
|
||
|
||
char p10[8]={0x40,0x19,0x21,0xFB,0x54,0x41,0x17,0x44};
|
||
char p20[8]={0x3F,0xE6,0xA0,0x9E,0x66,0x81,0x15,0x1E};
|
||
char p30[8]={0x3F,0xE6,0x2E,0x42,0xFE,0xFA,0x39,0xEF};
|
||
char p40[8]={0x3F,0xF6,0x2E,0x42,0xFE,0xFA,0x39,0xEF};
|
||
for(int i0=0;i0<8;i0++)
|
||
{
|
||
p1[i0]=p10[7-i0];
|
||
p2[i0]=p20[7-i0];
|
||
p3[i0]=p30[7-i0];
|
||
p4[i0]=p40[7-i0];
|
||
}
|
||
// mov dword ptr const1, 54411744h
|
||
// mov dword ptr const1+4, 401921FBh
|
||
memmove(&const1,p1,8);
|
||
// mov dword ptr const2, 6681151Eh
|
||
// mov dword ptr const2+4, 3FE6A09Eh
|
||
memmove(&const2,p2,8);
|
||
// mov dword ptr const3, 0FEFA39EFh
|
||
// mov dword ptr const3+4, 3FE62E42h
|
||
memmove(&const3,p3,8);
|
||
// mov dword ptr const4, 0FEFA39EFh
|
||
// mov dword ptr const4+4, 3FF62E42h
|
||
memmove(&const4,p4,8);
|
||
|
||
// mov var_194, 0
|
||
var_194=0;
|
||
// mov var_1FC, 0
|
||
var_1FC=0;
|
||
// mov mul_more1, 2
|
||
mul_more1=2;
|
||
// mov mul_more2_exd_1, 1
|
||
mul_more2_exd_1=1;
|
||
// mov out_cut, 0
|
||
out_cut=0;
|
||
// mov edx, array_num
|
||
var_len=array_num;
|
||
// mov var_len, edx
|
||
// mov i, 1
|
||
i=0;
|
||
// jmp short loc_4159FB
|
||
goto loc_4159FB;
|
||
loc_4159EC:;
|
||
// mov eax, i
|
||
// add eax, 1
|
||
// mov i, eax
|
||
i++;
|
||
loc_4159FB:;
|
||
// mov ecx, i
|
||
// cmp ecx, var_len
|
||
// jg loc_415ADB
|
||
if(i>var_len) goto loc_415ADB;
|
||
// mov edx, i
|
||
// mov eax, wave_len
|
||
// mov ecx, out_cut
|
||
// cmp ecx, [eax+edx*4]
|
||
// jle short loc_415A2F ; //out_buffer[i]>out_cut?
|
||
if(out_cut<=wave_len[i]) goto loc_415A2F;
|
||
// mov edx, out_cut ; //>
|
||
// mov out_val, edx ; //out_val=cut
|
||
out_val=out_cut;
|
||
goto loc_415A41;
|
||
// jmp short loc_415A41
|
||
loc_415A2F:;
|
||
// mov eax, i
|
||
// mov ecx, wave_len
|
||
// mov edx, [ecx+eax*4]
|
||
// mov out_val, edx ;
|
||
out_val=wave_len[i];
|
||
loc_415A41:;
|
||
// mov eax, out_val
|
||
// mov out_cut, eax ; //out_cut=out_val
|
||
out_cut=out_val;
|
||
// mov ecx, i
|
||
// mov edx, wave_len
|
||
// cmp dword ptr [edx+ecx*4], 0
|
||
// jg short loc_415A66 ;
|
||
if(wave_len[i]>0) goto loc_415A66 ;
|
||
// mov eax, 2
|
||
// jmp return
|
||
return 2;
|
||
|
||
loc_415A66:;
|
||
// cmp i, 1 ; //i!=1
|
||
// jnz short loc_415AA1
|
||
if(i!=0) goto loc_415AA1;
|
||
// mov eax, i
|
||
// mov ecx, wave_len
|
||
// mov edx, [ecx+eax*4]
|
||
// mov first_val, edx ; //first rec,
|
||
first_val=wave_len[i];
|
||
// mov eax, first_val
|
||
// and eax, 80000001h
|
||
// jns short loc_415A93 ; ;//not neg
|
||
short eax=first_val&0x80000001;
|
||
if(eax>=0) goto loc_415A93 ;
|
||
// dec eax
|
||
// or eax, 0FFFFFFFEh
|
||
eax--;
|
||
eax=eax|0xFFFFFFFE;
|
||
eax++;
|
||
|
||
loc_415A93:;
|
||
// test eax, eax
|
||
// jz short loc_415AA1
|
||
if(eax==0) goto loc_415AA1;
|
||
// mov eax, 3 ; //not 0 error 3
|
||
// jmp return
|
||
return 3;
|
||
|
||
loc_415AA1:;
|
||
// mov ecx, i
|
||
// mov edx, wave_len
|
||
// mov eax, mul_more1
|
||
// imul eax, [edx+ecx*4]
|
||
// mov mul_more1, eax ; //var_58*=out_buffer[i]
|
||
mul_more1=wave_len[i]*mul_more1;
|
||
// cmp i, 1
|
||
// jle short loc_415AD6 ; //<2 continue loop
|
||
if(i<=0) goto loc_415AD6 ;
|
||
// mov ecx, i
|
||
// mov edx, wave_len
|
||
// mov eax, mul_more2_exd_1
|
||
// imul eax, [edx+ecx*4]
|
||
// mov mul_more2_exd_1, eax ; //var_13c*=out_buffer[i]
|
||
mul_more2_exd_1=wave_len[i]*mul_more2_exd_1;
|
||
loc_415AD6:;
|
||
// jmp loc_4159EC
|
||
goto loc_4159EC;
|
||
|
||
loc_415ADB:;
|
||
// mov ecx, out_cut
|
||
// shl ecx, 1
|
||
// mov out_cut, ecx ; //out_cut*=2
|
||
out_cut*=2;
|
||
// mov buffer, 0
|
||
// mov edx, out_cut
|
||
// shl edx, 1
|
||
// shl edx, 3
|
||
// push edx
|
||
// call malloc
|
||
// add esp, 4
|
||
// mov buffer, eax
|
||
buffer=(double*)malloc(out_cut*2*8);
|
||
// mov var_eq_2, 2
|
||
var_eq_2=2;
|
||
// mov eax, array_num
|
||
// mov var_len, eax
|
||
var_len=array_num;
|
||
// mov i, 1
|
||
i=0;
|
||
// jmp short loc_415B3B
|
||
goto loc_415B3B;
|
||
|
||
loc_415B2C:;
|
||
// mov ecx, i
|
||
// add ecx, 1
|
||
// mov i, ecx
|
||
i++;
|
||
loc_415B3B:;
|
||
// mov edx, i
|
||
// cmp edx, var_len
|
||
// jg loc_417FA2
|
||
if(i>var_len) goto loc_417FA2;
|
||
// mov eax, i
|
||
// mov ecx, wave_len
|
||
// mov edx, [ecx+eax*4]
|
||
// mov var_264, edx
|
||
var_264=wave_len[i];
|
||
// mov eax, var_eq_2
|
||
// imul eax, var_264
|
||
// mov var_1D4, eax ; ;=out_buffer[i]*var_1b0
|
||
var_1D4=var_eq_2*var_264;
|
||
// cmp var_264, 1
|
||
// jle loc_417F79 ; //out_buffer[i]<=1
|
||
if(var_264<=1) goto loc_417F79;
|
||
// mov ecx, var_264 ; //out_buffer[i]>1
|
||
// mov var_out_val, ecx
|
||
var_out_val=var_264;
|
||
// mov edx, var_eq_2
|
||
// mov var_22C, edx
|
||
var_22C=var_eq_2;
|
||
// mov j, 1
|
||
j=1;
|
||
// mov const_1, 2
|
||
const_1=2;
|
||
// fild var_out_val
|
||
// sub esp, 8
|
||
// fstp qword ptr [esp]
|
||
// call mylog
|
||
// add esp, 8
|
||
// fdiv const3 ; // /var_280
|
||
// fadd eq2 ; //+2.0
|
||
// fst var_374
|
||
var_374=mylog(var_out_val)/const3+eq2;
|
||
// sub esp, 8
|
||
// fstp qword ptr [esp]
|
||
// call myftol
|
||
// add esp, 8
|
||
|
||
// mov varmyexp, eax
|
||
varmyexp=myftol(var_374);
|
||
// mov k, 0
|
||
k=0;
|
||
// jmp short loc_415BF1
|
||
goto loc_415BF1;
|
||
|
||
loc_415BE2:;
|
||
// mov eax, k
|
||
// add eax, 1
|
||
// mov k, eax
|
||
k++;
|
||
loc_415BF1:;
|
||
// mov ecx, k
|
||
// cmp ecx, varmyexp
|
||
// jge loc_415CA6
|
||
if(k>=varmyexp) goto loc_415CA6;
|
||
// mov eax, var_out_val
|
||
// cdq
|
||
// idiv const_1
|
||
// test edx, edx ; //%
|
||
// jnz short loc_415C74 ; //%!=0
|
||
if(var_out_val%const_1) goto loc_415C74 ;
|
||
// mov edx, var_out_val ; //能整除
|
||
// cmp edx, const_1 ; //==?
|
||
// jz short loc_415C74 ; //=
|
||
if(var_out_val==const_1) goto loc_415C74 ;
|
||
// mov eax, j ; //!=
|
||
// mov ecx, const_1
|
||
|
||
// mov [ebp+eax*4+save_const_1], ecx ; //var_30=const1
|
||
// [j+save_const_1]=const_1;
|
||
// lea edx,save_const_1
|
||
// mov [edx+eax*4], ecx ; //var_30=const1
|
||
temp[save_const_1+j]=const_1;
|
||
// mov edx, j
|
||
// add edx, 1
|
||
// mov j, edx ; //
|
||
j++;
|
||
// mov eax, var_out_val
|
||
// cdq
|
||
// idiv const_1
|
||
// mov var_out_val, eax ; //能整除,取整数部分=〉var_out_val
|
||
var_out_val/=const_1;
|
||
// cmp const_1, 2
|
||
// jnz short loc_415C72
|
||
if(const_1!=2) goto loc_415C72;
|
||
// mov eax, var_22C
|
||
// add eax, var_22C
|
||
// mov var_22C, eax ; //const_1=2时,var_22c*=2;
|
||
var_22C=var_22C*2;
|
||
loc_415C72:;
|
||
// jmp short loc_415CA1
|
||
goto loc_415CA1;
|
||
|
||
loc_415C74:;
|
||
// cmp const_1, 2 ; //不能整除情况
|
||
// jnz short loc_415C92 ; //const_1=2=>const_1+=2
|
||
if(const_1!=2) goto loc_415C92;
|
||
|
||
// mov const_1, 3 ; //const_1=2,const_1=3
|
||
const_1=3;
|
||
// mov ecx, j
|
||
// mov var_4C, ecx ; //记下第二层大循环次数
|
||
var_4C=j;
|
||
// jmp short loc_415CA1
|
||
goto loc_415CA1;
|
||
|
||
loc_415C92:;
|
||
// mov edx, const_1 ; //const_1=2=>const_1+=2
|
||
// add edx, 2
|
||
// mov const_1, edx
|
||
const_1+=2;
|
||
loc_415CA1:;
|
||
// jmp loc_415BE2
|
||
goto loc_415BE2;
|
||
|
||
loc_415CA6:;
|
||
// cmp var_out_val, 2
|
||
// jnz short loc_415CD4
|
||
if(var_out_val!=2) goto loc_415CD4;
|
||
// mov eax, var_22C
|
||
// add eax, var_22C
|
||
// mov var_22C, eax ; //var_22c*=2;
|
||
var_22C*=2;
|
||
// mov ecx, j
|
||
|
||
//// mov [ebp+ecx*4+save_const_1], 0
|
||
|
||
// lea edx,save_const_1
|
||
// mov [edx+ecx*4], 0
|
||
temp[save_const_1+j]=0;
|
||
// jmp short loc_415CE7
|
||
goto loc_415CE7;
|
||
loc_415CD4:
|
||
// mov edx, j
|
||
// mov eax, var_out_val
|
||
|
||
// mov [ebp+edx*4+save_const_1], eax ; //when var_out_val!=2,save_const_1=var_out_va
|
||
|
||
// push ecx
|
||
// lea ecx,save_const_1
|
||
// mov [ecx+4*edx], eax ;
|
||
// pop ecx
|
||
temp[save_const_1+j]=var_out_val;
|
||
loc_415CE7:;
|
||
// mov eax, var_1D4
|
||
// cdq
|
||
// idiv var_22C
|
||
// mov var_F8, eax
|
||
var_F8=var_1D4/var_22C;
|
||
// mov var_AC, 1
|
||
var_AC=1;
|
||
// mov ecx, var_eq_2
|
||
// mov var_148, ecx
|
||
var_148=var_eq_2;
|
||
// cmp eq_0, 0
|
||
// jg loc_415E3A
|
||
if(eq_0>0) goto loc_415E3A;
|
||
// cmp i, 4 ; //arg_10<=0
|
||
// jge loc_415E3A
|
||
if(i>=4) goto loc_415E3A;
|
||
// cmp i, 1 ; //i<4
|
||
// jle short loc_415D5C ; i>=4
|
||
if(i<=1) goto loc_415D5C ;
|
||
// mov var_198, 2 ; //i>1
|
||
var_198=2;
|
||
// mov eax, var_1FC
|
||
// cdq
|
||
// sub eax, edx
|
||
// sar eax, 1
|
||
// add eax, 1
|
||
// mov edx, var_194
|
||
// imul edx, eax
|
||
// mov var_148, edx ; //var_148=var_1fc/4*val_194
|
||
var_148=(var_1FC/2+1)*var_194;
|
||
// jmp loc_415E38
|
||
goto loc_415E38;
|
||
loc_415D5C:;
|
||
// mov eax, var_22C ; i>=4
|
||
// cmp eax, var_eq_2
|
||
// jg short loc_415D79 ; //var_22c>var_eq_2
|
||
if(var_22C>var_eq_2) goto loc_415D79;
|
||
// mov var_198, 3 ; var_22c<=var_eq_2
|
||
var_198=3;
|
||
// jmp loc_415E38
|
||
goto loc_415E38;
|
||
loc_415D79:;
|
||
// mov var_198, 4 ; //var_22c>var_eq_2
|
||
var_198=4;
|
||
// mov var_AC, 2
|
||
var_AC=2;
|
||
// mov eax, var_22C
|
||
// cdq
|
||
// sub eax, edx
|
||
// sar eax, 1
|
||
// mov var_22C, eax ; //var_22c/=2
|
||
var_22C/=2;
|
||
// mov eax, var_264
|
||
// cdq
|
||
// sub eax, edx
|
||
// sar eax, 1
|
||
// mov var_264, eax ; //var_264/=2;
|
||
var_264/=2;
|
||
// mov eax, var_1D4
|
||
// cdq
|
||
// sub eax, edx
|
||
// sar eax, 1
|
||
// mov var_1D4, eax ; //var_1d4/=2;
|
||
var_1D4/=2;
|
||
// mov eax, mul_more1
|
||
// cdq
|
||
// sub eax, edx
|
||
// sar eax, 1
|
||
// mov mul_more1, eax ; //mul_more1/=2;
|
||
mul_more1/=2;
|
||
// mov var_17C, 0FFFFFFFFh
|
||
var_17C=-1;
|
||
// mov ecx, mul_more1
|
||
// mov k, ecx ; //k=mul_more1
|
||
k=mul_more1;
|
||
// mov l, 1
|
||
l=1;
|
||
// jmp short loc_415DF9
|
||
goto loc_415DF9;
|
||
|
||
loc_415DEA:;
|
||
// mov edx, l
|
||
// add edx, 1
|
||
// mov l, edx
|
||
l++;
|
||
loc_415DF9:;
|
||
// mov eax, l
|
||
// cmp eax, k
|
||
// jg short loc_415E38
|
||
if(l>k) goto loc_415E38;
|
||
// mov ecx, var_17C
|
||
// add ecx, 2
|
||
// mov var_17C, ecx
|
||
var_17C+=2;
|
||
// mov edx, var_17C
|
||
// mov eax, in_buffer
|
||
// mov ecx, l
|
||
// mov esi, in_buffer
|
||
// mov edi, [eax+edx*8]
|
||
// mov [esi+ecx*8], edi
|
||
// mov edx, [eax+edx*8+4]
|
||
// mov [esi+ecx*8+4], edx ; //in_buffer[l]=in_buffer[var_17c];
|
||
in_buffer[l]=in_buffer[var_17C];
|
||
// jmp short loc_415DEA
|
||
goto loc_415DEA;
|
||
|
||
loc_415E38:;
|
||
// jmp short loc_415E44
|
||
goto loc_415E44;
|
||
|
||
loc_415E3A:;
|
||
// mov var_198, 1
|
||
var_198=1;
|
||
loc_415E44:;
|
||
// fild var_22C
|
||
// sub esp, 8
|
||
// fst var_374
|
||
var_374=var_22C;
|
||
// fstp qword ptr [esp]
|
||
// call mylog
|
||
// add esp, 8
|
||
// fdiv const4
|
||
// fadd eq1
|
||
// sub esp, 8
|
||
// fstp qword ptr [esp]
|
||
// call myftol
|
||
// add esp, 8
|
||
// mov varmyexp, eax ; //varmyexp=var_22c/var_2c+1
|
||
varmyexp=myftol(log(var_374)/const4+eq1);
|
||
// cmp var_F8, 1
|
||
// jg loc_416112
|
||
if(var_F8>1) goto loc_416112;
|
||
// mov eax, var_1D4
|
||
// cdq
|
||
// sub eax, edx
|
||
// sar eax, 1
|
||
// mov var_14C, eax
|
||
var_14C=var_1D4/2;
|
||
// mov l, 1
|
||
l=1;
|
||
// mov eax, var_1D4
|
||
// mov k, eax
|
||
k=var_1D4;
|
||
// mov ecx, var_eq_2
|
||
// mov var_180, ecx
|
||
var_180=var_eq_2;
|
||
// mov var_1F8, 1
|
||
var_1F8=1;
|
||
// jmp short loc_415ECA
|
||
goto loc_415ECA;
|
||
|
||
loc_415EB8:;
|
||
// mov edx, var_1F8
|
||
// add edx, var_180
|
||
// mov var_1F8, edx
|
||
var_1F8+=var_180;
|
||
loc_415ECA:;
|
||
// cmp var_180, 0
|
||
// jge short loc_415EEC
|
||
if(var_180>=0) goto loc_415EEC;
|
||
// mov eax, var_1F8
|
||
// xor ecx, ecx
|
||
// cmp eax, k
|
||
// setnl cl
|
||
// mov var_314, ecx
|
||
var_314=(var_1F8>=k);
|
||
|
||
// jmp short loc_415F03
|
||
goto loc_415F03;
|
||
|
||
loc_415EEC:;
|
||
// mov edx, var_1F8
|
||
// xor eax, eax
|
||
// cmp edx, k
|
||
// setle al
|
||
// mov var_314, eax
|
||
var_314=(var_1F8<=k);
|
||
loc_415F03:;
|
||
// cmp var_314, 0
|
||
// jz loc_41610D
|
||
if(var_314==0) goto loc_41610D;
|
||
// mov ecx, l
|
||
// cmp ecx, var_1F8
|
||
// jge loc_4160A9
|
||
if(l>=var_1F8) goto loc_4160A9;
|
||
// mov edx, var_eq_2
|
||
// mov eax, var_1F8
|
||
// lea ecx, [eax+edx-2]
|
||
var_A0=var_eq_2+var_1F8-2;
|
||
// mov var_A0, ecx
|
||
// mov edx, var_A0
|
||
// mov var_1A4, edx
|
||
var_1A4=var_A0;
|
||
// mov eax, var_1F8
|
||
// mov var_1CC, eax
|
||
var_1F8=var_1CC;
|
||
// jmp short loc_415F61
|
||
goto loc_415F61;
|
||
|
||
loc_415F52:;
|
||
// mov ecx, var_1CC
|
||
// add ecx, 2
|
||
// mov var_1CC, ecx
|
||
var_1CC+=2;
|
||
loc_415F61:;
|
||
// mov edx, var_1CC
|
||
// cmp edx, var_1A4
|
||
// jg loc_4160A9
|
||
if(var_1CC>var_1A4) goto loc_4160A9;
|
||
// mov eax, mul_more1
|
||
// mov var_1D0, eax
|
||
var_1D0=mul_more1;
|
||
// mov ecx, var_1D4
|
||
// mov var_20C, ecx
|
||
var_20C=var_1D4;
|
||
// mov edx, var_1CC
|
||
// mov var_220, edx
|
||
var_220=var_1CC;
|
||
// jmp short loc_415FA8
|
||
goto loc_415FA8;
|
||
|
||
loc_415F96:;
|
||
// mov eax, var_220
|
||
// add eax, var_20C
|
||
// mov var_220, eax
|
||
var_220+=var_20C;
|
||
loc_415FA8:;
|
||
// cmp var_20C, 0
|
||
// jge short loc_415FCA
|
||
if(var_20C>=0) goto loc_415FCA;
|
||
// mov ecx, var_220
|
||
// xor edx, edx
|
||
// cmp ecx, var_1D0
|
||
// setnl dl
|
||
// mov var_318, edx
|
||
var_318=(var_220>=var_1D0);
|
||
// jmp short loc_415FE1
|
||
goto loc_415FE1;
|
||
|
||
loc_415FCA:;
|
||
// mov eax, var_220
|
||
// xor ecx, ecx
|
||
// cmp eax, var_1D0
|
||
// setle cl
|
||
// mov var_318, ecx
|
||
var_318=(var_220<=var_1D0);
|
||
loc_415FE1:;
|
||
// cmp var_318, 0
|
||
// jz loc_4160A4
|
||
if(var_318==0) goto loc_4160A4;
|
||
// mov edx, l
|
||
// add edx, var_220
|
||
// sub edx, var_1F8
|
||
// mov var48, edx
|
||
var48=l+var_220-var_1F8;
|
||
// mov eax, var_220
|
||
// mov ecx, in_buffer
|
||
// mov edx, [ecx+eax*8]
|
||
// mov dword ptr var_80, edx
|
||
// mov eax, [ecx+eax*8+4]
|
||
// mov dword ptr [var_80+4], eax
|
||
var_80=in_buffer[var_220];
|
||
// mov ecx, var_220
|
||
// mov edx, in_buffer
|
||
// mov eax, [edx+ecx*8+8]
|
||
// mov dword ptr var_178, eax
|
||
// mov ecx, [edx+ecx*8+0Ch]
|
||
// mov dword ptr [var_178+4], ecx
|
||
var_178=in_buffer[var_220+1];
|
||
|
||
// mov edx, var48
|
||
// mov eax, in_buffer
|
||
// mov ecx, var_220
|
||
// mov esi, in_buffer
|
||
// mov edi, [eax+edx*8]
|
||
// mov [esi+ecx*8], edi
|
||
// mov edx, [eax+edx*8+4]
|
||
// mov [esi+ecx*8+4], edx
|
||
// mov eax, var48
|
||
// mov ecx, in_buffer
|
||
// mov edx, var_220
|
||
// mov esi, in_buffer
|
||
// mov edi, [ecx+eax*8+8]
|
||
// mov [esi+edx*8+8], edi
|
||
// mov eax, [ecx+eax*8+0Ch]
|
||
// mov [esi+edx*8+0Ch], eax
|
||
in_buffer[var_220]=in_buffer[var48];
|
||
// mov ecx, var48
|
||
// mov edx, in_buffer
|
||
// mov eax, dword ptr var_80
|
||
// mov [edx+ecx*8], eax
|
||
// mov eax, dword ptr [var_80+4]
|
||
// mov [edx+ecx*8+4], eax
|
||
in_buffer[var48]=var_80;
|
||
|
||
// mov ecx, var48
|
||
// mov edx, in_buffer
|
||
// mov eax, dword ptr var_178
|
||
// mov [edx+ecx*8+8], eax
|
||
// mov eax, dword ptr [var_178+4]
|
||
// mov [edx+ecx*8+0Ch], eax
|
||
in_buffer[var48+1]=var_178;
|
||
|
||
// jmp loc_415F96
|
||
goto loc_415F96;
|
||
|
||
loc_4160A4:
|
||
// jmp loc_415F52
|
||
goto loc_415F52;
|
||
loc_4160A9:
|
||
// mov ecx, var_14C
|
||
// mov var_out_val, ecx
|
||
var_out_val=var_14C;
|
||
loc_4160B5:
|
||
// mov edx, var_out_val
|
||
// cmp edx, var_eq_2
|
||
if(var_out_val<var_eq_2) goto loc_4160F6;
|
||
// jl short loc_4160F6
|
||
// mov eax, l
|
||
// cmp eax, var_out_val
|
||
// jle short loc_4160F6
|
||
if(l<=var_out_val) goto loc_4160F6;
|
||
// mov ecx, l
|
||
// sub ecx, var_out_val
|
||
// mov l, ecx
|
||
l-=var_out_val;
|
||
// mov eax, var_out_val
|
||
|
||
// cdq
|
||
// sub eax, edx
|
||
// sar eax, 1
|
||
// mov var_out_val, eax
|
||
var_out_val/=2;
|
||
// jmp short loc_4160B5
|
||
goto loc_4160B5;
|
||
|
||
loc_4160F6:;
|
||
// mov edx, l
|
||
// add edx, var_out_val
|
||
// mov l, edx
|
||
l+=var_out_val;
|
||
// jmp loc_415EB8
|
||
|
||
|
||
loc_41610D:;
|
||
// jmp loc_416460
|
||
goto loc_416460;
|
||
|
||
loc_416112:;
|
||
// mov eax, var_264
|
||
// shl eax, 1
|
||
// mov var_E8, eax
|
||
var_264*=2;
|
||
// mov ecx, var_eq_2
|
||
// mov var_180, ecx
|
||
var_180=var_eq_2;
|
||
// mov var_1CC, 1
|
||
var_1CC=1;
|
||
// jmp short loc_416147
|
||
goto loc_416147;
|
||
|
||
loc_416138:;
|
||
// mov edx, var_1CC
|
||
// add edx, 2
|
||
// mov var_1CC, edx
|
||
var_1CC+=2;
|
||
loc_416147:;
|
||
// mov eax, var_1CC
|
||
// cmp eax, var_180
|
||
// jg loc_416460
|
||
if(var_1CC>var_180) goto loc_416460;
|
||
// mov ecx, mul_more1
|
||
// mov k, ecx
|
||
k=mul_more1;
|
||
// mov edx, var_1D4
|
||
// mov var_1A4, edx
|
||
var_1A4=var_1D4;
|
||
// mov eax, var_1CC
|
||
// mov var_220, eax
|
||
var_220=var_1CC;
|
||
// jmp short loc_41618E
|
||
goto loc_41618E;
|
||
|
||
loc_41617C:;
|
||
// mov ecx, var_220
|
||
// add ecx, var_1A4
|
||
// mov var_220, ecx
|
||
var_220+=var_1A4;
|
||
loc_41618E:;
|
||
// cmp var_1A4, 0
|
||
// jge short loc_4161B0
|
||
if(var_1A4>=0) goto loc_4161B0;
|
||
// mov edx, var_220
|
||
// xor eax, eax
|
||
// cmp edx, k
|
||
// setnl al
|
||
// mov var_31C, eax
|
||
var_31C=(var_220>k);
|
||
// jmp short loc_4161C7
|
||
goto loc_4161C7;
|
||
|
||
loc_4161B0:;
|
||
// mov ecx, var_220
|
||
// xor edx, edx
|
||
// cmp ecx, k
|
||
// setle dl
|
||
// mov var_31C, edx
|
||
var_31C=(var_220<=k);
|
||
loc_4161C7:;
|
||
// cmp var_31C, 0
|
||
// jz loc_41645B
|
||
if(var_31C==0) goto loc_41645B;
|
||
// mov eax, var_220
|
||
// mov l, eax
|
||
l=var_220;
|
||
// mov ecx, var_E8
|
||
// mov var_20C, ecx
|
||
var_20C=var_E8;
|
||
// mov var_17C, 1
|
||
var_17C=1;
|
||
// jmp short loc_416207
|
||
goto loc_416207;
|
||
|
||
loc_4161F8:;
|
||
// mov edx, var_17C
|
||
// add edx, 2
|
||
// mov var_17C, edx
|
||
var_17C+=2;
|
||
loc_416207:;
|
||
// mov eax, var_17C
|
||
// cmp eax, var_20C
|
||
// jg loc_41635E
|
||
if(var_17C>var_20C) goto loc_41635E;
|
||
// cmp var_198, 3
|
||
// jz short loc_41626C
|
||
if(var_198==3) goto loc_41626C;
|
||
// mov ecx, l
|
||
// mov edx, in_buffer
|
||
// mov eax, var_17C
|
||
// mov esi, buffer
|
||
// mov edi, [edx+ecx*8]
|
||
// mov [esi+eax*8], edi
|
||
// mov ecx, [edx+ecx*8+4]
|
||
// mov [esi+eax*8+4], ecx
|
||
buffer[var_17C]=in_buffer[l];
|
||
// mov edx, l
|
||
// mov eax, in_buffer
|
||
// mov ecx, var_17C
|
||
// mov esi, buffer
|
||
// mov edi, [eax+edx*8+8]
|
||
// mov [esi+ecx*8+8], edi
|
||
// mov edx, [eax+edx*8+0Ch]
|
||
// mov [esi+ecx*8+0Ch], edx
|
||
buffer[var_17C+1]=in_buffer[l+1];
|
||
// jmp short loc_4162AB
|
||
goto loc_4162AB;
|
||
|
||
loc_41626C:;
|
||
// mov eax, l
|
||
// mov ecx, in_buffer
|
||
// mov edx, var_17C
|
||
// mov esi, buffer
|
||
// mov edi, [ecx+eax*8]
|
||
// mov [esi+edx*8], edi
|
||
// mov eax, [ecx+eax*8+4]
|
||
// mov [esi+edx*8+4], eax
|
||
buffer[var_17C]=in_buffer[l];
|
||
// mov ecx, var_17C
|
||
/// mov edx, buffer
|
||
// mov dword ptr [edx+ecx*8+8], 0
|
||
// mov dword ptr [edx+ecx*8+0Ch], 0
|
||
buffer[var_17C+1]=0;
|
||
loc_4162AB:;
|
||
// mov eax, var_1D4
|
||
// mov var_8C, eax
|
||
var_8C=var_1D4;
|
||
// mov ecx, var_AC
|
||
// mov j, ecx
|
||
j=var_AC;
|
||
// mov var_98, 1
|
||
var_98=1;
|
||
loc_4162CD:;
|
||
// mov edx, var_8C
|
||
// cmp edx, var_eq_2
|
||
// jle short loc_416359
|
||
if(var_8C<var_eq_2) goto loc_416359;
|
||
// cmp var_98, 1
|
||
// jnz short loc_416359
|
||
if(var_98!=1) goto loc_416359;
|
||
// lea ecx,save_const_1
|
||
// mov eax,j
|
||
// shl eax,2
|
||
// add ecx,eax
|
||
// mov eax, var_8C
|
||
// cdq
|
||
// idiv [ecx]
|
||
// mov var_60, eax
|
||
var_60=var_8C/temp[save_const_1+j*2*2];
|
||
// mov edx, l
|
||
// add edx, var_60
|
||
// mov l, edx
|
||
l+=var_60;
|
||
// mov eax, l
|
||
// sub eax, var_220
|
||
// cmp eax, var_8C
|
||
// jl short loc_41634A
|
||
if(l-var_220<var_8C) goto loc_41634A;
|
||
// mov ecx, l
|
||
// sub ecx, var_8C
|
||
// mov l, ecx
|
||
i-=var_8C;
|
||
// mov edx, var_60
|
||
// mov var_8C, edx
|
||
var_8C=var_60;
|
||
// mov eax, j
|
||
// add eax, 1
|
||
// mov j, eax
|
||
j++;
|
||
// jmp short loc_416354
|
||
goto loc_416354;
|
||
|
||
loc_41634A:;
|
||
// mov var_98, 0
|
||
var_98=0;
|
||
loc_416354:;
|
||
// jmp loc_4162CD
|
||
goto loc_4162CD;
|
||
loc_416359:;
|
||
// jmp loc_4161F8
|
||
goto loc_4161F8;
|
||
|
||
loc_41635E:;
|
||
// mov ecx, var_220
|
||
// add ecx, var_1D4
|
||
// sub ecx, var_eq_2
|
||
// mov var_B0, ecx
|
||
var_B0=var_220+var_1D4-var_eq_2;
|
||
// mov var_17C, 1
|
||
var_17C=1;
|
||
// mov edx, var_B0
|
||
// mov var_20C, edx
|
||
var_20C=var_B0;
|
||
// mov eax, var_eq_2
|
||
// mov var_1D0, eax
|
||
var_1D0=var_eq_2;
|
||
// mov ecx, var_220
|
||
// mov var_1F8, ecx
|
||
var_1F8=var_220;
|
||
// jmp short loc_4163B8
|
||
goto loc_4163B8;
|
||
|
||
loc_4163A6:;
|
||
// mov edx, var_1F8
|
||
// add edx, var_1D0
|
||
// mov var_1F8, edx
|
||
var_1F8+=var_1D0;
|
||
loc_4163B8:;
|
||
// cmp var_1D0, 0
|
||
// jge short loc_4163DA
|
||
if(var_1D0>=0) goto loc_4163DA;
|
||
// mov eax, var_1F8
|
||
// xor ecx, ecx
|
||
// cmp eax, var_20C
|
||
// setnl cl
|
||
// mov var_320, ecx
|
||
var_320=(var_1F8>=var_320);
|
||
// jmp short loc_4163F1
|
||
goto loc_4163F1;
|
||
|
||
loc_4163DA:;
|
||
// mov edx, var_1F8
|
||
// xor eax, eax
|
||
// cmp edx, var_20C
|
||
// setle al
|
||
// mov var_320, eax
|
||
var_320=(var_1F8<=var_20C);
|
||
loc_4163F1:;
|
||
// cmp var_320, 0
|
||
// jz short loc_416456
|
||
if(var_320==0) goto loc_416456;
|
||
// mov ecx, var_17C
|
||
// mov edx, buffer
|
||
// mov eax, var_1F8
|
||
// mov esi, in_buffer
|
||
// mov edi, [edx+ecx*8]
|
||
// mov [esi+eax*8], edi
|
||
// mov ecx, [edx+ecx*8+4]
|
||
// mov [esi+eax*8+4], ecx
|
||
in_buffer[var_1F8]=buffer[var_17C];
|
||
// mov edx, var_17C
|
||
// mov eax, buffer
|
||
// mov ecx, var_1F8
|
||
// mov esi, in_buffer
|
||
// mov edi, [eax+edx*8+8]
|
||
// mov [esi+ecx*8+8], edi
|
||
// mov edx, [eax+edx*8+0Ch]
|
||
// mov [esi+ecx*8+0Ch], edx
|
||
in_buffer[var_1F8+1]=buffer[var_17C+1];
|
||
// mov eax, var_17C
|
||
// add eax, 2
|
||
// mov var_17C, eax
|
||
var_17C+=2;
|
||
// jmp loc_4163A6
|
||
goto loc_4163A6;
|
||
|
||
loc_416456:;
|
||
// jmp loc_41617C
|
||
goto loc_41617C;
|
||
loc_41645B:;
|
||
// jmp loc_416138
|
||
goto loc_416138;
|
||
loc_416460:;
|
||
// mov ecx, var_22C
|
||
// cmp ecx, var_eq_2
|
||
// jle loc_416F4C
|
||
if(var_22C<=var_eq_2) goto loc_416F4C;
|
||
// mov edx, var_eq_2
|
||
// add edx, var_eq_2
|
||
// mov var_19C, edx
|
||
var_19C=var_eq_2*2;
|
||
// mov eax, var_22C
|
||
// cdq
|
||
// idiv var_eq_2
|
||
// mov var_158, eax
|
||
var_158=var_22C/var_eq_2;
|
||
// fild var_158
|
||
// sub esp, 8
|
||
// fst var_374
|
||
var_374=var_158;
|
||
// fstp qword ptr [esp]
|
||
// call mylog
|
||
// add esp, 8
|
||
// fdiv const4
|
||
// fst var_94
|
||
var_94=mylog(var_374)/const4;
|
||
// sub esp, 8
|
||
// fstp qword ptr [esp]
|
||
// call myftol
|
||
// add esp, 8
|
||
// mov var_138, eax
|
||
var_138=myftol(var_94);
|
||
// fild var_138
|
||
// fsubr var_94
|
||
// fstp var_1C0
|
||
var_1C0=var_138-var_94;
|
||
// mov var_158, 2
|
||
var_158= 2;
|
||
// fld var_1C0
|
||
// fcomp eq0
|
||
// fnstsw ax
|
||
// test ah, 40h
|
||
// jz short loc_4164F8
|
||
if(var_1C0>eq0) goto loc_4164F8;
|
||
// mov var_158, 1
|
||
var_158=1;
|
||
loc_4164F8:;
|
||
// cmp var_158, 2
|
||
// jnz loc_41667E
|
||
if(var_158!=2) goto loc_41667E;
|
||
// mov eax, var_148
|
||
// mov var_180, eax
|
||
var_180=var_148;
|
||
// mov var_1CC, 1
|
||
var_1CC=1;
|
||
// jmp short loc_41652C
|
||
goto loc_41652C;
|
||
loc_41651D:;
|
||
// mov ecx, var_1CC
|
||
// add ecx, 2
|
||
// mov var_1CC, ecx
|
||
var_1CC+=2;
|
||
loc_41652C:;
|
||
// mov edx, var_1CC
|
||
// cmp edx, var_180
|
||
// jg loc_41667E
|
||
if(var_1CC>var_180) goto loc_41667E;
|
||
// mov eax, mul_more1
|
||
// mov var_1A4, eax
|
||
var_1A4=mul_more1;
|
||
// mov ecx, var_19C
|
||
// mov k, ecx
|
||
k=var_19C;
|
||
// mov edx, var_1CC
|
||
// mov var_9C, edx
|
||
var_9C=var_1CC;
|
||
// jmp short loc_416573
|
||
goto loc_416573;
|
||
|
||
loc_416561:;
|
||
// mov eax, var_9C
|
||
// add eax, k
|
||
// mov var_9C, eax
|
||
var_9C+=k;
|
||
loc_416573:;
|
||
// cmp k, 0
|
||
// jge short loc_416595
|
||
if(k>=0) goto loc_416595;
|
||
// mov ecx, var_9C
|
||
// xor edx, edx
|
||
// cmp ecx, var_1A4
|
||
// setnl dl
|
||
// mov var_324, edx
|
||
var_324=(var_9C>=var_1A4);
|
||
// jmp short loc_4165AC
|
||
goto loc_4165AC;
|
||
|
||
loc_416595:;
|
||
// mov eax, var_9C
|
||
// xor ecx, ecx
|
||
// cmp eax, var_1A4
|
||
// setle cl
|
||
// mov var_324, ecx
|
||
var_324=(var_9C<=var_324);
|
||
loc_4165AC:;
|
||
// cmp var_324, 0
|
||
// jz loc_416679
|
||
if(var_324==0) goto loc_416679;
|
||
// mov edx, var_9C
|
||
// add edx, var_eq_2
|
||
// mov var_A8, edx
|
||
var_A8=var_9C+var_eq_2;
|
||
// mov eax, var_A8
|
||
// mov ecx, in_buffer
|
||
// mov edx, [ecx+eax*8]
|
||
// mov dword ptr var_80, edx
|
||
// mov eax, [ecx+eax*8+4]
|
||
// mov dword ptr [var_80+4], eax
|
||
in_buffer[var_A8]=var_80;
|
||
// mov ecx, var_A8
|
||
// mov edx, in_buffer
|
||
// mov eax, [edx+ecx*8+8]
|
||
// mov dword ptr var_178, eax
|
||
// mov ecx, [edx+ecx*8+0Ch]
|
||
// mov dword ptr var_178+4, ecx
|
||
in_buffer[var_A8+1]=var_178;
|
||
// mov edx, var_9C
|
||
// mov eax, in_buffer
|
||
// fld qword ptr [eax+edx*8]
|
||
// fsub var_80
|
||
// mov ecx, var_A8
|
||
// mov edx, in_buffer
|
||
// fstp qword ptr [edx+ecx*8]
|
||
in_buffer[var_A8]=in_buffer[var_9C]-var_80;
|
||
// mov eax, var_9C
|
||
// mov ecx, in_buffer
|
||
// fld qword ptr [ecx+eax*8+8]
|
||
// fsub var_178
|
||
// mov edx, var_A8
|
||
// mov eax, in_buffer
|
||
// fstp qword ptr [eax+edx*8+8]
|
||
in_buffer[var_A8+1]=in_buffer[var_9C]-var_178;
|
||
// mov ecx, var_9C
|
||
// mov edx, in_buffer
|
||
// fld var_80
|
||
// fadd qword ptr [edx+ecx*8]
|
||
// mov eax, var_9C
|
||
// mov ecx, in_buffer
|
||
// fstp qword ptr [ecx+eax*8]
|
||
in_buffer[var_9C]=in_buffer[var_9C]+var_80;
|
||
|
||
// mov edx, var_9C
|
||
// mov eax, in_buffer
|
||
// fld var_178
|
||
// fadd qword ptr [eax+edx*8+8]
|
||
// mov ecx, var_9C
|
||
// mov edx, in_buffer
|
||
// fstp qword ptr [edx+ecx*8+8]
|
||
in_buffer[var_9C+1]=in_buffer[var_9C]+var_178;
|
||
|
||
// jmp loc_416561
|
||
goto loc_416561;
|
||
|
||
loc_416679:;
|
||
// jmp loc_41651D
|
||
goto loc_41651D;
|
||
|
||
loc_41667E:;
|
||
// mov eax, var_eq_2
|
||
// mov var_FC, eax
|
||
var_FC=var_eq_2;
|
||
loc_41668A:;
|
||
// mov eax, var_22C
|
||
// cdq
|
||
// sub eax, edx
|
||
// sar eax, 1
|
||
// cmp var_FC, eax
|
||
// jge loc_416F4C
|
||
|
||
if(var_FC>=var_22C/2) goto loc_416F4C;
|
||
// mov ecx, var_19C
|
||
// mov var_180, ecx
|
||
var_180=var_19C;
|
||
// mov eax, var_FC
|
||
// cdq
|
||
// sub eax, edx
|
||
|
||
// sar eax, 1
|
||
// mov k, eax
|
||
k=var_FC/2;
|
||
// mov edx, var_180
|
||
// cmp edx, k
|
||
// jle short loc_4166DA
|
||
if(var_180<=k) goto loc_4166DA;
|
||
// mov eax, var_180
|
||
// mov var_328, eax
|
||
var_328=var_180;
|
||
// jmp short loc_4166E6
|
||
goto loc_4166E6;
|
||
|
||
loc_4166DA:;
|
||
// mov ecx, k
|
||
// mov var_328, ecx
|
||
var_328=k;
|
||
loc_4166E6:;
|
||
// mov edx, var_328
|
||
// mov var_B4, edx
|
||
var_B4=var_328;
|
||
// mov eax, var_B4
|
||
// mov var_180, eax
|
||
var_180=var_B4;
|
||
// mov ecx, var_19C
|
||
// mov k, ecx
|
||
k=var_19C;
|
||
// mov edx, var_eq_2
|
||
// mov var_200, edx
|
||
var_200=var_eq_2;
|
||
// jmp short loc_41672A
|
||
goto loc_41672A;
|
||
//
|
||
|
||
loc_416718:;
|
||
// mov eax, var_200
|
||
// add eax, k
|
||
// mov var_200, eax
|
||
var_200+=k;
|
||
loc_41672A:;
|
||
// cmp k, 0
|
||
// jge short loc_41674C
|
||
if(k>=0) goto loc_41674C;
|
||
// mov ecx, var_200
|
||
// xor edx, edx
|
||
// cmp ecx, var_180
|
||
// setnl dl
|
||
// mov var_32C, edx
|
||
var_32C=(var_200>=var_180);
|
||
// jmp short loc_416763
|
||
goto loc_416763;
|
||
|
||
loc_41674C:;
|
||
// mov eax, var_200
|
||
// xor ecx, ecx
|
||
// cmp eax, var_180
|
||
// setle cl
|
||
// mov var_32C, ecx
|
||
var_32C=(var_200<=var_180);
|
||
loc_416763:;
|
||
// cmp var_32C, 0
|
||
// jz loc_416F24
|
||
if(var_32C==0) goto loc_416F24;
|
||
// mov edx, var_200
|
||
// mov var_out_val, edx
|
||
var_out_val=var_200;
|
||
// mov eax, var_FC
|
||
// cmp eax, var_eq_2
|
||
// jle loc_416876
|
||
if(var_FC<=var_eq_2) goto loc_416876;
|
||
// fld const1
|
||
// fchs
|
||
// fimul var_200
|
||
// mov ecx, var_FC
|
||
// shl ecx, 2
|
||
// mov var_330, ecx
|
||
var_330=var_FC*2;
|
||
// fild var_330
|
||
// fdivp st(1), st
|
||
// fstp var_88
|
||
var_88=var_330/(-const1*var_200);
|
||
// cmp eq_1, 0
|
||
// jl short loc_4167CD
|
||
if(eq_1<0) goto loc_4167CD;
|
||
// fld var_88
|
||
// fchs
|
||
// fstp var_88
|
||
var_88=-var_88;
|
||
loc_4167CD:;
|
||
// mov edx,dword ptr var_88+4
|
||
// push edx
|
||
// mov eax,dword ptr var_88
|
||
// push eax
|
||
// call mycos
|
||
// mycos(var_88);
|
||
// add esp,8
|
||
// fstp var_D0
|
||
var_D0=mycos(var_88);
|
||
// mov ecx,dword ptr var_88+4
|
||
// push ecx
|
||
// mov edx,dword ptr var_88
|
||
// push edx
|
||
// call mysin
|
||
// add esp,8
|
||
// fstp var_1DC
|
||
var_1DC=mysin(var_88);
|
||
// fld var_D0
|
||
// fmul var_D0
|
||
var_D0*var_D0;
|
||
// fld var_1DC
|
||
// fmul var_1DC
|
||
// fsubp st(1), st
|
||
// fstp var_134
|
||
var_134=var_1DC*var_1DC-var_D0*var_D0;
|
||
// fld var_D0
|
||
// fadd st, st
|
||
// fmul var_1DC
|
||
// fstp var_250
|
||
var_250=(var_D0+var_D0)*var_1DC;
|
||
// fld var_134
|
||
// fmul var_D0
|
||
// fld var_250
|
||
// fmul var_1DC
|
||
// fsubp st(1), st
|
||
// fstp var_1AC
|
||
var_1AC=var_250*var_1DC-var_134*var_D0;
|
||
// fld var_134
|
||
// fmul var_1DC
|
||
// fld var_250
|
||
// fmul var_D0
|
||
// faddp st(1), st
|
||
// fstp var_70
|
||
var_70=var_134*var_1DC+var_250*var_D0;
|
||
loc_416876:;
|
||
// mov eax, var_out_val
|
||
// cmp eax, var_FC
|
||
// jg loc_416F1F
|
||
if(var_out_val>var_FC) goto loc_416F1F;
|
||
// mov ecx, var_148
|
||
// mov var_1A4, ecx
|
||
var_1A4=var_148;
|
||
// mov var_1CC, 1
|
||
var_1CC=1;
|
||
// jmp short loc_4168AF
|
||
goto loc_4168AF;
|
||
|
||
loc_4168A0:;
|
||
// mov edx, var_1CC
|
||
// add edx, 2
|
||
// mov var_1CC, edx
|
||
var_1CC+=2;
|
||
loc_4168AF:;
|
||
// mov eax, var_1CC
|
||
// cmp eax, var_1A4
|
||
// jg loc_416E1D
|
||
if(var_1CC>var_1A4) goto loc_416E1D;
|
||
// mov ecx, var_158
|
||
// imul ecx, var_out_val
|
||
// mov edx, var_1CC
|
||
// add edx, ecx
|
||
// mov var_128, edx
|
||
var_128=var_1CC+var_158*var_out_val;
|
||
// mov eax, var_FC
|
||
// cmp eax, var_eq_2
|
||
// jg short loc_4168F6
|
||
if(var_FC>var_eq_2) goto loc_4168F6;
|
||
// mov ecx, var_1CC
|
||
// mov var_128, ecx
|
||
var_128=var_1CC;
|
||
|
||
loc_4168F6:;
|
||
// mov edx, var_158
|
||
// imul edx, var_FC
|
||
// mov var_208, edx
|
||
var_208=var_158*var_FC;
|
||
// mov eax, varmyexp
|
||
// mov var_1D0, eax
|
||
var_1D0=varmyexp;
|
||
// mov var_1B4, 1
|
||
var_1B4=1;
|
||
// jmp short loc_416930
|
||
goto loc_416930;
|
||
|
||
loc_416921:;
|
||
// mov ecx, var_1B4
|
||
// add ecx, 1
|
||
// mov var_1B4, ecx
|
||
var_1B4++;
|
||
loc_416930:;
|
||
// mov edx, var_1B4
|
||
// cmp edx, var_1D0
|
||
// jg loc_416E18
|
||
if(var_1B4>var_1D0) goto loc_416E18;
|
||
// mov eax, var_208
|
||
// shl eax, 2
|
||
// mov var_EC, eax
|
||
var_EC=var_208*2*2;
|
||
// mov ecx, var_EC
|
||
// cmp ecx, var_22C
|
||
// jg loc_416E13
|
||
if(var_EC>var_22C) goto loc_416E13;
|
||
// mov edx, mul_more1
|
||
// mov var_20C, edx
|
||
var_20C=mul_more1;
|
||
// mov eax, var_EC
|
||
// mov var_238, eax
|
||
var_238=var_EC;
|
||
// mov ecx, var_128
|
||
// mov var_9C, ecx
|
||
var_9C=var_128;
|
||
// jmp short loc_416998
|
||
goto loc_416998;
|
||
|
||
loc_416986:;
|
||
// mov edx, var_9C
|
||
// add edx, var_238
|
||
// mov var_9C, edx
|
||
var_9C=var_9C+var_238;
|
||
loc_416998:;
|
||
// cmp var_238, 0
|
||
// jge short loc_4169BA
|
||
if(var_238>=0) goto loc_4169BA;
|
||
// mov eax, var_9C
|
||
// xor ecx, ecx
|
||
// cmp eax, var_20C
|
||
// setnl cl
|
||
// mov var_334, ecx
|
||
var_334=(var_9C>=var_20C);
|
||
// jmp short loc_4169D1
|
||
goto loc_4169D1;
|
||
|
||
loc_4169BA:;
|
||
// mov edx, var_9C
|
||
// xor eax, eax
|
||
// cmp edx, var_20C
|
||
// setle al
|
||
// mov var_334, eax
|
||
var_334=(var_9C<=var_20C);
|
||
loc_4169D1:;
|
||
// cmp var_334, 0
|
||
// jz loc_416DEC
|
||
if(var_334==0) goto loc_416DEC;
|
||
// mov ecx, var_9C
|
||
// add ecx, var_208
|
||
// mov var_A8, ecx
|
||
var_A8=var_9C+var_208;
|
||
// mov edx, var_A8
|
||
// add edx, var_208
|
||
// mov var_E4, edx
|
||
var_E4=var_A8+var_208;
|
||
// mov eax, var_E4
|
||
// add eax, var_208
|
||
// mov var_124, eax
|
||
var_124=var_E4+var_208;
|
||
// mov ecx, var_FC
|
||
// cmp ecx, var_eq_2
|
||
// jg loc_416B63
|
||
if(var_FC>var_eq_2) goto loc_416B63;
|
||
// mov edx, var_9C
|
||
// mov eax, in_buffer
|
||
// mov ecx, var_A8
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [eax+edx*8]
|
||
// fadd qword ptr [esi+ecx*8]
|
||
// fstp var_68
|
||
var_68=in_buffer[var_9C]+in_buffer[var_A8];
|
||
// mov edx, var_9C
|
||
// mov eax, in_buffer
|
||
// mov ecx, var_A8
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [eax+edx*8+8]
|
||
// fadd qword ptr [esi+ecx*8+8]
|
||
// fstp var_164
|
||
var_164=in_buffer[var_9C+1]+in_buffer[var_A8+1];
|
||
// mov edx, var_E4
|
||
// mov eax, in_buffer
|
||
// mov ecx, var_124
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [eax+edx*8]
|
||
// fadd qword ptr [esi+ecx*8]
|
||
// fstp var_118
|
||
var_118=in_buffer[var_E4]+in_buffer[var_124];
|
||
// mov edx, var_E4
|
||
// mov eax, in_buffer
|
||
// mov ecx, var_124
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [eax+edx*8+8]
|
||
// fadd qword ptr [esi+ecx*8+8]
|
||
// fstp var_21C
|
||
var_21C=in_buffer[var_E4+1]+in_buffer[var_124+1];
|
||
// mov edx, var_9C
|
||
// mov eax, in_buffer
|
||
// mov ecx, var_A8
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [eax+edx*8]
|
||
// fsub qword ptr [esi+ecx*8]
|
||
// fstp var_190
|
||
var_190=in_buffer[var_9C]-in_buffer[var_A8];
|
||
// mov edx, var_9C
|
||
// mov eax, in_buffer
|
||
// mov ecx, var_A8
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [eax+edx*8+8]
|
||
// fsub qword ptr [esi+ecx*8+8]
|
||
// fstp var_3C
|
||
var_3C=in_buffer[var_9C+1]-in_buffer[var_A8+1];
|
||
|
||
// cmp eq_1, 0
|
||
// jge short loc_416B20
|
||
if(eq_1>=0) goto loc_416B20;
|
||
// mov edx, var_E4
|
||
// mov eax, in_buffer
|
||
// mov ecx, var_124
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [eax+edx*8+8]
|
||
// fsub qword ptr [esi+ecx*8+8]
|
||
// fstp var_248
|
||
var_248=in_buffer[var_E4+1]+in_buffer[var_124+1];
|
||
// mov edx, var_124
|
||
// mov eax, in_buffer
|
||
// mov ecx, var_E4
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [eax+edx*8]
|
||
// fsub qword ptr [esi+ecx*8]
|
||
// fstp var_C8
|
||
var_C8=in_buffer[var_124]-in_buffer[var_E4];
|
||
// jmp short loc_416B5E
|
||
goto loc_416B5E;
|
||
|
||
loc_416B20:;
|
||
// mov edx, var_124
|
||
// mov eax, in_buffer
|
||
// mov ecx, var_E4
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [eax+edx*8+8]
|
||
// fsub qword ptr [esi+ecx*8+8]
|
||
// fstp var_248
|
||
var_248=in_buffer[var_124+1]-in_buffer[var_E4+1];
|
||
// mov edx, var_E4
|
||
// mov eax, in_buffer
|
||
// mov ecx, var_124
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [eax+edx*8]
|
||
// fsub qword ptr [esi+ecx*8]
|
||
// fstp var_C8
|
||
var_C8=in_buffer[var_E4]-in_buffer[var_124];;
|
||
loc_416B5E:;
|
||
// jmp loc_416D2F
|
||
goto loc_416D2F;
|
||
|
||
loc_416B63:;
|
||
// mov edx, var_A8
|
||
// mov eax, in_buffer
|
||
// fld var_134
|
||
// fmul qword ptr [eax+edx*8]
|
||
// mov ecx, var_A8
|
||
// mov edx, in_buffer
|
||
// fld var_250
|
||
// fmul qword ptr [edx+ecx*8+8]
|
||
// fsubp st(1), st
|
||
// fstp var_110
|
||
var_110=var_250*in_buffer[var_A8+1]-var_134*in_buffer[var_A8];
|
||
// mov eax, var_A8
|
||
// mov ecx, in_buffer
|
||
// fld var_134
|
||
// fmul qword ptr [ecx+eax*8+8]
|
||
// mov edx, var_A8
|
||
// mov eax, in_buffer
|
||
// fld var_250
|
||
// fmul qword ptr [eax+edx*8]
|
||
// faddp st(1), st
|
||
// fstp var_214
|
||
var_214=var_250*in_buffer[var_A8]+var_134*in_buffer[var_A8+1];
|
||
// mov ecx, var_E4
|
||
// mov edx, in_buffer
|
||
// fld var_D0
|
||
// fmul qword ptr [edx+ecx*8]
|
||
// mov eax, var_E4
|
||
// mov ecx, in_buffer
|
||
// fld var_1DC
|
||
// fmul qword ptr [ecx+eax*8+8]
|
||
// fsubp st(1), st
|
||
// fstp var_188
|
||
var_188=var_1DC*in_buffer[var_E4+1]-var_D0*in_buffer[var_E4];
|
||
// mov edx, var_E4
|
||
// mov eax, in_buffer
|
||
// fld var_D0
|
||
// fmul qword ptr [eax+edx*8+8]
|
||
// mov ecx, var_E4
|
||
// mov edx, in_buffer
|
||
// fld var_1DC
|
||
// fmul qword ptr [edx+ecx*8]
|
||
// faddp st(1), st
|
||
// fstp var_34
|
||
var_34=var_1DC*in_buffer[var_E4]+var_D0*in_buffer[var_E4+1];
|
||
// mov eax, var_124
|
||
// mov ecx, in_buffer
|
||
// fld var_1AC
|
||
// fmul qword ptr [ecx+eax*8]
|
||
// mov edx, var_124
|
||
// mov eax, in_buffer
|
||
// fld var_70
|
||
// fmul qword ptr [eax+edx*8+8]
|
||
// fsubp st(1), st
|
||
// fstp var_240
|
||
var_240=var_70*in_buffer[var_124+1]-var_1AC*in_buffer[var_124];
|
||
// mov ecx, var_124
|
||
// mov edx, in_buffer
|
||
// fld var_1AC
|
||
// fmul qword ptr [edx+ecx*8+8]
|
||
// mov eax, var_124
|
||
// mov ecx, in_buffer
|
||
// fld var_70
|
||
// fmul qword ptr [ecx+eax*8]
|
||
// faddp st(1), st
|
||
// fstp var_C0
|
||
var_C0=var_70*in_buffer[var_124]-var_1AC*in_buffer[var_124+1];
|
||
// mov edx, var_9C
|
||
// mov eax, in_buffer
|
||
// fld var_110
|
||
// fadd qword ptr [eax+edx*8]
|
||
// fstp var_68
|
||
var_68=var_110+in_buffer[var_9C];
|
||
// mov ecx, var_9C
|
||
// mov edx, in_buffer
|
||
// fld var_214
|
||
// fadd qword ptr [edx+ecx*8+8]
|
||
// fstp var_164
|
||
var_164=var_214+in_buffer[var_9C+1];
|
||
// fld var_188
|
||
// fadd var_240
|
||
// fstp var_118
|
||
var_118=var_188+var_240;
|
||
// fld var_34
|
||
// fadd var_C0
|
||
// fstp var_21C
|
||
var_21C=var_34+var_C0;
|
||
// mov eax, var_9C
|
||
// mov ecx, in_buffer
|
||
// fld qword ptr [ecx+eax*8]
|
||
// fsub var_110
|
||
// fstp var_190
|
||
var_190=in_buffer[var_9C]-var_110;
|
||
// mov edx, var_9C
|
||
// mov eax, in_buffer
|
||
// fld qword ptr [eax+edx*8+8]
|
||
// fsub var_214
|
||
// fstp var_3C
|
||
var_3C=in_buffer[var_9C+1]-var_214;
|
||
// cmp eq_1, 0
|
||
// jge short loc_416D0E
|
||
if(eq_1>=0) goto loc_416D0E;
|
||
// fld var_34
|
||
// fsub var_C0
|
||
// fstp var_248
|
||
var_248=var_34-var_C0;
|
||
// fld var_240
|
||
// fsub var_188
|
||
// fstp var_C8
|
||
var_C8=var_240-var_188;
|
||
// jmp short loc_416D2F
|
||
goto loc_416D2F;
|
||
|
||
loc_416D0E:;
|
||
// fld var_C0
|
||
// fsub var_34
|
||
// fstp var_248
|
||
var_248=var_C0-var_34;
|
||
// fld var_188
|
||
// fsub var_240
|
||
// fstp var_C8
|
||
var_C8=var_188-var_240;
|
||
loc_416D2F:;
|
||
// fld var_68
|
||
// fadd var_118
|
||
// mov ecx, var_9C
|
||
// mov edx, in_buffer
|
||
// fstp qword ptr [edx+ecx*8]
|
||
in_buffer[var_9C]=var_68+var_118;
|
||
// fld var_164
|
||
// fadd var_21C
|
||
// mov eax, var_9C
|
||
// mov ecx, in_buffer
|
||
// fstp qword ptr [ecx+eax*8+8]
|
||
in_buffer[var_9C+1]=var_164+var_21C;
|
||
// fld var_190
|
||
// fadd var_248
|
||
// mov edx, var_A8
|
||
// mov eax, in_buffer
|
||
// fstp qword ptr [eax+edx*8]
|
||
in_buffer[var_A8]=var_190+var_248;
|
||
// fld var_3C
|
||
// fadd var_C8
|
||
// mov ecx, var_A8
|
||
// mov edx, in_buffer
|
||
// fstp qword ptr [edx+ecx*8+8]
|
||
in_buffer[var_A8+1]=var_3C+var_C8;
|
||
// fld var_68
|
||
// fsub var_118
|
||
// mov eax, var_E4
|
||
// mov ecx, in_buffer
|
||
// fstp qword ptr [ecx+eax*8]
|
||
in_buffer[var_E4]=var_68-var_118;
|
||
// fld var_164
|
||
// fsub var_21C
|
||
// mov edx, var_E4
|
||
// mov eax, in_buffer
|
||
// fstp qword ptr [eax+edx*8+8]
|
||
in_buffer[var_E4+1]=var_164-var_21C;
|
||
// fld var_190
|
||
// fsub var_248
|
||
// mov ecx, var_124
|
||
// mov edx, in_buffer
|
||
// fstp qword ptr [edx+ecx*8]
|
||
in_buffer[var_124]=var_190-var_248;
|
||
// fld var_3C
|
||
// fsub var_C8
|
||
// mov eax, var_124
|
||
// mov ecx, in_buffer
|
||
// fstp qword ptr [ecx+eax*8+8]
|
||
in_buffer[var_124+1]=var_3C-var_C8;
|
||
// jmp loc_416986
|
||
goto loc_416986;
|
||
|
||
loc_416DEC:;
|
||
// mov edx, var_EC
|
||
// mov var_208, edx
|
||
var_208=var_EC;
|
||
// mov eax, var_128
|
||
// sub eax, var_1CC
|
||
// mov ecx, var_1CC
|
||
// lea edx, [ecx+eax*4]
|
||
// mov var_128, edx
|
||
var_128=var_1CC+(var_128-var_1CC)*4;
|
||
|
||
loc_416E13:;
|
||
// jmp loc_416921
|
||
goto loc_416921;
|
||
|
||
loc_416E18:;
|
||
// jmp loc_4168A0
|
||
goto loc_4168A0;
|
||
|
||
loc_416E1D:;
|
||
// mov eax, var_out_val
|
||
// add eax, var_B4
|
||
// mov var_out_val, eax
|
||
var_out_val=var_out_val+var_B4;
|
||
// cmp eq_1, 0
|
||
// jge short loc_416E70
|
||
if(eq_1>=0) goto loc_416E70;
|
||
// mov ecx, dword ptr var_D0
|
||
// mov dword ptr var_80, ecx
|
||
// mov edx, dword ptr [var_D0+4]
|
||
// mov dword ptr [var_80+4], edx
|
||
var_80=var_D0;
|
||
// fld var_D0
|
||
// fadd var_1DC
|
||
// fmul const2
|
||
// fstp var_D0
|
||
var_D0=(var_D0+var_1DC)*const2;
|
||
// fld var_1DC
|
||
// fsub var_80
|
||
// fmul const2
|
||
// fstp var_1DC
|
||
var_1DC=(var_1DC-var_80)*const2;
|
||
// jmp short loc_416EA9
|
||
goto loc_416EA9;
|
||
|
||
loc_416E70:;
|
||
// mov eax, dword ptr var_D0
|
||
// mov dword ptr var_80, eax
|
||
// mov ecx, dword ptr [var_D0+4]
|
||
// mov dword ptr [var_80+4], ecx
|
||
var_80=var_D0;
|
||
// fld var_D0
|
||
// fsub var_1DC
|
||
// fmul const2
|
||
// fstp var_D0
|
||
var_D0=(var_D0-var_1DC)*const2;
|
||
// fld var_80
|
||
// fadd var_1DC
|
||
// fmul const2
|
||
// fstp var_1DC
|
||
var_1DC=(var_80-var_1DC)*const2;
|
||
|
||
loc_416EA9:;
|
||
// fld var_D0
|
||
// fmul var_D0
|
||
// fld var_1DC
|
||
// fmul var_1DC
|
||
// fsubp st(1), st
|
||
// fstp var_134
|
||
var_134=var_D0*var_D0-var_1DC*var_1DC;
|
||
// fld var_D0
|
||
// fadd st, st
|
||
// fmul var_1DC
|
||
// fstp var_250
|
||
var_250=(var_D0+var_D0)*var_1DC;
|
||
// fld var_134
|
||
// fmul var_D0
|
||
// fld var_250
|
||
// fmul var_1DC
|
||
// fsubp st(1), st
|
||
// fstp var_1AC
|
||
var_1AC=var_134*var_D0-var_250*var_1DC;
|
||
// fld var_134
|
||
// fmul var_1DC
|
||
// fld var_250
|
||
// fmul var_D0
|
||
// faddp st(1), st
|
||
// fstp var_70
|
||
var_70=var_134*var_1DC+var_250*var_D0;
|
||
// jmp loc_416876
|
||
goto loc_416876;
|
||
|
||
loc_416F1F:;
|
||
// jmp loc_416718
|
||
goto loc_416718;
|
||
|
||
loc_416F24:;
|
||
// mov edx, 3
|
||
// sub edx, var_158
|
||
// mov var_158, edx
|
||
var_158=3-var_158;
|
||
// mov eax, var_FC
|
||
// add eax, var_FC
|
||
// mov var_FC, eax
|
||
var_FC=var_FC+var_FC;
|
||
// jmp loc_41668A
|
||
goto loc_41668A;
|
||
|
||
loc_416F4C:;
|
||
// cmp var_F8, 1
|
||
// jle loc_417675
|
||
if(var_F8<=1) goto loc_417675;
|
||
// mov ecx, var_22C
|
||
// mov var_60, ecx
|
||
var_60=var_22C;
|
||
// mov edx, var_4C
|
||
// mov j, edx
|
||
j=var_4C;
|
||
loc_416F6B:;
|
||
// mov eax, var_60
|
||
// cmp eax, var_1D4
|
||
// jge loc_417675
|
||
if(var_60>=var_1D4) goto loc_417675;
|
||
/////////ww
|
||
// mov ecx, j
|
||
// lea edx, save_const_1
|
||
// mov edx, [edx+ecx*4]
|
||
// imul edx, var_60
|
||
// mov var_8C, edx
|
||
var_8C=temp[save_const_1+j]*var_60;
|
||
// fld const1
|
||
// fchs
|
||
|
||
// mov eax, j
|
||
|
||
///ww
|
||
// lea edx, save_const_1
|
||
// fidiv [edx+eax*4]
|
||
|
||
// fstp var_88
|
||
var_88=-const1/temp[save_const_1+j];
|
||
// cmp eq_1, 0
|
||
// jl short loc_416FC0
|
||
if(eq_1<0) goto loc_416FC0;
|
||
// fld var_88
|
||
// fchs
|
||
// fstp var_88
|
||
var_88=-var_88;
|
||
loc_416FC0:
|
||
// mov ecx, dword ptr var_88+4
|
||
// push ecx
|
||
// mov edx, dword ptr var_88
|
||
// push edx
|
||
// call mycos
|
||
// add esp, 8
|
||
// fstp var_1C8
|
||
var_1C8=mycos(var_88);
|
||
// mov eax, dword ptr var_88+4
|
||
// push eax
|
||
// mov ecx, dword ptr var_88
|
||
// push ecx
|
||
// call mysin
|
||
// add esp, 8
|
||
// fstp var_78
|
||
var_78=mysin(var_88);
|
||
// mov edx, var_60
|
||
// mov var_180, edx
|
||
var_180=var_60;
|
||
// mov eax, var_eq_2
|
||
// mov var_1A4, eax
|
||
var_1A4=var_eq_2;
|
||
// mov var_288, 1
|
||
var_288=1;
|
||
// jmp short loc_417028
|
||
goto loc_417028;
|
||
loc_417016:
|
||
// mov ecx, var_288
|
||
// add ecx, var_1A4
|
||
// mov var_288, ecx
|
||
var_288+=var_1A4;
|
||
loc_417028:;
|
||
// cmp var_1A4, 0
|
||
// jge short loc_41704A
|
||
if(var_1A4>=0) goto loc_41704A;
|
||
// mov edx, var_288
|
||
// xor eax, eax
|
||
// cmp edx, var_180
|
||
// setnl al
|
||
// mov var_338, eax
|
||
var_338=(var_288>=var_180);
|
||
// jmp short loc_417061
|
||
goto loc_417061;
|
||
|
||
loc_41704A:;
|
||
// mov ecx, var_288
|
||
// xor edx, edx
|
||
// cmp ecx, var_180
|
||
// setle dl
|
||
// mov var_338, edx
|
||
var_338=(var_288<=var_180);
|
||
loc_417061:;
|
||
// cmp var_338, 0
|
||
// jz loc_417658
|
||
if(var_338==0) goto loc_417658;
|
||
// fld const1
|
||
// fchs
|
||
// mov eax, var_288
|
||
// sub eax, 1
|
||
// mov var_33C, eax
|
||
var_33C=var_288-1;
|
||
// fild var_33C
|
||
// fmulp st(1), st
|
||
// fidiv var_8C
|
||
// fstp var_260
|
||
var_260=-const1*var_33C;
|
||
// cmp eq_1, 0
|
||
if(eq_1<0) goto loc_4170AD;
|
||
// jl short loc_4170AD
|
||
// fld var_260
|
||
// fchs
|
||
// fstp var_260
|
||
//
|
||
var_260=var_260*(-1);
|
||
loc_4170AD:;
|
||
// mov ecx, dword ptr var_260+4
|
||
// push ecx
|
||
// mov edx, dword ptr var_260
|
||
// push edx
|
||
// call mycos
|
||
// add esp, 8
|
||
// fstp var_258
|
||
var_258=mycos(var_260);
|
||
// mov eax, dword ptr var_260+4
|
||
// push eax
|
||
// mov ecx, dword ptr var_260
|
||
// push ecx
|
||
// call mysin
|
||
// add esp, 8
|
||
// fstp var_F4
|
||
var_F4=mysin(var_260);
|
||
// mov edx, var_148
|
||
// mov eax, var_288
|
||
// lea ecx, [eax+edx-2]
|
||
// mov var_A0, ecx
|
||
var_A0=var_148+var_288-2;
|
||
// mov edx, var_A0
|
||
// mov var_1D0, edx
|
||
var_1D0=var_A0;
|
||
// mov eax, var_288
|
||
// mov var_1CC, eax
|
||
var_1CC=var_288;
|
||
// jmp short loc_417124
|
||
goto loc_417124;
|
||
|
||
loc_417115:
|
||
// mov ecx, var_1CC
|
||
// add ecx, 2
|
||
// mov var_1CC, ecx
|
||
var_1CC+=2;
|
||
loc_417124:
|
||
// mov edx, var_1CC
|
||
// cmp edx, var_1D0
|
||
// jg loc_417653
|
||
if(var_1CC>var_1D0) goto loc_417653;
|
||
// mov eax, mul_more1
|
||
// mov var_238, eax
|
||
var_238=mul_more1;
|
||
// mov ecx, var_1D4
|
||
// mov var_20C, ecx
|
||
var_20C=var_1D4;
|
||
// mov edx, var_1CC
|
||
// mov var_220, edx
|
||
var_220=var_1CC;
|
||
// jmp short loc_41716B
|
||
goto loc_41716B;
|
||
|
||
loc_417159:
|
||
// mov eax, var_220
|
||
// add eax, var_20C
|
||
// mov var_220, eax
|
||
var_220+=var_20C;
|
||
loc_41716B:
|
||
// cmp var_20C, 0
|
||
// jge short loc_41718D
|
||
if(var_20C>=0) goto loc_41718D;
|
||
// mov ecx, var_220
|
||
// xor edx, edx
|
||
// cmp ecx, var_238
|
||
// setnl dl
|
||
// mov var_340, edx
|
||
var_340=(var_220>=var_340);
|
||
// jmp short loc_4171A4
|
||
goto loc_4171A4;
|
||
loc_41718D:
|
||
// mov eax, var_220
|
||
// xor ecx, ecx
|
||
// cmp eax, var_238
|
||
// setle cl
|
||
// mov var_340, ecx
|
||
var_340=(var_220<=var_238);
|
||
loc_4171A4:
|
||
// cmp var_340, 0
|
||
// jz loc_41764E
|
||
if(var_340==0) goto loc_41764E;
|
||
// mov var_17C, 1
|
||
var_17C=1;
|
||
// mov edx, dword ptr var_258
|
||
// mov dword ptr var_D0, edx
|
||
// mov eax, dword ptr var_258+4
|
||
// mov dword ptr [var_D0+4], eax
|
||
var_D0=var_258;
|
||
// mov ecx, dword ptr var_F4
|
||
// mov dword ptr var_1DC, ecx
|
||
|
||
// mov edx, dword ptr [var_F4+4]
|
||
// mov dword ptr [var_1DC+4], edx
|
||
var_1DC=var_F4;
|
||
|
||
// mov eax, var_220
|
||
// add eax, var_8C
|
||
// sub eax, var_60
|
||
// mov var_204, eax
|
||
var_204=var_220+var_8C-var_60;
|
||
// mov ecx, var_204
|
||
// mov var_278, ecx
|
||
var_278=var_204;
|
||
// mov edx, var_60
|
||
// mov save_const_1, edx
|
||
save_const_1=var_60;
|
||
// mov eax, var_220
|
||
// mov var_4, eax
|
||
var_4=var_220;
|
||
// jmp short loc_41722C
|
||
goto loc_41722C;
|
||
|
||
loc_417220:;
|
||
// mov ecx, var_4
|
||
// add ecx, save_const_1
|
||
// mov var_4, ecx
|
||
var_4+=save_const_1;
|
||
loc_41722C:;
|
||
// cmp save_const_1, 0
|
||
// jge short loc_41724B
|
||
if(save_const_1>=0) goto loc_41724B;
|
||
// mov edx, var_4
|
||
// xor eax, eax
|
||
// cmp edx, var_278
|
||
// setnl al
|
||
// mov var_344, eax
|
||
var_344=(var_4>=var_278);
|
||
// jmp short loc_41725F
|
||
goto loc_41725F;
|
||
|
||
loc_41724B:;
|
||
// mov ecx, var_4
|
||
// xor edx, edx
|
||
// cmp ecx, var_278
|
||
// setle dl
|
||
// mov var_344, edx
|
||
var_344=(var_4<=var_278);
|
||
loc_41725F:;
|
||
// cmp var_344, 0
|
||
// jz loc_41750D
|
||
if(var_344==0) goto loc_41750D;
|
||
// fld var_D0
|
||
// fadd var_D0
|
||
// fstp var44
|
||
var44=var_D0+var_D0;
|
||
// mov eax, var_4
|
||
// add eax, var_1D4
|
||
// sub eax, var_8C
|
||
// mov var_228, eax
|
||
var_228=var_4+var_1D4-var_8C;
|
||
// mov ecx, var_228
|
||
// mov var_24, ecx
|
||
var_24=var_228;
|
||
// mov edx, var_8C
|
||
// mov var_5C, edx
|
||
var_5C=var_8C;
|
||
// mov eax, var_4
|
||
// mov var48, eax
|
||
var48=var_4;
|
||
// jmp short loc_4172B3
|
||
goto loc_4172B3;
|
||
|
||
loc_4172AA:;
|
||
// mov ecx, var48
|
||
// add ecx, var_5C
|
||
// mov var48, ecx
|
||
var48+=var_5C;
|
||
loc_4172B3:;
|
||
// cmp var_5C, 0
|
||
// jge short loc_4172CC
|
||
if(var_5C>=0) goto loc_4172CC;
|
||
// mov edx, var48
|
||
// xor eax, eax
|
||
// cmp edx, var_24
|
||
// setnl al
|
||
// mov var_348, eax
|
||
var_348=(var48>=var_24);
|
||
// jmp short loc_4172DD
|
||
goto loc_4172DD;
|
||
|
||
loc_4172CC:;
|
||
// mov ecx, var48
|
||
// xor edx, edx
|
||
// cmp ecx, var_24
|
||
// setle dl
|
||
// mov var_348, edx
|
||
var_348=var48<=var_24;
|
||
loc_4172DD:;
|
||
// cmp var_348, 0
|
||
// jz loc_4174C4
|
||
if(var_348==0) goto loc_4174C4;
|
||
// mov eax, var48
|
||
// sub eax, var_4
|
||
// add eax, var_220
|
||
// mov var_100, eax
|
||
var_100=var48-var_4+var_220;
|
||
// mov ecx, var_100
|
||
// add ecx, var_8C
|
||
// sub ecx, var_60
|
||
// mov l, ecx
|
||
l=var_100+var_8C-var_60;
|
||
// mov edx, l
|
||
// mov eax, in_buffer
|
||
// mov ecx, [eax+edx*8]
|
||
// mov dword ptr var_D8, ecx
|
||
// mov edx, [eax+edx*8+4]
|
||
// mov dword ptr var_D8+4, edx
|
||
var_D8=in_buffer[l];
|
||
|
||
// mov eax, l
|
||
// mov ecx, in_buffer
|
||
// mov edx, [ecx+eax*8+8]
|
||
// mov dword ptr var_1E4, edx
|
||
// mov eax, [ecx+eax*8+0Ch]
|
||
// mov dword ptr var_1E4+4, eax
|
||
var_1E4=in_buffer[l+1];
|
||
// mov dword ptr var_170, 0
|
||
// mov dword ptr [var_170+4], 0
|
||
var_170=0;
|
||
// mov dword ptr var_14, 0
|
||
// mov dword ptr var_14+4, 0
|
||
var_14=0;
|
||
// mov ecx, l
|
||
// sub ecx, var_60
|
||
// mov l, ecx
|
||
l-=var_60;
|
||
loc_41737B:;
|
||
// mov edx, l
|
||
// cmp edx, var_100
|
||
// jle loc_41743B
|
||
if(l<=var_100) goto loc_41743B;
|
||
// mov eax, dword ptr var_D8
|
||
// mov var_E0, eax
|
||
var_E0=var_D8;
|
||
// mov ecx, dword ptr var_D8+4
|
||
// mov var_DC, ecx
|
||
var_DC=*(int *)(((char*)&var_D8)+4);
|
||
// mov edx, dword ptr var_1E4
|
||
// mov var_1EC, edx
|
||
var_1EC=var_1E4;
|
||
// mov eax, dword ptr var_1E4+4
|
||
// mov var_1E8, eax
|
||
var_1E8=*(int *)(((char*)&var_1E4)+4);
|
||
// fld var44
|
||
// fmul var_D8
|
||
// fsub var_170
|
||
// mov ecx, l
|
||
// mov edx, in_buffer
|
||
// fadd qword ptr [edx+ecx*8]
|
||
// fstp var_D8
|
||
var_D8=(var44*var_D8-var_170)+in_buffer[l];
|
||
// fld var44
|
||
// fmul var_1E4
|
||
// fsub var_14
|
||
// mov eax, l
|
||
// mov ecx, in_buffer
|
||
// fadd qword ptr [ecx+eax*8+8]
|
||
// fstp var_1E4
|
||
var_1E4=(var44*var_1E4-var_14)+in_buffer[l+1];
|
||
// mov edx, var_E0
|
||
// mov dword ptr var_170, edx
|
||
*(int*)&var_170=var_E0;
|
||
|
||
// mov eax, var_DC
|
||
// mov dword ptr [var_170+4], eax
|
||
*(int*)((char*)&var_170+4)=var_DC;
|
||
|
||
// mov ecx, var_1EC
|
||
// mov dword ptr var_14, ecx
|
||
*(int *)((char*)&var_14)=var_1EC;
|
||
// mov edx, var_1E8
|
||
// mov dword ptr var_14+4, edx
|
||
*(int *)(((char*)&var_14)+4)=var_1E8;
|
||
// mov eax, l
|
||
// sub eax, var_60
|
||
// mov l, eax
|
||
l-=var_60;
|
||
// jmp loc_41737B
|
||
goto loc_41737B;
|
||
|
||
loc_41743B:;
|
||
// fld var_D0
|
||
// fmul var_D8
|
||
// fld var_1DC
|
||
// fmul var_1E4
|
||
// fsubp st(1), st
|
||
// fsub var_170
|
||
// mov ecx, l
|
||
// mov edx, in_buffer
|
||
// fadd qword ptr [edx+ecx*8]
|
||
// mov eax, var_17C
|
||
// mov ecx, buffer
|
||
// fstp qword ptr [ecx+eax*8]
|
||
buffer[var_17C]=var_D0*var_D8-var_1DC*var_1E4-var_170+in_buffer[l];
|
||
// fld var_1DC
|
||
// fmul var_D8
|
||
// fld var_D0
|
||
// fmul var_1E4
|
||
// faddp st(1), st
|
||
// fsub var_14
|
||
// mov edx, l
|
||
// mov eax, in_buffer
|
||
// fadd qword ptr [eax+edx*8+8]
|
||
// mov ecx, var_17C
|
||
// mov edx, buffer
|
||
// fstp qword ptr [edx+ecx*8+8]
|
||
buffer[var_17C+1]=var_1DC*var_D8-var_D0*var_1E4-var_14+in_buffer[l];
|
||
// mov eax, var_17C
|
||
// add eax, 2
|
||
// mov var_17C, eax
|
||
var_17C+=2;
|
||
// jmp loc_4172AA
|
||
goto loc_4172AA;
|
||
|
||
loc_4174C4:;
|
||
// fld var_D0
|
||
// fmul var_78
|
||
// fstp var_120
|
||
var_120=var_D0*var_78;
|
||
// fld var_D0
|
||
// fmul var_1C8
|
||
// fld var_1DC
|
||
// fmul var_78
|
||
// fsubp st(1), st
|
||
// fstp var_D0
|
||
var_D0=var_D0*var_1C8-var_1DC*var_78;
|
||
// fld var_1DC
|
||
// fmul var_1C8
|
||
// fadd var_120
|
||
// fstp var_1DC
|
||
var_1DC=var_1DC*var_1C8+var_120;
|
||
// jmp loc_417220
|
||
goto loc_417220;
|
||
|
||
loc_41750D:;
|
||
// mov var_17C, 1
|
||
var_17C=1;
|
||
// mov ecx, var_204
|
||
// mov save_const_1, ecx
|
||
save_const_1=var_204;
|
||
// mov edx, var_60
|
||
// mov var_278, edx
|
||
var_278=var_60;
|
||
// mov eax, var_220
|
||
// mov var_4, eax
|
||
var_4=var_220;
|
||
// jmp short loc_417543
|
||
goto loc_417543;
|
||
|
||
loc_417537:;
|
||
// mov ecx, var_4
|
||
// add ecx, var_278
|
||
// mov var_4, ecx
|
||
var_4+=var_278;
|
||
loc_417543:;
|
||
// cmp var_278, 0
|
||
// jge short loc_417562
|
||
if(var_278>=0) goto loc_417562;
|
||
// mov edx, var_4
|
||
// xor eax, eax
|
||
// cmp edx, save_const_1
|
||
// setnl al
|
||
// mov var_34C, eax
|
||
var_34C=(var_4>=save_const_1);
|
||
// jmp short loc_417576
|
||
goto loc_417576;
|
||
|
||
loc_417562:;
|
||
// mov ecx, var_4
|
||
// xor edx, edx
|
||
// cmp ecx, save_const_1
|
||
// setle dl
|
||
// mov var_34C, edx
|
||
var_34C=(var_4<=save_const_1);
|
||
loc_417576:;
|
||
// cmp var_34C, 0
|
||
// jz loc_417649
|
||
if(var_34C==0) goto loc_417649;
|
||
// mov eax, var_4
|
||
// add eax, var_1D4
|
||
// sub eax, var_8C
|
||
// mov var_228, eax
|
||
var_228=var_4+var_1D4-var_8C;
|
||
// mov ecx, var_228
|
||
// mov var_5C, ecx
|
||
var_5C=var_228;
|
||
// mov edx, var_8C
|
||
// mov var_24, edx
|
||
var_24=var_8C;
|
||
// mov eax, var_4
|
||
// mov var48, eax
|
||
var48=var_4;
|
||
// jmp short loc_4175BB
|
||
goto loc_4175BB;
|
||
|
||
loc_4175B2:;
|
||
// mov ecx, var48
|
||
// add ecx, var_24
|
||
// mov var48, ecx
|
||
var48+=var_24;
|
||
loc_4175BB:;
|
||
// cmp var_24, 0
|
||
// jge short loc_4175D4
|
||
if(var_24>=0) goto loc_4175D4;
|
||
// mov edx, var48
|
||
// xor eax, eax
|
||
// cmp edx, var_5C
|
||
// setnl al
|
||
// mov var_350, eax
|
||
var_350=(var48>=var_5C);
|
||
// jmp short loc_4175E5
|
||
goto loc_4175E5;
|
||
|
||
loc_4175D4:;
|
||
// mov ecx, var48
|
||
// xor edx, edx
|
||
// cmp ecx, var_5C
|
||
// setle dl
|
||
// mov var_350, edx
|
||
var_350=(var48<=var_5C);
|
||
loc_4175E5:;
|
||
// cmp var_350, 0
|
||
// jz short loc_417644
|
||
if(var_350==0) goto loc_417644;
|
||
// mov eax, var_17C
|
||
// mov ecx, buffer
|
||
// mov edx, var48
|
||
// mov esi, in_buffer
|
||
// mov edi, [ecx+eax*8]
|
||
// mov [esi+edx*8], edi
|
||
// mov eax, [ecx+eax*8+4]
|
||
// mov [esi+edx*8+4], eax
|
||
in_buffer[var48]=buffer[var_17C];
|
||
// mov ecx, var_17C
|
||
// mov edx, buffer
|
||
// mov eax, var48
|
||
// mov esi, in_buffer
|
||
// mov edi, [edx+ecx*8+8]
|
||
// mov [esi+eax*8+8], edi
|
||
// mov ecx, [edx+ecx*8+0Ch]
|
||
// mov [esi+eax*8+0Ch], ecx
|
||
in_buffer[var48+1]=buffer[var_17C+1];
|
||
// mov edx, var_17C
|
||
// add edx, 2
|
||
// mov var_17C, edx
|
||
var_17C+=2;
|
||
// jmp loc_4175B2
|
||
//
|
||
goto loc_4175B2;
|
||
loc_417644:;
|
||
// jmp loc_417537
|
||
goto loc_417537;
|
||
|
||
loc_417649:;
|
||
// jmp loc_417159
|
||
goto loc_417159;
|
||
|
||
loc_41764E:;
|
||
// jmp loc_417115
|
||
goto loc_417115;
|
||
|
||
|
||
loc_417653:;
|
||
// jmp loc_417016
|
||
goto loc_417016;
|
||
|
||
loc_417658:;
|
||
// mov eax, j
|
||
// add eax, 1
|
||
// mov j, eax
|
||
j++;
|
||
// mov ecx, var_8C
|
||
// mov var_60, ecx
|
||
var_60=var_8C;
|
||
// jmp loc_416F6B
|
||
goto loc_416F6B;
|
||
|
||
loc_417675:;
|
||
// cmp var_198, 4
|
||
// jnz loc_417C62
|
||
if(var_198!=4) goto loc_417C62;
|
||
// mov edx, var_264
|
||
// mov var_18, edx
|
||
var_18=var_264;
|
||
// mov eax, var_264
|
||
// add eax, var_264
|
||
// mov var_264, eax
|
||
var_264=var_264*2;
|
||
// fld const1
|
||
// fchs
|
||
// fidiv var_264
|
||
// fstp var_88
|
||
var_88=-const1/var_264;
|
||
// cmp eq_1, 0
|
||
// jl short loc_4176C5
|
||
if(eq_1<0) goto loc_4176C5;
|
||
// fld var_88
|
||
// fchs
|
||
// fstp var_88
|
||
var_88=-var_88;
|
||
//
|
||
loc_4176C5:
|
||
// mov ecx, dword ptr var_88+4
|
||
// push ecx
|
||
// mov edx, dword ptr var_88
|
||
// push edx
|
||
// call mycos
|
||
// add esp, 8
|
||
// fstp var_1C8
|
||
var_1C8=mycos(var_88);
|
||
// mov eax, dword ptr var_88+4
|
||
// push eax
|
||
// mov ecx, dword ptr var_88
|
||
// push ecx
|
||
// call mysin
|
||
// add esp, 8
|
||
// fstp var_78
|
||
var_78=mysin(var_88);
|
||
// mov edx, dword ptr var_1C8
|
||
// mov dword ptr var_D0, edx ; //var_d0=cos()
|
||
|
||
// mov eax, dword ptr [var_1C8+4]
|
||
// mov dword ptr [var_D0+4], eax
|
||
var_D0=var_1C8;
|
||
// mov ecx, dword ptr var_78 ; //mysin
|
||
// mov dword ptr var_1DC, ecx
|
||
// mov edx, dword ptr var_78+4
|
||
// mov dword ptr [var_1DC+4], edx
|
||
var_1DC=var_78;
|
||
// mov var_B8, 3 ; //
|
||
var_B8=3;
|
||
// mov eax, var_18
|
||
// lea ecx, [eax+eax-1]
|
||
// mov var_100, ecx
|
||
var_100=var_18*2-1;
|
||
loc_41773B:
|
||
// mov edx, var_B8
|
||
// cmp edx, var_100
|
||
// jge loc_417978
|
||
if(var_B8>=var_100) goto loc_417978;
|
||
// mov eax, var_100
|
||
// mov l, eax
|
||
l=var_100;
|
||
// mov ecx, mul_more1
|
||
// mov var_1A4, ecx
|
||
var_1A4=mul_more1;
|
||
// mov edx, var_1D4
|
||
// mov var_180, edx
|
||
var_180=var_1D4;
|
||
// mov eax, var_B8
|
||
// mov var_17C, eax
|
||
var_17C=var_B8;
|
||
// jmp short loc_41778E
|
||
goto loc_41778E;
|
||
|
||
loc_41777C:
|
||
// mov ecx, var_17C
|
||
// add ecx, var_180
|
||
// mov var_17C, ecx
|
||
var_17C+=var_180;
|
||
loc_41778E:;
|
||
// cmp var_180, 0
|
||
// jge short loc_4177B0
|
||
if(var_180>=0) goto loc_4177B0;
|
||
// mov edx, var_17C
|
||
// xor eax, eax
|
||
// cmp edx, var_1A4
|
||
// setnl al
|
||
// mov var_354, eax
|
||
var_354=(var_17C>=var_1A4);
|
||
// jmp short loc_4177C7
|
||
goto loc_4177C7;
|
||
|
||
loc_4177B0:;
|
||
// mov ecx, var_17C
|
||
// xor edx, edx
|
||
// cmp ecx, var_1A4
|
||
// setle dl
|
||
// mov var_354, edx
|
||
var_354=(var_17C>=var_1A4);
|
||
loc_4177C7:;
|
||
// cmp var_354, 0
|
||
// jz loc_417911
|
||
if(var_354==0) goto loc_417911;
|
||
// mov eax, var_17C
|
||
// mov ecx, in_buffer
|
||
// mov edx, l
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [ecx+eax*8]
|
||
// fadd qword ptr [esi+edx*8]
|
||
// fdiv eq2 ; //2.0
|
||
// fstp var_54
|
||
var_54=(in_buffer[var_17C]+in_buffer[l])/eq2;
|
||
// mov eax, var_17C
|
||
// mov ecx, in_buffer
|
||
// mov edx, l
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [ecx+eax*8+8]
|
||
// fadd qword ptr [esi+edx*8+8]
|
||
// fdiv eq2
|
||
// fstp var_154
|
||
var_154=(in_buffer[var_17C+1]+in_buffer[l+1])/eq2;
|
||
// mov eax, var_17C
|
||
// mov ecx, in_buffer
|
||
// mov edx, l
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [ecx+eax*8]
|
||
// fsub qword ptr [esi+edx*8]
|
||
// fdiv eq2
|
||
// fstp var_274
|
||
var_274=(in_buffer[var_17C]-in_buffer[l])/eq2;
|
||
// mov eax, var_17C
|
||
// mov ecx, in_buffer
|
||
// mov edx, l
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [ecx+eax*8+8]
|
||
// fsub qword ptr [esi+edx*8+8]
|
||
// fdiv eq2
|
||
// fstp var_108 ; //var_108=var_154=var_54=var_275=2.0/(var_17c+var_1a0)
|
||
var_108=(in_buffer[var_17C+1]-in_buffer[l+1])/eq2;
|
||
// fld var_D0
|
||
// fmul var_154
|
||
// fld var_1DC
|
||
// fmul var_274
|
||
// faddp st(1), st
|
||
// fstp var_80 ; var_80=
|
||
var_80=var_D0*var_154+var_1DC*var_274;
|
||
// fld var_1DC
|
||
// fmul var_154
|
||
// fld var_D0
|
||
// fmul var_274
|
||
// fsubp st(1), st
|
||
// fstp var_178
|
||
var_178=var_1DC*var_154-var_D0*var_274;
|
||
// fld var_54
|
||
// fadd var_80
|
||
// mov eax, var_17C
|
||
// mov ecx, in_buffer
|
||
// fstp qword ptr [ecx+eax*8]
|
||
in_buffer[var_17C]=var_54+var_80;
|
||
// fld var_108
|
||
// fadd var_178
|
||
// mov edx, var_17C
|
||
// mov eax, in_buffer
|
||
// fstp qword ptr [eax+edx*8+8]
|
||
in_buffer[var_17C+1]=var_108+var_178;
|
||
// fld var_54
|
||
// fsub var_80
|
||
// mov ecx, l
|
||
// mov edx, in_buffer
|
||
// fstp qword ptr [edx+ecx*8]
|
||
in_buffer[l]=var_54-var_80;
|
||
// fld var_108
|
||
// fchs
|
||
// fadd var_178
|
||
// mov eax, l
|
||
/// mov ecx, in_buffer ; //out
|
||
// fstp qword ptr [ecx+eax*8+8]
|
||
in_buffer[i+1]=-var_108+var_178;
|
||
// mov edx, l
|
||
// add edx, var_1D4 ; //step
|
||
// mov l, edx
|
||
l+=var_1D4;
|
||
// jmp loc_41777C
|
||
//
|
||
goto loc_41777C;
|
||
loc_417911:;
|
||
// mov eax, var_B8
|
||
// add eax, 2
|
||
// mov var_B8, eax
|
||
var_B8+=2;
|
||
// mov ecx, var_100
|
||
// sub ecx, 2
|
||
// mov var_100, ecx
|
||
var_100-=2;
|
||
// fld var_D0
|
||
// fmul var_78
|
||
// fstp var_120
|
||
var_120=var_D0*var_78;
|
||
// fld var_D0
|
||
// fmul var_1C8
|
||
// fld var_1DC
|
||
// fmul var_78
|
||
// fsubp st(1), st
|
||
// fstp var_D0
|
||
var_D0=var_D0*var_1C8-var_1DC*var_78;
|
||
// fld var_1DC
|
||
// fmul var_1C8
|
||
// fadd var_120
|
||
// fstp var_1DC
|
||
var_1DC=var_1DC*var_1C8+var_120;
|
||
// jmp loc_41773B
|
||
goto loc_41773B;
|
||
|
||
loc_417978:;
|
||
// mov edx, var_B8
|
||
// cmp edx, var_100
|
||
// jnz loc_417A29
|
||
if(var_B8!=var_B8) goto loc_417A29;
|
||
// cmp eq_1, 0
|
||
// jge loc_417A29
|
||
if(l>=0) goto loc_417A29;
|
||
// mov eax, mul_more1
|
||
// mov k, eax
|
||
k=mul_more1;
|
||
// mov ecx, var_1D4
|
||
// mov var_180, ecx
|
||
var_180=var_1D4;
|
||
// mov edx, var_B8
|
||
// mov var_17C, edx
|
||
var_17C=var_B8;
|
||
// jmp short loc_4179C9
|
||
goto loc_4179C9;
|
||
|
||
loc_4179B7:;
|
||
// mov eax, var_17C
|
||
// add eax, var_180
|
||
// mov var_17C, eax
|
||
var_17C+=var_180;
|
||
loc_4179C9:;
|
||
// cmp var_180, 0
|
||
// jge short loc_4179EB
|
||
if(var_180>=0) goto loc_4179EB;
|
||
// mov ecx, var_17C
|
||
// xor edx, edx
|
||
// cmp ecx, k
|
||
// setnl dl
|
||
// mov var_358, edx
|
||
var_358=(var_17C>=k);
|
||
// jmp short loc_417A02
|
||
goto loc_417A02;
|
||
|
||
loc_4179EB:;
|
||
// mov eax, var_17C
|
||
// xor ecx, ecx
|
||
// cmp eax, k
|
||
// setle cl
|
||
// mov var_358, ecx
|
||
var_358=(var_17C<=k);
|
||
loc_417A02:;
|
||
// cmp var_358, 0
|
||
// jz short loc_417A29
|
||
if(var_358==0) goto loc_417A29;
|
||
// mov edx, var_17C
|
||
// mov eax, in_buffer
|
||
// fld qword ptr [eax+edx*8+8]
|
||
// fchs
|
||
// mov ecx, var_17C
|
||
// mov edx, in_buffer
|
||
// fstp qword ptr [edx+ecx*8+8]
|
||
in_buffer[var_17C+1]=-in_buffer[var_17C+1];
|
||
// jmp short loc_4179B7
|
||
goto loc_4179B7;
|
||
|
||
loc_417A29:;
|
||
// mov eax, var_1D4
|
||
// add eax, var_1D4
|
||
// mov var_1D4, eax
|
||
var_1D4*=2;
|
||
// mov ecx, mul_more1
|
||
// add ecx, mul_more1
|
||
// mov mul_more1, ecx
|
||
mul_more1*=2;
|
||
// mov edx, mul_more1
|
||
// add edx, 1
|
||
// mov l, edx
|
||
l=mul_more1+1;
|
||
// mov eax, mul_more1
|
||
// cdq
|
||
// sub eax, edx
|
||
// sar eax, 1
|
||
// add eax, 1
|
||
// mov var_230, eax
|
||
var_230=mul_more1/2+l;
|
||
// mov eax, mul_more2_exd_1
|
||
// mov var_180, eax
|
||
var_180=mul_more2_exd_1;
|
||
// mov var_26C, 1
|
||
var_26C=1;
|
||
// jmp short loc_417A88
|
||
goto loc_417A88;
|
||
|
||
loc_417A79:;
|
||
// mov ecx, var_26C
|
||
// add ecx, 1
|
||
// mov var_26C, ecx
|
||
var_26C+=1;
|
||
loc_417A88:;
|
||
// mov edx, var_26C
|
||
// cmp edx, var_180
|
||
// jg loc_417C32
|
||
if(var_26C>var_180) goto loc_417C32;
|
||
// mov eax, var_18
|
||
// shl eax, 1
|
||
// mov ecx, var_230
|
||
// sub ecx, eax
|
||
// mov var_B8, ecx
|
||
var_B8=var_230-var_18*2;
|
||
// mov edx, var_B8
|
||
// mov var_17C, edx
|
||
var_17C=var_B8;
|
||
loc_417AB9:;
|
||
// mov eax, var_17C
|
||
// cmp eax, var_230
|
||
// jge short loc_417B23
|
||
if(var_17C>=var_230) goto loc_417B23;
|
||
// mov ecx, var_17C
|
||
// add ecx, 2
|
||
// mov var_17C, ecx
|
||
var_17C+=2;
|
||
// mov edx, l
|
||
// sub edx, 2
|
||
// mov l, edx
|
||
l-=2;
|
||
// mov eax, var_17C
|
||
// mov ecx, in_buffer
|
||
// mov edx, l
|
||
// mov esi, in_buffer
|
||
// mov edi, [ecx+eax*8]
|
||
// mov [esi+edx*8], edi
|
||
// mov eax, [ecx+eax*8+4]
|
||
// mov [esi+edx*8+4], eax
|
||
in_buffer[l]=in_buffer[var_17C];
|
||
// mov ecx, var_17C
|
||
// mov edx, in_buffer
|
||
// fld qword ptr [edx+ecx*8+8]
|
||
// fchs
|
||
// mov eax, l
|
||
// mov ecx, in_buffer
|
||
// fstp qword ptr [ecx+eax*8+8]
|
||
in_buffer[l+1]=-in_buffer[var_17C+1];
|
||
|
||
// jmp short loc_417AB9
|
||
goto loc_417AB9;
|
||
|
||
loc_417B23:;
|
||
// mov edx, var_B8
|
||
// mov eax, in_buffer
|
||
// mov ecx, var_B8
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [eax+edx*8]
|
||
// fsub qword ptr [esi+ecx*8+8]
|
||
// mov edx, l
|
||
// mov eax, in_buffer
|
||
// fstp qword ptr [eax+edx*8]
|
||
in_buffer[l]=in_buffer[var_B8]-in_buffer[var_B8+1];
|
||
// mov ecx, l
|
||
// mov edx, in_buffer
|
||
// mov dword ptr [edx+ecx*8+8], 0
|
||
// mov dword ptr [edx+ecx*8+0Ch], 0
|
||
in_buffer[l+1]=0;
|
||
// mov eax, var_17C
|
||
// cmp eax, l
|
||
// jge loc_417C2D
|
||
if(var_17C>=l) goto loc_417C2D;
|
||
loc_417B73:;
|
||
// mov ecx, var_17C
|
||
// cmp ecx, var_B8
|
||
// jle short loc_417BE3
|
||
if(var_17C<=var_B8) goto loc_417BE3;
|
||
// mov edx, var_17C
|
||
// sub edx, 2
|
||
// mov var_17C, edx
|
||
var_17C-=2;
|
||
// mov eax, l
|
||
// sub eax, 2
|
||
// mov l, eax
|
||
l-=2;
|
||
// mov ecx, var_17C
|
||
// mov edx, in_buffer
|
||
// mov eax, l
|
||
// mov esi, in_buffer
|
||
// mov edi, [edx+ecx*8]
|
||
// mov [esi+eax*8], edi
|
||
// mov ecx, [edx+ecx*8+4]
|
||
// mov [esi+eax*8+4], ecx
|
||
in_buffer[l]=in_buffer[var_17C];
|
||
// mov edx, var_17C
|
||
// mov eax, in_buffer
|
||
// mov ecx, l
|
||
// mov esi, in_buffer
|
||
// mov edi, [eax+edx*8+8]
|
||
// mov [esi+ecx*8+8], edi
|
||
// mov edx, [eax+edx*8+0Ch]
|
||
// mov [esi+ecx*8+0Ch], edx
|
||
in_buffer[l+1]=in_buffer[var_17C+1];
|
||
// jmp short loc_417B73
|
||
goto loc_417B73;
|
||
|
||
loc_417BE3:;
|
||
// mov eax, var_B8
|
||
// mov ecx, in_buffer
|
||
// mov edx, var_B8
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [ecx+eax*8]
|
||
// fadd qword ptr [esi+edx*8+8]
|
||
// mov eax, l
|
||
// mov ecx, in_buffer
|
||
// fstp qword ptr [ecx+eax*8]
|
||
in_buffer[l]=in_buffer[var_B8]+in_buffer[var_B8+1];
|
||
// mov edx, l
|
||
// mov eax, in_buffer
|
||
// mov dword ptr [eax+edx*8+8], 0
|
||
// mov dword ptr [eax+edx*8+0Ch], 0
|
||
in_buffer[l+1]=0;
|
||
// mov ecx, var_B8
|
||
// mov var_230, ecx
|
||
var_230=var_B8;
|
||
//
|
||
loc_417C2D:;
|
||
// jmp loc_417A79
|
||
goto loc_417A79;
|
||
|
||
loc_417C32:;
|
||
// mov edx, var_20
|
||
// mov eax, in_buffer
|
||
// mov ecx, var_1C
|
||
// mov esi, in_buffer
|
||
// fld qword ptr [eax+edx*8]
|
||
// fadd qword ptr [esi+ecx*8]
|
||
// mov edx, var_20
|
||
// mov eax, in_buffer
|
||
// fstp qword ptr [eax+edx*8]
|
||
in_buffer[var_20]=in_buffer[var_20]+in_buffer[var_1C];
|
||
// mov ecx, var_1C
|
||
// mov edx, in_buffer
|
||
// mov dword ptr [edx+ecx*8], 0
|
||
// mov dword ptr [edx+ecx*8+4], 0
|
||
in_buffer[var_1C]=0;
|
||
|
||
loc_417C62:;
|
||
// cmp var_198, 2
|
||
// jnz loc_417F79
|
||
if(var_198!=2) goto loc_417F79;
|
||
// mov eax, var_148
|
||
// cmp eax, var_eq_2
|
||
// jge loc_417F79
|
||
if(var_148>=var_eq_2) goto loc_417F79;
|
||
// mov ecx, mul_more1
|
||
// mov var_180, ecx
|
||
var_180=mul_more1;
|
||
// mov edx, var_1D4
|
||
// mov k, edx
|
||
k=var_1D4;
|
||
|
||
// mov var_220, 1
|
||
var_220=1;
|
||
// jmp short loc_417CB4
|
||
goto loc_417CB4;
|
||
|
||
loc_417CA2:;
|
||
// mov eax, var_220
|
||
// add eax, k
|
||
// mov var_220, eax
|
||
var_220+=k;
|
||
loc_417CB4:;
|
||
// cmp k, 0
|
||
// jge short loc_417CD6
|
||
if(k>=0) goto loc_417CD6;
|
||
// mov ecx, var_220
|
||
// xor edx, edx
|
||
// cmp ecx, var_180
|
||
// setnl dl
|
||
// mov var_35C, edx
|
||
var_35C=(var_220>=var_180);
|
||
// jmp short loc_417CED
|
||
goto loc_417CED;
|
||
|
||
loc_417CD6:;
|
||
// mov eax, var_220
|
||
// xor ecx, ecx
|
||
// cmp eax, var_180
|
||
// setle cl
|
||
// mov var_35C, ecx
|
||
var_35C=(var_220<=var_180);
|
||
loc_417CED:;
|
||
// cmp var_35C, 0
|
||
// jz loc_417F79
|
||
if(var_35C==0) goto loc_417F79;
|
||
// mov edx, var_220
|
||
// add edx, var_1D4
|
||
// sub edx, var_eq_2
|
||
// mov var_B0, edx
|
||
var_B0=var_220+var_1D4-var_eq_2;
|
||
// mov eax, var_B0
|
||
// mov var_1A4, eax
|
||
var_1A4=var_B0;
|
||
// mov ecx, var_eq_2
|
||
// mov var_1D0, ecx
|
||
var_1D0=var_eq_2;
|
||
// mov edx, var_220
|
||
// mov var_1F8, edx
|
||
var_1F8=var_220;
|
||
// jmp short loc_417D4A
|
||
goto loc_417D4A;
|
||
|
||
loc_417D38:;
|
||
// mov eax, var_1F8
|
||
// add eax, var_1D0
|
||
// mov var_1F8, eax
|
||
var_1F8=var_1F8;
|
||
loc_417D4A:;
|
||
// cmp var_1D0, 0
|
||
// jge short loc_417D6C
|
||
if(var_1D0==0) goto loc_417D6C;
|
||
// mov ecx, var_1F8
|
||
// xor edx, edx
|
||
// cmp ecx, var_1A4
|
||
// setnl dl
|
||
// mov var_360, edx
|
||
var_360=(var_1F8>=var_1A4);
|
||
// jmp short loc_417D83
|
||
goto loc_417D83;
|
||
|
||
loc_417D6C:;
|
||
// mov eax, var_1F8
|
||
// xor ecx, ecx
|
||
// cmp eax, var_1A4
|
||
// setle cl
|
||
// mov var_360, ecx
|
||
var_360=(var_1F8<=var_1A4);
|
||
loc_417D83:;
|
||
// cmp var_360, 0
|
||
// jz loc_417F74
|
||
if(var_360==0) goto loc_417F74;
|
||
// mov edx, var_eq_2
|
||
// mov eax, var_1F8
|
||
// lea ecx, [eax+edx-2]
|
||
// mov var_230, ecx
|
||
var_230=var_eq_2+var_1F8-2;
|
||
// mov edx, var_1F8
|
||
// add edx, var_148
|
||
// mov var_B8, edx
|
||
var_B8+=var_148;
|
||
// mov eax, var_220
|
||
// mov ecx, var_eq_2
|
||
// lea edx, [ecx+eax*2]
|
||
// sub edx, var_B8
|
||
// mov var_268, edx
|
||
var_268=var_220*2+var_eq_2-var_B8;
|
||
// mov eax, var_1F8
|
||
// cmp eax, var_220
|
||
// jle short loc_417DF3
|
||
if(var_1F8<=var_220) goto loc_417DF3;
|
||
// mov ecx, var_268
|
||
// add ecx, var_1D4
|
||
// mov var_268, ecx
|
||
var_268+=var_1D4;
|
||
loc_417DF3:;
|
||
// cmp i, 2
|
||
// jle loc_417E96
|
||
if(i<=2) goto loc_417E96;
|
||
// mov edx, var_268
|
||
// add edx, var_194
|
||
// mov l, edx
|
||
l=var_268+var_194;
|
||
// mov eax, var_230
|
||
// mov var_20C, eax
|
||
var_20C=var_230;
|
||
// mov ecx, var_B8
|
||
// mov var_17C, ecx
|
||
var_17C=var_B8;
|
||
// jmp short loc_417E3B
|
||
goto loc_417E3B;
|
||
|
||
loc_417E2C:;
|
||
// mov edx, var_17C
|
||
// add edx, 2
|
||
// mov var_17C, edx
|
||
var_17C+=2;
|
||
loc_417E3B:;
|
||
// mov eax, var_17C
|
||
// cmp eax, var_20C
|
||
// jg short loc_417E96
|
||
if(var_17C>var_20C) goto loc_417E96;
|
||
// mov ecx, l
|
||
// mov edx, in_buffer
|
||
// mov eax, var_17C
|
||
// mov esi, in_buffer
|
||
// mov edi, [edx+ecx*8]
|
||
// mov [esi+eax*8], edi
|
||
// mov ecx, [edx+ecx*8+4]
|
||
// mov [esi+eax*8+4], ecx
|
||
in_buffer[var_17C]=in_buffer[l];
|
||
// mov edx, l
|
||
// mov eax, in_buffer
|
||
// fld qword ptr [eax+edx*8+8]
|
||
// fchs
|
||
// mov ecx, var_17C
|
||
// mov edx, in_buffer
|
||
// fstp qword ptr [edx+ecx*8+8]
|
||
in_buffer[var_17C]=-in_buffer[l];
|
||
// mov eax, l
|
||
// sub eax, 2
|
||
// mov l, eax
|
||
l-=2;
|
||
// jmp short loc_417E2C
|
||
goto loc_417E2C;
|
||
|
||
loc_417E96:;
|
||
// mov ecx, var_268
|
||
// mov l, ecx
|
||
l=var_268;
|
||
// mov edx, var_230
|
||
// mov var_20C, edx
|
||
var_20C=var_230;
|
||
// mov eax, var_194
|
||
// mov var_238, eax
|
||
var_238=var_194;
|
||
// mov ecx, var_B8
|
||
// mov var_17C, ecx
|
||
var_17C=var_B8;
|
||
// jmp short loc_417EDA
|
||
goto loc_417EDA;
|
||
|
||
loc_417EC8:;
|
||
// mov edx, var_17C
|
||
// add edx, var_238
|
||
// mov var_17C, edx
|
||
var_17C+=var_238;
|
||
loc_417EDA:;
|
||
// cmp var_238, 0
|
||
// jge short loc_417EFC
|
||
if(var_238>=0) goto loc_417EFC;
|
||
// mov eax, var_17C
|
||
// xor ecx, ecx
|
||
// cmp eax, var_20C
|
||
// setnl cl
|
||
// mov var_364, ecx
|
||
var_364=(var_17C>=var_20C);
|
||
// jmp short loc_417F13
|
||
goto loc_417F13;
|
||
|
||
loc_417EFC:;
|
||
// mov edx, var_17C
|
||
// xor eax, eax
|
||
// cmp edx, var_20C
|
||
// setle al
|
||
// mov var_364, eax
|
||
var_364=(var_17C<=var_20C);
|
||
loc_417F13:;
|
||
// cmp var_364, 0
|
||
// jz short loc_417F6F
|
||
if(var_364==0) goto loc_417F6F;
|
||
// mov ecx, l
|
||
// mov edx, in_buffer
|
||
// mov eax, var_17C
|
||
// mov esi, in_buffer
|
||
// mov edi, [edx+ecx*8]
|
||
// mov [esi+eax*8], edi
|
||
// mov ecx, [edx+ecx*8+4]
|
||
// mov [esi+eax*8+4], ecx ; //1a0=>17c
|
||
in_buffer[var_17C]=in_buffer[l];
|
||
// mov edx, l
|
||
// mov eax, in_buffer
|
||
// fld qword ptr [eax+edx*8+8]
|
||
// fchs
|
||
// mov ecx, var_17C
|
||
// mov edx, in_buffer
|
||
// fstp qword ptr [edx+ecx*8+8]
|
||
in_buffer[var_17C+1]=-in_buffer[l];
|
||
/// mov eax, l
|
||
// sub eax, var_194 ; //step
|
||
// mov l, eax
|
||
l-=var_194;
|
||
// jmp loc_417EC8
|
||
goto loc_417EC8;
|
||
|
||
loc_417F6F:;
|
||
// jmp loc_417D38
|
||
goto loc_417D38;
|
||
|
||
loc_417F74:;
|
||
// jmp loc_417CA2
|
||
goto loc_417CA2;
|
||
|
||
loc_417F79:;
|
||
// mov ecx, var_eq_2
|
||
// mov var_194, ecx
|
||
var_194=var_eq_2;
|
||
// mov edx, var_1D4
|
||
// mov var_eq_2, edx
|
||
var_eq_2=var_eq_2;
|
||
// mov eax, var_264
|
||
// mov var_1FC, eax
|
||
var_1FC=var_264;
|
||
// jmp loc_415B2C
|
||
goto loc_415B2C;
|
||
|
||
loc_417FA2:;
|
||
// mov ecx, buffer
|
||
// push ecx
|
||
// call free
|
||
// add esp, 4
|
||
// mov buffer, 0
|
||
// xor eax, eax
|
||
free(buffer);
|
||
return 1;
|
||
}
|
||
double myexp(double ff)
|
||
{
|
||
return exp(ff);
|
||
}
|
||
int get_len_mul2(int arg_0)
|
||
{
|
||
int var_8;// = dword ptr -8
|
||
int len;// = dword ptr -4
|
||
len=arg_0;
|
||
var_8=2;
|
||
loc_41304C:;
|
||
if(len<=2) goto loc_413064;
|
||
len/=2;
|
||
var_8*=2;
|
||
goto loc_41304C;
|
||
loc_413064:;
|
||
if(var_8>=arg_0) goto loc_413074;
|
||
var_8*=2;
|
||
loc_413074:;
|
||
return var_8;
|
||
}
|
||
int fir(double *in_buffer,int array_num,int wave_len,double delay,double fl,double fh)//__cdecl
|
||
{
|
||
fl=fl/1000.0;
|
||
fh=fh/1000.0;
|
||
|
||
double var_C8 ;// -0C8h
|
||
double exp_1 ;// -0B8h
|
||
int eq_len ;// -0A0h
|
||
double eq_1_div_delay_div_len2;//= qword ptr -9Ch
|
||
int len2 ;//= byte ptr -94h
|
||
int i ;// -90h
|
||
double var_8C ;// -8Ch
|
||
int len_sub_j_mul_2 ;// -84h
|
||
int array_pos ;// -80h
|
||
double eq_1div_len2 ;// -7Ch
|
||
double fl_0 ;// -74h
|
||
double wave_len_mul ;// -6Ch
|
||
int j_mul_2 ;// -64h
|
||
int len ;// -60h
|
||
double* temp_buffer=0 ;// -5Ch
|
||
double eq_4605_dir_dir_fl_sub_fl_mul_1886;//= qword ptr -58h
|
||
int j ;// -50h
|
||
double fl_sub_fl_mul_1886;//= qword ptr -4Ch
|
||
double var44 ;// -44h
|
||
double var_3C ;// -3Ch
|
||
double fh_0 ;// -34h
|
||
double fh_div_div_6229 ;// -2Ch
|
||
int flag ;// -24h
|
||
double fl_mul_1886 ;// -20h
|
||
float fm ;// -18h
|
||
float delay_0 ;// -10h
|
||
double fh_mul_6229 ;// -8
|
||
float eq0=0.0;
|
||
float eq23=23.0;
|
||
float eq2=2.0;
|
||
float eq1=1;
|
||
float eq0_5=0.5;
|
||
double eq1_1886=1.1886;
|
||
double dbl_51C7E8=1.33;
|
||
double eq_460517108=0.460517108;
|
||
double eq_6229l=0.6229;
|
||
// fld fl
|
||
// fcomp eq0
|
||
// fnstsw ax
|
||
// test ah, 40h
|
||
// jz short loc_413948;//>=0
|
||
if(fl>eq0) goto loc_413948;
|
||
|
||
// fld fh
|
||
// fcomp eq0
|
||
// fnstsw ax
|
||
// test ah, 40h
|
||
// jz short loc_413948;//>=0
|
||
if(fh>eq0) goto loc_413948;
|
||
// jmp loc_414073
|
||
goto loc_414073;
|
||
loc_413948:
|
||
if(fl<=eq0) goto loc_413968;
|
||
// fld fh
|
||
// fcomp eq0
|
||
// fnstsw ax
|
||
// test ah, 1
|
||
// jz short loc_41396D;//>=0
|
||
if(fh>eq0) goto loc_41396D;
|
||
loc_413968:
|
||
// jmp loc_414073
|
||
goto loc_414073;
|
||
loc_41396D:
|
||
char *p=(char*)&eq1_1886;
|
||
// mov dword ptr eq1_1886, 6F0068DCh
|
||
// mov dword ptr eq1_1886+4, 3FF30481h ; //1.1886
|
||
eq1_1886=1.1886;
|
||
// memmove(p,0x6F0068DC3FF30481);
|
||
// mov dword ptr eq_6229l, 0FB15B574h
|
||
// mov dword ptr eq_6229l+4, 3FE3EECBh ; //0.6229
|
||
eq_6229l=0.6229;
|
||
// mov eax, dword ptr fl
|
||
// mov dword ptr fl_0, eax
|
||
// mov ecx, dword ptr fl+4
|
||
// mov dword ptr fl_0+4, ecx ; //backup arg_14
|
||
fl_0=fl;
|
||
// mov edx, dword ptr fh
|
||
// mov dword ptr fh_0, edx
|
||
// mov eax, dword ptr fh+4
|
||
// mov dword ptr fh_0+4, eax ; //backup arg_1C
|
||
fh_0=fh;
|
||
// fld delay
|
||
// fcomp eq0
|
||
// fnstsw ax
|
||
// test ah, 41h
|
||
// jz short loc_4139C2;//<=0 return
|
||
if(delay>eq0) goto loc_4139C2;
|
||
// jmp loc_414073
|
||
goto loc_414073;
|
||
loc_4139C2:
|
||
// fld eq0_5
|
||
// fdiv delay
|
||
// fstp delay_0
|
||
delay_0=eq0_5;
|
||
if(fl_0<delay_0) goto loc_4139E7;
|
||
// mov ecx, dword ptr delay_0
|
||
// mov dword ptr fl_0, ecx
|
||
// mov edx, dword ptr delay_0+4
|
||
// mov dword ptr fl_0+4, edx ; //arg_14=arg_C
|
||
fl_0=delay_0;
|
||
loc_4139E7:
|
||
if(fh_0<delay_0) goto loc_413A00;
|
||
// mov eax, dword ptr delay_0
|
||
// mov dword ptr fh_0, eax
|
||
// mov ecx, dword ptr delay_0+4
|
||
// mov dword ptr fh_0+4, ecx ; //arg_1C=arg_C
|
||
fh_0=delay_0;
|
||
|
||
loc_413A00:
|
||
//fld fl_0
|
||
//fcomp eq0
|
||
//fnstsw ax
|
||
//test ah, 1
|
||
//jz short loc_413A1E
|
||
if(fl_0>eq0) goto loc_413A1E;
|
||
|
||
// mov dword ptr fl_0, 0
|
||
// mov dword ptr fl_0+4, 0
|
||
fl_0=0;
|
||
|
||
loc_413A1E:
|
||
// fld fh_0
|
||
// fcomp eq0
|
||
// fnstsw ax
|
||
// test ah, 1
|
||
// jz short loc_413A3C
|
||
if(fh_0>eq0) goto loc_413A3C;
|
||
|
||
// mov dword ptr fh_0, 0
|
||
// mov dword ptr fh_0+4, 0 ; //var_arg_1C=0
|
||
fh_0=0;
|
||
|
||
loc_413A3C:
|
||
// fld fl_0
|
||
// fcomp eq0
|
||
// fnstsw ax
|
||
// test ah, 40h
|
||
// jz short loc_413A5E
|
||
if(fl_0>eq0) goto loc_413A5E;
|
||
if(fh_0<=delay_0) goto loc_413A5E;
|
||
// jmp loc_414073
|
||
goto loc_414073;
|
||
|
||
loc_413A5E:
|
||
// mov edx, wave_len
|
||
// push edx
|
||
// call get_len_mul2
|
||
// add esp, 4
|
||
// mov dword ptr len2, eax
|
||
len2=get_len_mul2(wave_len);
|
||
// fild dword ptr len2
|
||
// fidiv wave_len
|
||
wave_len_mul=len2/wave_len;
|
||
if(wave_len_mul<dbl_51C7E8) goto loc_413A97;
|
||
// mov eax, dword ptr len2
|
||
// shl eax, 1
|
||
// mov dword ptr len2, eax ; //*2
|
||
len2*=2;
|
||
loc_413A97:
|
||
// mov ecx, dword ptr len2
|
||
// shl ecx, 1 ; //*2
|
||
// mov len, ecx
|
||
len=len2*2;
|
||
// fild dword ptr len2
|
||
// fdivr eq1 ; //1.0/var_94
|
||
// fstp eq_1div_len2 ; //系数
|
||
eq_1div_len2=len2/eq1;
|
||
// fld eq1
|
||
// fdiv delay
|
||
// fidiv dword ptr len2
|
||
// fstp eq_1_div_delay_div_len2
|
||
eq_1_div_delay_div_len2=(int)(eq1/delay+0.5)/len2;
|
||
// mov flag, 2
|
||
flag=2;
|
||
// fld fh_0
|
||
// fcomp eq0
|
||
// fnstsw ax
|
||
// test ah, 40h
|
||
// jz short loc_413AE6
|
||
if(fh_0>eq0) goto loc_413AE6;
|
||
// mov flag, 0 ; //0
|
||
flag=0;
|
||
// jmp short loc_413B13
|
||
goto loc_413B13;
|
||
loc_413AE6:
|
||
// fld fl_0
|
||
// fcomp eq0
|
||
// fnstsw ax
|
||
// test ah, 40h
|
||
// jz short loc_413AFF
|
||
if(fl_0>eq0) goto loc_413AFF;
|
||
// mov flag, 1 ; //1
|
||
flag=1;
|
||
// jmp short loc_413B13
|
||
goto loc_413B13;
|
||
loc_413AFF:;
|
||
if(fl_0<fh_0) goto loc_413B13;
|
||
// mov flag, 3 ; //3
|
||
flag=3;
|
||
loc_413B13:
|
||
// cmp flag, 0
|
||
// jnz short loc_413B3F
|
||
if(flag!=0) goto loc_413B3F;
|
||
// mov edx, dword ptr fl_0
|
||
// mov dword ptr fh_0, edx
|
||
// mov eax, dword ptr fl_0+4
|
||
// mov dword ptr fh_0+4, eax
|
||
fh_0=fl_0;
|
||
// mov dword ptr fl_mul_1886, 0
|
||
// mov dword ptr fl_mul_1886+4, 0
|
||
fl_mul_1886=0;
|
||
// fld fh_0
|
||
// fmul eq_6229l
|
||
// fstp fh_mul_6229
|
||
fh_mul_6229=fh_0*eq_6229l;
|
||
loc_413B3F:
|
||
// cmp flag, 1
|
||
// jnz short loc_413B69
|
||
if(flag!=1) goto loc_413B69;
|
||
// mov ecx, dword ptr fh_0
|
||
// mov dword ptr fl_0, ecx
|
||
// mov edx, dword ptr fh_0+4
|
||
// mov dword ptr fl_0+4, edx
|
||
fh_0=fl_0;
|
||
// mov eax, dword ptr delay_0
|
||
// mov dword ptr fh_mul_6229, eax
|
||
// mov ecx, dword ptr delay_0+4
|
||
// mov dword ptr fh_mul_6229+4, ecx
|
||
fh_mul_6229=delay_0;
|
||
|
||
// fld fl_0
|
||
// fmul eq1_1886
|
||
// fstp fl_mul_1886
|
||
fl_mul_1886=fl_0*eq1_1886;
|
||
|
||
loc_413B69:;
|
||
// cmp flag, 1
|
||
// jle short loc_413B87
|
||
if(flag<=1) goto loc_413B87;
|
||
// fld fl_0
|
||
// fmul eq1_1886
|
||
// fstp fl_mul_1886
|
||
fl_mul_1886=fl_0*eq1_1886;
|
||
// fld fh_0
|
||
// fmul eq_6229l
|
||
// fstp fh_mul_6229
|
||
fh_mul_6229=fh_0*eq_6229l;
|
||
loc_413B87:;
|
||
// fld fl_0
|
||
// fadd fh_0
|
||
// fdiv eq2
|
||
// fstp fm; //fm=(fl+fh)/2
|
||
fm=(fl+fh)/eq2;
|
||
// fld fl_0
|
||
// fsub fl_mul_1886
|
||
// fstp fl_sub_fl_mul_1886
|
||
fl_sub_fl_mul_1886=fl_0-fl_mul_1886;
|
||
// fld eq_460517108
|
||
// fdiv fl_sub_fl_mul_1886
|
||
// fdiv fl_sub_fl_mul_1886
|
||
// fstp eq_4605_dir_dir_fl_sub_fl_mul_1886
|
||
eq_4605_dir_dir_fl_sub_fl_mul_1886=eq_460517108/fl_sub_fl_mul_1886/fl_sub_fl_mul_1886;
|
||
// fld fh_0
|
||
// fsub fh_mul_6229
|
||
// fstp fl_sub_fl_mul_1886
|
||
fl_sub_fl_mul_1886=fh_0-fh_mul_6229;
|
||
// fld eq_460517108 ; //0.4605
|
||
// fdiv fl_sub_fl_mul_1886
|
||
// fdiv fl_sub_fl_mul_1886
|
||
// fstp fh_div_div_6229
|
||
fh_div_div_6229=eq_460517108/fl_sub_fl_mul_1886/fl_sub_fl_mul_1886;
|
||
|
||
// mov edx, dword ptr len2
|
||
// sar edx, 1
|
||
// mov eq_len, edx
|
||
eq_len=len2/2;
|
||
// mov temp_buffer, 0
|
||
// mov eax, len
|
||
// shl eax, 3
|
||
// push eax
|
||
// call malloc
|
||
// add esp, 4
|
||
// mov temp_buffer, eax
|
||
temp_buffer=(double*)malloc(len*8);
|
||
// mov i, 0
|
||
i=0;
|
||
// jmp short loc_413C08
|
||
goto loc_413C08;
|
||
|
||
loc_413BF9:;
|
||
// mov ecx, i
|
||
// add ecx, 1
|
||
// mov i, ecx
|
||
i++;
|
||
loc_413C08:;
|
||
// mov edx, i
|
||
// cmp edx, array_num
|
||
// jge loc_414067
|
||
if(i>=array_num) goto loc_414067;
|
||
// mov eax, i
|
||
// imul eax, wave_len
|
||
// mov array_pos, eax
|
||
array_pos=i*wave_len;
|
||
// mov j, 0
|
||
j=0;
|
||
// jmp short loc_413C36
|
||
goto loc_413C36;
|
||
|
||
loc_413C2D:;
|
||
// mov ecx, j
|
||
// add ecx, 1
|
||
// mov j, ecx
|
||
j++;
|
||
loc_413C36:;
|
||
// mov edx, j
|
||
// cmp edx, dword ptr len2
|
||
// jge short loc_413C98
|
||
if(j>=len2) goto loc_413C98;
|
||
// mov eax, j
|
||
/// shl eax, 1
|
||
// mov j_mul_2, eax ; //var_64=var_50*2
|
||
j_mul_2=j*2;
|
||
// mov ecx, j
|
||
// cmp ecx, wave_len
|
||
// jge short loc_413C6B
|
||
if(j>=wave_len) goto loc_413C6B;
|
||
// mov edx, j
|
||
// add edx, array_pos
|
||
// mov eax, in_buffer
|
||
// fld eq_1div_len2 ; //乘系数
|
||
// fmul qword ptr [eax+edx*8] ; //mul
|
||
// eq_1div_len2*in_buffer[(j+array_pos)*8];
|
||
|
||
// mov ecx, j_mul_2
|
||
// mov edx, temp_buffer ; //new_buffer
|
||
// fstp qword ptr [edx+ecx*8] ; //save
|
||
temp_buffer[j_mul_2]=eq_1div_len2*in_buffer[(j+array_pos)];
|
||
// jmp short loc_413C80
|
||
goto loc_413C80;
|
||
loc_413C6B:;
|
||
// mov eax, j_mul_2
|
||
// mov ecx, temp_buffer
|
||
// mov dword ptr [ecx+eax*8], 0 ; //=0
|
||
// mov dword ptr [ecx+eax*8+4], 0
|
||
temp_buffer[j_mul_2]=0;
|
||
loc_413C80:;
|
||
// mov edx, j_mul_2
|
||
// mov eax, temp_buffer
|
||
// mov dword ptr [eax+edx*8+8], 0 ; //=0
|
||
// mov dword ptr [eax+edx*8+0Ch], 0 ; //16byte
|
||
temp_buffer[j_mul_2+1]=0;
|
||
// jmp short loc_413C2D
|
||
goto loc_413C2D;
|
||
|
||
loc_413C98:
|
||
// push 0 ; eq_0
|
||
// push 0FFFFFFFFh ; eq_1
|
||
// push 1 ; array_num
|
||
// lea ecx, len2
|
||
// push ecx ; wave_len
|
||
// mov edx, temp_buffer
|
||
// push edx ; in_buffer
|
||
dft(temp_buffer, &len2,1,-1,0);
|
||
// call dft
|
||
// add esp, 14h
|
||
// mov j, 0
|
||
j=0;
|
||
// jmp short loc_413CC3
|
||
goto loc_413CC3;
|
||
|
||
loc_413CBA:;
|
||
// mov eax, j
|
||
// add eax, 1
|
||
// mov j, eax
|
||
j++;
|
||
loc_413CC3:;
|
||
// mov ecx, j
|
||
// cmp ecx, eq_len
|
||
// jg loc_414008
|
||
if(j>eq_len) goto loc_414008;
|
||
// mov edx, j
|
||
// shl edx, 1
|
||
// mov j_mul_2, edx
|
||
j_mul_2=j*2;
|
||
// mov eax, len
|
||
// sub eax, j_mul_2
|
||
// mov len_sub_j_mul_2, eax
|
||
len_sub_j_mul_2=len-j_mul_2;
|
||
// fild j
|
||
// fmul eq_1_div_delay_div_len2
|
||
// fstp var_3C
|
||
var_3C=j*eq_1_div_delay_div_len2;
|
||
// cmp flag, 3
|
||
// jge loc_413E3D
|
||
if(flag>=3) goto loc_413E3D;
|
||
// fld var_3C
|
||
// fcomp fl_mul_1886
|
||
// fnstsw ax
|
||
// test ah, 1
|
||
// jz loc_413D9A
|
||
if(var_3C>fl_mul_1886) goto loc_413D9A;
|
||
// fld var_3C
|
||
// fsub fl_mul_1886
|
||
// fstp var44
|
||
var44=var_3C-fl_mul_1886;
|
||
// fld eq_4605_dir_dir_fl_sub_fl_mul_1886
|
||
// fmul var44
|
||
// fmul var44
|
||
// fstp var_8C
|
||
var_8C=eq_4605_dir_dir_fl_sub_fl_mul_1886*var44*var44;
|
||
// mov dword ptr exp_1, 0
|
||
// mov dword ptr exp_1+4, 0
|
||
exp_1=0;
|
||
// fld var_8C
|
||
// fcomp eq23
|
||
// fnstsw ax
|
||
// test ah, 1
|
||
// jz short loc_413D68
|
||
if(var_8C>eq23) goto loc_413D68;
|
||
// fld var_8C
|
||
// fchs
|
||
// sub esp, 8
|
||
// fst var_C8
|
||
var_8C=-var_8C;
|
||
|
||
// fstp qword ptr [esp]
|
||
// call myexp
|
||
// myexp(var_8C);
|
||
// add esp, 8
|
||
// fstp exp_1
|
||
exp_1=exp(var_8C);
|
||
loc_413D68:;
|
||
// mov ecx, j_mul_2
|
||
// mov edx, temp_buffer
|
||
// fld exp_1
|
||
// fmul qword ptr [edx+ecx*8]
|
||
// mov eax, j_mul_2
|
||
// mov ecx, temp_buffer
|
||
// fstp qword ptr [ecx+eax*8]
|
||
temp_buffer[j_mul_2]=temp_buffer[j_mul_2]*exp_1;
|
||
// mov edx, j_mul_2
|
||
// mov eax, temp_buffer
|
||
// fld exp_1
|
||
// fmul qword ptr [eax+edx*8+8]
|
||
// mov ecx, j_mul_2
|
||
// mov edx, temp_buffer
|
||
// fstp qword ptr [edx+ecx*8+8]
|
||
temp_buffer[j_mul_2+1]=temp_buffer[j_mul_2+1]*exp_1;
|
||
|
||
loc_413D9A:;
|
||
if(var_3C<fh_mul_6229) goto loc_413E38;
|
||
// fld var_3C ; //var_3c>var_8
|
||
// fsub fh_mul_6229
|
||
// fstp var44 ; //var44=var_3c-fh_mul_6229
|
||
var44=var_3C-fh_mul_6229;
|
||
// fld fh_div_div_6229
|
||
// fmul var44
|
||
// fmul var44
|
||
// fstp var_8C ; //var_8c=var_2c*var44*var44
|
||
var_8C=fh_div_div_6229*var44*var44
|
||
; // =var_2c*(var_3c-var_8)^2
|
||
// mov dword ptr exp_1, 0
|
||
// mov dword ptr exp_1+4, 0
|
||
exp_1=0;
|
||
// fld var_8C
|
||
// fcomp eq23 ; //23.1
|
||
// fnstsw ax
|
||
// test ah, 1
|
||
// jz short loc_413E06 ; //var_8c>=23.1
|
||
if(var_8C>eq23) goto loc_413E06 ;
|
||
// fld var_8C ; //var_8c<23.1
|
||
// fchs ; //*(-1)
|
||
// sub esp, 8
|
||
// fst var_C8 ; //=>obj =>push obj
|
||
// fstp qword ptr [esp]
|
||
var_8C=var_8C*(-1);
|
||
// call myexp ; //e^(-var_8c)
|
||
// add esp, 8
|
||
// fstp exp_1
|
||
exp_1=exp(var_8C);
|
||
|
||
loc_413E06:;
|
||
// mov eax, j_mul_2
|
||
// mov ecx, temp_buffer
|
||
// fld exp_1
|
||
// fmul qword ptr [ecx+eax*8]
|
||
// mov edx, j_mul_2
|
||
// mov eax, temp_buffer
|
||
// fstp qword ptr [eax+edx*8] ; //var_5c*=var_b8
|
||
temp_buffer[j_mul_2]=temp_buffer[j_mul_2]*exp_1;
|
||
// mov ecx, j_mul_2
|
||
// mov edx, temp_buffer
|
||
// fld exp_1
|
||
// fmul qword ptr [edx+ecx*8+8]
|
||
// mov eax, j_mul_2
|
||
// mov ecx, temp_buffer
|
||
// fstp qword ptr [ecx+eax*8+8]
|
||
temp_buffer[j_mul_2+1]=temp_buffer[j_mul_2+1]*exp_1;
|
||
loc_413E38:;
|
||
// jmp loc_413F9B
|
||
goto loc_413F9B;
|
||
loc_413E3D:;
|
||
// fld var_3C
|
||
// fcomp fl_mul_1886
|
||
// fnstsw ax
|
||
// test ah, 1
|
||
// jz loc_413EEC
|
||
if(var_3C>fl_mul_1886) goto loc_413EEC;
|
||
if(var_3C<fm) goto loc_413EEC;
|
||
// fld var_3C
|
||
// fsub fl_mul_1886
|
||
// fstp var44
|
||
var44=var_3C-fl_mul_1886;
|
||
// fld eq_4605_dir_dir_fl_sub_fl_mul_1886
|
||
// fmul var44
|
||
// fmul var44
|
||
// fstp var_8C
|
||
var_8C=eq_4605_dir_dir_fl_sub_fl_mul_1886*var44*var44;
|
||
// mov dword ptr exp_1, 0
|
||
// mov dword ptr exp_1+4, 0
|
||
exp_1=0;
|
||
// fld var_8C
|
||
// fcomp eq23
|
||
// fnstsw ax
|
||
// test ah, 1
|
||
// jz short loc_413EBA
|
||
if(var_8C>eq23) goto loc_413EBA;
|
||
// fld var_8C
|
||
// fchs
|
||
// sub esp, 8
|
||
// fst var_C8
|
||
var_8C=-1*var_8C;
|
||
// fstp qword ptr [esp]
|
||
// call myexp
|
||
// add esp, 8
|
||
// fstp exp_1
|
||
exp_1=exp(var_8C);
|
||
loc_413EBA:;
|
||
// mov edx, j_mul_2
|
||
// mov eax, temp_buffer
|
||
// fld exp_1
|
||
// fmul qword ptr [eax+edx*8]
|
||
// mov ecx, j_mul_2
|
||
// mov edx, temp_buffer
|
||
// fstp qword ptr [edx+ecx*8]
|
||
temp_buffer[j_mul_2]=temp_buffer[j_mul_2]*exp_1;
|
||
// mov eax, j_mul_2
|
||
// mov ecx, temp_buffer
|
||
// fld exp_1
|
||
// fmul qword ptr [ecx+eax*8+8]
|
||
// mov edx, j_mul_2
|
||
// mov eax, temp_buffer
|
||
// fstp qword ptr [eax+edx*8+8]
|
||
temp_buffer[j_mul_2+1]=temp_buffer[j_mul_2+1]*exp_1;
|
||
|
||
loc_413EEC:;
|
||
if(var_3C<fh_mul_6229) goto loc_413F9B;
|
||
// fld var_3C
|
||
// fcomp fm
|
||
// fnstsw ax
|
||
// test ah, 1
|
||
// jz loc_413F9B
|
||
if(var_3C>fm) goto loc_413F9B;
|
||
// fld var_3C
|
||
// fsub fh_mul_6229
|
||
// fstp var44
|
||
var44=var_3C-fh_mul_6229;
|
||
// fld fh_div_div_6229
|
||
// fmul var44
|
||
// fmul var44
|
||
// fstp var_8C
|
||
var_8C=fh_div_div_6229*var44*var44;
|
||
// mov dword ptr exp_1, 0
|
||
// mov dword ptr exp_1+4, 0
|
||
exp_1=0;
|
||
// fld var_8C
|
||
// fcomp eq23
|
||
// fnstsw ax
|
||
// test ah, 1
|
||
// jz short loc_413F69
|
||
if(var_8C>eq23) goto loc_413F69;
|
||
// fld var_8C
|
||
// fchs
|
||
// sub esp, 8
|
||
// fst var_C8
|
||
var_C8=-1*var_C8;
|
||
// fstp qword ptr [esp]
|
||
|
||
// call myexp
|
||
// add esp, 8
|
||
// fstp exp_1
|
||
exp_1=exp(var_C8);
|
||
loc_413F69:;
|
||
// mov ecx, j_mul_2
|
||
// mov edx, temp_buffer
|
||
// fld exp_1
|
||
// fmul qword ptr [edx+ecx*8]
|
||
// mov eax, j_mul_2
|
||
// mov ecx, temp_buffer
|
||
// fstp qword ptr [ecx+eax*8]
|
||
temp_buffer[j_mul_2]=temp_buffer[j_mul_2]*exp_1;
|
||
// mov edx, j_mul_2
|
||
// mov eax, temp_buffer
|
||
// fld exp_1
|
||
// fmul qword ptr [eax+edx*8+8]
|
||
// mov ecx, j_mul_2
|
||
// mov edx, temp_buffer
|
||
// fstp qword ptr [edx+ecx*8+8]
|
||
temp_buffer[j_mul_2+1]=temp_buffer[j_mul_2+1]*exp_1;
|
||
|
||
loc_413F9B:;
|
||
// cmp j, 0
|
||
// jle short loc_413FE2
|
||
if(j<=0) goto loc_413FE2;
|
||
// mov eax, j
|
||
// cmp eax, eq_len
|
||
// jge short loc_413FE2
|
||
if(j>=eq_len) goto loc_413FE2;
|
||
// mov ecx, j_mul_2 ; //0~var_a0
|
||
// mov edx, temp_buffer
|
||
// mov eax, len_sub_j_mul_2
|
||
// mov esi, temp_buffer
|
||
// mov edi, [edx+ecx*8] ; //var_64 move to var_84
|
||
// mov [esi+eax*8], edi
|
||
// mov ecx, [edx+ecx*8+4]
|
||
// mov [esi+eax*8+4], ecx
|
||
////////////////?
|
||
temp_buffer[len_sub_j_mul_2]=temp_buffer[j_mul_2];
|
||
|
||
// mov edx, j_mul_2
|
||
// mov eax, temp_buffer
|
||
// fld qword ptr [eax+edx*8+8] ; //hight 8 byte=>
|
||
// fchs
|
||
// mov ecx, len_sub_j_mul_2
|
||
// mov edx, temp_buffer
|
||
// fstp qword ptr [edx+ecx*8+8]
|
||
temp_buffer[len_sub_j_mul_2+1]=temp_buffer[j_mul_2+1];
|
||
|
||
loc_413FE2:;
|
||
// mov eax, j
|
||
// cmp eax, eq_len
|
||
// jnz short loc_414003
|
||
if(j!=eq_len) goto loc_414003;
|
||
// mov ecx, j_mul_2
|
||
// mov edx, temp_buffer
|
||
// mov dword ptr [edx+ecx*8+8], 0
|
||
// mov dword ptr [edx+ecx*8+0Ch], 0 ; //when var_50==var_a0,var_5c_hight_8_byte=0
|
||
temp_buffer[j_mul_2+1]=0;
|
||
loc_414003:;
|
||
// jmp loc_413CBA
|
||
goto loc_413CBA;
|
||
|
||
loc_414008:;
|
||
// push 1 ; eq_0
|
||
// push 1 ; eq_1
|
||
// push 1 ; array_num
|
||
// lea eax, len2
|
||
// push eax ; wave_len
|
||
// mov ecx, temp_buffer
|
||
// push ecx ; in_buffer
|
||
// call dft
|
||
// add esp, 14h
|
||
dft(temp_buffer,&len2,1,1,1);
|
||
// mov j, 0
|
||
j=0;
|
||
// jmp short loc_414033
|
||
goto loc_414033;
|
||
|
||
loc_41402A:;
|
||
// mov edx, j
|
||
// add edx, 1
|
||
// mov j, edx
|
||
j++;
|
||
loc_414033:;
|
||
// mov eax, j
|
||
// cmp eax, wave_len
|
||
// jge short loc_414062
|
||
if(j>=wave_len) goto loc_414062;
|
||
// mov ecx, j
|
||
// shl ecx, 1
|
||
// mov j_mul_2, ecx
|
||
j_mul_2=j*2;
|
||
// mov edx, j_mul_2
|
||
// mov eax, temp_buffer
|
||
// mov ecx, j
|
||
// add ecx, array_pos
|
||
// mov esi, in_buffer
|
||
// mov edi, [eax+edx*8]
|
||
// mov [esi+ecx*8], edi
|
||
// mov edx, [eax+edx*8+4]
|
||
// mov [esi+ecx*8+4], edx
|
||
// FILE *fp=fopen("d:\\aa.txt","a");
|
||
in_buffer[(j+array_pos)]=temp_buffer[j_mul_2];
|
||
// fprintf(fp,"k=%d val=%f\n",j+array_pos,in_buffer[(j+array_pos)]);
|
||
// fclose(fp);
|
||
// jmp short loc_41402A
|
||
goto loc_41402A;
|
||
|
||
loc_414062:;
|
||
// jmp loc_413BF9
|
||
goto loc_413BF9;
|
||
|
||
loc_414067:;
|
||
free(temp_buffer);
|
||
loc_414073:;
|
||
return 1;
|
||
}
|