Advertisement
Guest User

result after script

a guest
Nov 17th, 2013
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     .text
  2. handleError:
  3.     push    ebp
  4.     mov ebp, esp
  5.     sub esp, 20
  6.     push    1
  7.     call    exit
  8. handleWindowClose:
  9.     push    ebp
  10.     mov ebp, esp
  11.     sub esp, 20
  12.     push    0
  13.     call    exit
  14. handleKey:
  15.     push    ebp
  16.     mov ebp, esp
  17.     push    ebx
  18.     push    eax
  19.     mov edx, DWORD [ebp+20]
  20.     mov ecx, DWORD [ebp+12]
  21.     mov ebx, DWORD [ebp+8]
  22.     cmp edx, 1
  23.     sete    al
  24.     cmp ecx, 256
  25.     jne L6
  26.     test    al, al
  27.     je  L6
  28.     sub esp, 12
  29.     push    0
  30.     call    exit
  31. L6:
  32.     cmp BYTE [app+10], 0
  33.     je  L7
  34.     cmp ecx, 65
  35.     jne L8
  36.     test    al, al
  37.     jne L30
  38.     test    edx, edx
  39.     jne L5
  40.     push    eax
  41.     push    eax
  42.     push    90
  43.     push    ebx
  44.     call    glfwGetKey
  45.     add esp, 16
  46.     dec eax
  47.     jne L14
  48.     movsd   xmm0, QWORD [player1+40]
  49.     movsd   QWORD [player1+32], xmm0
  50.     jmp L5
  51. L8:
  52.     cmp ecx, 90
  53.     jne L7
  54.     test    al, al
  55.     je  L12
  56.     movsd   xmm1, QWORD [player1+40]
  57.     movsd   QWORD [player1+32], xmm1
  58.     jmp L5
  59. L12:
  60.     test    edx, edx
  61.     jne L5
  62.     push    ecx
  63.     push    ecx
  64.     push    65
  65.     push    ebx
  66.     call    glfwGetKey
  67.     add esp, 16
  68.     dec eax
  69.     jne L14
  70. L30:
  71.     fld QWORD [player1+40]
  72.     fchs
  73.     fstp    QWORD [player1+32]
  74.     jmp L5
  75. L14:
  76.     fldz
  77.     fstp    QWORD [player1+32]
  78.     jmp L5
  79. L7:
  80.     cmp ecx, 39
  81.     jne L15
  82.     test    al, al
  83.     jne L31
  84.     test    edx, edx
  85.     jne L5
  86.     push    edx
  87.     push    edx
  88.     push    47
  89.     push    ebx
  90.     call    glfwGetKey
  91.     add esp, 16
  92.     dec eax
  93.     jne L22
  94.     movsd   xmm2, QWORD [player2+40]
  95.     movsd   QWORD [player2+32], xmm2
  96.     jmp L5
  97. L15:
  98.     cmp ecx, 47
  99.     jne L5
  100.     test    al, al
  101.     je  L21
  102.     movsd   xmm3, QWORD [player2+40]
  103.     movsd   QWORD [player2+32], xmm3
  104.     jmp L5
  105. L21:
  106.     test    edx, edx
  107.     jne L5
  108.     push    eax
  109.     push    eax
  110.     push    39
  111.     push    ebx
  112.     call    glfwGetKey
  113.     add esp, 16
  114.     dec eax
  115.     jne L22
  116. L31:
  117.     fld QWORD [player2+40]
  118.     fchs
  119.     fstp    QWORD [player2+32]
  120.     jmp L5
  121. L22:
  122.     fldz
  123.     fstp    QWORD [player2+32]
  124. L5:
  125.     mov ebx, DWORD [ebp-4]
  126.     leave
  127.     ret
  128. handleFramebufferSize:
  129.     push    ebp
  130.     mov ebp, esp
  131.     sub esp, 8
  132.     mov edx, DWORD [ebp+16]
  133.     mov eax, DWORD [ebp+12]
  134.     push    edx
  135.     push    eax
  136.     push    0
  137.     push    0
  138.     mov DWORD [app], eax
  139.     mov DWORD [app+4], edx
  140.     call    glViewport
  141.     mov DWORD [esp], 5889
  142.     call    glMatrixMode
  143.     call    glLoadIdentity
  144.     push    eax
  145.     push    eax
  146.     fld1
  147.     fst QWORD [esp]
  148.     push    -1074790400
  149.     push    0
  150.     sub esp, 32
  151.     fldz
  152.     fst QWORD [esp+24]
  153.     fxch    st1
  154.     fst QWORD [esp+16]
  155.     fstp    QWORD [esp+8]
  156.     fstp    QWORD [esp]
  157.     call    glOrtho
  158.     add esp, 64
  159.     leave
  160.     ret
  161. fps:
  162.     push    ebp
  163.     mov ebp, esp
  164.     sub esp, 8
  165.     call    glfwGetTime
  166.     fst QWORD [time.15415]
  167.     fld QWORD [time_old.15416]
  168.     fsubr   st0, st1
  169.     fld1
  170.     fdivrp  st1, st0
  171.     fst QWORD [ret_val.15417]
  172.     fxch    st1
  173.     fstp    QWORD [time_old.15416]
  174.     leave
  175.     ret
  176. reset:
  177.     push    ebp
  178.     mov ebp, esp
  179.     sub esp, 16
  180.     fld QWORD [LC4]
  181.     fst QWORD [ball]
  182.     fstp    QWORD [ball+8]
  183.     push    0
  184.     fld QWORD [LC7]
  185.     fst QWORD [player1+8]
  186.     push    0
  187.     fstp    QWORD [player2+8]
  188.     mov DWORD [ball+40], 1202590843
  189.     mov DWORD [ball+44], 1065646817
  190.     mov DWORD [ball+32], -1717986918
  191.     mov DWORD [ball+36], 1069128089
  192.     call    glfwSetTime
  193.     add esp, 16
  194.     leave
  195.     ret
  196. calcLineY:
  197.     push    ebp
  198.     mov ebp, esp
  199.     mov eax, DWORD [ebp+8]
  200.     fld QWORD [eax+8]
  201.     fadd    QWORD [eax+32]
  202.     fldz
  203.     fucomi  st0, st1
  204.     ja  L42
  205.     fstp    st0
  206.     fld QWORD [eax+24]
  207.     fld st1
  208.     fadd    st0, st1
  209.     fld1
  210.     fxch    st1
  211.     fucomip st0, st1
  212.     jbe L45
  213.     fstp    st2
  214.     fxch    st1
  215.     fsubrp  st1, st0
  216.     jmp L40
  217. L42:
  218.     fstp    st1
  219.     jmp L40
  220. L45:
  221.     fstp    st0
  222.     fstp    st0
  223. L40:
  224.     fstp    QWORD [eax+8]
  225.     pop ebp
  226.     ret
  227. flipY:
  228.     push    ebp
  229.     mov ebp, esp
  230.     fld QWORD [ebp+8]
  231.     fchs
  232.     pop ebp
  233.     ret
  234. flipX:
  235.     push    ebp
  236.     fld QWORD [LC8]
  237.     mov ebp, esp
  238.     fsub    QWORD [ebp+8]
  239.     pop ebp
  240.     ret
  241. calcBall:
  242.     push    ebp
  243.     mov ebp, esp
  244.     push    ebx
  245.     sub esp, 36
  246.     mov ebx, DWORD [ebp+8]
  247.     lea edx, [ebp-24]
  248.     lea eax, [ebp-16]
  249.     fld QWORD [ebx+32]
  250.     push    edx
  251.     push    eax
  252.     push    eax
  253.     push    eax
  254.     fst QWORD [esp]
  255.     fstp    QWORD [ebp-32]
  256.     call    sincos
  257.     add esp, 16
  258.     fld QWORD [ebp-16]
  259.     fld QWORD [ebx+40]
  260.     fld QWORD [ebp-24]
  261.     fmul    st0, st1
  262.     fadd    QWORD [ebx]
  263.     fld QWORD [ebx+8]
  264.     fldz
  265.     fucomi  st0, st2
  266.     fld QWORD [ebp-32]
  267.     jbe L64
  268.     fstp    st0
  269.     fstp    st0
  270.     fstp    st0
  271.     fstp    st0
  272.     fstp    st0
  273.     fstp    st0
  274.     inc DWORD [player1+48]
  275.     jmp L70
  276. L64:
  277.     fld1
  278.     fld QWORD [ebx+16]
  279.     fsubr   st0, st1
  280.     fxch    st5
  281.     fucomi  st0, st5
  282.     fstp    st5
  283.     jbe L65
  284.     fstp    st0
  285.     fstp    st0
  286.     fstp    st0
  287.     fstp    st0
  288.     fstp    st0
  289.     fstp    st0
  290.     fstp    st0
  291.     inc DWORD [player2+48]
  292. L70:
  293.     mov ebx, DWORD [ebp-4]
  294.     leave
  295.     jmp reset
  296. L65:
  297.     fxch    st6
  298.     fmul    st0, st5
  299.     faddp   st3, st0
  300.     fxch    st3
  301.     fstp    QWORD [ebx]
  302.     fucomip st0, st1
  303.     ja  L71
  304.     fxch    st3
  305.     fsub    QWORD [ebx+24]
  306.     fxch    st3
  307.     fucomi  st0, st3
  308.     fstp    st3
  309.     jbe L67
  310.     fstp    st2
  311.     fxch    st1
  312.     jmp L69
  313. L71:
  314.     fstp    st0
  315.     fstp    st2
  316.     fxch    st1
  317. L69:
  318.     fchs
  319.     fstp    QWORD [ebx+32]
  320.     jmp L57
  321. L67:
  322.     fstp    st0
  323.     fxch    st1
  324.     fstp    QWORD [ebx+8]
  325. L57:
  326.     fadd    QWORD [ebx+48]
  327.     fstp    QWORD [ebx+40]
  328.     mov ebx, DWORD [ebp-4]
  329.     leave
  330.     ret
  331. intersects:
  332.     push    ebp
  333.     mov ebp, esp
  334.     mov eax, DWORD [ebp+12]
  335.     mov edx, DWORD [ebp+8]
  336.     fld QWORD [eax]
  337.     fld QWORD [edx]
  338.     fld QWORD [edx+16]
  339.     fadd    st0, st1
  340.     fucomip st0, st2
  341.     jbe L87
  342.     fxch    st1
  343.     fadd    QWORD [eax+16]
  344.     fucomip st0, st1
  345.     fstp    st0
  346.     jbe L85
  347.     fld QWORD [eax+8]
  348.     fld QWORD [edx+8]
  349.     fld QWORD [edx+24]
  350.     fadd    st0, st1
  351.     fucomip st0, st2
  352.     jbe L88
  353.     fxch    st1
  354.     fadd    QWORD [eax+24]
  355.     fucomip st0, st1
  356.     fstp    st0
  357.     seta    al
  358.     jmp L73
  359. L87:
  360.     fstp    st0
  361.     fstp    st0
  362.     jmp L85
  363. L88:
  364.     fstp    st0
  365.     fstp    st0
  366. L85:
  367.     xor eax, eax
  368. L73:
  369.     pop ebp
  370.     ret
  371. getRelDistFromCenter:
  372.     push    ebp
  373.     mov ebp, esp
  374.     mov edx, DWORD [ebp+8]
  375.     mov eax, DWORD [ebp+12]
  376.     pop ebp
  377.     fld QWORD [edx+24]
  378.     fld DWORD [LC9]
  379.     fld st1
  380.     fmul    st0, st1
  381.     fadd    QWORD [edx+8]
  382.     fxch    st1
  383.     fmul    QWORD [eax+24]
  384.     fadd    QWORD [eax+8]
  385.     fsubp   st1, st0
  386.     fdivrp  st1, st0
  387.     ret
  388. calc:
  389.     push    ebp
  390.     mov ebp, esp
  391.     sub esp, 8
  392.     cmp BYTE [app+10], 0
  393.     jne L92
  394.     fld QWORD [ball+8]
  395.     fld QWORD [player1+8]
  396.     fucomi  st0, st1
  397.     jbe L110
  398.     fstp    st0
  399.     fstp    st0
  400.     fld QWORD [player1+40]
  401.     fchs
  402.     fdiv    QWORD [LC10]
  403.     jmp L113
  404. L110:
  405.     fxch    st1
  406.     fadd    QWORD [ball+24]
  407.     fxch    st1
  408.     fadd    QWORD [player1+24]
  409.     fxch    st1
  410.     fucomip st0, st1
  411.     fstp    st0
  412.     jbe L111
  413.     fld QWORD [LC10]
  414.     fdivr   QWORD [player1+40]
  415. L113:
  416.     fstp    QWORD [player1+32]
  417.     jmp L92
  418. L111:
  419.     fldz
  420.     fstp    QWORD [player1+32]
  421. L92:
  422.     push    eax
  423.     push    dword player1
  424.     call    calcLineY
  425.     mov DWORD [esp], dword player2
  426.     call    calcLineY
  427.     pop eax
  428.     pop edx
  429.     call    glfwGetTime
  430.     fld1
  431.     fxch    st1
  432.     fucomip st0, st1
  433.     fstp    st0
  434.     jbe L97
  435.     sub esp, 12
  436.     push    dword ball
  437.     call    calcBall
  438.     add esp, 16
  439. L97:
  440.     push    eax
  441.     push    eax
  442.     push    dword ball
  443.     push    dword player1
  444.     call    intersects
  445.     add esp, 16
  446.     test    al, al
  447.     je  L99
  448.     push    eax
  449.     push    eax
  450.     push    dword ball
  451.     push    dword player1
  452.     call    getRelDistFromCenter
  453.     add esp, 16
  454.     fmul    DWORD [LC11]
  455.     fstp    QWORD [ball+32]
  456. L99:
  457.     push    ecx
  458.     push    ecx
  459.     push    dword ball
  460.     push    dword player2
  461.     call    intersects
  462.     add esp, 16
  463.     test    al, al
  464.     je  L91
  465.     push    edx
  466.     push    edx
  467.     push    dword ball
  468.     push    dword player2
  469.     call    getRelDistFromCenter
  470.     add esp, 16
  471.     fadd    st0, st0
  472.     fadd    QWORD [LC8]
  473.     fstp    QWORD [ball+32]
  474. L91:
  475.     leave
  476.     ret
  477. draw:
  478.     push    ebp
  479.     mov ebp, esp
  480.     sub esp, 52
  481.     push    16384
  482.     call    glClear
  483.     sub esp, 16
  484.     fld QWORD [LC12]
  485.     fst QWORD [esp+16]
  486.     fld QWORD [LC13]
  487.     fst QWORD [esp+8]
  488.     fstp    QWORD [ebp-40]
  489.     fstp    QWORD [esp]
  490.     call    glColor3d
  491.     add esp, 20
  492.     push    1
  493.     call    glBegin
  494.     sub esp, 16
  495.     fldz
  496.     fst QWORD [esp+8]
  497.     fstp    QWORD [ebp-32]
  498.     fld DWORD [LC9]
  499.     fst QWORD [esp]
  500.     fstp    QWORD [ebp-24]
  501.     call    glVertex2d
  502.     add esp, 16
  503.     fld1
  504.     fst QWORD [esp+8]
  505.     fstp    QWORD [ebp-16]
  506.     fld QWORD [ebp-24]
  507.     fstp    QWORD [esp]
  508.     call    glVertex2d
  509.     call    glEnd
  510.     sub esp, 16
  511.     fld QWORD [ebp-40]
  512.     fst QWORD [esp+16]
  513.     fst QWORD [esp+8]
  514.     fstp    QWORD [esp]
  515.     call    glColor3d
  516.     add esp, 16
  517.     fld QWORD [player1+8]
  518.     fadd    QWORD [player1+24]
  519.     fstp    QWORD [esp+8]
  520.     fld QWORD [player1]
  521.     fadd    QWORD [player1+16]
  522.     fstp    QWORD [esp]
  523.     push    DWORD [player1+12]
  524.     push    DWORD [player1+8]
  525.     push    DWORD [player1+4]
  526.     push    DWORD [player1]
  527.     call    glRectd
  528.     add esp, 16
  529.     fld QWORD [player2+8]
  530.     fadd    QWORD [player2+24]
  531.     fstp    QWORD [esp+8]
  532.     fld QWORD [player2]
  533.     fadd    QWORD [player2+16]
  534.     fstp    QWORD [esp]
  535.     push    DWORD [player2+12]
  536.     push    DWORD [player2+8]
  537.     push    DWORD [player2+4]
  538.     push    DWORD [player2]
  539.     call    glRectd
  540.     fld QWORD [ebp-32]
  541.     fst QWORD [esp+16]
  542.     fld QWORD [ebp-16]
  543.     fstp    QWORD [esp+8]
  544.     fstp    QWORD [esp]
  545.     call    glColor3d
  546.     add esp, 16
  547.     fld QWORD [ball+8]
  548.     fadd    QWORD [ball+24]
  549.     fstp    QWORD [esp+8]
  550.     fld QWORD [ball]
  551.     fadd    QWORD [ball+16]
  552.     fstp    QWORD [esp]
  553.     push    DWORD [ball+12]
  554.     push    DWORD [ball+8]
  555.     push    DWORD [ball+4]
  556.     push    DWORD [ball]
  557.     call    glRectd
  558.     add esp, 32
  559.     call    glFlush
  560.     leave
  561.     jmp glGetError
  562.     .section    .rodata.str1.1,"aMS",@progbits,1
  563. LC14:
  564.     db  ""
  565. LC15:
  566.     db  "Pong clone  "
  567. LC16:
  568.     db  "FPS: "
  569. LC17:
  570.     db  "%d  "
  571. LC18:
  572.     db  "Score: "
  573. LC19:
  574.     db  "%d:%d  "
  575.     .text
  576. setTitle:
  577.     push    ebp
  578.     mov ebp, esp
  579.     push    esi
  580.     push    ebx
  581.     sub esp, 136
  582.     push    dword LC14
  583.     lea ebx, [ebp-108]
  584.     push    ebx
  585.     call    strcpy
  586.     pop esi
  587.     pop eax
  588.     lea esi, [ebp-124]
  589.     push    dword LC15
  590.     push    ebx
  591.     call    strcat
  592.     pop eax
  593.     pop edx
  594.     push    dword LC16
  595.     push    ebx
  596.     call    strcat
  597.     call    fps
  598.     fstp    QWORD [esp]
  599.     call    lround
  600.     push    eax
  601.     push    dword LC17
  602.     push    6
  603.     push    esi
  604.     call    snprintf
  605.     add esp, 24
  606.     push    esi
  607.     push    ebx
  608.     call    strcat
  609.     pop ecx
  610.     pop esi
  611.     lea esi, [ebp-118]
  612.     push    dword LC18
  613.     push    ebx
  614.     call    strcat
  615.     pop eax
  616.     push    DWORD [player2+48]
  617.     push    DWORD [player1+48]
  618.     push    dword LC19
  619.     push    10
  620.     push    esi
  621.     call    snprintf
  622.     add esp, 24
  623.     push    esi
  624.     push    ebx
  625.     call    strcat
  626.     pop eax
  627.     pop edx
  628.     push    ebx
  629.     push    DWORD [ebp+8]
  630.     call    glfwSetWindowTitle
  631.     add esp, 16
  632.     lea esp, [ebp-8]
  633.     pop ebx
  634.     pop esi
  635.     pop ebp
  636.     ret
  637.     .section    .text.startup,"ax",@progbits
  638. _start:
  639.     lea ecx, [esp+4]
  640.     and esp, -16
  641.     push    DWORD [ecx-4]
  642.     push    ebp
  643.     mov ebp, esp
  644.     push    ebx
  645.     push    ecx
  646.     sub esp, 12
  647.     push    dword handleError
  648.     call    glfwSetErrorCallback
  649.     call    glfwInit
  650.     add esp, 16
  651.     test    eax, eax
  652.     jne L119
  653.     sub esp, 12
  654.     push    1
  655.     call    exit
  656. L119:
  657.     cmp BYTE [app+8], 0
  658.     je  L120
  659.     sub esp, 12
  660.     push    0
  661.     push    0
  662.     jmp L124
  663. L120:
  664.     call    glfwGetPrimaryMonitor
  665.     sub esp, 12
  666.     push    eax
  667.     call    glfwGetVideoMode
  668.     mov edx, DWORD [eax]
  669.     mov eax, DWORD [eax+4]
  670.     mov DWORD [app], edx
  671.     mov DWORD [app+4], eax
  672.     call    glfwGetPrimaryMonitor
  673.     mov DWORD [esp], 0
  674.     push    eax
  675. L124:
  676.     push    dword LC14
  677.     push    DWORD [app+4]
  678.     push    DWORD [app]
  679.     call    glfwCreateWindow
  680.     add esp, 32
  681.     sub esp, 12
  682.     push    eax
  683.     mov ebx, eax
  684.     call    glfwMakeContextCurrent
  685.     add esp, 12
  686.     push    DWORD [app+4]
  687.     push    DWORD [app]
  688.     push    ebx
  689.     call    handleFramebufferSize
  690.     pop ecx
  691.     pop eax
  692.     push    dword handleWindowClose
  693.     push    ebx
  694.     call    glfwSetWindowCloseCallback
  695.     pop eax
  696.     pop edx
  697.     push    dword handleFramebufferSize
  698.     push    ebx
  699.     call    glfwSetFramebufferSizeCallback
  700.     pop ecx
  701.     pop eax
  702.     push    dword handleKey
  703.     push    ebx
  704.     call    glfwSetKeyCallback
  705.     push    0x00000000
  706.     push    0x3dcccccd
  707.     push    0x3dcccccd
  708.     push    0x3dcccccd
  709.     call    glClearColor
  710.     add esp, 20
  711.     push    2852
  712.     call    glEnable
  713.     pop eax
  714.     pop edx
  715.     push    65280
  716.     push    1
  717.     call    glLineStipple
  718.     call    reset
  719. L125:
  720.     add esp, 16
  721.     sub esp, 12
  722.     push    ebx
  723.     call    setTitle
  724.     call    glfwPollEvents
  725.     call    calc
  726.     call    draw
  727.     mov DWORD [esp], ebx
  728.     call    glfwSwapBuffers
  729.     jmp L125
  730.     common  ret_val.15417 8:8
  731.     common  time_old.15416 8:8
  732.     common  time.15415 8:8
  733.     .data
  734.     align 8
  735. ball:
  736.     dd  3092376453
  737.     dd  1071613214
  738.     dd  3092376453
  739.     dd  1071613214
  740.     dd  3951369912
  741.     dd  1066317905
  742.     dd  3951369912
  743.     dd  1066317905
  744.     dd  2576980378
  745.     dd  1069128089
  746.     dd  1202590843
  747.     dd  1065646817
  748.     dd  2296604913
  749.     dd  1055193269
  750.     align 8
  751. player2:
  752.     dd  2405181686
  753.     dd  1072494018
  754.     dd  3435973837
  755.     dd  1071434956
  756.     dd  1202590843
  757.     dd  1065646817
  758.     dd  2576980378
  759.     dd  1069128089
  760.     dd  0
  761.     dd  0
  762.     dd  3951369912
  763.     dd  1066317905
  764.     dd  0
  765.     align 8
  766. player1:
  767.     dd  2233382994
  768.     dd  1069044203
  769.     dd  3435973837
  770.     dd  1071434956
  771.     dd  1202590843
  772.     dd  1065646817
  773.     dd  2576980378
  774.     dd  1069128089
  775.     dd  0
  776.     dd  0
  777.     dd  3951369912
  778.     dd  1066317905
  779.     dd  0
  780.     align 4
  781. app:
  782.     dd  800
  783.     dd  600
  784.     db  1
  785.     db  1
  786.     db  0
  787.     resb    1
  788.     .section    .rodata.cst8,"aM",@progbits,8
  789.     align 8
  790. LC4:
  791.     dd  3092376453
  792.     dd  1071613214
  793.     align 8
  794. LC7:
  795.     dd  3435973837
  796.     dd  1071434956
  797.     align 8
  798. LC8:
  799.     dd  1413754136
  800.     dd  1074340347
  801.     .section    .rodata.cst4,"aM",@progbits,4
  802.     align 4
  803. LC9:
  804.     dd  1056964608
  805.     .section    .rodata.cst8
  806.     align 8
  807. LC10:
  808.     dd  2576980378
  809.     dd  1072798105
  810.     .section    .rodata.cst4
  811.     align 4
  812. LC11:
  813.     dd  3221225472
  814.     .section    .rodata.cst8
  815.     align 8
  816. LC12:
  817.     dd  2576980378
  818.     dd  1070176665
  819.     align 8
  820. LC13:
  821.     dd  3435973837
  822.     dd  1072483532
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement