rendered paste body.386
.model flat, stdcall
option casemap:none
include windows.inc
include \masm32\include\K32B.INC
DlgProc PROTO :HWND,:UINT,:WPARAM,:LPARAM
.code
szlmao db "i win", 0
K32BASE DD 0
U32BASE DD 0
USER32DLL DB "USER32.DLL", 0
DEFINE_API LoadLibrary, "LoadLibraryA"
DEFINE_API FreeLibrary, "FreeLibrary"
DEFINE_API ExitProcess, "ExitProcess"
DEFINE_API MessageBox, "MessageBoxA"
DEFINE_API DialogBoxParam, "DialogBoxParam"
DEFINE_API EndDialog, "EndDialog"
start:
K32B K32BASE
LdAPI K32BASE, LoadLibrary
LdAPI K32BASE, FreeLibrary
LdAPI K32BASE, ExitProcess
ACall LoadLibrary, OFFSET USER32DLL
MOV U32BASE, EAX
LdAPI U32BASE, DialogBoxParam
push 0
push offset DlgProc
push 0
push 101
push 00400000h
ACall DialogBoxParam
ACall FreeLibrary, U32BASE
ACall ExitProcess, NULL
DlgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
mov eax,uMsg
.if eax==WM_INITDIALOG
.elseif eax==WM_COMMAND
mov eax,wParam
mov ecx,eax
shr ecx,16
.IF cx==BN_CLICKED
.IF ax==1003
ACall LoadLibrary, OFFSET USER32DLL
MOV U32BASE, EAX
LdAPI U32BASE, MessageBox
push 0
push offset szlmao
push offset szlmao
push 0
ACall MessageBox
ACall FreeLibrary, U32BASE
.ENDIF
.ENDIF
.elseif eax==WM_CLOSE
ACall LoadLibrary, OFFSET USER32DLL
MOV U32BASE, EAX
LdAPI U32BASE, EndDialog
push 0
push hWin
ACall EndDialog
ACall FreeLibrary, U32BASE
.else
mov eax,0
ret
.endif
mov eax,1
ret
DlgProc endp
end start