.387 .386p .model flat PUBLIC `W?DlgProc$n(pn$HWND__$$uiuil)i` PUBLIC _WinMain PUBLIC __NTMain EXTRN __imp__GetSystemMetrics:BYTE EXTRN __imp__GetWindowRect:BYTE EXTRN __imp__GetCursorPos:BYTE EXTRN __imp__PtInRect:BYTE EXTRN __imp__SetWindowPos:BYTE EXTRN __imp__MessageBeep:BYTE EXTRN __imp__SetTimer:BYTE EXTRN __imp__EndDialog:BYTE EXTRN __imp__DialogBoxParamA:BYTE EXTRN __imp__GetModuleHandleA:BYTE EXTRN __imp__ExitProcess:BYTE EXTRN ___wcpp_4_data_init_fs_root_:BYTE EXTRN _wstart_:BYTE DGROUP GROUP CONST,CONST2,_DATA,_BSS _TEXT SEGMENT BYTE PUBLIC USE32 'CODE' ASSUME CS:_TEXT, DS:DGROUP, SS:DGROUP `W?rand$n()us`: push edx mov eax,dword ptr FLAT:`W?seed$:.0$:?rand$n()usnul` add eax,eax test byte ptr FLAT:`W?seed$:.0$:?rand$n()usnul`,01H je L$1 shl dword ptr FLAT:`W?x$:.0$:?rand$n()usnul`,00000001H or al,01H mov edx,eax mov eax,dword ptr FLAT:`W?x$:.0$:?rand$n()usnul` xor edx,eax mov dword ptr FLAT:`W?seed$:.0$:?rand$n()usnul`,edx jmp L$2 L$1: mov dword ptr FLAT:`W?seed$:.0$:?rand$n()usnul`,eax L$2: mov ax,word ptr FLAT:`W?seed$:.0$:?rand$n()usnul` pop edx ret `W?RunAway$n(pn$HWND__$$)v`: push ebx push ecx push edx push esi push edi enter 0000002cH,00000000H push eax push 00000000H call dword ptr cs:__imp__GetSystemMetrics mov ebx,eax push 00000001H call dword ptr cs:__imp__GetSystemMetrics mov dword ptr -4H[ebp],eax lea eax,-1cH[ebp] push eax push dword ptr -30H[ebp] call dword ptr cs:__imp__GetWindowRect lea eax,-0cH[ebp] push eax call dword ptr cs:__imp__GetCursorPos lea edi,-2cH[ebp] lea esi,-1cH[ebp] movsd movsd movsd movsd push dword ptr -8H[ebp] push dword ptr -0cH[ebp] lea eax,-1cH[ebp] push eax call dword ptr cs:__imp__PtInRect test eax,eax je L$16 mov eax,dword ptr -14H[ebp] sub eax,dword ptr -1cH[ebp] cdq sub eax,edx sar eax,00000001H mov esi,dword ptr -1cH[ebp] add esi,eax mov eax,dword ptr -10H[ebp] sub eax,dword ptr -18H[ebp] cdq sub eax,edx sar eax,00000001H mov edi,dword ptr -18H[ebp] add edi,eax mov eax,esi sub eax,dword ptr -0cH[ebp] mov ecx,edi sub ecx,dword ptr -8H[ebp] cdq shl edx,00000002H sbb eax,edx sar eax,00000002H add dword ptr -2cH[ebp],eax add dword ptr -24H[ebp],eax mov eax,ecx cdq shl edx,00000002H sbb eax,edx sar eax,00000002H add dword ptr -28H[ebp],eax add dword ptr -20H[ebp],eax cmp dword ptr -2cH[ebp],00000000H jge L$3 mov eax,dword ptr -2cH[ebp] sub dword ptr -24H[ebp],eax mov dword ptr -2cH[ebp],00000000H L$3: cmp ebx,dword ptr -24H[ebp] jge L$4 mov eax,dword ptr -24H[ebp] sub eax,ebx sub dword ptr -2cH[ebp],eax mov dword ptr -24H[ebp],ebx L$4: cmp dword ptr -28H[ebp],00000000H jge L$5 mov eax,dword ptr -28H[ebp] sub dword ptr -20H[ebp],eax mov dword ptr -28H[ebp],00000000H L$5: mov eax,dword ptr -20H[ebp] cmp eax,dword ptr -4H[ebp] jle L$6 mov eax,dword ptr -28H[ebp] sub eax,dword ptr -4H[ebp] sub dword ptr -28H[ebp],eax mov eax,dword ptr -4H[ebp] mov dword ptr -20H[ebp],eax L$6: push dword ptr -8H[ebp] push dword ptr -0cH[ebp] lea eax,-2cH[ebp] push eax call dword ptr cs:__imp__PtInRect test eax,eax je L$14 mov eax,dword ptr -0cH[ebp] cmp eax,dword ptr -2cH[ebp] jl L$8 cmp esi,eax jl L$8 sub eax,dword ptr -2cH[ebp] add eax,00000003H mov ecx,dword ptr -24H[ebp] add ecx,eax cmp ecx,ebx jle L$7 mov eax,ebx sub eax,dword ptr -24H[ebp] L$7: add dword ptr -2cH[ebp],eax add dword ptr -24H[ebp],eax L$8: cmp esi,dword ptr -0cH[ebp] jge L$10 mov eax,dword ptr -0cH[ebp] cmp eax,dword ptr -24H[ebp] jge L$10 mov eax,dword ptr -24H[ebp] sub eax,dword ptr -0cH[ebp] add eax,00000003H cmp eax,dword ptr -2cH[ebp] jle L$9 mov eax,dword ptr -2cH[ebp] L$9: sub dword ptr -2cH[ebp],eax sub dword ptr -24H[ebp],eax L$10: mov eax,dword ptr -8H[ebp] cmp eax,dword ptr -28H[ebp] jle L$12 cmp edi,eax jl L$12 mov eax,dword ptr -0cH[ebp] sub eax,dword ptr -28H[ebp] add eax,00000003H mov ecx,dword ptr -20H[ebp] add ecx,eax cmp ecx,dword ptr -4H[ebp] jle L$11 mov eax,dword ptr -4H[ebp] sub eax,dword ptr -20H[ebp] L$11: add dword ptr -28H[ebp],eax add dword ptr -20H[ebp],eax L$12: cmp edi,dword ptr -8H[ebp] jge L$14 mov eax,dword ptr -8H[ebp] cmp eax,dword ptr -20H[ebp] jge L$14 mov eax,dword ptr -20H[ebp] sub eax,dword ptr -8H[ebp] add eax,00000003H cmp eax,dword ptr -28H[ebp] jle L$13 mov eax,dword ptr -28H[ebp] L$13: sub dword ptr -28H[ebp],eax sub dword ptr -20H[ebp],eax L$14: push dword ptr -8H[ebp] push dword ptr -0cH[ebp] lea eax,-2cH[ebp] push eax call dword ptr cs:__imp__PtInRect test eax,eax je L$15 mov eax,dword ptr -14H[ebp] sub eax,dword ptr -1cH[ebp] sub ebx,eax call near ptr FLAT:`W?rand$n()us` movzx eax,ax cdq idiv ebx mov dword ptr -2cH[ebp],edx mov eax,dword ptr -10H[ebp] sub eax,dword ptr -18H[ebp] mov ecx,dword ptr -4H[ebp] sub ecx,eax call near ptr FLAT:`W?rand$n()us` movzx eax,ax cdq idiv ecx mov dword ptr -28H[ebp],edx mov eax,dword ptr -14H[ebp] sub eax,dword ptr -1cH[ebp] mov ecx,dword ptr -2cH[ebp] add ecx,eax mov dword ptr -24H[ebp],ecx mov eax,dword ptr -10H[ebp] sub eax,dword ptr -18H[ebp] lea ecx,[edx+eax] mov dword ptr -20H[ebp],ecx push 00000005H push 00000000H push 00000000H push edx push dword ptr -2cH[ebp] push 00000000H push dword ptr -30H[ebp] call dword ptr cs:__imp__SetWindowPos push 0ffffffffH call dword ptr cs:__imp__MessageBeep jmp L$16 L$15: push 00000005H push eax push eax push dword ptr -28H[ebp] push dword ptr -2cH[ebp] push eax push dword ptr -30H[ebp] call dword ptr cs:__imp__SetWindowPos L$16: leave pop edi pop esi pop edx pop ecx pop ebx ret `W?DlgProc$n(pn$HWND__$$uiuil)i`: push ebp mov ebp,esp mov edx,dword ptr 8H[ebp] mov eax,dword ptr 0cH[ebp] cmp eax,00000111H jb L$22 jbe L$19 cmp eax,00000113H jb L$23 jbe L$20 cmp eax,00000200H je L$20 jmp near ptr L$23 L$17: push 00000000H push 000001f4H push 000004d2H push edx call dword ptr cs:__imp__SetTimer L$18: mov eax,00000001H pop ebp ret 00000010H L$19: movzx eax,word ptr 10H[ebp] cmp eax,00000001H jne L$23 mov eax,dword ptr 10H[ebp] shr eax,00000010H and eax,0000ffffH movzx eax,ax test eax,eax jne L$23 push 00000001H push edx call dword ptr cs:__imp__EndDialog jmp L$18 L$20: mov eax,edx call near ptr FLAT:`W?RunAway$n(pn$HWND__$$)v` jmp L$18 L$21: mov eax,edx call near ptr FLAT:`W?RunAway$n(pn$HWND__$$)v` jmp L$23 L$22: cmp eax,000000a0H jb L$23 jbe L$21 cmp eax,00000110H je L$17 L$23: xor eax,eax pop ebp ret 00000010H _WinMain: push ebp mov ebp,esp push 00000000H push offset FLAT:`W?DlgProc$n(pn$HWND__$$uiuil)i` push 00000000H push 00000001H push dword ptr 8H[ebp] call dword ptr cs:__imp__DialogBoxParamA jmp L$23 __NTMain: push ecx push edx push 00000000H push 00000000H push 00000000H push 00000000H call dword ptr cs:__imp__GetModuleHandleA push eax call near ptr FLAT:_WinMain push 00000000H call dword ptr cs:__imp__ExitProcess pop edx pop ecx ret _TEXT ENDS CONST SEGMENT BYTE PUBLIC USE32 'DATA' CONST ENDS CONST2 SEGMENT BYTE PUBLIC USE32 'DATA' CONST2 ENDS _DATA SEGMENT DWORD PUBLIC USE32 'DATA' `W?seed$:.0$:?rand$n()usnul`: DB 1aH, 56H, 0feH, 0c1H `W?x$:.0$:?rand$n()usnul`: DB 80H, 1fH, 0acH, 90H _DATA ENDS _BSS SEGMENT BYTE PUBLIC USE32 'BSS' _BSS ENDS END