fork(1) download
  1.  
  2. int _tmain(int argc, _TCHAR* argv[])
  3. {
  4. 00E71000 push ebp
  5. 00E71001 mov ebp,esp
  6. 00E71003 and esp,0FFFFFFC0h
  7. 00E71006 sub esp,0C0h
  8. 00E7100C mov eax,dword ptr [___security_cookie (0E73000h)]
  9. 00E71011 xor eax,esp
  10. 00E71013 mov dword ptr [esp+0BCh],eax
  11. int count = 16;
  12. __int64 inputs_hex[16] = {
  13. 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x1fedb1530240aa54,
  14. 00E7101A xor eax,eax
  15. 00E7101C mov dword ptr [esp+38h],eax
  16. 00E71020 mov dword ptr [esp+3Ch],eax
  17. 00E71024 mov dword ptr [esp+40h],eax
  18. 00E71028 mov dword ptr [esp+44h],eax
  19. 00E7102C mov dword ptr [esp+48h],eax
  20. 00E71030 mov dword ptr [esp+4Ch],eax
  21. 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x1ff0af0d95025bc3,
  22. 00E71034 mov dword ptr [esp+58h],eax
  23. 00E71038 mov dword ptr [esp+5Ch],eax
  24. 00E7103C mov dword ptr [esp+60h],eax
  25. 00E71040 mov dword ptr [esp+64h],eax
  26. 00E71044 mov dword ptr [esp+68h],eax
  27. 00E71048 mov dword ptr [esp+6Ch],eax
  28. 0x1fc9353df6af376b, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
  29. 00E7104C mov dword ptr [esp+80h],eax
  30. 00E71053 mov dword ptr [esp+84h],eax
  31. 00E7105A mov dword ptr [esp+88h],eax
  32. 00E71061 mov dword ptr [esp+8Ch],eax
  33. 00E71068 mov dword ptr [esp+90h],eax
  34. 00E7106F mov dword ptr [esp+94h],eax
  35. 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000
  36. 00E71076 mov dword ptr [esp+98h],eax
  37. 00E7107D mov dword ptr [esp+9Ch],eax
  38. 00E71084 mov dword ptr [esp+0A0h],eax
  39. 00E7108B mov dword ptr [esp+0A4h],eax
  40. 00E71092 mov dword ptr [esp+0A8h],eax
  41. 00E71099 mov dword ptr [esp+0ACh],eax
  42. };
  43. 00E710A0 mov dword ptr [esp+0B0h],eax
  44. 00E710A7 mov dword ptr [esp+0B4h],eax
  45. double* inputs = (double*)inputs_hex;
  46. double norm = calc_norm_and_regulate(count, inputs, false);
  47. 00E710AE lea eax,[esp+38h]
  48. 00E710B2 push eax
  49. 00E710B3 mov dword ptr [esp+54h],240AA54h
  50. 00E710BB mov dword ptr [esp+58h],1FEDB153h
  51. 00E710C3 mov dword ptr [esp+74h],95025BC3h
  52. 00E710CB mov dword ptr [esp+78h],1FF0AF0Dh
  53. 00E710D3 mov dword ptr [esp+7Ch],0F6AF376Bh
  54. 00E710DB mov dword ptr [esp+80h],1FC9353Dh
  55. 00E710E6 call calc_norm_and_regulate<double> (0E71130h)
  56. 00E710EB fst qword ptr [esp+34h]
  57. fprintf(stdout, "[2]0x%016llX:%.19lg\n", *(uint64_t*)&norm, norm);
  58. 00E710EF mov edx,dword ptr [esp+34h]
  59. 00E710F3 push ecx
  60. 00E710F4 mov ecx,dword ptr [esp+3Ch]
  61. 00E710F8 fstp qword ptr [esp]
  62. 00E710FB push ecx
  63. 00E710FC push edx
  64. 00E710FD push offset string "[2]0x%016llX:%.19lg\n" (0E720F4h)
  65. 00E71102 call dword ptr [__imp____iob_func (0E7209Ch)]
  66. 00E71108 add eax,20h
  67. 00E7110B push eax
  68. 00E7110C call dword ptr [__imp__fprintf (0E720A4h)]
  69. return 0;
  70. }
  71. 00E71112 mov ecx,dword ptr [esp+0D4h]
  72. 00E71119 add esp,18h
  73. 00E7111C xor ecx,esp
  74. 00E7111E xor eax,eax
  75. 00E71120 call __security_check_cookie (0E711ABh)
  76. 00E71125 mov esp,ebp
  77. 00E71127 pop ebp
  78. 00E71128 ret
  79. --- ソース ファイルがありません -------------------------------------------------------------
  80. 00E71129 int 3
  81. 00E7112A int 3
  82. 00E7112B int 3
  83. 00E7112C int 3
  84. 00E7112D int 3
  85. 00E7112E int 3
  86. 00E7112F int 3
  87. --- c:\mingw\msys\1.0\home\root\double2\double2\double2.cpp --------------------
  88. #include "stdafx.h"
  89. #include <stdio.h>
  90. #include <stdint.h>
  91. #include <math.h>
  92.  
  93. template<typename T> static double calc_norm_and_regulate(int num, T* r, bool regulate){ // <float> for debug.
  94. 00E71130 push ebp
  95. 00E71131 mov ebp,esp
  96. double norm = 0;
  97. 00E71133 fldz
  98. 00E71135 sub esp,10h
  99. 00E71138 push ebx
  100. 00E71139 push esi
  101. 00E7113A push edi
  102. for (int i = 0; i < num; i++) {
  103. 00E7113B xor esi,esi
  104. 00E7113D lea ecx,[ecx]
  105. norm += (double)r[i] * (double)r[i];
  106. 00E71140 mov eax,dword ptr [r]
  107. 00E71143 fld qword ptr [eax+esi*8]
  108. fprintf(stdout, "[0]0x%016llX:%.19lg\n", *(uint64_t*)&norm, norm);
  109. 00E71146 sub esp,8
  110. 00E71149 fmul st(0),st
  111. 00E7114B faddp st(1),st
  112. 00E7114D fst qword ptr [norm]
  113. 00E71150 mov edi,dword ptr [ebp-8]
  114. 00E71153 fstp qword ptr [esp]
  115. 00E71156 mov ebx,dword ptr [norm]
  116. 00E71159 push edi
  117. 00E7115A push ebx
  118. 00E7115B push offset string "[0]0x%016llX:%.19lg\n" (0E7210Ch)
  119. 00E71160 call dword ptr [__imp____iob_func (0E7209Ch)]
  120. 00E71166 add eax,20h
  121. 00E71169 push eax
  122. 00E7116A call dword ptr [__imp__fprintf (0E720A4h)]
  123. }
  124. fprintf(stdout, "[1]0x%016llX:%.19lg\n", *(uint64_t*)&norm, norm);
  125. 00E71170 fld qword ptr [norm]
  126. 00E71173 inc esi
  127. 00E71174 add esp,18h
  128. 00E71177 cmp esi,10h
  129. 00E7117A jl calc_norm_and_regulate<double>+10h (0E71140h)
  130. 00E7117C sub esp,8
  131. 00E7117F fstp qword ptr [esp]
  132. 00E71182 push edi
  133. 00E71183 push ebx
  134. 00E71184 push offset string "[1]0x%016llX:%.19lg\n" (0E72124h)
  135. 00E71189 call dword ptr [__imp____iob_func (0E7209Ch)]
  136. 00E7118F add eax,20h
  137. 00E71192 push eax
  138. 00E71193 call dword ptr [__imp__fprintf (0E720A4h)]
  139. norm = sqrt(norm);
  140. 00E71199 fld qword ptr [norm]
  141. 00E7119C add esp,18h
  142. 00E7119F call _CIsqrt (0E719A0h)
  143. if (regulate)
  144. for (int i=0;i<num;i++)
  145. r[i] = (T)(r[i]/norm);
  146. return norm;
  147. }
  148. 00E711A4 pop edi
  149. 00E711A5 pop esi
  150. 00E711A6 pop ebx
  151. 00E711A7 mov esp,ebp
  152. 00E711A9 pop ebp
  153. 00E711AA ret
  154.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty