Function at 0x4075b0
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
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x15c
mov edi, dword [0x41a008]
mov ebx, dword [ebp + 8]
test edi, edi
je 0x407600
mov esi, dword [sym.imp.ucrtbase.dll_strcmp]
jmp 0x4075df
mov edi, dword [edi + 0x44]
test edi, edi
je 0x407600
mov eax, dword [edi + 8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call esi
test eax, eax
jne 0x4075d8
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 - 0xd4], 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 - 0xd0], eax
call eax
sub esp, 0xc
mov edi, eax
test eax, eax
je 0x407731
mov esi, dword [0x41a008]
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 - 0xd8], eax
call eax
mov dword [0x41a008], edi
test esi, esi
je 0x40768c
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 0x407724
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
jne 0x407740
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 0x40776f
test byte [0x415010], 4
jne 0x407838
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll__lclose]
sub esp, 4
sub dword [edi + 0x48], 1
jne 0x407731
mov eax, edi
call sym._HLPFILE_FreeHlpFile.part.0
xor edi, edi
jmp 0x4075f3
test byte [0x415010], 4
je 0x407718
mov dword [esp + 0xc], str.header_n
mov dword [esp + 8], str.HLPFILE_ReadFileToBuffer
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407718
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 - 0xd0]
call eax
mov dword [edi], eax
sub esp, 0xc
test eax, eax
je 0x407718
mov edx, dword [ebp - 0xb0]
mov dword [eax], edx
mov edx, dword [ebp - 0xac]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0xa8]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0xa4]
mov dword [eax + 0xc], edx
mov eax, dword [edi + 4]
sub eax, 0x10
mov dword [esp + 8], eax
mov eax, dword [edi]
mov dword [esp], ebx
add eax, 0x10
mov dword [esp + 4], eax
call esi
mov edx, eax
mov eax, dword [edi + 4]
sub esp, 0xc
sub eax, 0x10
cmp edx, eax
je 0x407845
test byte [0x415010], 4
je 0x407718
mov dword [esp + 0xc], str.filesize1_n
jmp 0x407751
mov dword [esp + 0xc], str.wrong_header_n
jmp 0x407751
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 0x407870
test byte [0x415010], 4
jne 0x40a2fa
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov byte [edx + eax], 0
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll__lclose]
lea eax, [ebp - 0xb0]
lea ecx, [ebp - 0xb4]
mov dword [edi + 0xc], 0
sub esp, 4
mov edx, str.SYSTEM
mov dword [esp], eax
mov eax, edi
call dbg.HLPFILE_FindSubFile
test eax, eax
je 0x407724
mov ebx, dword [ebp - 0xb4]
movzx eax, byte [ebx + 0xa]
movzx edx, byte [ebx + 9]
movzx esi, byte [ebx + 0xc]
shl eax, 8
lea ecx, [eax + edx]
movzx eax, byte [ebx + 0xb]
shl esi, 8
add esi, eax
movzx eax, byte [ebx + 0xe]
shl eax, 8
mov edx, eax
movzx eax, byte [ebx + 0xd]
add eax, edx
movzx edx, byte [ebx + 0x13]
mov word [ebp - 0xcc], ax
movzx eax, byte [ebx + 0x14]
shl eax, 8
add edx, eax
test byte [0x415010], 8
jne 0x408922
cmp cx, 0x36c
jne 0x40883e
cmp word [ebp - 0xcc], 1
jne 0x40883e
mov ecx, edx
movzx eax, si
shl ecx, 0x10
or eax, ecx
cmp si, 0x10
jbe 0x408874
test dx, dx
jne 0x4091c9
xor esi, esi
mov dword [edi + 0x4c], eax
mov dword [edi + 0x58], esi
mov dword [edi + 0x50], 0x10000001
mov word [edi + 0x54], 0xff4
mov eax, dword [ebp - 0xb0]
lea esi, [ebx + 0x15]
add ebx, 0x19
mov ecx, dword fs:[0x18]
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xe0], ecx
cmp eax, ebx
jb 0x4079bf
nop
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
shl edx, 8
add eax, edx
cmp ax, 0xb
ja case.0x407985.0
movzx edx, ax
jmp dword [edx*4 + 0x4173a4]
test byte [0x415010], 4
jne 0x40882a
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 dword [ebp - 0xcc], ebx
jae 0x407970
mov ebx, dword [edi + 0xc]
test ebx, ebx
je 0x409ed9
cmp word [edi + 0x4c], 0x10
ja 0x407d05
lea eax, [ebp - 0xb0]
lea ecx, [ebp - 0xb4]
mov edx, str.TOMAP
mov dword [esp], eax
mov eax, edi
call dbg.HLPFILE_FindSubFile
test eax, eax
jne 0x407caa
test byte [0x415010], 4
je 0x407724
mov dword [esp + 0xc], str.no_tomap_section_n
mov dword [esp + 8], str.HLPFILE_GetTOMap
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407724
movzx edx, byte [esi + 4]
mov word [edi + 0x50], dx
test byte [0x415010], 8
je 0x4079a0
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Charset:__d_n
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x415010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x4079a0
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
shl eax, 8
add eax, edx
cmp ax, 0x5a
je 0x40841d
test byte [0x415010], 4
je 0x4079ad
mov dword [esp + 0xc], str.system6_n
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x415010
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 0x4079ad
movzx eax, byte [esi + 9]
movzx edx, byte [esi + 8]
shl eax, 8
add eax, edx
cmp ax, 1
je 0x407aec
test byte [0x415010], 1
jne 0x408f3e
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 0x4079ad
mov dword [esp], ebx
mov eax, dword [ebp - 0xd4]
call eax
mov dword [esp + 4], 0
add eax, 9
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd0]
call eax
sub esp, 0xc
test eax, eax
je 0x4079a0
lea ecx, [eax + 8]
mov dword [ebp - 0xe4], eax
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xdc], ecx
call eax
mov edx, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xdc]
mov dword [edx + 4], 0
mov dword [edx], ecx
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x40a096
lea esi, [esi]
nop
mov ecx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x407bd0
add ecx, 4
mov dword [ecx], edx
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
shl eax, 8
add eax, edx
jmp 0x4079ad
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
movzx ecx, byte [0x415010]
shl eax, 8
add eax, edx
cmp ax, 4
je 0x4083c7
and ecx, 4
je 0x4079ad
mov dword [esp + 0xc], str.system3_n
jmp 0x407a9e
mov edx, dword [edi + 0x10]
test edx, edx
je 0x408f67
test byte [0x415010], 4
je 0x4079a0
mov dword [esp + 0xc], str.copyright_n
jmp 0x407a9e
test byte [0x415010], 4
je 0x4079a0
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], 0x415010
mov dword [esp], 2
jmp 0x407a68
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x408ff3
test byte [0x415010], 4
je 0x4079a0
mov dword [esp + 0xc], str.title_n
jmp 0x407a9e
mov esi, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xb0]
mov dword [esp + 4], 0
sub eax, esi
lea ebx, [eax - 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 - 0xd0]
call eax
mov dword [edi + 0x38], eax
sub esp, 0xc
test eax, eax
je 0x407724
add esi, 9
mov dword [esp + 8], ebx
shr ebx, 2
mov dword [esp + 4], esi
mov dword [esp], eax
call sym._memcpy
mov dword [edi + 0x34], ebx
lea eax, [ebp - 0xb0]
lea ecx, [ebp - 0xb4]
mov edx, str.Phrases
mov dword [esp], eax
mov eax, edi
call dbg.HLPFILE_FindSubFile
test eax, eax
je 0x408b92
mov ebx, dword [ebp - 0xb4]
movzx eax, byte [ebx + 0xa]
movzx edx, byte [ebx + 9]
shl eax, 8
add eax, edx
cmp word [edi + 0x4c], 0x10
movzx esi, ax
lea eax, [esi + esi]
mov dword [ebp - 0xdc], eax
lea eax, [ebx + eax + 0x13]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xd8], eax
ja 0x408b70
mov dword [edi + 0x64], esi
mov ecx, dword [ebp - 0xd8]
cmp dword [ebp - 0xe0], ecx
jae 0x408b85
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xdc]
sub eax, ebx
sub eax, 0xf
sub eax, ecx
mov ecx, 0xd
mov dword [ebp - 0xe4], eax
lea eax, [esi*4 + 4]
mov dword [ebp - 0xec], ecx
mov edx, dword fs:[0x18]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [edx + 0x30]
mov dword [ebp - 0xcc], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd0]
call eax
mov ecx, dword [ebp - 0xe4]
sub esp, 0xc
mov dword [edi + 0x68], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd0]
call eax
mov ecx, dword [edi + 0x68]
mov dword [edi + 0x6c], eax
sub esp, 0xc
mov dword [ebp - 0xe8], ecx
test ecx, ecx
je 0x409e0c
test eax, eax
mov ecx, dword [ebp - 0xec]
je 0x409e0c
mov edx, dword [ebp - 0xdc]
mov eax, 0xfffffffe
sub eax, edx
movzx edx, byte [ebx + ecx]
mov dword [ebp - 0xcc], eax
movzx eax, byte [ebx + ecx + 1]
shl eax, 8
add eax, edx
mov edx, dword [ebp - 0xcc]
movzx eax, ax
add eax, edx
mov edx, dword [ebp - 0xe8]
mov dword [edx], eax
test esi, esi
je 0x407ead
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xe8], ebx
lea edx, [ebx + ecx + 3]
lea esi, [ebx + eax + 3]
add esi, ecx
mov ecx, 4
lea esi, [esi]
movzx eax, byte [edx]
movzx ebx, byte [edx - 1]
add edx, 2
shl eax, 8
add eax, ebx
mov ebx, dword [ebp - 0xcc]
movzx eax, ax
add eax, ebx
mov ebx, dword [edi + 0x68]
mov dword [ebx + ecx], eax
add ecx, 4
cmp esi, edx
jne 0x407e80
mov ebx, dword [ebp - 0xe8]
cmp word [edi + 0x4c], 0x10
mov ecx, dword [edi + 0x6c]
ja 0x409338
mov eax, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xe4]
mov dword [esp], ecx
lea eax, [ebx + eax + 0xf]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
call sym._memcpy
mov dword [edi + 0x5c], 1
lea eax, [ebp - 0xb0]
lea ecx, [ebp - 0xb4]
mov edx, str.TOPIC
mov dword [esp], eax
mov eax, edi
call dbg.HLPFILE_FindSubFile
test eax, eax
je 0x408b3a
mov ebx, dword [ebp - 0xb4]
mov esi, dword [ebp - 0xb0]
lea eax, [ebx + 9]
mov ecx, esi
mov dword [ebp - 0xb4], eax
movzx edx, word [edi + 0x52]
sub ecx, eax
mov dword [ebp - 0xd8], eax
lea eax, [ecx - 1]
mov dword [ebp - 0xcc], edx
xor edx, edx
div dword [ebp - 0xcc]
mov dword [ebp - 0xe0], eax
lea edx, [eax + 1]
mov eax, dword [edi + 0x58]
test eax, eax
je 0x409102
mov dword [edi + 0x78], edx
test edx, edx
je 0x40a09e
xor ecx, ecx
lea eax, [esi - 0x44]
mov dword [ebp - 0xec], edi
add ebx, 0x4d
mov dword [ebp - 0xdc], 0
mov edi, ecx
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xe8], edx
jmp 0x407f82
mov edi, eax
mov ecx, dword [ebp - 0xcc]
cmp esi, ebx
lea eax, [ebx - 0x44]
cmovb eax, dword [ebp - 0xe4]
lea edx, [eax + ecx]
cmp esi, edx
cmovbe edx, esi
add eax, 0xc
call dbg.HLPFILE_UncompressedLZ77_Size
mov ecx, dword [ebp - 0xcc]
add dword [ebp - 0xdc], eax
lea eax, [edi + 1]
add ebx, ecx
mov ecx, dword [ebp - 0xe0]
cmp edi, ecx
jne 0x407f80
mov edx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xdc]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
lea edx, [ecx + edx*4]
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov ebx, dword [ebp - 0xd0]
call ebx
mov dword [edi + 0x70], eax
sub esp, 0xc
mov edx, eax
test eax, eax
je 0x407724
mov ebx, dword [edi + 0x78]
lea ecx, [eax + ebx*4]
mov eax, dword [ebp - 0xdc]
add eax, ecx
mov dword [edi + 0x74], eax
test ebx, ebx
je 0x40807a
lea eax, [esi - 0x44]
mov dword [ebp - 0xcc], edx
xor ebx, ebx
mov dword [ebp - 0xdc], eax
jmp 0x408039
mov eax, dword [edi + 0x70]
mov dword [ebp - 0xcc], eax
movzx eax, word [edi + 0x52]
mov edx, dword [ebp - 0xd8]
imul eax, ebx
add eax, edx
lea edx, [eax + 0x44]
cmp esi, edx
mov edx, dword [ebp - 0xcc]
cmovb eax, dword [ebp - 0xdc]
mov dword [edx + ebx*4], ecx
movzx edx, word [edi + 0x52]
add edx, eax
cmp esi, edx
cmovbe edx, esi
add eax, 0xc
add ebx, 1
call dbg.HLPFILE_UncompressLZ77
mov ecx, eax
cmp ebx, dword [edi + 0x78]
jb 0x408030
lea eax, [ebp - 0xb0]
lea ecx, [ebp - 0xb4]
mov edx, str.FONT
mov dword [esp], eax
mov eax, edi
call dbg.HLPFILE_FindSubFile
test eax, eax
je 0x409312
mov ebx, dword [ebp - 0xb4]
lea eax, [ebx + 9]
mov dword [ebp - 0xb4], eax
movzx edx, byte [ebx + 9]
mov dword [ebp - 0x110], eax
movzx eax, byte [ebx + 0xa]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0xb]
movzx eax, ax
mov dword [ebp - 0xe8], eax
movzx eax, byte [ebx + 0xc]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0xd]
movzx eax, ax
mov dword [ebp - 0xec], eax
movzx eax, byte [ebx + 0xe]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0xf]
movzx eax, ax
mov dword [ebp - 0x100], eax
movzx eax, byte [ebx + 0x10]
shl eax, 8
add eax, edx
movzx esi, ax
test byte [0x415010], 8
jne 0x409e8e
mov ecx, dword [ebp - 0xec]
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 - 0xd0]
call eax
sub esp, 0xc
cmp dword [ebp - 0x100], 0xf
mov dword [edi + 0x88], eax
mov ecx, eax
ja 0x409dc2
cmp dword [ebp - 0x100], 0xb
ja 0x409f0b
mov dword [edi + 0xa4], 0xa
mov eax, dword [ebp - 0xec]
mov dword [edi + 0xa8], 5
test eax, eax
je 0x40939b
mov edx, dword [ebp - 0x100]
mov eax, esi
add esi, ebx
mov dword [ebp - 0xcc], 0
sub eax, edx
xor edx, edx
div dword [ebp - 0xe8]
mov dword [ebp - 0x114], eax
mov ebx, dword [ebp - 0x114]
mov eax, 0x1f
cmp ebx, eax
cmovbe eax, ebx
mov dword [ebp - 0x104], eax
movzx eax, byte [esi + 0xb]
imul ebx, dword [ebp - 0xcc], 0x44
movzx edx, byte [esi + 9]
mov byte [ebp - 0xdc], al
movzx eax, byte [esi + 0xa]
mov byte [ebp - 0xe0], dl
mov dword [ecx + ebx], eax
mov eax, dword [edi + 0x88]
mov ecx, edx
and edx, 1
cmp dl, 1
mov byte [ebp - 0xf0], dl
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
sbb eax, eax
mov edx, dword [edi + 0x88]
and eax, 0xfffffed4
add eax, 0x2bc
mov dword [edx + ebx + 0x10], eax
mov edx, ecx
mov eax, dword [edi + 0x88]
and edx, 2
setne byte [eax + ebx + 0x14]
mov eax, dword [edi + 0x88]
mov byte [ebp - 0xf4], dl
mov edx, ecx
and edx, 4
setne byte [eax + ebx + 0x15]
mov eax, dword [edi + 0x88]
and ecx, 8
mov byte [ebp - 0xf8], dl
setne byte [eax + ebx + 0x16]
mov eax, dword [edi + 0x88]
movzx edx, word [edi + 0x50]
mov byte [ebp - 0xfc], cl
mov byte [eax + ebx + 0x17], dl
mov eax, dword [edi + 0x88]
mov byte [eax + ebx + 0x18], 0
mov eax, dword [edi + 0x88]
mov byte [eax + ebx + 0x19], 0
mov eax, dword [edi + 0x88]
movzx ecx, byte [0x415010]
mov byte [eax + ebx + 0x1a], 0
mov eax, dword [edi + 0x88]
mov byte [ebp - 0xd8], cl
mov byte [eax + ebx + 0x1b], 0
movzx eax, byte [ebp - 0xdc]
cmp al, 5
ja case.0x4082ca.0
jmp dword [eax*4 + 0x4173d4]
mov eax, dword [edi + 0x88]
add eax, ebx
or byte [eax + 0x1b], 0x50
movzx eax, byte [esi + 0xd]
movzx edx, byte [esi + 0xc]
mov ecx, dword [ebp - 0xe8]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ebp - 0xe4], eax
cmp eax, ecx
jb 0x408983
test byte [ebp - 0xd8], 1
jne 0x40907f
mov eax, dword [edi + 0x88]
add eax, ebx
mov dword [eax + 0x1c], 0x766c6548
mov byte [eax + 0x20], 0
mov eax, dword [edi + 0x88]
mov dword [eax + ebx + 0x3c], 0
movzx edx, byte [esi + 0xf]
movzx eax, byte [esi + 0x10]
mov ecx, dword [edi + 0x88]
shl edx, 8
shl eax, 0x10
or eax, edx
movzx edx, byte [esi + 0xe]
or eax, edx
mov dword [ecx + ebx + 0x40], eax
test byte [ebp - 0xd8], 8
jne 0x408a02
add dword [ebp - 0xcc], 1
add esi, 0xb
mov eax, dword [ebp - 0xcc]
cmp dword [ebp - 0xec], eax
je 0x40939b
mov ecx, dword [edi + 0x88]
jmp 0x4081c4
mov eax, dword [edi + 0x88]
add eax, ebx
or byte [eax + 0x1b], 0x40
jmp 0x4082dd
mov eax, dword [edi + 0x88]
add eax, ebx
or byte [eax + 0x1b], 0x10
jmp 0x4082dd
mov eax, dword [edi + 0x88]
add eax, ebx
or byte [eax + 0x1b], 0x30
jmp 0x4082dd
mov eax, dword [edi + 0x88]
add eax, ebx
or byte [eax + 0x1b], 0x20
jmp 0x4082dd
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 0x4079a0
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], 0x415010
mov dword [esp], 3
jmp 0x407a68
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 0x409376
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]
sub esp, 0x10
mov dword [edi + 0x90], eax
test eax, eax
je 0x4079a0
imul edx, dword [edi + 0x8c], 0x68
lea ecx, [eax + edx - 0x68]
movzx edx, byte [esi + 5]
movzx eax, byte [esi + 4]
shl edx, 8
lea ebx, [edx + eax]
and ax, 1
mov word [ebp - 0xdc], bx
mov word [ebp - 0xf0], ax
jne 0x409d9f
mov byte [ecx], 0
movzx eax, word [ebp - 0xdc]
and ax, 2
mov word [ebp - 0xf4], ax
jne 0x409d79
mov byte [ecx + 0xa], 0
movzx eax, word [ebp - 0xdc]
and ax, 4
mov word [ebp - 0xf8], ax
je 0x4092d1
lea eax, [esi + 0x19]
mov dword [esp + 4], eax
lea eax, [ecx + 0x13]
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0x110], eax
mov dword [esp], eax
mov eax, dword [ebp - 0xd8]
call eax
mov ecx, dword [ebp - 0xe4]
movzx eax, word [ebp - 0xdc]
mov dword [ebp - 0xe4], 0x80000000
and ax, 8
mov word [ebp - 0xfc], ax
je 0x408536
movzx eax, byte [esi + 0x4d]
movzx edx, byte [esi + 0x4c]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xe8], 0x80000000
mov eax, dword [ebp - 0xe4]
mov dword [ecx + 0x48], eax
movzx eax, word [ebp - 0xdc]
and ax, 0x10
mov word [ebp - 0x100], ax
je 0x408573
movzx eax, byte [esi + 0x4f]
movzx edx, byte [esi + 0x4e]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xec], 0x80000000
mov eax, dword [ebp - 0xe8]
mov dword [ecx + 0x4c], eax
movzx eax, word [ebp - 0xdc]
and ax, 0x20
mov word [ebp - 0x104], ax
je 0x4085b0
movzx eax, byte [esi + 0x51]
movzx edx, byte [esi + 0x50]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xec]
mov ebx, 0x80000000
mov dword [ecx + 0x50], eax
movzx eax, word [ebp - 0xdc]
and ax, 0x40
mov word [ebp - 0x108], ax
je 0x4085e2
movzx eax, byte [esi + 0x53]
movzx edx, byte [esi + 0x52]
shl eax, 8
add eax, edx
movzx ebx, ax
movzx edx, word [ebp - 0xdc]
mov dword [ecx + 0x54], ebx
mov eax, 5
and dx, 0x80
mov word [ebp - 0x10c], dx
je 0x40860f
movzx eax, byte [esi + 0x55]
movzx edx, byte [esi + 0x54]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ecx + 0x58], eax
mov eax, 0xffffff
mov dword [ecx + 0x5c], 0xcf0000
test word [ebp - 0xdc], 0x100
je 0x408657
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 - 0x114], eax
movzx eax, byte [esi + 0x57]
shl eax, 8
add eax, edx
mov edx, dword [ebp - 0x114]
movzx eax, ax
add eax, edx
mov dword [ecx + 0x60], eax
mov eax, 0xffffff
test word [ebp - 0xdc], 0x200
je 0x408698
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 - 0xdc], eax
movzx eax, byte [esi + 0x5b]
shl eax, 8
add eax, edx
mov edx, dword [ebp - 0xdc]
movzx eax, ax
add eax, edx
mov dword [ecx + 0x64], eax
test byte [0x415010], 8
je 0x4079a0
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x114], ecx
call sym._wine_dbgstr_an.constprop.0_1
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0xdc], eax
lea eax, [ecx + 0xa]
call sym._wine_dbgstr_an.constprop.0_1
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x114]
call sym._wine_dbgstr_an.constprop.0_1
mov dword [esp + 0x30], eax
cmp word [ebp - 0x10c], 1
sbb edx, edx
and edx, 0x20
add edx, 0x53
cmp word [ebp - 0x108], 1
sbb ecx, ecx
and ecx, 0x20
add ecx, 0x48
cmp word [ebp - 0x104], 1
sbb eax, eax
and eax, 0x20
add eax, 0x57
cmp word [ebp - 0x100], 1
mov dword [ebp - 0x104], eax
sbb eax, eax
and eax, 0x20
add eax, 0x59
cmp word [ebp - 0xfc], 1
mov dword [ebp - 0x100], eax
sbb eax, eax
and eax, 0x20
add eax, 0x58
cmp word [ebp - 0xf8], 1
mov dword [ebp - 0xfc], eax
sbb eax, eax
and eax, 0x20
add eax, 0x43
cmp word [ebp - 0xf4], 1
mov dword [ebp - 0xf8], eax
sbb eax, eax
and eax, 0x20
add eax, 0x4e
cmp word [ebp - 0xf0], 1
mov dword [ebp - 0xf4], eax
sbb eax, eax
mov dword [esp + 0x48], ebx
mov ebx, dword [ebp - 0xec]
and eax, 0x20
add eax, 0x54
mov dword [esp + 0x44], ebx
mov ebx, dword [ebp - 0xe8]
mov dword [esp + 0x40], ebx
mov ebx, dword [ebp - 0xe4]
mov dword [esp + 0x3c], ebx
mov ebx, dword [ebp - 0xdc]
mov dword [esp + 0x38], ebx
mov ebx, dword [ebp - 0x110]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp - 0x104]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp - 0x100]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp - 0xfc]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp - 0xf8]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp - 0xf4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
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 + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x415010
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 0x4079ad
movzx eax, ax
mov dword [esp + 0xc], str.Unsupported_SystemRecord__d__n
mov dword [esp + 0x10], eax
jmp 0x407c69
test byte [0x415010], 4
je 0x407724
mov dword [esp + 0xc], str.Wrong_system_header_n
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407724
mov dword [edi + 0x4c], eax
add ebx, 0x15
mov eax, 0x7f4
mov word [edi + 0x54], ax
mov dword [edi + 0x58], 0
mov dword [edi + 0x50], 0x8000001
mov dword [esp], ebx
mov eax, dword [ebp - 0xd4]
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 - 0xd0]
call eax
mov dword [edi + 0xc], eax
sub esp, 0xc
test eax, eax
je 0x407724
mov dword [esp + 4], ebx
mov dword [esp], eax
mov eax, dword [ebp - 0xd8]
call eax
test byte [0x415010], 8
je 0x4079ca
mov eax, dword [edi + 0xc]
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], 0x415010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x4079ca
movzx eax, dx
mov dword [ebp - 0xe0], edx
mov dword [esp + 0x1c], eax
movzx eax, si
mov dword [esp + 0x18], eax
movzx eax, word [ebp - 0xcc]
mov dword [esp + 0x14], eax
movzx eax, cx
mov dword [ebp - 0xdc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Got_system_header:_magic_04x_version_d._d_flags_04x_n
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x415010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xdc]
jmp 0x407900
mov edx, dword [edi + 0x88]
mov ecx, dword [ebp - 0xe4]
lea eax, [edx + ebx]
mov dword [ebp - 0x10c], eax
add eax, 0x1c
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x114]
imul eax, ecx
mov ecx, dword [ebp - 0x100]
add eax, ecx
mov ecx, dword [ebp - 0x110]
add ecx, eax
mov dword [ebp - 0x108], ecx
mov eax, ecx
mov ecx, dword [ebp - 0x104]
cmp ecx, 4
jae 0x4091f7
test ecx, ecx
je 0x4089f0
movzx edx, byte [eax]
mov eax, dword [ebp - 0x10c]
and ecx, 2
mov byte [eax + 0x1c], dl
jne 0x40a36c
mov edx, dword [edi + 0x88]
mov eax, dword [ebp - 0x104]
add edx, eax
mov byte [ebx + edx + 0x1c], 0
jmp 0x408321
movzx eax, byte [esi + 0x11]
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0xe]
add ebx, dword [edi + 0x88]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 0xf]
shl eax, 0x10
shl edx, 8
add edx, ecx
movzx edx, dx
add eax, edx
and eax, 0xffffff
mov dword [ebp - 0xd8], eax
lea eax, [ebx + 0x1c]
mov ebx, 0x4166fd
call sym._wine_dbgstr_an.constprop.0_1
movzx ecx, byte [ebp - 0xdc]
movzx edx, byte [esi + 0xa]
mov dword [ebp - 0x108], eax
mov eax, str._dblUnderline
mov dword [ebp - 0xdc], ecx
mov dword [esp + 0x30], edx
movzx ecx, byte [ebp - 0xe0]
mov edx, str._smallCaps
test cl, 0x20
cmove edx, ebx
and ecx, 0x10
mov ecx, str._underline
cmove eax, ebx
mov dword [esp + 0x2c], edx
mov edx, ebx
mov ebx, str._strikeOut
mov dword [esp + 0x28], eax
cmp byte [ebp - 0xfc], 0
mov eax, edx
cmove ebx, edx
mov dword [esp + 0x24], ebx
cmp byte [ebp - 0xf8], 0
mov ebx, eax
cmove ecx, edx
cmp byte [ebp - 0xf4], 0
mov edx, str._italic
cmove edx, eax
cmp byte [ebp - 0xf0], 0
mov eax, str._bold
cmove eax, ebx
mov ebx, dword [ebp - 0xd8]
mov dword [esp + 0x40], ebx
mov ebx, dword [ebp - 0xe4]
mov dword [esp + 0x3c], ebx
mov ebx, dword [ebp - 0x108]
mov dword [esp + 0x38], ebx
mov ebx, dword [ebp - 0xdc]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
movzx eax, byte [ebp - 0xe0]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xcc]
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
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 4], 0x415010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x40835c
test byte [0x415010], 4
je 0x407724
mov dword [esp + 0xc], str.topic0_n
mov dword [esp + 8], str.HLPFILE_Uncompress_Topic
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407724
mov dword [edi + 0x64], esi
mov ecx, dword [ebp - 0xd8]
cmp dword [ebp - 0xe0], ecx
jb 0x409355
test byte [0x415010], 4
jne 0x409f55
lea eax, [ebp - 0xb8]
lea ecx, [ebp - 0xbc]
mov edx, str.PhrIndex
mov dword [esp], eax
mov eax, edi
call dbg.HLPFILE_FindSubFile
test eax, eax
je 0x407ee2
lea eax, [ebp - 0xb0]
lea ecx, [ebp - 0xb4]
mov edx, str.PhrImage
mov dword [esp], eax
mov eax, edi
call dbg.HLPFILE_FindSubFile
test eax, eax
je 0x407ee2
mov esi, dword [ebp - 0xbc]
movzx eax, byte [esi + 0x21]
movzx edx, byte [esi + 0xd]
mov byte [ebp - 0xcc], al
movzx eax, byte [esi + 0xe]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ebp - 0xdc], eax
mov dword [edi + 0x64], eax
test byte [0x415010], 8
jne 0x40a1a4
movzx eax, byte [esi + 0x18]
movzx edx, byte [esi + 0x17]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 0x15]
mov ebx, eax
movzx eax, byte [esi + 0x16]
shl ebx, 0x10
shl eax, 8
add eax, edx
movzx edx, byte [esi + 0x1b]
movzx eax, ax
add ebx, eax
movzx eax, byte [esi + 0x1c]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 0x19]
mov ecx, eax
movzx eax, byte [esi + 0x1a]
shl ecx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add eax, ecx
mov dword [ebp - 0xec], eax
cmp eax, ebx
je 0x408ca7
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xb0]
add eax, 9
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0xe0], eax
call dbg.HLPFILE_UncompressedLZ77_Size
cmp eax, ebx
je 0x408ca7
test byte [0x415010], 4
jne 0x40a3dd
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe0]
call dbg.HLPFILE_UncompressedLZ77_Size
cmp ebx, eax
cmovl ebx, eax
mov eax, dword [ebp - 0xdc]
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
lea eax, [eax*4 + 4]
mov dword [esp + 8], eax
mov eax, dword [edx + 0x30]
mov dword [ebp - 0xd8], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd0]
call eax
sub esp, 0xc
mov dword [edi + 0x68], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd0]
call eax
mov edx, dword [edi + 0x68]
mov dword [edi + 0x6c], eax
sub esp, 0xc
test edx, edx
je 0x40a323
test eax, eax
je 0x40a323
mov eax, dword [ebp - 0xdc]
mov dword [edx], 0
lea edx, [esi + 0x21]
test eax, eax
je 0x408e7b
movzx ecx, byte [ebp - 0xcc]
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0xe0], edi
xor edi, edi
mov eax, ecx
and eax, 0xf
mov word [ebp - 0xd8], ax
mov eax, ecx
and eax, 0xf
mov ecx, eax
mov eax, 1
mov esi, eax
shl esi, cl
movzx ecx, byte [ebp - 0xcc]
mov word [ebp - 0xcc], si
mov eax, ecx
and ecx, 0xc
mov word [ebp - 0xe8], cx
and eax, 0xe
mov word [ebp - 0xe4], ax
xor eax, eax
movzx esi, word [ebp - 0xcc]
mov ecx, 1
jmp 0x408da2
add ecx, esi
add eax, eax
jne 0x408dbc
lea ebx, [edx + 4]
test byte [edx + 4], 1
je 0x408eac
add ecx, esi
mov edx, ebx
mov eax, 2
mov ebx, eax
and ebx, dword [edx]
jne 0x408da0
mov word [ebp - 0xcc], si
add eax, eax
jne 0x40a415
lea ebx, [edx + 4]
test byte [edx + 4], 1
je 0x408ddd
add ecx, 1
cmp word [ebp - 0xe4], 0
je 0x4091bd
mov eax, 2
mov edx, eax
lea esi, [ecx + 2]
and edx, dword [ebx]
cmovne ecx, esi
cmp word [ebp - 0xd8], 2
ja 0x4090c9
cmp word [ebp - 0xe8], 0
mov edx, ebx
je 0x408e46
add eax, eax
jne 0x4090f3
lea ebx, [edx + 4]
test byte [edx + 4], 1
je 0x408e28
add ecx, 8
cmp word [ebp - 0xd8], 4
mov eax, 2
jbe 0x4091bd
mov edx, eax
and edx, dword [ebx]
mov edx, ebx
je 0x408e46
add ecx, 0x10
mov esi, dword [ebp - 0xe0]
lea ebx, [edi*4]
movzx ecx, cx
add edi, 1
mov esi, dword [esi + 0x68]
add ecx, dword [esi + ebx]
mov dword [esi + ebx + 4], ecx
cmp dword [ebp - 0xdc], edi
jne 0x408d8e
mov ebx, dword [ebp - 0xf0]
mov edi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xb4]
mov esi, dword [ebp - 0xec]
mov ecx, dword [edi + 0x6c]
add eax, 9
cmp ebx, esi
je 0x40a2e5
mov edx, dword [ebp - 0xb0]
call dbg.HLPFILE_UncompressLZ77
mov dword [edi + 0x60], 1
jmp 0x407ee2
mov word [ebp - 0xcc], si
mov eax, 2
mov edx, dword [ebx]
and edx, eax
cmp edx, 1
sbb cx, 0xffff
cmp word [ebp - 0xe4], 0
je 0x40934e
add eax, eax
jne 0x408df0
lea edx, [ebx + 4]
test byte [ebx + 4], 1
je 0x408ee5
add ecx, 2
cmp word [ebp - 0xd8], 2
jbe 0x409f7e
mov eax, 2
mov ebx, eax
and ebx, dword [edx]
je 0x408f01
add ecx, 4
cmp word [ebp - 0xe8], 0
jne 0x408e14
cmp word [ebp - 0xd8], 4
jbe 0x408e46
add eax, eax
jne 0x40a40e
lea eax, [edx + 4]
test byte [edx + 4], 1
mov edx, eax
mov eax, 1
je 0x408e46
jmp 0x408e43
mov dword [esp + 0xc], str.More_than_one_icon__picking_up_first_n
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x415010
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
jmp 0x407aec
mov dword [esp], ebx
mov eax, dword [ebp - 0xd4]
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 - 0xd0]
call eax
mov dword [edi + 0x10], eax
sub esp, 0xc
test eax, eax
je 0x407724
mov dword [esp + 4], ebx
mov dword [esp], eax
mov eax, dword [ebp - 0xd8]
call eax
test byte [0x415010], 8
je 0x4079a0
mov eax, dword [edi + 0x10]
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], 0x415010
mov dword [esp], 3
jmp 0x407a68
mov dword [esp], ebx
mov eax, dword [ebp - 0xd4]
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 - 0xd0]
call eax
mov dword [edi + 0xc], eax
sub esp, 0xc
test eax, eax
je 0x407724
mov dword [esp + 4], ebx
mov dword [esp], eax
mov eax, dword [ebp - 0xd8]
call eax
test byte [0x415010], 8
je 0x4079a0
mov eax, dword [edi + 0xc]
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], 0x415010
mov dword [esp], 3
jmp 0x407a68
mov eax, dword [ebp - 0xe8]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xe4]
mov dword [esp + 0xc], str.Too_high_face_ref___u__u__n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 4], 0x415010
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
movzx eax, byte [0x415010]
mov byte [ebp - 0xd8], al
jmp 0x40830e
add eax, eax
mov edx, ebx
jne 0x408ef8
lea edx, [ebx + 4]
test byte [ebx + 4], 1
jne 0x40a021
cmp word [ebp - 0xe8], 0
je 0x40a18a
mov eax, 2
mov ebx, eax
lea esi, [ecx + 8]
and ebx, dword [edx]
cmovne ecx, esi
jmp 0x408f0f
movzx eax, word [edi + 0x54]
mov dword [edi + 0x78], edx
mov dword [ebp - 0xcc], ecx
add eax, 4
mov dword [esp + 4], 0
imul eax, edx
mov ebx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd0]
call eax
mov dword [edi + 0x70], eax
sub esp, 0xc
mov edx, eax
test eax, eax
je 0x407724
mov ebx, dword [edi + 0x78]
mov ecx, dword [ebp - 0xcc]
lea esi, [eax + ebx*4]
lea eax, [esi + ecx]
mov dword [edi + 0x74], eax
test ebx, ebx
je 0x40807a
mov dword [ebp - 0xcc], esi
xor ebx, ebx
jmp 0x409173
mov edx, dword [edi + 0x70]
movzx eax, word [edi + 0x54]
mov ecx, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd8]
imul eax, ebx
add eax, ecx
mov dword [edx + ebx*4], eax
mov eax, dword [edi + 0x70]
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 0x409170
jmp 0x40807a
mov edx, ebx
mov eax, 1
jmp 0x408e46
mov dword [edi + 0x58], 1
cmp dx, 4
je 0x40a07f
mov eax, 0x4000
mov word [edi + 0x4c], si
mov word [edi + 0x54], ax
mov word [edi + 0x4e], dx
mov dword [edi + 0x50], 0x8000001
jmp 0x40794b
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x10c]
mov edx, dword [eax]
mov dword [ecx + 0x1c], edx
mov ecx, dword [ebp - 0x104]
mov dword [ebp - 0x108], eax
mov edx, dword [eax + ecx - 4]
mov eax, dword [ebp - 0x118]
mov dword [eax + ecx - 4], edx
mov edx, dword [ebp - 0x10c]
add edx, 0x20
and edx, 0xfffffffc
sub eax, edx
mov dword [ebp - 0x10c], edx
mov edx, eax
mov eax, dword [ebp - 0x108]
sub eax, edx
add edx, ecx
and edx, 0xfffffffc
cmp edx, 4
jb 0x4089ea
mov dword [ebp - 0x108], ebx
and edx, 0xfffffffc
xor ecx, ecx
mov dword [ebp - 0x118], esi
mov esi, dword [eax + ecx]
mov ebx, dword [ebp - 0x10c]
mov dword [ebx + ecx], esi
add ecx, 4
cmp ecx, edx
jb 0x40925f
mov ebx, dword [ebp - 0x108]
mov esi, dword [ebp - 0x118]
jmp 0x4089ea
test byte [ebp - 0xd8], 1
je 0x4082dd
movzx eax, byte [ebp - 0xdc]
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], 0x415010
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
movzx eax, byte [0x415010]
mov byte [ebp - 0xd8], al
jmp 0x4082dd
lea eax, [ecx + 0x13]
mov dword [ebp - 0xe4], ecx
mov edx, dword [edi + 0xc]
lea ebx, [ecx + 0x45]
mov dword [ebp - 0x110], eax
jmp 0x4092fd
add eax, 1
add edx, 1
mov byte [eax - 1], cl
cmp eax, ebx
je 0x409304
movzx ecx, byte [edx]
test cl, cl
jne 0x4092f0
mov byte [eax], 0
mov ecx, dword [ebp - 0xe4]
jmp 0x408502
test byte [0x415010], 4
jne 0x40a130
mov dword [edi + 0x84], 0
mov dword [edi + 0x88], 0
jmp 0x407724
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe0]
call dbg.HLPFILE_UncompressLZ77
jmp 0x407edb
mov edx, ebx
jmp 0x408e46
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe0]
call dbg.HLPFILE_UncompressedLZ77_Size
mov ecx, 0x11
mov dword [ebp - 0xe4], eax
jmp 0x407d9b
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 - 0xd0]
call eax
sub esp, 0xc
jmp 0x408465
cmp word [edi + 0x4c], 0x10
ja 0x409fd1
mov dword [ebp - 0xdc], 0
xor ecx, ecx
mov dword [ebp - 0xe0], 0xffffffff
mov dword [ebp - 0xd8], 0xc
lea esi, [esi]
lea esi, [esi]
movzx esi, word [edi + 0x54]
mov eax, ecx
xor edx, edx
mov ebx, dword [ebp - 0xe0]
div esi
mov dword [ebp - 0xcc], eax
mov esi, edx
cmp eax, ebx
je 0x4093fa
cmp ebx, 0xffffffff
je 0x4093fa
mov dword [ebp - 0xd8], ecx
sub esi, 0xc
test byte [0x415010], 8
jne 0x409502
mov eax, dword [ebp - 0xcc]
cmp eax, dword [edi + 0x78]
jae 0x4099cc
mov eax, dword [edi + 0x70]
mov ecx, dword [ebp - 0xcc]
add esi, dword [eax + ecx*4]
mov ecx, dword [edi + 0x74]
lea eax, [esi + 0x15]
cmp eax, ecx
jae 0x409f9b
movzx edx, byte [esi + 3]
movzx eax, byte [esi + 2]
movzx ebx, byte [esi]
shl edx, 8
add edx, eax
movzx eax, byte [esi + 1]
shl edx, 0x10
shl eax, 8
add eax, ebx
movzx eax, ax
lea ebx, [edx + eax]
mov edx, dword [ebp - 0xe0]
lea eax, [esi + ebx]
cmp ecx, eax
cmova ecx, eax
xor eax, eax
cmp dword [ebp - 0xcc], edx
cmove eax, dword [ebp - 0xdc]
mov dword [ebp - 0xdc], eax
movzx eax, byte [esi + 0x14]
cmp al, 2
je 0x4095c0
jbe 0x409579
cmp al, 0x20
je 0x409581
cmp al, 0x23
je 0x409581
test byte [0x415010], 2
jne 0x409969
movzx eax, byte [esi + 0xf]
movzx edx, byte [esi + 0xe]
movzx ecx, byte [esi + 0xc]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 0xd]
shl eax, 0x10
shl edx, 8
add edx, ecx
movzx edx, dx
add eax, edx
cmp word [edi + 0x4c], 0x10
jbe 0x409548
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0xd8], eax
lea ebx, [eax - 0xc]
mov dword [ebp - 0xe0], ecx
mov eax, ebx
and ebx, 0x3fff
shr eax, 0xe
mov esi, ebx
mov dword [ebp - 0xcc], eax
test byte [0x415010], 8
je 0x409407
mov dword [esp + 0x18], esi
mov eax, dword [ebp - 0xcc]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp + 0xc], str.ref_08lx_____u__u__n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.HLPFILE_DoReadHlpFile
mov dword [esp + 4], 0x415010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x409407
add dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xd8]
test eax, eax
je 0x4099f9
cmp ecx, 0xffffffff
je 0x4099f9
mov eax, dword [ebp - 0xcc]
sub ecx, 0xc
mov dword [ebp - 0xe0], eax
jmp 0x4093d0
cmp al, 1
jne 0x409497
mov edx, dword [edi + 0x14]
test edx, edx
je 0x409b60
lea edx, [esi + 0x19]
cmp ecx, edx
jb 0x409996
cmp al, 0x20
je 0x409b96
cmp al, 0x23
sete al
sub ecx, esi
sub ecx, 0xf
test al, al
jne 0x409b96
add dword [ebp - 0xdc], ecx
jmp 0x4094a4
cmp word [edi + 0x4c], 0x10
mov eax, dword [ebp - 0xcc]
ja 0x409659
mov edx, dword [ebp - 0xd8]
lea eax, [eax + eax*2]
lea eax, [edx + eax*4]
mov dword [ebp - 0xe8], eax
movzx eax, byte [esi + 0x13]
movzx edx, byte [esi + 0x12]
shl eax, 8
add edx, eax
movzx eax, byte [esi + 0x11]
shl edx, 0x10
shl eax, 8
mov word [ebp - 0xe0], ax
movzx eax, byte [esi + 0x10]
add ax, word [ebp - 0xe0]
movzx eax, ax
add eax, edx
mov dword [ebp - 0xf0], eax
add eax, esi
mov dword [ebp - 0xec], eax
cmp ecx, eax
jae 0x40966f
test byte [0x415010], 4
je 0x407724
mov dword [esp + 0xc], str.page2_n
mov dword [esp + 8], str.HLPFILE_AddPage
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407724
mov edx, dword [ebp - 0xdc]
shl eax, 0xf
add eax, edx
mov dword [ebp - 0xe8], eax
jmp 0x4095e3
movzx eax, byte [esi + 7]
movzx edx, byte [esi + 6]
mov dword [ebp - 0xf4], ecx
movzx ecx, byte [esi + 4]
shl eax, 8
add edx, eax
movzx eax, byte [esi + 5]
shl edx, 0x10
shl eax, 8
add eax, ecx
movzx eax, ax
add eax, edx
mov ecx, eax
lea edx, [ecx + 0x2d]
mov dword [ebp - 0xe4], ecx
mov eax, dword fs:[0x18]
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov edx, dword [ebp - 0xd0]
call edx
mov dword [ebp - 0xe0], eax
sub esp, 0xc
test eax, eax
je 0x407724
lea edx, [eax + 0x2c]
mov ecx, dword [ebp - 0xe4]
mov dword [eax], edx
mov eax, dword [ebp - 0xf0]
sub ebx, eax
cmp ebx, ecx
jae 0x409bba
mov eax, dword [edi + 0x5c]
mov ecx, dword [ebp - 0xf4]
test eax, eax
jne 0x409e5b
mov eax, dword [edi + 0x60]
test eax, eax
jne 0x409ff6
test byte [0x415010], 1
jne 0x40a159
mov dword [esp + 8], ebx
mov eax, dword [ebp - 0xec]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym._memcpy
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xe4], ebx
mov edx, dword [eax]
mov eax, dword [ebp - 0xe4]
mov byte [edx + eax], 0
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x409c52
mov eax, dword [edi + 0x18]
mov ecx, dword [ebp - 0xe0]
mov dword [eax + 0x18], ecx
mov eax, dword [edi + 0x18]
mov dword [ecx + 0x1c], eax
mov dword [edi + 0x18], ecx
mov ebx, dword [ebp - 0xe0]
mov dword [ebx + 0x28], edi
mov dword [ebx + 0x18], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
movzx eax, byte [esi + 0x24]
movzx edx, byte [esi + 0x23]
movzx ecx, byte [esi + 0x21]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 0x22]
shl eax, 0x10
shl edx, 8
add edx, ecx
mov ecx, dword [ebp - 0xd8]
movzx edx, dx
add eax, edx
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0xe8]
mov dword [ebx + 0x10], eax
movzx edx, byte [esi + 0x1c]
movzx eax, byte [esi + 0x1b]
movzx ecx, byte [esi + 0x19]
shl edx, 8
add edx, eax
movzx eax, byte [esi + 0x1a]
shl edx, 0x10
shl eax, 8
add eax, ecx
movzx eax, ax
lea ebx, [edx + eax]
mov eax, dword [ebp - 0xe0]
mov dword [eax + 0x20], ebx
movzx edx, byte [esi + 0x20]
movzx eax, byte [esi + 0x1f]
movzx ecx, byte [esi + 0x1d]
shl edx, 8
add edx, eax
movzx eax, byte [esi + 0x1e]
shl edx, 0x10
shl eax, 8
add eax, ecx
mov ecx, dword [ebp - 0xe0]
movzx eax, ax
add eax, edx
mov dword [ecx + 0x24], eax
cmp word [edi + 0x4c], 0x10
ja 0x409849
mov edx, 0xffffffff
cmp ebx, 0xffff
je 0x40982e
mov edx, dword [edi + 0x38]
mov edx, dword [edx + ebx*4]
mov ecx, dword [ebp - 0xe0]
mov dword [ecx + 0x20], edx
cmp eax, 0xffff
jne 0x409d65
mov dword [ecx + 0x24], 0xffffffff
test byte [0x415010], 8
jne 0x409be7
mov eax, dword [ebp - 0xe0]
mov ebx, dword [eax]
mov dword [esp], ebx
mov ecx, dword [ebp - 0xd4]
call ecx
mov ecx, dword [ebp - 0xe4]
lea edx, [ebx + eax + 1]
lea eax, [ebx + ecx]
cmp edx, eax
jae 0x4094a4
mov dword [ebp - 0xec], esi
mov ebx, edx
mov esi, dword [ebp - 0xe0]
mov ecx, dword fs:[0x18]
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], ecx
jmp 0x40990e
lea eax, [edi + 9]
mov dword [esp + 4], 0
add edi, 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd0]
call eax
mov ecx, eax
sub esp, 0xc
lea eax, [eax + 8]
mov dword [ecx], eax
mov dword [ebp - 0xe0], ecx
mov dword [esp + 4], ebx
add ebx, edi
mov dword [esp + 8], edi
mov dword [esp], eax
call sym._memcpy
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0xe0]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0xe4]
add eax, dword [esi]
mov dword [esi + 4], ecx
cmp ebx, eax
jae 0x409958
mov dword [esp], ebx
mov eax, dword [ebp - 0xd4]
call eax
mov edi, eax
test byte [0x415010], 8
je 0x4098a8
mov eax, ebx
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], 0x415010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x4098a8
mov esi, dword [ebp - 0xec]
mov edi, dword [ebp - 0xf0]
jmp 0x4094a4
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], 0x415010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x4094a4
test byte [0x415010], 4
je 0x407724
mov dword [esp + 0xc], str.header_too_small_n
mov dword [esp + 8], str.HLPFILE_SkipParagraph
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407724
test byte [0x415010], 4
je 0x4099f9
mov dword [esp + 0xc], str.maplen_n
mov dword [esp + 8], str.HLPFILE_DoReadHlpFile
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
lea eax, [ebp - 0xb0]
lea ecx, [ebp - 0xb4]
mov edx, str.KWBTREE
mov dword [esp], eax
mov eax, edi
call dbg.HLPFILE_FindSubFile
test eax, eax
je 0x409acb
mov edx, dword [ebp - 0xb4]
mov esi, dword [ebp - 0xb0]
mov ebx, dword fs:[0x18]
sub esi, edx
mov dword [ebp - 0xcc], edx
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd0]
call eax
mov dword [edi + 0x24], eax
sub esp, 0xc
test eax, eax
je 0x409acb
mov dword [esp + 8], esi
mov edx, dword [ebp - 0xcc]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._memcpy
lea eax, [ebp - 0xb0]
lea ecx, [ebp - 0xb4]
mov edx, str.KWDATA
mov dword [esp], eax
mov eax, edi
call dbg.HLPFILE_FindSubFile
test eax, eax
jne 0x40a0ad
test byte [0x415010], 2
jne 0x40a393
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]
lea ecx, [ebp - 0xb4]
mov edx, str.CTXOMAP
mov dword [esp], eax
mov eax, edi
call dbg.HLPFILE_FindSubFile
test eax, eax
jne 0x409c6a
test byte [0x415010], 4
jne 0x40a107
cmp word [edi + 0x4c], 0x10
jbe 0x4075f3
lea eax, [ebp - 0xb0]
lea ecx, [ebp - 0xb4]
mov edx, str.CONTEXT
mov dword [esp], eax
mov eax, edi
call dbg.HLPFILE_FindSubFile
test eax, eax
jne 0x40a02b
test byte [0x415010], 4
je 0x407724
mov dword [esp + 0xc], str.context0_n
mov dword [esp + 8], str.HLPFILE_GetContext
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407724
test byte [0x415010], 4
je 0x407724
mov dword [esp + 0xc], str.no_page_n
mov dword [esp + 8], str.HLPFILE_SkipParagraph
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407724
lea eax, [esi + 0x17]
test byte [esi + 0x15], 1
cmove edx, eax
movzx ecx, byte [edx]
test cl, 1
je 0x409e84
movzx ecx, word [edx]
shr cx, 1
movzx ecx, cx
jmp 0x4095b1
mov eax, dword [ebp - 0xe4]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xec]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [ebp - 0xec], edx
call sym._memcpy
mov edx, dword [ebp - 0xec]
jmp 0x40973e
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax + 0x24]
mov ebx, dword [eax + 0x20]
mov eax, dword [eax]
mov dword [ebp - 0xec], edx
call sym._wine_dbgstr_an.constprop.0_1
mov edx, dword [ebp - 0xec]
mov dword [esp + 0x20], edx
mov ecx, dword [ebp - 0xe8]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xc], str.Added_page__d_:_title_s__08lx_____08x_____08lx_n
mov dword [esp + 8], str.HLPFILE_AddPage
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x415010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x409856
mov eax, dword [ebp - 0xe0]
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], eax
mov dword [eax + 0x1c], 0
jmp 0x409768
mov ebx, dword [ebp - 0xb4]
movzx eax, byte [ebx + 0xa]
movzx edx, byte [ebx + 9]
shl eax, 8
add eax, edx
movzx esi, ax
lea edx, [esi*8]
mov dword [esp + 8], edx
mov eax, dword fs:[0x18]
mov dword [ebp - 0xd4], edx
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd0]
call eax
mov dword [ebp - 0xcc], eax
sub esp, 0xc
mov dword [edi + 0x30], eax
test eax, eax
je 0x409afb
mov dword [edi + 0x2c], esi
test esi, esi
je 0x409afb
mov edx, dword [ebp - 0xd4]
lea eax, [ebx + 0xb]
lea ecx, [eax + edx]
mov edx, 0xfffffff5
sub edx, ebx
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xd8], edx
jmp 0x409cf9
mov ecx, dword [edi + 0x30]
mov dword [ebp - 0xcc], ecx
mov ecx, dword [ebp - 0xd8]
movzx edx, byte [eax + 3]
movzx esi, byte [eax]
lea ebx, [ecx + eax]
movzx ecx, byte [eax + 2]
shl edx, 8
add eax, 8
add edx, ecx
movzx ecx, byte [eax - 7]
shl edx, 0x10
shl ecx, 8
add ecx, esi
movzx ecx, cx
add edx, ecx
mov ecx, dword [ebp - 0xcc]
mov dword [ecx + ebx], edx
movzx edx, byte [eax - 1]
movzx ecx, byte [eax - 2]
movzx esi, byte [eax - 4]
shl edx, 8
add edx, ecx
movzx ecx, byte [eax - 3]
shl edx, 0x10
shl ecx, 8
add ecx, esi
movzx ecx, cx
add edx, ecx
mov ecx, dword [edi + 0x30]
mov dword [ecx + ebx + 4], edx
cmp dword [ebp - 0xd4], eax
jne 0x409cf0
jmp 0x409afb
mov edx, dword [edi + 0x38]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edx + eax*4]
mov dword [ecx + 0x24], eax
jmp 0x409849
lea eax, [esi + 0x10]
mov dword [esp + 4], eax
lea eax, [ecx + 0xa]
mov dword [ebp - 0xe4], ecx
mov dword [esp], eax
mov eax, dword [ebp - 0xd8]
call eax
mov ecx, dword [ebp - 0xe4]
jmp 0x4084c3
lea eax, [esi + 6]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xe4], ecx
call eax
mov ecx, dword [ebp - 0xe4]
jmp 0x4084a7
mov dword [edi + 0xa4], 1
mov dword [edi + 0xa8], 0
test byte [0x415010], 1
je 0x407724
mov dword [esp + 0xc], str.mvb_font:_not_implemented_n
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 4], 0x415010
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
jmp 0x407724
mov eax, dword [ebp - 0xe8]
mov dword [esp + 4], 0
mov ebx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
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 0x408b92
mov eax, dword [ebp - 0xe4]
mov dword [esp], edx
add eax, edx
mov dword [esp + 4], eax
mov edx, dword [ebp - 0xec]
mov eax, edi
call dbg.HLPFILE_Uncompress2
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax]
jmp 0x40973e
shr cl, 1
movzx ecx, cl
jmp 0x409bb2
mov dword [esp + 0x1c], esi
mov eax, dword [ebp - 0xec]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x100]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xe8]
mov dword [esp + 0xc], str.Got_NumFacenames_u__u_NumDesc_u__u_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 4], 0x415010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x408111
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 - 0xd0]
call eax
mov dword [edi + 0xc], eax
sub esp, 0xc
jmp 0x4079ca
mov dword [edi + 0xa4], 1
mov dword [edi + 0xa8], 0
test byte [0x415010], 1
je 0x407724
mov dword [esp + 0xc], str.new_font:_not_implemented_n
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 4], 0x415010
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
jmp 0x407724
mov dword [esp + 0xc], 0x417139
mov dword [esp + 8], str.HLPFILE_UncompressLZ77_Phrases
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x408b92
cmp word [ebp - 0xe8], 0
mov eax, 2
jne 0x4090f3
mov eax, 1
jmp 0x408e46
test byte [0x415010], 4
je 0x4099f9
mov dword [esp + 0xc], str.extra_n
mov dword [esp + 8], str.HLPFILE_DoReadHlpFile
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x4099f9
mov dword [ebp - 0xdc], 0
xor ebx, ebx
mov dword [ebp - 0xe0], 0xffffffff
mov dword [ebp - 0xd8], 0xc
jmp 0x4094e2
mov eax, dword [ebp - 0xe4]
mov dword [esp + 4], ecx
mov ecx, dword [ebp - 0xec]
add eax, edx
mov dword [esp], ecx
mov ecx, eax
mov eax, edi
call sym._HLPFILE_Uncompress3.isra.0
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax]
jmp 0x40973e
mov eax, 1
jmp 0x408efe
mov esi, dword [ebp - 0xb4]
mov ebx, dword [ebp - 0xb0]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
sub ebx, esi
mov dword [esp + 8], ebx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd0]
call eax
mov dword [edi + 0x20], eax
sub esp, 0xc
test eax, eax
je 0x407724
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call sym._memcpy
jmp 0x4075f3
mov word [edi + 0x4c], si
mov dword [edi + 0x4e], 0x10004
mov dword [edi + 0x52], 0x40001000
jmp 0x40794b
lea ecx, [edi + 0x1c]
jmp 0x407bdc
mov dword [ebp - 0xdc], 0
jmp 0x407fcb
mov edx, dword [ebp - 0xb4]
mov esi, dword [ebp - 0xb0]
sub esi, edx
mov dword [ebp - 0xcc], edx
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0xd0]
call eax
mov edx, dword [ebp - 0xcc]
sub esp, 0xc
test eax, eax
mov dword [edi + 0x28], eax
je 0x40a3bc
mov dword [esp + 8], esi
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._memcpy
jmp 0x409acb
mov dword [esp + 0xc], str.no_map_section_n
mov dword [esp + 8], str.HLPFILE_GetMap
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x409afb
mov dword [esp + 0xc], str.no_subfile_FONT_n
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x40931f
mov dword [esp + 0xc], str.Text_size_is_too_long__splitting_n
mov dword [esp + 8], str.HLPFILE_AddPage
mov dword [esp + 4], 0x415010
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax]
jmp 0x40971a
cmp word [ebp - 0xd8], 4
mov ebx, edx
mov eax, 2
ja 0x408e3b
jmp 0x409f91
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 eax, byte [esi + 0x20]
movzx edx, byte [esi + 0x1f]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 0x1d]
mov ebx, eax
movzx eax, byte [esi + 0x1e]
shl ebx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add ebx, eax
mov dword [esp + 0x24], ebx
movzx eax, byte [esi + 0x1c]
movzx edx, byte [esi + 0x1b]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 0x19]
mov ebx, eax
movzx eax, byte [esi + 0x1a]
shl ebx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add ebx, eax
mov dword [esp + 0x20], ebx
movzx eax, byte [esi + 0x18]
movzx edx, byte [esi + 0x17]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 0x15]
mov ebx, eax
movzx eax, byte [esi + 0x16]
shl ebx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add ebx, eax
mov dword [esp + 0x1c], ebx
movzx eax, byte [esi + 0x14]
movzx edx, byte [esi + 0x13]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 0x11]
mov ebx, eax
movzx eax, byte [esi + 0x12]
shl ebx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add ebx, eax
mov dword [esp + 0x18], ebx
movzx eax, byte [esi + 0x10]
movzx edx, byte [esi + 0xf]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 0xd]
mov ebx, eax
movzx eax, byte [esi + 0xe]
shl ebx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add ebx, eax
mov dword [esp + 0x14], ebx
movzx eax, byte [esi + 0xc]
movzx edx, byte [esi + 0xb]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 9]
mov ebx, 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 ebx, 0x10
mov dword [esp + 8], str.HLPFILE_Uncompress_Phrases40
shl eax, 8
mov dword [esp + 4], 0x415010
add eax, edx
mov dword [esp], 3
movzx eax, ax
add ebx, eax
mov dword [esp + 0x10], ebx
call sym._wine_dbg_log.constprop.0_1
jmp 0x408c0e
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], ecx
call sym._memcpy
jmp 0x408ea0
mov dword [esp + 0xc], str.filesize2_n
mov dword [esp + 8], str.HLPFILE_ReadFileToBuffer
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x407870
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 0x407ee2
mov ecx, dword [ebp - 0x104]
mov eax, dword [ebp - 0x108]
mov edx, dword [ebp - 0x118]
movzx eax, word [eax + ecx - 2]
mov word [edx + ecx - 2], ax
mov edx, dword [edi + 0x88]
jmp 0x4089f0
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], 0x415010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x409aa4
xor eax, eax
mov dword [esp + 8], eax
mov dword [esp + 4], eax
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 0x409acb
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], 0x415010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x408c91
mov ebx, edx
jmp 0x408e3b
mov ebx, edx
jmp 0x408eb8