	SECTION _TEXT align=1 CLASS=CODE USE32
	SECTION _DATA align=16 CLASS=DATA USE32
	SECTION _BSS align=16 CLASS=BSS USE32
	SECTION _CONST align=16 CLASS=CONST USE32
	SECTION _STRING align=4 CLASS=STRING USE32
	SECTION cstartup align=4 CLASS=INITDATA USE32
	SECTION crundown align=4 CLASS=EXITDATA USE32
	SECTION cppinit  align=4 CLASS=CPPINIT USE32
	SECTION cppexit  align=4 CLASS=CPPEXIT USE32
	GROUP DGROUP _DATA _BSS _CONST _STRING

SECTION _TEXT
[GLOBAL	_WatchIconProc]
;
; Line 5:	int WatchIconProc(WINDOW wnd, MESSAGE msg, PARAM p1, PARAM p2)
;
_WatchIconProc:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 0CH
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	ESI,DWORD [EBP+08H]
	MOV	EBX,DWORD [EBP+010H]
	MOV	EDI,DWORD [EBP+014H]
L_9:
;
; Line 6:	{
;
;
; Line 12:	switch (msg)    {
;
	MOV	EAX,DWORD [EBP+0CH]
	CMP	EAX,BYTE 0AH
	JE	NEAR	L_15
	JA	SHORT	L_18
	CMP	EAX,BYTE 07H
	JE	NEAR	L_17
	JA	SHORT	L_19
	CMP	EAX,BYTE 03H
	JE	SHORT	L_12
	JMP	NEAR	L_11
L_19:
	CMP	EAX,BYTE 09H
	JE	NEAR	L_14
	JMP	NEAR	L_11
L_18:
	CMP	EAX,BYTE 026H
	JE	NEAR	L_16
	JA	NEAR	L_11
	CMP	EAX,BYTE 012H
	JE	NEAR	L_13
	JMP	NEAR	L_11
L_12:
;
; Line 14:	tick = 0;
;
	MOV	DWORD [L_1],00H
;
; Line 15:	rtn = DefaultWndProc(wnd, msg, p1, p2);
;
	MOV	EAX,DWORD [ESI+00H]
	IMUL	EAX,BYTE 0CH
	CMP	DWORD [EAX+04H+_classdefs+00H],BYTE 00H
	JNE	SHORT	L_20
	PUSH	EDI
	PUSH	EBX
	MOVSX	EAX,WORD [EBP+0CH]
	PUSH	EAX
	PUSH	ESI
	MOV	EAX,DWORD [ESI+00H]
	IMUL	EAX,BYTE 0CH
	MOV	EAX,DWORD [EAX+_classdefs+00H]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
	JMP	SHORT	L_21
L_20:
	PUSH	EDI
	PUSH	EBX
	MOVSX	EAX,WORD [EBP+0CH]
	PUSH	EAX
	PUSH	ESI
	MOV	EAX,DWORD [ESI+00H]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
L_21:
	MOV	DWORD [EBP-08H],EAX
;
; Line 16:	SendMessage(wnd, CAPTURE_MOUSE, 0, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 02EH
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 17:	SendMessage(wnd, HIDE_MOUSE, 0, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 02BH
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 18:	SendMessage(wnd, CAPTURE_KEYBOARD, 0, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 016H
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 19:	SendMessage(wnd, CAPTURE_CLOCK, 0, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 013H
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 20:	return rtn;
;
	MOV	EAX,DWORD [EBP-08H]
	JMP	NEAR	L_8
L_13:
;
; Line 22:	++tick;
;
	INC	DWORD [L_1]
;
; Line 23:	tick &= 3;
;
	AND	DWORD [L_1],BYTE 03H
;
; Line 24:	SendMessage(wnd->PrevClock, msg, p1, p2);
;
	PUSH	EDI
	PUSH	EBX
	MOVSX	EAX,WORD [EBP+0CH]
	PUSH	EAX
	PUSH	DWORD [ESI+07CH]
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 26:	case PAINT:
;
L_14:
;
; Line 27:	SetStandardColor(wnd);
;
	PUSH	ESI
	CALL	_SetStandardColor
	POP	ECX
;
; Line 28:	writeline(wnd, hands[tick], 1, 1, FALSE);
;
	PUSH	BYTE 00H
	PUSH	BYTE 01H
	PUSH	BYTE 01H
	MOV	EAX,DWORD [L_1]
	PUSH	DWORD [EAX*4+L_2+00H]
	PUSH	ESI
	CALL	_writeline
	ADD	ESP,BYTE 014H
;
; Line 29:	return TRUE;
;
	MOV	EAX,01H
	JMP	NEAR	L_8
L_15:
;
; Line 31:	rtn = DefaultWndProc(wnd, msg, p1, p2);
;
	MOV	EAX,DWORD [ESI+00H]
	IMUL	EAX,BYTE 0CH
	CMP	DWORD [EAX+04H+_classdefs+00H],BYTE 00H
	JNE	SHORT	L_22
	PUSH	EDI
	PUSH	EBX
	MOVSX	EAX,WORD [EBP+0CH]
	PUSH	EAX
	PUSH	ESI
	MOV	EAX,DWORD [ESI+00H]
	IMUL	EAX,BYTE 0CH
	MOV	EAX,DWORD [EAX+_classdefs+00H]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
	JMP	SHORT	L_23
L_22:
	PUSH	EDI
	PUSH	EBX
	MOVSX	EAX,WORD [EBP+0CH]
	PUSH	EAX
	PUSH	ESI
	MOV	EAX,DWORD [ESI+00H]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
L_23:
	MOV	DWORD [EBP-08H],EAX
;
; Line 32:	writeline(wnd, "Í", 2, 0, FALSE);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 02H
	PUSH	DWORD L_7
	PUSH	ESI
	CALL	_writeline
	ADD	ESP,BYTE 014H
;
; Line 33:	return rtn;
;
	MOV	EAX,DWORD [EBP-08H]
	JMP	NEAR	L_8
L_16:
;
; Line 35:	SendMessage(wnd, HIDE_WINDOW, 0, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 06H
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 36:	SendMessage(wnd, MOVE, p1, p2);
;
	PUSH	EDI
	PUSH	EBX
	PUSH	BYTE 0CH
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 37:	SendMessage(wnd, SHOW_WINDOW, 0, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 05H
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 38:	return TRUE;
;
	MOV	EAX,01H
	JMP	NEAR	L_8
L_17:
;
; Line 40:	SendMessage(wnd, RELEASE_CLOCK, 0, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 014H
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 41:	SendMessage(wnd, RELEASE_MOUSE, 0, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 02FH
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 42:	SendMessage(wnd, RELEASE_KEYBOARD, 0, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 017H
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 43:	SendMessage(wnd, SHOW_MOUSE, 0, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 02AH
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 44:	break;
;
	JMP	SHORT	L_10
L_11:
;
; Line 46:	break;
;
	JMP	SHORT	L_10
L_10:
;
; Line 48:	return DefaultWndProc(wnd, msg, p1, p2);
;
	MOV	EAX,DWORD [ESI+00H]
	IMUL	EAX,BYTE 0CH
	CMP	DWORD [EAX+04H+_classdefs+00H],BYTE 00H
	JNE	SHORT	L_24
	PUSH	EDI
	PUSH	EBX
	MOVSX	EAX,WORD [EBP+0CH]
	PUSH	EAX
	PUSH	ESI
	MOV	EAX,DWORD [ESI+00H]
	IMUL	EAX,BYTE 0CH
	MOV	EAX,DWORD [EAX+_classdefs+00H]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
	JMP	SHORT	L_25
L_24:
	PUSH	EDI
	PUSH	EBX
	MOVSX	EAX,WORD [EBP+0CH]
	PUSH	EAX
	PUSH	ESI
	MOV	EAX,DWORD [ESI+00H]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
L_25:
L_8:
	POP	EDI
	POP	ESI
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
[GLOBAL	_WatchIcon]
;
; Line 51:	WINDOW WatchIcon(void)
;
_WatchIcon:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 0CH
	PUSH	EBX
L_27:
;
; Line 52:	{
;
;
; Line 55:	SendMessage(NULL, CURRENT_MOUSE_CURSOR,
;
	LEA	EAX,[EBP-04H]
	PUSH	EAX
	LEA	EAX,[EBP-08H]
	PUSH	EAX
	PUSH	BYTE 028H
	PUSH	BYTE 00H
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 57:	wnd = CreateWindow(
;
	PUSH	DWORD 040C1H
	PUSH	DWORD _WatchIconProc
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 05H
	PUSH	BYTE 03H
	PUSH	DWORD [EBP-04H]
	PUSH	DWORD [EBP-08H]
	PUSH	BYTE 00H
	PUSH	BYTE 0AH
	CALL	_CreateWindow
	ADD	ESP,BYTE 028H
	MOV	EBX,EAX
;
; Line 64:	return wnd;
;
	MOV	EAX,EBX
L_26:
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
SECTION _STRING
L_7:
	DB	0CDH,00H
L_6:
	DB	020H,0D9H,020H,00H
L_5:
	DB	020H,0BFH,020H,00H
L_4:
	DB	020H,0DAH,020H,00H
L_3:
	DB	020H,0C0H,020H,00H
SECTION _DATA

L_1	DD	00H

L_2	DD	L_3,L_4,L_5,L_6
SECTION _CONST

SECTION _TEXT
[EXTERN	_CreateWindow]
[EXTERN	_writeline]
[EXTERN	_SetStandardColor]
[EXTERN	_classdefs]
[EXTERN	_SendMessage]
