	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
;
; Line 5:	static struct PopDown *FindCmd(MBAR *mn, int cmd)
;
_FindCmd:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	PUSH	ESI
L_2:
;
; Line 6:	{
;
;
; Line 7:	MENU *mnu = mn->PullDown;
;
	MOV	EBX,DWORD [EBP+08H]
	ADD	EBX,BYTE 04H
	JMP	SHORT	L_3
L_5:
;
; Line 9:	struct PopDown *pd = mnu->Selections;
;
	MOV	ESI,EBX
	ADD	ESI,BYTE 014H
	JMP	SHORT	L_6
L_8:
;
; Line 11:	if (pd->ActionId == cmd)
;
	MOV	EAX,DWORD [ESI+04H]
	CMP	EAX,DWORD [EBP+0CH]
	JNE	SHORT	L_9
;
; Line 12:	return pd;
;
	MOV	EAX,ESI
	JMP	SHORT	L_1
L_9:
;
; Line 13:	pd++;
;
	ADD	ESI,BYTE 014H
L_6:
;
; Line 10:	while (pd->SelectionTitle != NULL)    {
;
	CMP	DWORD [ESI+00H],BYTE 00H
	JNE	SHORT	L_8
L_7:
;
; Line 15:	mnu++;
;
	ADD	EBX,01B8H
L_3:
;
; Line 8:	while (mnu->Title != (void *)-1)    {
;
	CMP	DWORD [EBX+00H],BYTE 0FFFFFFFFH
	JNE	SHORT	L_5
L_4:
;
; Line 17:	return NULL;
;
	MOV	EAX,00H
L_1:
	POP	ESI
	POP	EBX
	POP	EBP
	RET
[GLOBAL	_GetCommandText]
;
; Line 20:	char *GetCommandText(MBAR *mn, int cmd)
;
_GetCommandText:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	ESI
L_12:
;
; Line 21:	{
;
;
; Line 22:	struct PopDown *pd = FindCmd(mn, cmd);
;
	PUSH	DWORD [EBP+0CH]
	PUSH	DWORD [EBP+08H]
	CALL	_FindCmd
	ADD	ESP,BYTE 08H
	MOV	ESI,EAX
;
; Line 23:	if (pd != NULL)
;
	TEST	ESI,ESI
	JE	SHORT	L_13
;
; Line 24:	return pd->SelectionTitle;
;
	MOV	EAX,DWORD [ESI+00H]
	JMP	SHORT	L_11
L_13:
;
; Line 25:	return NULL;
;
	MOV	EAX,00H
L_11:
	POP	ESI
	POP	EBP
	RET
[GLOBAL	_isCascadedCommand]
;
; Line 28:	BOOL isCascadedCommand(MBAR *mn, int cmd)
;
_isCascadedCommand:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	ESI
L_16:
;
; Line 29:	{
;
;
; Line 30:	struct PopDown *pd = FindCmd(mn, cmd);
;
	PUSH	DWORD [EBP+0CH]
	PUSH	DWORD [EBP+08H]
	CALL	_FindCmd
	ADD	ESP,BYTE 08H
	MOV	ESI,EAX
;
; Line 31:	if (pd != NULL)
;
	TEST	ESI,ESI
	JE	SHORT	L_17
;
; Line 32:	return pd->Attrib & CASCADED;
;
	MOV	EAX,DWORD [ESI+0CH]
	AND	EAX,BYTE 08H
	JMP	SHORT	L_15
L_17:
;
; Line 33:	return FALSE;
;
	MOV	EAX,00H
L_15:
	POP	ESI
	POP	EBP
	RET
[GLOBAL	_ActivateCommand]
;
; Line 36:	void ActivateCommand(MBAR *mn, int cmd)
;
_ActivateCommand:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	ESI
L_20:
;
; Line 37:	{
;
;
; Line 38:	struct PopDown *pd = FindCmd(mn, cmd);
;
	PUSH	DWORD [EBP+0CH]
	PUSH	DWORD [EBP+08H]
	CALL	_FindCmd
	ADD	ESP,BYTE 08H
	MOV	ESI,EAX
;
; Line 39:	if (pd != NULL)
;
	TEST	ESI,ESI
	JE	SHORT	L_21
;
; Line 40:	pd->Attrib &= ~INACTIVE;
;
	AND	DWORD [ESI+0CH],BYTE 0FFFFFFFEH
L_21:
;
; Line 41:	}
;
L_19:
	POP	ESI
	POP	EBP
	RET
[GLOBAL	_DeactivateCommand]
;
; Line 43:	void DeactivateCommand(MBAR *mn, int cmd)
;
_DeactivateCommand:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	ESI
L_24:
;
; Line 44:	{
;
;
; Line 45:	struct PopDown *pd = FindCmd(mn, cmd);
;
	PUSH	DWORD [EBP+0CH]
	PUSH	DWORD [EBP+08H]
	CALL	_FindCmd
	ADD	ESP,BYTE 08H
	MOV	ESI,EAX
;
; Line 46:	if (pd != NULL)
;
	TEST	ESI,ESI
	JE	SHORT	L_25
;
; Line 47:	pd->Attrib |= INACTIVE;
;
	BTS	DWORD [ESI+0CH],00H
L_25:
;
; Line 48:	}
;
L_23:
	POP	ESI
	POP	EBP
	RET
[GLOBAL	_isActive]
;
; Line 50:	BOOL isActive(MBAR *mn, int cmd)
;
_isActive:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	ESI
L_28:
;
; Line 51:	{
;
;
; Line 52:	struct PopDown *pd = FindCmd(mn, cmd);
;
	PUSH	DWORD [EBP+0CH]
	PUSH	DWORD [EBP+08H]
	CALL	_FindCmd
	ADD	ESP,BYTE 08H
	MOV	ESI,EAX
;
; Line 53:	if (pd != NULL)
;
	TEST	ESI,ESI
	JE	SHORT	L_29
;
; Line 54:	return !(pd->Attrib & INACTIVE);
;
	MOV	EAX,DWORD [ESI+0CH]
	AND	EAX,BYTE 01H
	SETE	AL
	MOVZX	EAX,AL
	JMP	SHORT	L_27
L_29:
;
; Line 55:	return FALSE;
;
	MOV	EAX,00H
L_27:
	POP	ESI
	POP	EBP
	RET
[GLOBAL	_GetCommandToggle]
;
; Line 58:	BOOL GetCommandToggle(MBAR *mn, int cmd)
;
_GetCommandToggle:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	ESI
L_32:
;
; Line 59:	{
;
;
; Line 60:	struct PopDown *pd = FindCmd(mn, cmd);
;
	PUSH	DWORD [EBP+0CH]
	PUSH	DWORD [EBP+08H]
	CALL	_FindCmd
	ADD	ESP,BYTE 08H
	MOV	ESI,EAX
;
; Line 61:	if (pd != NULL)
;
	TEST	ESI,ESI
	JE	SHORT	L_33
;
; Line 62:	return (pd->Attrib & CHECKED) != 0;
;
	MOV	EAX,DWORD [ESI+0CH]
	AND	EAX,BYTE 02H
	SETNE	AL
	MOVZX	EAX,AL
	JMP	SHORT	L_31
L_33:
;
; Line 63:	return FALSE;
;
	MOV	EAX,00H
L_31:
	POP	ESI
	POP	EBP
	RET
[GLOBAL	_SetCommandToggle]
;
; Line 66:	void SetCommandToggle(MBAR *mn, int cmd)
;
_SetCommandToggle:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	ESI
L_36:
;
; Line 67:	{
;
;
; Line 68:	struct PopDown *pd = FindCmd(mn, cmd);
;
	PUSH	DWORD [EBP+0CH]
	PUSH	DWORD [EBP+08H]
	CALL	_FindCmd
	ADD	ESP,BYTE 08H
	MOV	ESI,EAX
;
; Line 69:	if (pd != NULL)
;
	TEST	ESI,ESI
	JE	SHORT	L_37
;
; Line 70:	pd->Attrib |= CHECKED;
;
	BTS	DWORD [ESI+0CH],01H
L_37:
;
; Line 71:	}
;
L_35:
	POP	ESI
	POP	EBP
	RET
[GLOBAL	_ClearCommandToggle]
;
; Line 73:	void ClearCommandToggle(MBAR *mn, int cmd)
;
_ClearCommandToggle:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	ESI
L_40:
;
; Line 74:	{
;
;
; Line 75:	struct PopDown *pd = FindCmd(mn, cmd);
;
	PUSH	DWORD [EBP+0CH]
	PUSH	DWORD [EBP+08H]
	CALL	_FindCmd
	ADD	ESP,BYTE 08H
	MOV	ESI,EAX
;
; Line 76:	if (pd != NULL)
;
	TEST	ESI,ESI
	JE	SHORT	L_41
;
; Line 77:	pd->Attrib &= ~CHECKED;
;
	AND	DWORD [ESI+0CH],BYTE 0FFFFFFFDH
L_41:
;
; Line 78:	}
;
L_39:
	POP	ESI
	POP	EBP
	RET
[GLOBAL	_InvertCommandToggle]
;
; Line 80:	void InvertCommandToggle(MBAR *mn, int cmd)
;
_InvertCommandToggle:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	ESI
L_44:
;
; Line 81:	{
;
;
; Line 82:	struct PopDown *pd = FindCmd(mn, cmd);
;
	PUSH	DWORD [EBP+0CH]
	PUSH	DWORD [EBP+08H]
	CALL	_FindCmd
	ADD	ESP,BYTE 08H
	MOV	ESI,EAX
;
; Line 83:	if (pd != NULL)
;
	TEST	ESI,ESI
	JE	SHORT	L_45
;
; Line 84:	pd->Attrib ^= CHECKED;
;
	BTC	DWORD [ESI+0CH],01H
L_45:
;
; Line 85:	}
;
L_43:
	POP	ESI
	POP	EBP
	RET
SECTION _CONST

