Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.70 KB | None | 0 0
  1. double StreamingNeuron::think(int num)
  2. {
  3. 00007FF728845B35  mov         qword ptr [rsp+20h],rbx  
  4. 00007FF728845B3A  mov         r9d,r10d  
  5. 00007FF728845B3D  mov         qword ptr [rsp+28h],rbp  
  6.     {
  7.         short c = m_input[i].m_bits[num] & m_weight[i].m_bits[num];
  8. 00007FF728845B42  mov         rbp,qword ptr [rcx+8]  
  9. 00007FF728845B46  mov         qword ptr [rsp+30h],rdi  
  10. 00007FF728845B4B  mov         qword ptr [rsp+38h],r12  
  11. 00007FF728845B50  mov         r12,rbp  
  12. 00007FF728845B53  mov         qword ptr [rsp+8],r14  
  13. 00007FF728845B58  mov         r14,qword ptr [rcx+18h]  
  14. 00007FF728845B5C  mov         qword ptr [rsp],r15  
  15. 00007FF728845B60  sub         r12,r14  
  16. 00007FF728845B63  movsxd      r15,edx  
  17. 00007FF728845B66  lea         rbx,[r14+0Eh]  
  18. 00007FF728845B6A  nop         word ptr [rax+rax]  
  19.         short q = m_input[i].m_bits[num + 1] & m_weight[i].m_bits[num + 1];
  20.         bool a = (long)1 & m_input[i].m_bits[7];
  21.         bool b = (long)1 & m_weight[i].m_bits[7];
  22. 00007FF728845B70  movzx       r11d,byte ptr [rbx]  
  23. 00007FF728845B74  lea         rax,[r15+r9*8]  
  24. 00007FF728845B78  movzx       edi,word ptr [r14+rax*2]  
  25.         short t = 0;
  26.         //t += popcount(c, q);
  27.         t += __popcnt16(c);
  28.         t += __popcnt16(q);
  29. 00007FF728845B7D  lea         rcx,[r15+r9*8]  
  30. 00007FF728845B81  and         di,word ptr [rbp+rax*2]  
  31.         short t = 0;
  32.         //t += popcount(c, q);
  33.         t += __popcnt16(c);
  34.         t += __popcnt16(q);
  35. 00007FF728845B86  and         r11b,1  
  36. 00007FF728845B8A  movzx       r8d,byte ptr [r12+rbx]  
  37. 00007FF728845B8F  lea         rax,[r15+r9*8]  
  38. 00007FF728845B93  movzx       edx,word ptr [rbp+rax*2+2]  
  39. 00007FF728845B98  and         dx,word ptr [r14+rcx*2+2]  
  40. 00007FF728845B9E  popcnt      cx,dx  
  41. 00007FF728845BA3  popcnt      ax,di  
  42. 00007FF728845BA8  add         cx,ax  
  43. 00007FF728845BAB  and         r8b,1  
  44.         if ((a && !b) || (!a && b)&& (c != 0))
  45. 00007FF728845BAF  je          stochastic::StreamingNeuron::think+98h (07FF728845BB8h)  
  46. 00007FF728845BB1  test        r11b,r11b  
  47. 00007FF728845BB4  je          stochastic::StreamingNeuron::think+0A2h (07FF728845BC2h)  
  48. 00007FF728845BB6  jmp         stochastic::StreamingNeuron::think+0ADh (07FF728845BCDh)  
  49. 00007FF728845BB8  test        r11b,r11b  
  50. 00007FF728845BBB  je          stochastic::StreamingNeuron::think+0ADh (07FF728845BCDh)  
  51. 00007FF728845BBD  test        di,di  
  52. 00007FF728845BC0  je          stochastic::StreamingNeuron::think+0ADh (07FF728845BCDh)  
  53.         {
  54.             t -= 1;
  55. 00007FF728845BC2  mov         eax,1  
  56. 00007FF728845BC7  sub         ax,cx  
  57.             t *= -1;
  58. 00007FF728845BCA  movzx       ecx,ax  
  59.         }
  60.         total += t;
  61. 00007FF728845BCD  add         r10w,cx  
  62. 00007FF728845BD1  inc         r9  
  63. 00007FF728845BD4  add         rbx,10h  
  64. 00007FF728845BD8  cmp         r9,rsi  
  65. 00007FF728845BDB  jl          stochastic::StreamingNeuron::think+50h (07FF728845B70h)  
  66.     }
  67.     if (total < 0)
  68. 00007FF728845BDD  mov         r15,qword ptr [rsp]  
  69. 00007FF728845BE1  mov         r14,qword ptr [rsp+8]  
  70. 00007FF728845BE6  mov         r12,qword ptr [rsp+38h]  
  71. 00007FF728845BEB  mov         rdi,qword ptr [rsp+30h]  
  72. 00007FF728845BF0  mov         rbp,qword ptr [rsp+28h]  
  73. 00007FF728845BF5  mov         rbx,qword ptr [rsp+20h]  
  74. 00007FF728845BFA  test        r10w,r10w  
  75. 00007FF728845BFE  jns         stochastic::StreamingNeuron::think+0EAh (07FF728845C0Ah)  
  76. 00007FF728845C00  vxorpd      xmm0,xmm0,xmm0  
  77. }
  78. 00007FF728845C04  add         rsp,10h  
  79. 00007FF728845C08  pop         rsi  
  80. 00007FF728845C09  ret  
  81.         return 0;
  82.     return (total);
  83. 00007FF728845C0A  movsx       eax,r10w  
  84. 00007FF728845C0E  vxorps      xmm0,xmm0,xmm0  
  85. 00007FF728845C12  vcvtsi2sd   xmm0,xmm0,eax  
  86. }
  87. 00007FF728845C16  add         rsp,10h  
  88. 00007FF728845C1A  pop         rsi  
  89. 00007FF728845C1B  ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement