Function at 0x407bb0
Capabilities:
Access peb ldr_data
Check os version
Enumerate pe sections
Get kernel32 base address
Get ntdll base address
Get process heap flags
Get process heap force flags
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x16c
mov edi, dword [0x41c008]
mov ebx, dword [ebp + 8]
test edi, edi
je 0x407c00
mov esi, dword [sym.imp.ucrtbase.dll_strcmp]
jmp 0x407bdf
mov edi, dword [edi + 0x44]
test edi, edi
je 0x407c00
mov eax, dword [edi + 8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call esi
test eax, eax
jne 0x407bd8
add dword [edi + 0x48], 1
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [sym.imp.ucrtbase.dll_strlen]
mov dword [esp], ebx
mov dword [ebp - 0xd8], eax
call eax
mov dword [esp + 4], 8
add eax, 0xad
mov dword [esp + 8], eax
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0xd4], eax
call eax
sub esp, 0xc
mov edi, eax
test eax, eax
je 0x407d27
mov esi, dword [0x41c008]
lea eax, [eax + 0xac]
mov dword [edi + 0x3c], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi + 0x44], esi
mov dword [edi + 0x48], 1
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_strcpy]
mov dword [esp + 4], ebx
mov dword [ebp - 0xcc], eax
call eax
mov dword [0x41c008], edi
test esi, esi
je 0x407c8c
mov dword [esi + 0x40], edi
lea eax, [ebp - 0xa0]
mov dword [esp], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_OpenFile]
sub esp, 0xc
mov ebx, eax
cmp eax, 0xffffffff
je 0x407d18
lea eax, [ebp - 0xb0]
mov dword [esp + 8], 0x10
mov esi, dword [sym.imp.kernel32.dll__hread]
mov dword [esp + 4], eax
mov dword [esp], ebx
call esi
sub esp, 0xc
cmp eax, 0x10
je 0x407d38
test byte [0x416010], 4
je 0x407d7a
mov dword [esp + 0xc], str.header_n
mov dword [esp + 8], str.HLPFILE_ReadFileToBuffer
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll__lclose]
sub esp, 4
lea esi, [esi]
nop
sub dword [edi + 0x48], 1
jne 0x407d27
nop
mov eax, edi
call sym._HLPFILE_FreeHlpFile.part.0
lea esp, [ebp - 0xc]
xor edi, edi
pop ebx
mov eax, edi
pop esi
pop edi
pop ebp
ret
movzx eax, byte [ebp - 0xad]
movzx edx, byte [ebp - 0xae]
movzx ecx, byte [ebp - 0xb0]
shl eax, 8
add eax, edx
movzx edx, byte [ebp - 0xaf]
shl eax, 0x10
shl edx, 8
add edx, ecx
movzx edx, dx
add eax, edx
cmp eax, 0x35f3f
je 0x407d8e
test byte [0x416010], 4
jne 0x4087b1
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll__lclose]
sub esp, 4
sub dword [edi + 0x48], 1
je 0x407d20
jmp 0x407d27
movzx eax, byte [ebp - 0xa1]
movzx edx, byte [ebp - 0xa2]
movzx ecx, byte [ebp - 0xa4]
shl eax, 8
add eax, edx
movzx edx, byte [ebp - 0xa3]
shl eax, 0x10
shl edx, 8
add edx, ecx
movzx edx, dx
add eax, edx
mov dword [edi + 4], eax
add eax, 1
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov dword [edi], eax
sub esp, 0xc
test eax, eax
je 0x407d7a
mov edx, dword [ebp - 0xb0]
mov ecx, dword [edi + 4]
add eax, 0x10
mov dword [eax - 0x10], edx
mov edx, dword [ebp - 0xac]
mov dword [eax - 0xc], edx
mov edx, dword [ebp - 0xa8]
mov dword [eax - 8], edx
mov edx, dword [ebp - 0xa4]
mov dword [eax - 4], edx
lea edx, [ecx - 0x10]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ebx
call esi
mov edx, eax
mov eax, dword [edi + 4]
sub esp, 0xc
sub eax, 0x10
cmp edx, eax
je 0x407e52
test byte [0x416010], 4
je 0x407d7a
mov dword [esp + 0xc], str.filesize1_n
jmp 0x407ceb
lea eax, [ebp - 0xb4]
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], ebx
call esi
sub esp, 0xc
test eax, eax
je 0x407e7d
test byte [0x416010], 4
jne 0x40a7e9
mov edx, dword [edi]
mov eax, dword [edi + 4]
lea esi, [edi + 4]
mov dword [ebp - 0xec], esi
mov byte [edx + eax], 0
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll__lclose]
lea eax, [ebp - 0xb0]
mov dword [edi + 0xc], 0
mov edx, esi
sub esp, 4
mov ecx, str.SYSTEM
mov dword [esp + 4], eax
lea eax, [ebp - 0xb4]
mov dword [esp], eax
mov eax, edi
call sym._HLPFILE_FindSubFile.isra.0
test eax, eax
je 0x407d18
mov eax, dword [ebp - 0xb4]
movzx esi, byte [eax + 0xa]
movzx edx, byte [eax + 9]
movzx ebx, byte [eax + 0xc]
shl esi, 8
add esi, edx
movzx edx, byte [eax + 0xb]
shl ebx, 8
add ebx, edx
movzx edx, byte [eax + 0xe]
mov ecx, edx
movzx edx, byte [eax + 0xd]
shl ecx, 8
add ecx, edx
movzx edx, byte [eax + 0x14]
movzx eax, byte [eax + 0x13]
shl edx, 8
add edx, eax
test byte [0x416010], 8
jne 0x408f88
cmp si, 0x36c
jne 0x40877b
cmp cx, 1
jne 0x40877b
cmp bx, 0x10
ja 0x4087be
mov eax, 0x7f4
mov word [edi + 0x4c], bx
mov word [edi + 0x54], ax
mov eax, dword [ebp - 0xb4]
mov word [edi + 0x4e], dx
lea esi, [eax + 0x15]
mov dword [edi + 0x58], 0
mov eax, dword [ebp - 0xd8]
mov dword [edi + 0x50], 0x8000001
mov dword [esp], esi
call eax
mov dword [esp + 4], 0
add eax, 1
mov dword [esp + 8], eax
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov dword [edi + 0xc], eax
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x407d18
mov dword [esp], eax
mov eax, dword [ebp - 0xcc]
mov dword [esp + 4], esi
call eax
test byte [0x416010], 8
jne 0x40a53c
cmp word [edi + 0x4c], 0x10
ja 0x408082
lea eax, [ebp - 0xb0]
mov edx, dword [ebp - 0xec]
mov ecx, str.TOMAP
mov dword [esp + 4], eax
lea eax, [ebp - 0xb4]
mov dword [esp], eax
mov eax, edi
call sym._HLPFILE_FindSubFile.isra.0
test eax, eax
jne 0x408023
test byte [0x416010], 4
je 0x407d18
mov dword [esp + 0xc], str.no_tomap_section_n
mov dword [esp + 8], str.HLPFILE_GetTOMap
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407d18
mov ebx, dword [ebp - 0xb0]
sub ebx, dword [ebp - 0xb4]
mov dword [esp + 4], 0
sub ebx, 9
mov dword [esp + 8], ebx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov dword [edi + 0x38], eax
sub esp, 0xc
test eax, eax
je 0x407d18
mov esi, dword [ebp - 0xb4]
mov dword [esp + 8], ebx
shr ebx, 2
mov dword [esp], eax
lea edx, [esi + 9]
mov dword [esp + 4], edx
call sym._memcpy
mov dword [edi + 0x34], ebx
lea eax, [ebp - 0xb0]
mov edx, dword [ebp - 0xec]
mov ecx, str.Phrases
mov dword [esp + 4], eax
lea eax, [ebp - 0xb4]
mov dword [esp], eax
mov eax, edi
call sym._HLPFILE_FindSubFile.isra.0
test eax, eax
je 0x409256
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xb0]
movzx ecx, byte [eax + 0xa]
movzx ebx, byte [eax + 9]
shl ecx, 8
add ecx, ebx
movzx ecx, cx
mov dword [ebp - 0xcc], ecx
add ecx, ecx
mov dword [ebp - 0xdc], ecx
add ecx, 0x13
mov dword [ebp - 0xe4], ecx
add ecx, eax
cmp word [edi + 0x4c], 0x10
ja 0x409218
mov esi, dword [ebp - 0xcc]
mov dword [edi + 0x64], esi
cmp edx, ecx
jbe 0x409229
sub edx, eax
mov ebx, 0xd
lea eax, [edx - 0xf]
sub eax, dword [ebp - 0xdc]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xcc]
mov dword [esp + 4], 0
mov esi, dword fs:[0x18]
lea eax, [eax*4 + 4]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov ecx, dword [ebp - 0xe0]
sub esp, 0xc
mov dword [edi + 0x68], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov esi, dword [edi + 0x68]
mov dword [edi + 0x6c], eax
sub esp, 0xc
test eax, eax
je 0x40a785
test esi, esi
mov edx, 0xfffffffe
sete al
sub edx, dword [ebp - 0xdc]
mov dword [ebp - 0xd0], edx
xor edx, edx
test al, al
je 0x4081ad
jmp 0x40a785
mov esi, dword [edi + 0x68]
mov edx, eax
mov ecx, dword [ebp - 0xb4]
movzx eax, byte [ecx + ebx + 1]
movzx ecx, byte [ecx + ebx]
add ebx, 2
shl eax, 8
add eax, ecx
movzx eax, ax
add eax, dword [ebp - 0xd0]
mov dword [esi + edx*4], eax
lea eax, [edx + 1]
cmp edx, dword [ebp - 0xcc]
jne 0x4081a8
cmp word [edi + 0x4c], 0x10
mov ecx, dword [edi + 0x6c]
mov eax, dword [ebp - 0xb4]
ja 0x40981f
mov esi, dword [ebp - 0xdc]
mov dword [esp], ecx
lea eax, [eax + esi + 0xf]
mov esi, dword [ebp - 0xe0]
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call sym._memcpy
mov dword [edi + 0x5c], 1
lea eax, [ebp - 0xb0]
mov edx, dword [ebp - 0xec]
mov ecx, str.TOPIC
mov dword [esp + 4], eax
lea eax, [ebp - 0xb4]
mov dword [esp], eax
mov eax, edi
call sym._HLPFILE_FindSubFile.isra.0
test eax, eax
je 0x4091b9
mov ebx, dword [ebp - 0xb4]
movzx edx, word [edi + 0x52]
mov esi, dword [ebp - 0xb0]
lea eax, [ebx + 9]
mov dword [ebp - 0xcc], edx
xor edx, edx
mov ecx, esi
mov dword [ebp - 0xb4], eax
sub ecx, eax
lea eax, [ecx - 1]
div dword [ebp - 0xcc]
mov edx, dword [edi + 0x58]
mov dword [ebp - 0xdc], eax
add eax, 1
mov dword [ebp - 0xe4], eax
test edx, edx
je 0x409751
mov dword [edi + 0x78], eax
test eax, eax
je 0x40a724
xor ecx, ecx
lea eax, [esi - 0x44]
mov dword [ebp - 0xe8], edi
add ebx, 0x4d
mov dword [ebp - 0xd0], 0
mov edi, ecx
mov dword [ebp - 0xe0], eax
jmp 0x4082c2
mov edi, eax
cmp esi, ebx
mov ecx, dword [ebp - 0xcc]
lea eax, [ebx - 0x44]
cmovb eax, dword [ebp - 0xe0]
lea edx, [eax + ecx]
cmp esi, edx
cmovb edx, esi
add eax, 0xc
call dbg.HLPFILE_UncompressedLZ77_Size
add ebx, dword [ebp - 0xcc]
add dword [ebp - 0xd0], eax
lea eax, [edi + 1]
cmp edi, dword [ebp - 0xdc]
jne 0x4082c0
mov edi, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe4]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
lea edx, [esi + ecx*4]
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov dword [edi + 0x70], eax
sub esp, 0xc
mov edx, eax
test eax, eax
je 0x407d18
mov eax, dword [edi + 0x78]
lea ecx, [edx + eax*4]
add esi, ecx
mov dword [edi + 0x74], esi
test eax, eax
je 0x4083b5
xor ebx, ebx
mov esi, ebx
jmp 0x408363
mov edx, dword [edi + 0x70]
movzx ebx, word [edi + 0x52]
mov eax, dword [ebp - 0xb0]
imul ebx, esi
sub eax, 0x44
add ebx, dword [ebp - 0xb4]
mov dword [ebp - 0xcc], eax
lea eax, [ebx + 0x44]
cmp dword [ebp - 0xb0], eax
mov dword [edx + esi*4], ecx
cmovb ebx, dword [ebp - 0xcc]
movzx edx, word [edi + 0x52]
mov eax, dword [ebp - 0xb0]
add edx, ebx
cmp eax, edx
cmovb edx, eax
lea eax, [ebx + 0xc]
add esi, 1
call dbg.HLPFILE_UncompressLZ77
mov ecx, eax
cmp esi, dword [edi + 0x78]
jb 0x408360
lea eax, [ebp - 0xb0]
mov edx, dword [ebp - 0xec]
mov ecx, str.FONT
mov dword [esp + 4], eax
lea eax, [ebp - 0xb4]
mov dword [esp], eax
mov eax, edi
call sym._HLPFILE_FindSubFile.isra.0
test eax, eax
je 0x409996
mov eax, dword [ebp - 0xb4]
lea edx, [eax + 9]
mov dword [ebp - 0xb4], edx
movzx edx, byte [eax + 0xa]
movzx ecx, byte [eax + 9]
movzx ebx, byte [eax + 0xe]
shl edx, 8
add edx, ecx
shl ebx, 8
movzx esi, dx
movzx edx, byte [eax + 0xc]
mov dword [ebp - 0xf0], esi
mov ecx, edx
movzx edx, byte [eax + 0xb]
shl ecx, 8
lea esi, [ecx + edx]
movzx edx, byte [eax + 0xd]
mov word [ebp - 0xcc], si
movzx esi, si
add ebx, edx
movzx edx, byte [eax + 0x10]
movzx eax, byte [eax + 0xf]
mov dword [ebp - 0xf4], esi
movzx esi, bx
shl edx, 8
mov dword [ebp - 0x11c], esi
add eax, edx
movzx esi, ax
test byte [0x416010], 8
jne 0x40a4c9
mov ecx, dword [ebp - 0xf4]
mov eax, dword fs:[0x18]
imul edx, ecx, 0x44
mov dword [edi + 0x84], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov dword [edi + 0x88], eax
sub esp, 0xc
mov ecx, eax
cmp bx, 0xf
ja 0x40a47f
cmp bx, 0xb
ja 0x40a5a8
cmp word [ebp - 0xcc], 0
mov dword [edi + 0xa4], 0xa
mov dword [edi + 0xa8], 5
je 0x409a34
mov dword [ebp - 0xd0], 0
mov eax, esi
xor edx, edx
sub eax, dword [ebp - 0x11c]
div dword [ebp - 0xf0]
mov dword [ebp - 0x120], eax
lea esi, [esi]
mov eax, dword [ebp - 0xb4]
lea ebx, [esi + 1]
mov dword [ebp - 0x118], ebx
imul ebx, dword [ebp - 0xd0], 0x44
movzx edx, byte [eax + esi]
mov byte [ebp - 0xe4], dl
movzx edx, byte [eax + esi + 2]
movzx eax, byte [eax + esi + 1]
mov dword [ebp - 0xcc], ebx
mov byte [ebp - 0xe0], dl
mov edx, ebx
mov dword [ecx + ebx], eax
mov eax, dword [edi + 0x88]
mov dword [eax + ebx + 4], 0
mov eax, dword [edi + 0x88]
mov dword [eax + ebx + 8], 0
mov eax, dword [edi + 0x88]
mov dword [eax + ebx + 0xc], 0
movzx ebx, byte [ebp - 0xe4]
mov ecx, dword [edi + 0x88]
mov eax, ebx
and eax, 1
cmp al, 1
mov byte [ebp - 0xfc], al
sbb eax, eax
and eax, 0xfffffed4
add eax, 0x2bc
mov dword [ecx + edx + 0x10], eax
mov eax, dword [edi + 0x88]
mov ecx, ebx
and ebx, 2
mov byte [ebp - 0x100], bl
mov ebx, ecx
setne byte [eax + edx + 0x14]
mov eax, dword [edi + 0x88]
and ebx, 4
mov byte [ebp - 0x104], bl
setne byte [eax + edx + 0x15]
mov eax, dword [edi + 0x88]
and ecx, 8
mov byte [ebp - 0x108], cl
setne byte [eax + edx + 0x16]
movzx ecx, word [edi + 0x50]
mov eax, dword [edi + 0x88]
mov byte [eax + edx + 0x17], cl
mov eax, dword [edi + 0x88]
movzx ecx, byte [ebp - 0xe0]
cmp byte [ebp - 0xe0], 5
mov byte [eax + edx + 0x18], 0
mov eax, dword [edi + 0x88]
mov dword [ebp - 0xf8], ecx
mov byte [eax + edx + 0x19], 0
mov eax, dword [edi + 0x88]
mov byte [eax + edx + 0x1a], 0
mov eax, dword [edi + 0x88]
mov byte [eax + edx + 0x1b], 0
movzx eax, byte [0x416010]
mov byte [ebp - 0xdc], al
ja case.0x408620.0
jmp dword [ecx*4 + 0x418394]
mov eax, dword [ebp - 0xcc]
add eax, dword [edi + 0x88]
or byte [eax + 0x1b], 0x50
lea esi, [esi]
nop
mov ecx, dword [ebp - 0xb4]
movzx eax, byte [ecx + esi + 4]
movzx edx, byte [ecx + esi + 3]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ebp - 0xe8], eax
cmp dword [ebp - 0xf0], eax
ja 0x409124
test byte [ebp - 0xdc], 1
jne 0x409701
mov eax, dword [ebp - 0xcc]
add eax, dword [edi + 0x88]
mov dword [eax + 0x1c], 0x766c6548
mov byte [eax + 0x20], 0
mov eax, dword [edi + 0x88]
mov edx, dword [ebp - 0xcc]
lea ebx, [ecx + esi + 5]
mov dword [ebp - 0x10c], ebx
mov dword [eax + edx + 0x3c], 0
lea eax, [ecx + esi + 6]
movzx ebx, byte [ebx]
mov dword [ebp - 0x110], eax
lea eax, [ecx + esi + 7]
mov edx, eax
mov dword [ebp - 0x114], eax
lea eax, [ecx + esi + 6]
movzx eax, byte [eax]
shl eax, 8
mov dword [ebp - 0xe0], eax
movzx eax, byte [edx]
mov edx, dword [ebp - 0xcc]
shl eax, 0x10
or eax, dword [ebp - 0xe0]
or eax, ebx
mov ebx, dword [edi + 0x88]
mov dword [ebx + edx + 0x40], eax
test byte [ebp - 0xdc], 8
jne 0x408fe5
add dword [ebp - 0xd0], 1
add esi, 0xb
mov eax, dword [ebp - 0xd0]
cmp dword [ebp - 0xf4], eax
je 0x409a34
mov ecx, dword [edi + 0x88]
jmp 0x4084f0
mov eax, dword [ebp - 0xcc]
add eax, dword [edi + 0x88]
or byte [eax + 0x1b], 0x40
jmp 0x408640
mov eax, dword [ebp - 0xcc]
add eax, dword [edi + 0x88]
or byte [eax + 0x1b], 0x20
jmp 0x408640
mov eax, dword [ebp - 0xcc]
add eax, dword [edi + 0x88]
or byte [eax + 0x1b], 0x10
jmp 0x408640
mov eax, dword [ebp - 0xcc]
add eax, dword [edi + 0x88]
or byte [eax + 0x1b], 0x30
jmp 0x408640
test byte [0x416010], 4
je 0x407d18
mov dword [esp + 0xc], str.Wrong_system_header_n
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407d18
mov dword [esp + 0xc], str.wrong_header_n
jmp 0x407ceb
test dx, dx
jne 0x409835
mov word [edi + 0x4c], bx
mov ebx, dword [ebp - 0xb4]
mov dword [edi + 0x58], 0
mov dword [edi + 0x4e], 0x10000
lea esi, [ebx + 0x15]
mov dword [edi + 0x52], 0xff41000
add ebx, 0x19
cmp dword [ebp - 0xb0], ebx
jb 0x40884f
lea esi, [esi]
movzx eax, byte [esi + 1]
shl eax, 8
mov edx, eax
movzx eax, byte [esi]
add eax, edx
cmp ax, 0xb
ja case.0x40880f.0
movzx edx, ax
jmp dword [edx*4 + 0x4183ac]
test byte [0x416010], 4
jne 0x408f74
lea esi, [esi]
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
shl eax, 8
add eax, edx
movzx eax, ax
lea esi, [esi + eax + 4]
lea ebx, [esi + 4]
cmp ebx, dword [ebp - 0xb0]
jbe 0x4087f8
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x407fb9
mov dword [esp + 8], 1
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov dword [edi + 0xc], eax
sub esp, 0xc
jmp 0x407fb9
movzx edx, byte [esi + 4]
mov word [edi + 0x50], dx
test byte [0x416010], 8
je 0x408830
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Charset:__d_n
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x416010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x408830
test byte [0x416010], 4
je 0x408830
mov eax, ebx
call sym._wine_dbgstr_an.constprop.0_1
mov dword [esp + 0xc], str.Citation:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x416010
mov dword [esp], 2
jmp 0x4088c4
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
shl eax, 8
add eax, edx
cmp ax, 0x5a
je 0x408b25
test byte [0x416010], 4
je 0x40883d
mov dword [esp + 0xc], str.system6_n
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
shl eax, 8
add eax, edx
jmp 0x40883d
movzx eax, byte [esi + 9]
movzx edx, byte [esi + 8]
shl eax, 8
add eax, edx
cmp ax, 1
je 0x408990
test byte [0x416010], 1
jne 0x4091ef
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x30000
mov dword [esp + 8], 1
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
shl eax, 8
add eax, edx
movzx eax, ax
sub eax, 0x16
mov dword [esp + 4], eax
lea eax, [esi + 0x1a]
mov dword [esp], eax
call sym._CreateIconFromResourceEx_28
mov dword [edi + 0x94], eax
movzx eax, byte [esi + 3]
sub esp, 0x1c
movzx edx, byte [esi + 2]
shl eax, 8
add eax, edx
jmp 0x40883d
mov dword [esp], ebx
mov eax, dword [ebp - 0xd8]
call eax
mov dword [esp + 4], 0
add eax, 9
mov dword [esp + 8], eax
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
sub esp, 0xc
test eax, eax
je 0x408830
lea ecx, [eax + 8]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xcc]
mov dword [esp], ecx
mov dword [ebp - 0xd0], ecx
mov dword [esp + 4], ebx
call eax
mov edx, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [edi + 0x1c]
mov dword [edx], ecx
mov dword [edx + 4], 0
test eax, eax
je 0x40998e
lea esi, [esi]
nop
mov ecx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x408a78
add ecx, 4
mov dword [ecx], edx
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
shl eax, 8
add eax, edx
jmp 0x40883d
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
movzx ecx, byte [0x416010]
shl eax, 8
add eax, edx
cmp ax, 4
je 0x408f1e
and ecx, 4
je 0x40883d
mov dword [esp + 0xc], str.system3_n
jmp 0x40893c
mov ecx, dword [edi + 0x10]
test ecx, ecx
je 0x4095d3
test byte [0x416010], 4
je 0x408830
mov dword [esp + 0xc], str.copyright_n
jmp 0x40893c
mov eax, dword [edi + 0xc]
test eax, eax
je 0x40966a
test byte [0x416010], 4
je 0x408830
mov dword [esp + 0xc], str.title_n
jmp 0x40893c
mov eax, dword [edi + 0x8c]
mov edx, dword [edi + 0x90]
add eax, 1
imul ecx, eax, 0x68
mov dword [edi + 0x8c], eax
mov eax, dword fs:[0x18]
test edx, edx
je 0x4099f2
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapReAlloc]
mov dword [edi + 0x90], eax
sub esp, 0x10
test eax, eax
je 0x408830
imul edx, dword [edi + 0x8c], 0x68
lea ebx, [eax + edx - 0x68]
movzx edx, byte [esi + 5]
movzx eax, byte [esi + 4]
shl edx, 8
lea ecx, [edx + eax]
and ax, 1
mov word [ebp - 0xd0], cx
mov word [ebp - 0xf0], ax
jne 0x40a1c7
mov byte [ebx], 0
movzx eax, word [ebp - 0xd0]
and ax, 2
mov word [ebp - 0xf4], ax
jne 0x40a1de
mov byte [ebx + 0xa], 0
movzx eax, word [ebp - 0xd0]
lea ecx, [ebx + 0x13]
mov dword [ebp - 0xe8], ecx
and ax, 4
mov word [ebp - 0xf8], ax
je 0x4099bc
lea eax, [esi + 0x19]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xcc]
call eax
movzx eax, word [ebp - 0xd0]
mov dword [ebp - 0xdc], 0x80000000
and ax, 8
mov word [ebp - 0xfc], ax
je 0x408c32
movzx eax, byte [esi + 0x4d]
movzx edx, byte [esi + 0x4c]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xe0], 0x80000000
mov eax, dword [ebp - 0xdc]
mov dword [ebx + 0x48], eax
movzx eax, word [ebp - 0xd0]
and ax, 0x10
mov word [ebp - 0x100], ax
je 0x408c6f
movzx eax, byte [esi + 0x4f]
movzx edx, byte [esi + 0x4e]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xe0]
mov ecx, 0x80000000
mov dword [ebx + 0x4c], eax
movzx eax, word [ebp - 0xd0]
and ax, 0x20
mov word [ebp - 0x104], ax
je 0x408ca1
movzx eax, byte [esi + 0x51]
movzx edx, byte [esi + 0x50]
shl eax, 8
add eax, edx
movzx ecx, ax
movzx eax, word [ebp - 0xd0]
mov dword [ebx + 0x50], ecx
mov dword [ebp - 0xe4], 0x80000000
and ax, 0x40
mov word [ebp - 0x108], ax
je 0x408cd8
movzx eax, byte [esi + 0x53]
movzx edx, byte [esi + 0x52]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ebp - 0xe4], eax
movzx edx, word [ebp - 0xd0]
mov eax, dword [ebp - 0xe4]
and dx, 0x80
mov dword [ebx + 0x54], eax
mov eax, 5
mov word [ebp - 0x10c], dx
je 0x408d0b
movzx eax, byte [esi + 0x55]
movzx edx, byte [esi + 0x54]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ebx + 0x58], eax
mov eax, 0xffffff
mov dword [ebx + 0x5c], 0xcf0000
test word [ebp - 0xd0], 0x100
je 0x408d51
movzx eax, byte [esi + 0x59]
movzx edx, byte [esi + 0x58]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 0x56]
shl eax, 0x10
mov dword [ebp - 0x110], eax
movzx eax, byte [esi + 0x57]
shl eax, 8
add eax, edx
movzx eax, ax
add eax, dword [ebp - 0x110]
mov dword [ebx + 0x60], eax
mov eax, 0xffffff
test word [ebp - 0xd0], 0x200
je 0x408d90
movzx eax, byte [esi + 0x5d]
movzx edx, byte [esi + 0x5c]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 0x5a]
shl eax, 0x10
mov dword [ebp - 0xd0], eax
movzx eax, byte [esi + 0x5b]
shl eax, 8
add eax, edx
movzx eax, ax
add eax, dword [ebp - 0xd0]
mov dword [ebx + 0x64], eax
test byte [0x416010], 8
je 0x408830
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0x110], ecx
call sym._wine_dbgstr_an.constprop.0_1
mov dword [ebp - 0xd0], eax
lea eax, [ebx + 0xa]
call sym._wine_dbgstr_an.constprop.0_1
mov dword [ebp - 0xe8], eax
mov eax, ebx
call sym._wine_dbgstr_an.constprop.0_1
cmp word [ebp - 0x10c], 1
sbb edx, edx
mov dword [esp + 0x30], eax
and edx, 0x20
add edx, 0x53
cmp word [ebp - 0x108], 1
sbb ecx, ecx
mov dword [esp + 0x2c], edx
and ecx, 0x20
add ecx, 0x48
cmp word [ebp - 0x104], 1
mov dword [ebp - 0x108], ecx
mov ecx, dword [ebp - 0xe4]
sbb ebx, ebx
and ebx, 0x20
mov dword [esp + 0x48], ecx
mov ecx, dword [ebp - 0x110]
add ebx, 0x57
cmp word [ebp - 0x100], 1
mov dword [ebp - 0x104], ebx
mov dword [esp + 0x44], ecx
mov ecx, dword [ebp - 0xe0]
sbb eax, eax
and eax, 0x20
mov dword [esp + 0x40], ecx
mov ecx, dword [ebp - 0xdc]
add eax, 0x59
cmp word [ebp - 0xfc], 1
mov dword [ebp - 0x100], eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebp - 0xd0]
sbb ebx, ebx
and ebx, 0x20
mov dword [esp + 0x38], ecx
mov ecx, dword [ebp - 0xe8]
add ebx, 0x58
cmp word [ebp - 0xf8], 1
mov dword [ebp - 0xfc], ebx
mov dword [esp + 0x34], ecx
mov ecx, dword [ebp - 0x108]
sbb eax, eax
and eax, 0x20
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp - 0x104]
add eax, 0x43
cmp word [ebp - 0xf4], 1
mov dword [ebp - 0xf8], eax
sbb ebx, ebx
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp - 0x100]
and ebx, 0x20
add ebx, 0x4e
cmp word [ebp - 0xf0], 1
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp - 0xfc]
sbb eax, eax
mov dword [esp + 0x14], ebx
and eax, 0x20
mov dword [esp + 0xc], str.System_Window:_flags_c_c_c_c_c_c_c_c_type_s_name_s_caption_s___ld__ld_x__ld__ld__n
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp - 0xf8]
add eax, 0x54
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x416010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
shl eax, 8
add eax, edx
jmp 0x40883d
movzx eax, byte [esi + 7]
movzx edx, byte [esi + 6]
movzx ebx, byte [esi + 4]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 5]
shl eax, 0x10
shl edx, 8
add edx, ebx
movzx edx, dx
add eax, edx
and ecx, 8
mov dword [edi + 0x3c], eax
je 0x408830
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Setting_contents_start_at__08lx_n
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x416010
mov dword [esp], 3
jmp 0x4088c4
movzx eax, ax
mov dword [esp + 0xc], str.Unsupported_SystemRecord__d__n
mov dword [esp + 0x10], eax
jmp 0x4088f0
movzx eax, dx
mov dword [esp + 0xc], str.Got_system_header:_magic_04x_version_d._d_flags_04x_n
mov dword [esp + 0x1c], eax
movzx eax, bx
mov dword [esp + 0x18], eax
movzx eax, cx
mov dword [esp + 0x14], eax
movzx eax, si
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x416010
mov dword [esp], 3
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0xd0], ecx
call sym._wine_dbg_log.constprop.0_1
mov edx, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xd0]
jmp 0x407f14
movzx eax, byte [ecx + esi + 8]
mov ecx, dword [ebp - 0x114]
mov ebx, str._smallCaps
movzx ecx, byte [ecx]
shl eax, 8
add eax, ecx
mov ecx, dword [ebp - 0x110]
shl eax, 0x10
movzx edx, byte [ecx]
mov ecx, dword [ebp - 0x10c]
movzx ecx, byte [ecx]
shl edx, 8
add edx, ecx
movzx edx, dx
add eax, edx
and eax, 0xffffff
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xcc]
add eax, dword [edi + 0x88]
add eax, 0x1c
call sym._wine_dbgstr_an.constprop.0_1
mov edx, dword [ebp - 0x118]
mov ecx, eax
mov eax, dword [ebp - 0xb4]
movzx edx, byte [eax + edx]
mov eax, 0x4176f4
mov dword [esp + 4], 0x416010
mov dword [esp], 3
mov dword [esp + 0x30], edx
movzx edx, byte [ebp - 0xe4]
mov dword [esp + 0x38], ecx
mov ecx, dword [ebp - 0xf8]
test dl, 0x20
mov dword [esp + 0xc], str.Font__d_:_flags_02x_s_s_s_s_s_s_pSize_u_family_u_face_s__u__color_08x_n
cmove ebx, eax
and edx, 0x10
mov edx, str._dblUnderline
mov dword [esp + 0x34], ecx
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 0x2c], ebx
mov ebx, edx
mov edx, str._strikeOut
cmove ebx, eax
cmp byte [ebp - 0x108], 0
cmove edx, eax
cmp byte [ebp - 0x104], 0
mov dword [esp + 0x28], ebx
mov ebx, str._underline
cmove ebx, eax
cmp byte [ebp - 0x100], 0
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ebx
mov ebx, str._italic
cmove ebx, eax
cmp byte [ebp - 0xfc], 0
mov dword [esp + 0x1c], ebx
mov ebx, str._bold
cmovne eax, ebx
mov ebx, dword [ebp - 0xdc]
mov dword [esp + 0x18], eax
movzx eax, byte [ebp - 0xe4]
mov dword [esp + 0x40], ebx
mov ebx, dword [ebp - 0xe8]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xd0]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x10], eax
call sym._wine_dbg_log.constprop.0_1
jmp 0x408700
mov edx, dword [ebp - 0x120]
mov ebx, 0x1f
mov eax, dword [edi + 0x88]
cmp edx, 0x1f
cmovbe ebx, edx
imul edx, dword [ebp - 0xe8]
add edx, dword [ebp - 0x11c]
add edx, ecx
mov dword [ebp - 0xe0], ebx
mov ebx, dword [ebp - 0xcc]
mov dword [ebp - 0x10c], edx
mov edx, dword [ebp - 0xe0]
add ebx, eax
mov dword [ebp - 0x110], ebx
add ebx, 0x1c
mov dword [ebp - 0x114], ebx
cmp edx, 4
jae 0x4098b3
test edx, edx
je 0x4091a3
mov eax, dword [ebp - 0x10c]
mov ebx, dword [ebp - 0x110]
movzx eax, byte [eax]
mov byte [ebx + 0x1c], al
mov ebx, edx
and ebx, 2
jne 0x40a9ff
mov eax, dword [edi + 0x88]
mov edx, dword [ebp - 0xcc]
add eax, dword [ebp - 0xe0]
mov byte [edx + eax + 0x1c], 0
jmp 0x40868e
test byte [0x416010], 4
je 0x407d18
mov dword [esp + 0xc], str.topic0_n
mov dword [esp + 8], str.HLPFILE_Uncompress_Topic
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407d18
mov dword [esp + 0xc], str.More_than_one_icon__picking_up_first_n
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x416010
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
jmp 0x408990
mov eax, dword [ebp - 0xcc]
mov dword [edi + 0x64], eax
cmp edx, ecx
ja 0x409a1d
test byte [0x416010], 4
je 0x409256
mov dword [esp + 0xc], 0x418129
mov dword [esp + 8], str.HLPFILE_UncompressLZ77_Phrases
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
lea eax, [ebp - 0xb8]
mov esi, dword [ebp - 0xec]
mov ecx, str.PhrIndex
mov dword [esp + 4], eax
lea eax, [ebp - 0xbc]
mov dword [esp], eax
mov edx, esi
mov eax, edi
call sym._HLPFILE_FindSubFile.isra.0
test eax, eax
je 0x408216
lea eax, [ebp - 0xb0]
mov ecx, str.PhrImage
mov edx, esi
mov dword [esp + 4], eax
lea eax, [ebp - 0xb4]
mov dword [esp], eax
mov eax, edi
call sym._HLPFILE_FindSubFile.isra.0
test eax, eax
je 0x408216
mov esi, dword [ebp - 0xbc]
movzx eax, byte [esi + 0x22]
movzx edx, byte [esi + 0x21]
shl eax, 8
add eax, edx
and edx, 0xf
mov word [ebp - 0xdc], ax
movzx eax, byte [esi + 0xe]
mov word [ebp - 0xd0], dx
movzx edx, byte [esi + 0xd]
shl eax, 8
add eax, edx
mov word [ebp - 0xcc], ax
movzx eax, ax
mov dword [ebp - 0xe0], eax
mov dword [edi + 0x64], eax
mov eax, esi
test byte [0x416010], 8
jne 0x40a812
movzx edx, byte [eax + 0x18]
movzx ecx, byte [eax + 0x17]
shl edx, 8
add edx, ecx
movzx ecx, byte [eax + 0x15]
mov ebx, edx
movzx edx, byte [eax + 0x16]
shl ebx, 0x10
shl edx, 8
add edx, ecx
movzx ecx, byte [eax + 0x1b]
movzx edx, dx
add ebx, edx
movzx edx, byte [eax + 0x1c]
shl edx, 8
add ecx, edx
movzx edx, byte [eax + 0x1a]
movzx eax, byte [eax + 0x19]
shl ecx, 0x10
shl edx, 8
add eax, edx
movzx eax, ax
add eax, ecx
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], eax
cmp ebx, eax
je 0x4093ae
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xb0]
lea ecx, [eax + 9]
mov dword [ebp - 0xe8], edx
mov eax, ecx
mov dword [ebp - 0xe4], ecx
call dbg.HLPFILE_UncompressedLZ77_Size
mov dword [ebp - 0xf4], eax
cmp ebx, eax
je 0x4093ae
test byte [0x416010], 4
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xe8]
jne 0x40a9bf
mov eax, ecx
call dbg.HLPFILE_UncompressedLZ77_Size
cmp ebx, eax
cmovge eax, ebx
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xe0]
mov dword [esp + 4], 0
mov ebx, dword fs:[0x18]
lea eax, [eax*4 + 4]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov ecx, dword [ebp - 0xf4]
sub esp, 0xc
mov dword [edi + 0x68], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov edx, dword [edi + 0x68]
mov dword [edi + 0x6c], eax
sub esp, 0xc
test eax, eax
je 0x40a976
test edx, edx
je 0x40a976
add esi, 0x21
cmp word [ebp - 0xcc], 0
mov dword [edx], 0
je 0x40958a
movzx ecx, word [ebp - 0xd0]
mov eax, 1
mov dword [ebp - 0xe4], edi
shl eax, cl
mov word [ebp - 0xcc], ax
movzx eax, word [ebp - 0xdc]
mov dword [ebp - 0xdc], 0
mov ecx, eax
and eax, 0xc
and ecx, 0xe
mov word [ebp - 0xf0], ax
xor eax, eax
mov word [ebp - 0xe8], cx
mov edx, 1
jmp 0x4094a1
test dword [esi], ebx
lea edi, [eax*4]
mov eax, ebx
setne cl
test cl, cl
je 0x4094bd
add dx, word [ebp - 0xcc]
mov ebx, eax
add ebx, ebx
jne 0x409488
movzx ecx, byte [esi + 4]
mov edi, 2
add esi, 4
mov eax, 1
and ecx, 1
jmp 0x409496
test edi, edi
je 0x4095bf
test dword [esi], edi
mov eax, edi
setne cl
cmp cl, 1
sbb dx, 0xffff
cmp word [ebp - 0xe8], 0
je 0x4094f2
add eax, eax
je 0x40980b
test dword [esi], eax
setne cl
lea ebx, [edx + 2]
test cl, cl
cmovne edx, ebx
cmp word [ebp - 0xd0], 2
jbe 0x409511
add eax, eax
je 0x409877
test dword [esi], eax
setne cl
lea ebx, [edx + 4]
test cl, cl
cmovne edx, ebx
cmp word [ebp - 0xf0], 0
je 0x409530
add eax, eax
je 0x40989f
test dword [esi], eax
setne cl
lea ebx, [edx + 8]
test cl, cl
cmovne edx, ebx
cmp word [ebp - 0xd0], 4
jbe 0x40954f
add eax, eax
je 0x40988b
test dword [esi], eax
setne cl
lea ebx, [edx + 0x10]
test cl, cl
cmovne edx, ebx
mov ecx, dword [ebp - 0xe4]
mov edi, dword [ebp - 0xdc]
movzx edx, dx
mov ebx, dword [ecx + 0x68]
lea ecx, [edi*4]
add edi, 1
mov dword [ebp - 0xdc], edi
add edx, dword [ebx + ecx]
mov dword [ebx + ecx + 4], edx
cmp dword [ebp - 0xe0], edi
jne 0x40947c
mov edi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebp - 0xf4]
add eax, 9
cmp dword [ebp - 0xf8], edx
je 0x40a7ce
mov edx, dword [ebp - 0xb0]
call dbg.HLPFILE_UncompressLZ77
mov dword [edi + 0x60], 1
jmp 0x408216
movzx ecx, byte [esi + 4]
mov eax, 1
add esi, 4
and ecx, 1
jmp 0x4094cc
mov dword [esp], ebx
mov eax, dword [ebp - 0xd8]
call eax
mov dword [esp + 4], 0
add eax, 1
mov dword [esp + 8], eax
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov dword [edi + 0x10], eax
sub esp, 0xc
test eax, eax
je 0x407d18
mov dword [esp], eax
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xcc]
mov dword [esp + 4], ebx
call eax
test byte [0x416010], 8
mov edx, dword [ebp - 0xd0]
je 0x408830
mov eax, edx
call sym._wine_dbgstr_an.constprop.0_1
mov dword [esp + 0xc], str.Copyright:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x416010
mov dword [esp], 3
jmp 0x4088c4
mov dword [esp], ebx
mov eax, dword [ebp - 0xd8]
call eax
mov dword [esp + 4], 0
add eax, 1
mov dword [esp + 8], eax
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov dword [edi + 0xc], eax
sub esp, 0xc
test eax, eax
je 0x407d18
mov dword [esp], eax
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xcc]
mov dword [esp + 4], ebx
call eax
test byte [0x416010], 8
mov edx, dword [ebp - 0xd0]
je 0x408830
mov eax, edx
call sym._wine_dbgstr_an.constprop.0_1
mov dword [esp + 0xc], str.Title:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x416010
mov dword [esp], 3
jmp 0x4088c4
mov eax, dword [ebp - 0xf0]
mov dword [esp + 0xc], str.Too_high_face_ref___u__u__n
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xe8]
mov dword [esp + 4], 0x416010
mov dword [esp + 0x10], eax
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
movzx eax, byte [0x416010]
mov ecx, dword [ebp - 0xb4]
mov byte [ebp - 0xdc], al
jmp 0x408677
movzx eax, word [edi + 0x54]
mov esi, dword [ebp - 0xe4]
mov dword [ebp - 0xcc], ecx
mov edx, dword fs:[0x18]
add eax, 4
mov dword [edi + 0x78], esi
imul eax, esi
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov dword [edi + 0x70], eax
sub esp, 0xc
test eax, eax
je 0x407d18
mov edx, dword [edi + 0x78]
mov ecx, dword [ebp - 0xcc]
lea esi, [eax + edx*4]
add ecx, esi
mov dword [edi + 0x74], ecx
test edx, edx
je 0x4083b5
mov dword [ebp - 0xcc], esi
xor ebx, ebx
jmp 0x4097c3
mov eax, dword [edi + 0x70]
movzx edx, word [edi + 0x54]
imul edx, ebx
add edx, dword [ebp - 0xcc]
mov dword [eax + ebx*4], edx
mov eax, dword [edi + 0x70]
mov esi, dword [ebp - 0xb4]
movzx ecx, word [edi + 0x54]
mov edx, dword [eax + ebx*4]
movzx eax, word [edi + 0x52]
mov dword [esp + 8], ecx
imul eax, ebx
mov dword [esp], edx
add ebx, 1
lea eax, [esi + eax + 0xc]
mov dword [esp + 4], eax
call sym._memcpy
cmp ebx, dword [edi + 0x78]
jb 0x4097c0
jmp 0x4083b5
movzx ecx, byte [esi + 4]
mov eax, 1
add esi, 4
and ecx, 1
jmp 0x4094ea
mov edx, dword [ebp - 0xb0]
add eax, dword [ebp - 0xe4]
call dbg.HLPFILE_UncompressLZ77
jmp 0x40820f
cmp dx, 4
je 0x40a70f
mov eax, 0x800
mov dword [edi + 0x58], 1
mov word [edi + 0x52], ax
mov word [edi + 0x4c], bx
mov ebx, dword [ebp - 0xb4]
mov eax, 0x4000
mov word [edi + 0x4e], dx
mov edx, 1
mov word [edi + 0x54], ax
lea esi, [ebx + 0x15]
mov word [edi + 0x50], dx
jmp 0x4087e9
movzx ecx, byte [esi + 4]
mov eax, 1
add esi, 4
and ecx, 1
jmp 0x409509
movzx ecx, byte [esi + 4]
mov eax, 1
add esi, 4
and ecx, 1
jmp 0x409547
movzx ecx, byte [esi + 4]
mov eax, 1
add esi, 4
and ecx, 1
jmp 0x409528
mov edx, dword [ebp - 0x10c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x110]
mov dword [edx + 0x1c], eax
mov ebx, dword [ebp - 0xe0]
mov edx, dword [ebp - 0x10c]
mov eax, dword [edx + ebx - 4]
mov edx, dword [ebp - 0x114]
mov dword [edx + ebx - 4], eax
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x114]
add edx, 0x20
and edx, 0xfffffffc
sub eax, edx
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x10c]
sub edx, eax
add eax, ebx
and eax, 0xfffffffc
cmp eax, 4
jb 0x40919d
mov dword [ebp - 0x114], ecx
and eax, 0xfffffffc
mov dword [ebp - 0x10c], eax
xor eax, eax
mov ebx, dword [edx + eax]
mov ecx, dword [ebp - 0x110]
mov dword [ecx + eax], ebx
add eax, 4
cmp eax, dword [ebp - 0x10c]
jb 0x40991f
mov ecx, dword [ebp - 0x114]
jmp 0x40919d
test byte [ebp - 0xdc], 1
je 0x408640
mov eax, dword [ebp - 0xf8]
mov dword [esp + 0xc], str.Unknown_family__u_n
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x416010
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
movzx eax, byte [0x416010]
mov byte [ebp - 0xdc], al
jmp 0x408640
lea ecx, [edi + 0x1c]
jmp 0x408a84
test byte [0x416010], 4
jne 0x40a733
mov dword [edi + 0x84], 0
mov dword [edi + 0x88], 0
jmp 0x407d18
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0xe8]
mov dword [ebp - 0xdc], ebx
lea ecx, [eax + 0x32]
mov ebx, ecx
movzx ecx, byte [eax]
test cl, cl
je 0x4099e4
add eax, 1
add edx, 1
mov byte [edx - 1], cl
cmp eax, ebx
jne 0x4099d0
mov byte [edx], 0
mov ebx, dword [ebp - 0xdc]
jmp 0x408bfe
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov dword [edi + 0x90], eax
sub esp, 0xc
jmp 0x408b73
mov eax, ecx
mov ebx, 0x11
call dbg.HLPFILE_UncompressedLZ77_Size
mov dword [ebp - 0xe0], eax
jmp 0x408116
mov eax, dword fs:[0x18]
mov dword [ebp - 0xd0], edi
movzx edx, word [edi + 0x4c]
mov esi, 0xffffffff
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xdc], 0xc
mov dword [ebp - 0x100], eax
jmp 0x409bd6
mov eax, dword [ebp - 0xd0]
xor edx, edx
movzx ebx, word [eax + 0x54]
mov eax, ecx
div ebx
mov dword [ebp - 0xcc], eax
mov ebx, edx
cmp eax, esi
je 0x409a9a
cmp esi, 0xffffffff
je 0x409a9a
mov dword [ebp - 0xdc], ecx
sub ebx, 0xc
test byte [0x416010], 8
jne 0x409c09
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xcc]
cmp dword [eax + 0x78], ecx
jbe 0x40a570
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xcc]
mov eax, dword [ecx + 0x70]
mov ecx, dword [ecx + 0x74]
add ebx, dword [eax + edx*4]
lea eax, [ebx + 0x15]
cmp ecx, eax
jbe 0x40a5f2
movzx edx, byte [ebx + 3]
movzx edi, byte [ebx + 2]
movzx eax, byte [ebx + 1]
shl edx, 8
add edi, edx
shl eax, 8
mov edx, edi
movzx edi, byte [ebx]
shl edx, 0x10
add edi, eax
movzx edi, di
lea eax, [edx + edi]
mov dword [ebp - 0xe0], eax
add eax, ebx
cmp ecx, eax
cmovae ecx, eax
cmp esi, dword [ebp - 0xcc]
mov eax, 0
cmove eax, dword [ebp - 0xe4]
mov dword [ebp - 0xe4], eax
movzx eax, byte [ebx + 0x14]
cmp al, 2
je 0x409c98
jbe 0x409c50
cmp al, 0x20
je 0x409b43
cmp al, 0x23
jne 0x409c58
mov esi, dword [ebp - 0xd0]
mov edi, dword [esi + 0x14]
test edi, edi
je 0x40a094
lea edx, [ebx + 0x19]
cmp ecx, edx
jb 0x40a033
cmp al, 0x20
je 0x40a06f
cmp al, 0x23
sete al
sub ecx, ebx
sub ecx, 0xf
test al, al
jne 0x40a06f
add dword [ebp - 0xe4], ecx
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [ebx + 0xe]
movzx edx, word [eax + 0x4c]
movzx eax, byte [ebx + 0xf]
shl eax, 8
add eax, ecx
movzx ecx, byte [ebx + 0xd]
movzx ebx, byte [ebx + 0xc]
shl eax, 0x10
shl ecx, 8
add ecx, ebx
movzx ecx, cx
add eax, ecx
mov ebx, eax
cmp dx, 0x10
ja 0x409bca
add ebx, dword [ebp - 0xdc]
test eax, eax
je 0x40a1f8
cmp ebx, 0xffffffff
je 0x40a1f8
mov dword [ebp - 0xdc], ebx
mov esi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xdc]
lea ecx, [eax - 0xc]
cmp dx, 0x10
jbe 0x409a70
mov eax, ecx
and ecx, 0x3fff
shr eax, 0xe
mov ebx, ecx
mov dword [ebp - 0xcc], eax
test byte [0x416010], 8
je 0x409aa7
mov eax, dword [ebp - 0xcc]
mov dword [esp + 0x18], ebx
mov dword [esp + 0xc], str.ref_08lx_____u__u__n
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xdc]
mov dword [esp + 8], str.HLPFILE_DoReadHlpFile
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x416010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x409aa7
cmp al, 1
je 0x409b43
test byte [0x416010], 2
je 0x409b7f
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.buf_0x14____x_n
mov dword [esp + 8], str.HLPFILE_DoReadHlpFile
mov dword [esp + 4], 0x416010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x409b7f
mov eax, dword [ebp - 0xd0]
cmp word [eax + 0x4c], 0x10
mov eax, dword [ebp - 0xcc]
ja 0x409d31
mov esi, dword [ebp - 0xdc]
lea eax, [eax + eax*2]
lea eax, [esi + eax*4]
mov dword [ebp - 0xf0], eax
movzx eax, byte [ebx + 0x13]
movzx edx, byte [ebx + 0x12]
movzx esi, byte [ebx + 0x10]
shl eax, 8
add edx, eax
movzx eax, byte [ebx + 0x11]
shl edx, 0x10
shl eax, 8
add eax, esi
movzx eax, ax
add eax, edx
mov dword [ebp - 0xf4], eax
add eax, ebx
mov dword [ebp - 0xf8], eax
cmp ecx, eax
jae 0x409d45
mov edi, dword [ebp - 0xd0]
test byte [0x416010], 4
je 0x407d18
mov dword [esp + 0xc], str.page2_n
mov dword [esp + 8], str.HLPFILE_AddPage
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407d18
shl eax, 0xf
add eax, dword [ebp - 0xe4]
mov dword [ebp - 0xf0], eax
jmp 0x409cc1
movzx eax, byte [ebx + 7]
movzx edx, byte [ebx + 6]
mov dword [ebp - 0xfc], ecx
movzx esi, byte [ebx + 4]
shl eax, 8
add edx, eax
movzx eax, byte [ebx + 5]
mov dword [esp + 4], 0
shl edx, 0x10
shl eax, 8
add eax, esi
mov esi, dword [ebp - 0x100]
movzx eax, ax
add eax, edx
mov dword [ebp - 0xe8], eax
add eax, 0x2d
mov dword [esp + 8], eax
mov eax, dword [esi + 0x30]
mov esi, dword [ebp - 0xd4]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
mov edi, eax
test eax, eax
je 0x40aa26
lea esi, [eax + 0x2c]
mov edx, dword [ebp - 0xe0]
sub edx, dword [ebp - 0xf4]
mov dword [eax], esi
cmp dword [ebp - 0xe8], edx
jbe 0x40a12d
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x5c]
test ecx, ecx
mov ecx, dword [ebp - 0xfc]
jne 0x40a190
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x60]
test eax, eax
jne 0x40a511
test byte [0x416010], 1
jne 0x40a686
mov eax, dword [ebp - 0xf8]
mov dword [esp + 8], edx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [ebp - 0xe0], edx
call sym._memcpy
mov edx, dword [ebp - 0xe0]
mov esi, dword [edi]
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xd0]
mov byte [esi + eax], 0
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x40a14e
mov eax, dword [ecx + 0x18]
mov dword [eax + 0x18], edi
mov eax, dword [ecx + 0x18]
mov dword [ecx + 0x18], edi
mov dword [edi + 0x1c], eax
mov ecx, dword [ebp - 0xd0]
mov dword [edi + 0x18], 0
mov dword [edi + 4], 0
mov dword [edi + 0x28], ecx
mov dword [edi + 8], 0
movzx eax, byte [ebx + 0x24]
movzx edx, byte [ebx + 0x23]
movzx ecx, byte [ebx + 0x21]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0x22]
shl eax, 0x10
shl edx, 8
add edx, ecx
movzx edx, dx
add eax, edx
mov dword [edi + 0xc], eax
mov eax, dword [ebp - 0xf0]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0xdc]
mov dword [edi + 0x14], eax
movzx eax, byte [ebx + 0x1c]
movzx esi, byte [ebx + 0x1b]
movzx edx, byte [ebx + 0x19]
shl eax, 8
add esi, eax
mov eax, esi
movzx esi, byte [ebx + 0x1a]
shl eax, 0x10
shl esi, 8
add esi, edx
movzx esi, si
add esi, eax
mov dword [edi + 0x20], esi
movzx edx, byte [ebx + 0x20]
movzx eax, byte [ebx + 0x1f]
movzx ecx, byte [ebx + 0x1d]
shl edx, 8
add edx, eax
movzx eax, byte [ebx + 0x1e]
shl edx, 0x10
shl eax, 8
add eax, ecx
mov ecx, dword [ebp - 0xd0]
movzx eax, ax
add edx, eax
cmp word [ecx + 0x4c], 0x10
mov dword [edi + 0x24], edx
ja 0x409f23
mov eax, 0xffffffff
cmp esi, 0xffff
je 0x409f0d
mov eax, dword [ecx + 0x38]
mov eax, dword [eax + esi*4]
mov dword [edi + 0x20], eax
cmp edx, 0xffff
jne 0x40a17c
mov dword [edi + 0x24], 0xffffffff
mov edx, dword [edi]
test byte [0x416010], 8
jne 0x40a0cc
mov dword [esp], edx
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], edx
call eax
mov edx, dword [ebp - 0xe0]
lea esi, [edx + eax + 1]
mov eax, dword [ebp - 0xe8]
add eax, edx
cmp esi, eax
jae 0x409b7f
mov eax, dword fs:[0x18]
mov dword [ebp - 0xf4], ebx
mov dword [ebp - 0xf0], eax
jmp 0x409fde
lea eax, [ebx + 9]
mov dword [esp + 4], 0
add ebx, 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov ecx, eax
sub esp, 0xc
lea eax, [eax + 8]
mov dword [ecx], eax
mov dword [esp + 4], esi
add esi, ebx
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [ebp - 0xe0], ecx
call sym._memcpy
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe0]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0xe8]
add eax, dword [edi]
mov dword [edi + 4], ecx
cmp esi, eax
jae 0x40a028
mov dword [esp], esi
mov eax, dword [ebp - 0xd8]
call eax
mov ebx, eax
test byte [0x416010], 8
je 0x409f78
mov eax, esi
call sym._wine_dbgstr_an.constprop.0_1
mov dword [esp + 0xc], str.macro:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.HLPFILE_AddPage
mov dword [esp + 4], 0x416010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x409f78
mov ebx, dword [ebp - 0xf4]
jmp 0x409b7f
mov edi, dword [ebp - 0xd0]
test byte [0x416010], 4
je 0x407d18
mov dword [esp + 0xc], str.header_too_small_n
mov dword [esp + 8], str.HLPFILE_SkipParagraph
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407d18
test byte [ebx + 0x15], 1
je 0x40a170
movzx ecx, byte [ebx + 0x19]
test cl, 1
je 0x40a166
movzx ecx, word [edx]
shr cx, 1
movzx ecx, cx
jmp 0x409b79
mov edi, esi
test byte [0x416010], 4
je 0x407d18
mov dword [esp + 0xc], str.no_page_n
mov dword [esp + 8], str.HLPFILE_SkipParagraph
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407d18
mov esi, dword [edi + 0x24]
mov ecx, dword [edi + 0x20]
mov eax, edx
mov dword [ebp - 0xe0], ecx
call sym._wine_dbgstr_an.constprop.0_1
mov dword [esp + 0x20], esi
mov ecx, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xf0]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
mov eax, dword [edi + 0xc]
mov dword [esp + 0xc], str.Added_page__d_:_title_s__08lx_____08x_____08lx_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.HLPFILE_AddPage
mov dword [esp + 4], 0x416010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov edx, dword [edi]
jmp 0x409f32
mov eax, dword [ebp - 0xe8]
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xf8]
mov dword [esp + 4], eax
call sym._memcpy
jmp 0x409e22
mov eax, dword [ebp - 0xd0]
mov dword [edi + 0x1c], 0
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], edi
jmp 0x409e4c
shr cl, 1
movzx ecx, cl
jmp 0x40a08c
movzx ecx, byte [ebx + 0x17]
lea edx, [ebx + 0x17]
jmp 0x40a07d
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + edx*4]
mov dword [edi + 0x24], eax
jmp 0x409f23
lea edx, [eax + 0x6c]
add eax, 0x68
mov dword [esp + 4], esi
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xe8]
mov dword [esp], ecx
mov ecx, dword [ebp - 0xf8]
add eax, esi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xe0]
call sym._HLPFILE_Uncompress2.isra.0
mov esi, dword [edi]
jmp 0x409e22
lea eax, [esi + 6]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xcc]
call eax
jmp 0x408baf
lea eax, [esi + 0x10]
mov dword [esp + 4], eax
lea eax, [ebx + 0xa]
mov dword [esp], eax
mov eax, dword [ebp - 0xcc]
call eax
jmp 0x408bcb
mov edi, dword [ebp - 0xd0]
lea eax, [ebp - 0xb0]
mov edx, dword [ebp - 0xec]
mov ecx, str.KWBTREE
mov dword [esp + 4], eax
lea eax, [ebp - 0xb4]
mov dword [esp], eax
mov eax, edi
call sym._HLPFILE_FindSubFile.isra.0
test eax, eax
je 0x40a2dc
mov esi, dword [ebp - 0xb0]
sub esi, dword [ebp - 0xb4]
mov dword [esp + 4], 0
mov dword [esp + 8], esi
mov ebx, dword fs:[0x18]
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov dword [edi + 0x24], eax
sub esp, 0xc
test eax, eax
je 0x40a2dc
mov edx, dword [ebp - 0xb4]
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._memcpy
lea eax, [ebp - 0xb0]
mov edx, dword [ebp - 0xec]
mov ecx, str.KWDATA
mov dword [esp + 4], eax
lea eax, [ebp - 0xb4]
mov dword [esp], eax
mov eax, edi
call sym._HLPFILE_FindSubFile.isra.0
test eax, eax
jne 0x40a6bd
test byte [0x416010], 2
jne 0x40a94d
mov edx, dword [edi + 0x24]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
lea eax, [ebp - 0xb0]
mov edx, dword [ebp - 0xec]
mov ecx, str.CTXOMAP
mov dword [esp + 4], eax
lea eax, [ebp - 0xb4]
mov dword [esp], eax
mov eax, edi
call sym._HLPFILE_FindSubFile.isra.0
test eax, eax
jne 0x40a380
test byte [0x416010], 4
jne 0x40a75c
cmp word [edi + 0x4c], 0x10
jbe 0x407bf3
lea eax, [ebp - 0xb0]
mov edx, dword [ebp - 0xec]
mov ecx, str.CONTEXT
mov dword [esp + 4], eax
lea eax, [ebp - 0xb4]
mov dword [esp], eax
mov eax, edi
call sym._HLPFILE_FindSubFile.isra.0
test eax, eax
jne 0x40a62e
test byte [0x416010], 4
je 0x407d18
mov dword [esp + 0xc], str.context0_n
mov dword [esp + 8], str.HLPFILE_GetContext
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407d18
mov eax, dword [ebp - 0xb4]
movzx esi, byte [eax + 0xa]
movzx eax, byte [eax + 9]
mov dword [esp + 4], 0
shl esi, 8
add esi, eax
movzx eax, si
mov ecx, eax
lea edx, [ecx*8]
mov dword [ebp - 0xd0], ecx
mov dword [esp + 8], edx
mov edx, dword [ebp - 0xd4]
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edx
mov dword [edi + 0x30], eax
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x40a312
mov eax, dword [ebp - 0xd0]
mov dword [edi + 0x2c], eax
test si, si
je 0x40a312
mov edx, dword [ebp - 0xb4]
xor eax, eax
mov dword [ebp - 0xcc], 0
lea ecx, [edx + 0xb]
jmp 0x40a404
mov ebx, dword [edi + 0x30]
movzx edx, byte [ecx + eax + 3]
movzx esi, byte [ecx + eax + 2]
add dword [ebp - 0xcc], 1
shl edx, 8
add edx, esi
movzx esi, byte [ecx + eax + 1]
movzx ecx, byte [ecx + eax]
shl edx, 0x10
shl esi, 8
add ecx, esi
movzx ecx, cx
add edx, ecx
mov dword [ebx + eax], edx
mov ebx, dword [ebp - 0xb4]
movzx edx, byte [ebx + eax + 0x12]
movzx esi, byte [ebx + eax + 0x11]
lea ecx, [ebx + 0xb]
shl edx, 8
add edx, esi
movzx esi, byte [ebx + eax + 0x10]
movzx ebx, byte [ebx + eax + 0xf]
shl edx, 0x10
shl esi, 8
add ebx, esi
mov esi, dword [edi + 0x30]
movzx ebx, bx
add edx, ebx
mov dword [esi + eax + 4], edx
mov esi, dword [ebp - 0xcc]
add eax, 8
cmp dword [ebp - 0xd0], esi
jne 0x40a401
jmp 0x40a312
mov dword [edi + 0xa4], 1
mov dword [edi + 0xa8], 0
test byte [0x416010], 1
je 0x407d18
mov dword [esp + 0xc], str.mvb_font:_not_implemented_n
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 4], 0x416010
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
jmp 0x407d18
mov eax, dword [ebp - 0xf4]
mov dword [esp + 0x1c], esi
mov dword [esp + 0xc], str.Got_NumFacenames_u__u_NumDesc_u__u_n
mov dword [esp + 0x18], eax
movzx eax, bx
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xf0]
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x416010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x40845a
mov dword [esp + 4], ecx
mov eax, dword [ebp - 0xe8]
mov edx, esi
mov ecx, dword [ebp - 0xf8]
add eax, esi
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [ebp - 0xd0]
call dbg.HLPFILE_Uncompress3
mov esi, dword [edi]
jmp 0x409e22
mov eax, ebx
call sym._wine_dbgstr_an.constprop.0_1
mov dword [esp + 0xc], str.Title:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x416010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x407fb9
mov edi, eax
test byte [0x416010], 4
je 0x40a1fe
mov dword [esp + 0xc], str.maplen_n
mov dword [esp + 8], str.HLPFILE_DoReadHlpFile
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x40a1fe
mov dword [edi + 0xa4], 1
mov dword [edi + 0xa8], 0
test byte [0x416010], 1
je 0x407d18
mov dword [esp + 0xc], str.new_font:_not_implemented_n
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 4], 0x416010
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
jmp 0x407d18
mov edi, dword [ebp - 0xd0]
test byte [0x416010], 4
je 0x40a1fe
mov dword [esp + 0xc], str.extra_n
mov dword [esp + 8], str.HLPFILE_DoReadHlpFile
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x40a1fe
mov ebx, dword [ebp - 0xb0]
sub ebx, dword [ebp - 0xb4]
mov dword [esp + 4], 0
mov dword [esp + 8], ebx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov dword [edi + 0x20], eax
sub esp, 0xc
test eax, eax
je 0x407d18
mov edx, dword [ebp - 0xb4]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._memcpy
jmp 0x407bf3
mov dword [esp + 0xc], str.Text_size_is_too_long__splitting_n
mov dword [esp + 8], str.HLPFILE_AddPage
mov dword [esp + 4], 0x416010
mov dword [esp], 0
mov dword [ebp - 0xe0], edx
call sym._wine_dbg_log.constprop.0_1
mov esi, dword [edi]
mov edx, dword [ebp - 0xe0]
jmp 0x409df8
mov esi, dword [ebp - 0xb0]
sub esi, dword [ebp - 0xb4]
mov dword [esp + 4], 0
mov dword [esp + 8], esi
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd4]
call eax
mov dword [edi + 0x28], eax
sub esp, 0xc
test eax, eax
je 0x40aa31
mov edx, dword [ebp - 0xb4]
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._memcpy
jmp 0x40a2dc
mov eax, 0x1000
mov dword [edi + 0x58], 1
mov word [edi + 0x52], ax
jmp 0x40984f
mov dword [ebp - 0xd0], 0
jmp 0x408301
mov dword [esp + 0xc], str.no_subfile_FONT_n
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x4099a3
mov dword [esp + 0xc], str.no_map_section_n
mov dword [esp + 8], str.HLPFILE_GetMap
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x40a312
mov dword [esp + 8], esi
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esp + 4], 0
mov ebx, dword fs:[0x18]
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov eax, dword [edi + 0x6c]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
jmp 0x409256
mov esi, dword [ebp - 0xf8]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], esi
call sym._memcpy
jmp 0x4095b3
mov dword [esp + 0xc], str.filesize2_n
mov dword [esp + 8], str.HLPFILE_ReadFileToBuffer
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407e7d
movzx eax, byte [esi + 0x24]
movzx edx, byte [esi + 0x23]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [esp + 0x2c], eax
movzx eax, byte [esi + 0x22]
movzx edx, byte [esi + 0x21]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [esp + 0x28], eax
movzx ecx, byte [esi + 0x20]
movzx eax, byte [esi + 0x1f]
movzx edx, byte [esi + 0x1d]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 0x1e]
shl ecx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add eax, ecx
mov dword [esp + 0x24], eax
movzx ecx, byte [esi + 0x1c]
movzx eax, byte [esi + 0x1b]
movzx edx, byte [esi + 0x19]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 0x1a]
shl ecx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add eax, ecx
mov dword [esp + 0x20], eax
movzx ecx, byte [esi + 0x18]
movzx eax, byte [esi + 0x17]
movzx edx, byte [esi + 0x15]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 0x16]
shl ecx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add eax, ecx
mov dword [esp + 0x1c], eax
movzx ecx, byte [esi + 0x14]
movzx eax, byte [esi + 0x13]
movzx edx, byte [esi + 0x11]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 0x12]
shl ecx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add eax, ecx
mov dword [esp + 0x18], eax
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0xf]
movzx edx, byte [esi + 0xd]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 0xe]
shl ecx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add eax, ecx
mov dword [esp + 0x14], eax
movzx ecx, byte [esi + 0xc]
movzx eax, byte [esi + 0xb]
movzx edx, byte [esi + 9]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 0xa]
mov dword [esp + 0xc], str.Index:_Magic_08x_entries_u_CpsdSize_u_PhrImgSize_u_n_tPhrImgCprsdSize_u_0_u_bc_x_ukn_x_n
shl ecx, 0x10
mov dword [esp + 8], str.HLPFILE_Uncompress_Phrases40
shl eax, 8
mov dword [esp + 4], 0x416010
add eax, edx
mov dword [esp], 3
movzx eax, ax
add eax, ecx
mov dword [esp + 0x10], eax
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebp - 0xbc]
jmp 0x409301
mov dword [esp + 0xc], str.corrupted_help_file:_kwbtree_present_but_kwdata_absent_n
mov dword [esp + 8], str.HLPFILE_GetKeywords
mov dword [esp + 4], 0x416010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x40a2b5
mov dword [esp + 8], edx
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esp + 4], 0
mov ebx, dword fs:[0x18]
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov eax, dword [edi + 0x6c]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
jmp 0x408216
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.size_mismatch__u__u_n
mov dword [esp + 8], str.HLPFILE_Uncompress_Phrases40
mov dword [esp + 4], 0x416010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xb0]
lea ecx, [eax + 9]
jmp 0x40939c
mov edx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x10c]
mov ebx, dword [ebp - 0x114]
movzx eax, word [eax + edx - 2]
mov word [ebx + edx - 2], ax
mov eax, dword [edi + 0x88]
jmp 0x4091a3
mov edi, dword [ebp - 0xd0]
jmp 0x407d18
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x40a2dc