PROCEDURE COMBATBUTTONS; ASSEMBLER;
ASM
	PUSHAD	
//Код подсказки к предыдущей кнопке
    	mov edx,[$6A6A14]
    	mov eax,[$6A6A10]
	PUSH 1
	PUSH EDX
	PUSH EAX
	MOV ECX, EBX
	MOV BYTE [EBP-4],0
	MOV EAX, $5FEE00
    	CALL EAX
	MOV EDX,[EBX+$50]
          LEA EDI,[EBX+$48]
    	LEA ECX,[EBP+$0C]
    	MOV DWORD [ebp+$0C],$39
	PUSH ECX
	PUSH 1
	PUSH EDX
	MOV ECX, EDI
	MOV EAX, $404230
	CALL EAX
	MOV DWORD [Counter], 4
@@LoopButtons:
	MOV ECX, [PointerOfButtonsTable]
	MOV EAX, [Counter]
	MOV ECX, [ECX+EAX]
	MOV ECX, [ECX+4]
	PUSH DWORD [ECX]
	MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
	CALL EAX
	ADD ESP, 4
	CMP EAX, 4 //проверка на кнопку битвы
	JNZ @@INC
//Подсказка при ПКМ
	MOV ECX, [PointerOfButtonsTable]
	MOV EDX, [Counter]
	MOV ECX, [ECX+EDX]
	MOV ECX, [ECX+4]
	MOV EDX, [ECX+28]
//Подсказка при наведении мыши
	MOV ECX, [PointerOfButtonsTable]
	MOV EAX, [Counter]
	MOV ECX, [ECX+EAX]
	MOV ECX, [ECX+4]
	MOV EAX, [ECX+32]
	MOV EAX, EAX
	MOV EAX,[ESI+8]
    	LEA ECX,[ebp+$0C]
	PUSH ECX
	PUSH 1
	PUSH EAX
	MOV ECX, ESI
	MOV [ebp+$0C],EBX
	MOV EAX, $5FE2D0
	CALL EAX
	PUSH $68
	MOV EAX, $617492
	CALL EAX
	ADD ESP, 4
	MOV [ebp+$0C],EAX
	MOV BYTE [EBP-4],0
	PUSH 2
	PUSH 0
	PUSH 0
	PUSH 1
	PUSH 0
	MOV EDI, EAX
//деф кнопки
	MOV ECX, [PointerOfButtonsTable]
	MOV EDX, [Counter]
	MOV ECX, [ECX+EDX]
	MOV ECX, [ECX+4]
	PUSH DWORD [ECX+8]
//ID
	MOV ECX, [PointerOfButtonsTable]
	MOV EDX, [Counter]
	MOV ECX, [ECX+EDX]
	MOV ECX, [ECX+4]
	PUSH DWORD [ECX+4]
	MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
	CALL EAX
	ADD ESP, 4
	PUSH EAX
//Y-size
	MOV ECX, [PointerOfButtonsTable]
	MOV EDX, [Counter]
	MOV ECX, [ECX+EDX]
	MOV ECX, [ECX+4]
	PUSH DWORD [ECX+24]
	MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
	CALL EAX
	ADD ESP, 4
	PUSH EAX
//X-size
	MOV ECX, [PointerOfButtonsTable]
	MOV EDX, [Counter]
	MOV ECX, [ECX+EDX]
	MOV ECX, [ECX+4]
	PUSH DWORD [ECX+20]
	MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
	CALL EAX
	ADD ESP, 4
	PUSH EAX
//Y-position
	MOV ECX, [PointerOfButtonsTable]
	MOV EDX, [Counter]
	MOV ECX, [ECX+EDX]
	MOV ECX, [ECX+4]
	PUSH DWORD [ECX+16]
	MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
	CALL EAX
	ADD ESP, 4
	PUSH EAX
//X-position
	MOV ECX, [PointerOfButtonsTable]
	MOV EDX, [Counter]
	MOV ECX, [ECX+EDX]
	MOV ECX, [ECX+4]
	PUSH DWORD [ECX+12]
	MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
	CALL EAX
	ADD ESP, 4
	PUSH EAX
	MOV ECX, EDI
	MOV EAX, $455BD0
	CALL EAX
	MOV [Temp], EAX
	MOV EBX, EAX
//Подсказка при ПКМ
	MOV ECX, [PointerOfButtonsTable]
	MOV EDX, [Counter]
	MOV ECX, [ECX+EDX]
	MOV ECX, [ECX+4]
	MOV EDX, [ECX+28]
//Подсказка при наведении мыши
	MOV ECX, [PointerOfButtonsTable]
	MOV EAX, [Counter]
	MOV ECX, [ECX+EAX]
	MOV ECX, [ECX+4]
	MOV EAX, [ECX+32]
	MOV EAX, EAX
	PUSH 1
	PUSH EDX
	PUSH EAX
	MOV ECX, EBX
	MOV BYTE [EBP-4],0
	MOV EAX, $5FEE00
    	CALL EAX
	MOV EDX,[EBX+$50]
          LEA EDI,[EBX+$48]
    	LEA ECX,[EBP+$0C]
    	MOV DWORD [ebp+$0C],$39
	PUSH ECX
	PUSH 1
	PUSH EDX
	MOV ECX, EDI
	MOV EAX, $404230
	CALL EAX
@@INC:
	ADD DWORD [Counter], 4
	CMP DWORD [Counter], NumberOfStrings*4
	JLE @@LoopButtons		
	POPAD
	MOV EBX, [Temp]
	PUSH $46B63D //13
END; // .COMBATBUTTONS
Подтверждаю. Как раз связано с вопросом к Мору выше.
Я занулил Temp на входе, а нужно было туда EBX поместить.