Поиском по команде пересылки цепочек нашел такой кусок

Поиском по команде пересылки цепочек нашел такой кусок кода (вызывается после выдачи POST C3):

sub_FFC65:
	push    2000h			; segment
	call    near ptr sub_F61F0	; call near, but ret far
					; --> 2000:xxxx
	mov     esi, 0
	jnz     short loc_FFC79
	mov     esi, 0FFF00000h
loc_FFC79:
	movzx   ecx, cx
	shl     ecx, 4
	or      esi, ecx

	cld

	mov     ax, cs			; unreal mode on
	mov     ds, ax
	lgdt    qword ptr ds:0FBF6h
	mov     eax, cr0
	or      al, 1
	mov     cr0, eax
	jmp     short $+2
	mov     ax, 8
	mov     ds, ax
	mov     es, ax

	and     esi, 0FFF00000h		; all flash ROM, if 8 Mbit
	mov     edi, 300000h
	mov     ecx, 40000h		; 8 Mbit
	rep movs dword ptr es:[edi], dword ptr [esi]


	mov     eax, cr0		; unreal mode off
	and     al, 0FEh
	mov     cr0, eax
	jmp     short $+2

	push    2000h			; segment
	call    near ptr sub_F61F6	; call near, but ret far
					; --> 2000:xxxx

	call    sub_FE5CC		; search '*BBSS*'

	mov     si, [si]
	and     si, 0FFF0h
	push    si
	mov     bx, [si+0Ah]
	and     bx, 0FFF0h
	pop     ax
	add     ax, bx
	and     ax, 0F000h
	add     ax, 0FFEh
	push    ax
	call    sub_FE705		; unreal mode on
	pop     ax

	mov     esi, 300000h
	mov     ecx, 0E0000h
	add     ecx, esi
loc_FFCF2:
	mov     ebx, [esi]
	and     ebx, 0FFFFFFh
	cmp     ebx, 686C2Dh		; search '-lh'
	jz      short loc_FFD0A
	inc     esi
	jmp     short loc_FFCF2

loc_FFD0A:
	sub     esi, 2
	add     cx, ax
	sub     ecx, esi
	xor     ah, ah
loc_FFD15:
	lods    byte ptr [esi]
	add     ah, al			; checksum
	loopd   loc_FFD15
	mov     al, [esi]
	push    ax
	call    sub_FE720		; unreal mode off
	pop     ax
	cmp     ah, al
	jnz     loc_FE58B		; checksum wrong
	.....

sub_FE5CC:
	mov     ax, cs
	mov     es, ax
	mov     ax, 0E000h
	mov     ds, ax
	mov     ax, 0FFF0h
	cld
loc_FE5D9:
	mov     si, ax
	lea     di, ds:0E045h   ; '*BBSS*'
	mov     cx, 6
	repe cmpsb
	jz      short locret_FE5ED
	sub     ax, 10h
	jnz     short loc_FE5D9
	xor     si, si
locret_FE5ED:
	retn

sub_F61F0:
	mov     cx, 0C000h
	xor     cl, cl
	retf

sub_F61F6:
	pusha
	popa
	retf

Сначала там какие-то извращения с ESI/ECX, но в конце концов ESI указывает на FFF00000h, т.е. на начало флешки, если я правильно понимаю.
Потом копируем всю 8-мимегабитную флешку в память, начиная с 300000h.
Скопировав, ищем строку '*BBSS*', потом с ориентиром на эту строку начинаем вытаскивать какие-то данные и куда-то их запихивать.
Далее начинаем искать сигнатуру '-lh', затем определяем длину модуля и начинаем считать контрольную сумму.
Ежели КС не сошлась, уходим по последней метке - там потом будет выдан C5, а за ним 01 и дальнейшие коды по восстановлению.
Если КС сошлась, то ползем дальше - это я особо не смотрел.
P.S. Мог где-то и ошибиться с интерпретацией.