It just seems to randomly work for a little bit on and off could i get some help?

My ESP.H :

Code:
#ifndef ESP_H
#define ESP_H

#include "Engine.h"
#include "Settings.h"
  

struct GlowObjectDefinition_t
{
	DWORD dwBase;
	float r;
	float g;
	float b;
	float a;
	uint8_t unk1[8];
	float m_flBloomAmount;
	uint8_t unk2[4];
	bool m_bRenderWhenOccluded;
	bool m_bRenderWhenUnoccluded;
	bool m_bFullBloom;
	int m_nFullBloomStencil;
	uint8_t unk3[10];
};

struct Player {
	  
	DWORD dwBase;
	int team;
	int Dormant;
	bool isDormant;
	  
};

class ESP {

public: 
	void run() {
          
		int objectCount;
		DWORD pointerGlow;

		bool e_base;
		if (Settings()->e_glow_base == 1) {
			e_base = true;
		} else {
			e_base = false;
		}
		float e_red = sanitizeChannel(Settings()->e_glow_r);
		float e_green = sanitizeChannel(Settings()->e_glow_g);
		float e_blue = sanitizeChannel(Settings()->e_glow_b);
		float e_thick = sanitizeChannel(Settings()->e_glow_t);
		float e_bloom = sanitizeChannel(Settings()->e_glow_bl);
		bool e_fill;
		if (Settings()->e_glow_fill == 1) {
			e_fill = true;
		} else {
			e_fill = false;
		}


		float f_red = sanitizeChannel(Settings()->f_glow_r);
		float f_green = sanitizeChannel(Settings()->f_glow_g);
		float f_blue = sanitizeChannel(Settings()->f_glow_b);
		float f_thick = sanitizeChannel(Settings()->f_glow_t);
		float f_bloom = sanitizeChannel(Settings()->f_glow_bl);
		bool f_fill;
		if (Settings()->f_glow_fill == 1) {
			f_fill = true;
		}
		else {
			f_fill = false;
		}



		while (true) {
              
			if (Settings()->espEnabled && (Engine()->me.team == 2 || Engine()->me.team == 3)) {
                  
                pointerGlow = Engine()->Memory()->Read<DWORD>(Engine()->getClientModule()->dwBase + Engine()->Offsets()->dwGlow);
                objectCount = Engine()->Memory()->Read<DWORD>(Engine()->getClientModule()->dwBase + Engine()->Offsets()->dwGlow + 0x4);
				if (pointerGlow != NULL && objectCount > 0) {
                      
                    for (int i = 0; i < (objectCount + 1); i++) {
							  
							DWORD mObj = pointerGlow + i * sizeof(GlowObjectDefinition_t);
							GlowObjectDefinition_t glowObj = Engine()->Memory()->Read<GlowObjectDefinition_t>(mObj);
							Entity* Player = Engine()->getEntityByBase(glowObj.dwBase);
							if (glowObj.dwBase != NULL && Player != nullptr && !Player->is_dormant) {
							      
								if (Engine()->me.team == Player->team) {
									  
									if (Settings()->glow_fen != 1) {
										continue;
									} else {
										glowPlayer(mObj, f_red, f_green, f_blue, f_thick, f_bloom, f_fill);
									}
								} else if (Settings()->glow_een != 1) {
									continue;
								} else if (Engine()->me.team != Player->team && Player->hp > 0 && e_base == 1) {
									  
									float greenamount, redamount;
									float hp = Player->hp;
									if (Player->hp > 0 && Player->hp < 101) {										
										greenamount = hp / 100.f;
										redamount = (100.f - hp) / 100.f;
									} else {
										greenamount = 1.f;
										redamount = 0.f;
									}
									glowPlayer(mObj, redamount, greenamount, 0, e_thick, e_bloom, e_fill);
								} else if (Engine()->me.team != Player->team) {
									  
									glowPlayer(mObj, e_red, e_green, e_blue, e_thick, e_bloom, e_fill);
								} else {
									  
									glowPlayer(mObj, e_red, e_green, e_blue, e_thick, e_bloom, e_fill);
								}
							} 
							  
						}
				}
				  
			}
			Sleep(Settings()->glow_pfreq);
			  
		}
		  
		  
	}

private:
	void glowPlayer(DWORD mObj, float r, float g, float b, float a, float blm, bool bih) {
		  
		  
		  
		Engine()->Memory()->Write<float>(mObj + 0x4, r);
		Engine()->Memory()->Write<float>(mObj + 0x8, g);
		Engine()->Memory()->Write<float>(mObj + 0xC, b);
		Engine()->Memory()->Write<float>(mObj + 0x10, a);
		Engine()->Memory()->Write<float>(mObj + 0x1C, blm);
		Engine()->Memory()->Write<BOOL>(mObj + 0x24, true);
		Engine()->Memory()->Write<BOOL>(mObj + 0x25, false);
		Engine()->Memory()->Write<BOOL>(mObj + 0x26, bih);
		  
		  
	}
	float sanitizeChannel(int value) {
		  
		  
          
        if (value > 255) value = 255;
        if (value < 0) value = 0;
          
        return (float) value / 255;
          
	}
};

#endif