loadsymtab(fd, eh, 0);
loadsymtab32(fd, eh, 0); printf("Start at 0x%x\n", eh->e_entry);
loadfile32(int fd, Elf32_Ehdr *eh){	char buf[4096];	Elf32_Phdr *ph;	int i;	ph = (Elf32_Phdr *) buf;	olseek(fd, eh->e_phoff, 0);	if (oread(fd, (char *)ph, 4096) != 4096) {		printf("unexpected EOF\n");		return NULL;	}	tablebase = 0;	printf("Loading ELF32 file\n");	for (i = 0; i < eh->e_phnum; i++, ph++) {		if (ph->p_type == PT_LOAD) {			olseek(fd, ph->p_offset, 0);			printf("0x%x:0x%x, ",(long)ph->p_paddr, (long)ph->p_filesz);			if (oread(fd, (char *)ph->p_paddr, ph->p_filesz) !=  ph->p_filesz) {				printf("unexpected EOF\n");				return NULL;			}			if(ph->p_memsz > ph->p_filesz) {				printf("Zero 0x%x:0x%x, ",					(long)(ph->p_paddr + ph->p_filesz),					(long)(ph->p_memsz - ph->p_filesz));				bzero((void *)(ph->p_paddr + ph->p_filesz),					ph->p_memsz - ph->p_filesz);			}			if((ph->p_paddr + ph->p_memsz) > tablebase) {				tablebase = ph->p_paddr + ph->p_memsz;			}		}	}	memset((void *)tablebase, 0, 4096);	loadsymtab(fd, eh, 0);	return(eh->e_entry);}