Function at 0x407260
Capabilities:
Enumerate pe sections
Parse pe header
Resolve function by parsing pe exports

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff8
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x13c
mov eax, dword [0x41b008]
mov ebx, dword [ecx]
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x4074e5
mov esi, dword [sym.imp.ucrtbase.dll_strcmp]
mov edi, eax
jmp 0x4072a7
mov edi, dword [edi + 0x44]
test edi, edi
je 0x4072d0
mov eax, dword [edi + 8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call esi
test eax, eax
jne 0x4072a0
add dword [edi + 0x48], 1
mov eax, edi
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
mov eax, dword [sym.imp.ucrtbase.dll_strlen]
mov dword [esp], ebx
mov dword [ebp - 0xbc], eax
call eax
mov dword [esp], 1
mov esi, eax
lea eax, [eax + 0xad]
mov dword [esp + 4], eax
call dword [sym.imp.ucrtbase.dll_calloc]
mov edi, eax
test eax, eax
je 0x4073ea
mov ecx, dword [ebp - 0xb8]
lea eax, [eax + 0xac]
add esi, 1
mov dword [edi + 0x3c], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi + 0x48], 1
mov dword [edi + 0x44], ecx
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.ucrtbase.dll_memcpy
mov ecx, dword [ebp - 0xb8]
mov dword [0x41b008], edi
mov dword [ecx + 0x40], edi
lea eax, [ebp - 0x98]
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 0x4073dd
lea eax, [ebp - 0xa8]
mov esi, dword [sym.imp.kernel32.dll__hread]
mov dword [esp + 8], 0x10
mov dword [esp + 4], eax
mov dword [esp], ebx
call esi
sub esp, 0xc
cmp eax, 0x10
jne 0x4073f8
movzx eax, byte [ebp - 0xa5]
movzx edx, byte [ebp - 0xa6]
movzx ecx, byte [ebp - 0xa8]
shl eax, 8
add eax, edx
movzx edx, byte [ebp - 0xa7]
shl eax, 0x10
shl edx, 8
add edx, ecx
movzx edx, dx
add eax, edx
cmp eax, 0x35f3f
je 0x407427
test byte [0x415010], 4
jne 0x408170
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll__lclose]
sub esp, 4
sub dword [edi + 0x48], 1
jne 0x4073ea
mov eax, edi
call fcn.00401c10
xor edi, edi
jmp 0x4072bb
test byte [0x415010], 4
je 0x4073d1
mov dword [esp + 0xc], str.header_n
mov dword [esp + 8], str.HLPFILE_ReadFileToBuffer
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call fcn.004020c0
jmp 0x4073d1
movzx edx, byte [ebp - 0x99]
movzx eax, byte [ebp - 0x9a]
movzx ecx, byte [ebp - 0x9c]
shl edx, 8
add edx, eax
movzx eax, byte [ebp - 0x9b]
shl edx, 0x10
shl eax, 8
add eax, ecx
movzx eax, ax
add edx, eax
lea eax, [edx + 1]
mov dword [edi + 4], edx
mov dword [ebp - 0xb8], edx
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0xc4], eax
call eax
mov edx, dword [ebp - 0xb8]
test eax, eax
mov dword [edi], eax
je 0x4073d1
mov ecx, dword [ebp - 0xa8]
sub edx, 0x10
add eax, 0x10
mov dword [eax - 0x10], ecx
mov ecx, dword [ebp - 0xa4]
mov dword [eax - 0xc], ecx
mov ecx, dword [ebp - 0xa0]
mov dword [eax - 8], ecx
mov ecx, dword [ebp - 0x9c]
mov dword [eax - 4], ecx
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 0x407554
test byte [0x415010], 4
je 0x4073d1
mov dword [esp + 0xc], str.filesize1_n
jmp 0x407409
mov eax, dword [sym.imp.ucrtbase.dll_strlen]
mov dword [esp], ebx
mov dword [ebp - 0xbc], eax
call eax
mov dword [esp], 1
mov esi, eax
lea eax, [eax + 0xad]
mov dword [esp + 4], eax
call dword [sym.imp.ucrtbase.dll_calloc]
mov edi, eax
test eax, eax
je 0x4073ea
lea eax, [edi + 0xac]
add esi, 1
mov dword [edi + 0x3c], 0xffffffff
mov dword [edi + 8], eax
mov dword [edi + 0x44], 0
mov dword [edi + 0x48], 1
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.ucrtbase.dll_memcpy
mov dword [0x41b008], edi
jmp 0x407345
lea eax, [ebp - 0xac]
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], ebx
call esi
sub esp, 0xc
test eax, eax
je 0x40757f
test byte [0x415010], 4
jne 0x409bea
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 - 0xa8]
mov edx, str.SYSTEM
mov dword [edi + 0xc], 0
lea ecx, [ebp - 0xac]
sub esp, 4
mov dword [esp], eax
mov eax, edi
call fcn.00402e70
test eax, eax
je 0x4073dd
mov ebx, dword [ebp - 0xac]
movzx esi, byte [ebx + 0xa]
movzx eax, byte [ebx + 9]
movzx edx, byte [ebx + 0xd]
shl esi, 8
add esi, eax
movzx eax, byte [ebx + 0xe]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0xc]
mov word [ebp - 0xb8], ax
movzx eax, byte [ebx + 0x14]
shl eax, 0x10
or eax, edx
movzx edx, byte [ebx + 0x13]
movd xmm0, eax
movzx eax, byte [ebx + 0xb]
psllw xmm0, 8
shl edx, 0x10
or edx, eax
movd xmm1, edx
paddw xmm0, xmm1
pextrw edx, xmm0, 1
pextrw ecx, xmm0, 0
test byte [0x415010], 8
jne 0x4081ef
cmp si, 0x36c
jne 0x40813a
cmp word [ebp - 0xb8], 1
jne 0x40813a
cmp cx, 0x10
jbe 0x40817d
test dx, dx
jne 0x408d9b
xor eax, eax
movd dword [edi + 0x4c], xmm0
mov dword [edi + 0x58], eax
mov dword [edi + 0x50], 0x10000001
mov word [edi + 0x54], 0xff4
mov eax, dword [ebp - 0xa8]
lea esi, [ebx + 0x15]
add ebx, 0x19
mov dword [ebp - 0xb8], eax
cmp eax, ebx
jb 0x4076e5
mov dword [ebp - 0xc0], edi
lea esi, [esi]
lea esi, [esi]
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
shl edx, 8
add eax, edx
cmp ax, 0xb
ja case.0x4076a5.0
movzx edx, ax
jmp dword [edx*4 + 0x4173a4]
test byte [0x415010], 4
jne 0x408126
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 - 0xb8], ebx
jae 0x407690
mov edi, dword [ebp - 0xc0]
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4099c2
cmp word [edi + 0x4c], 0x10
ja 0x407a33
lea eax, [ebp - 0xa8]
mov edx, str.TOMAP
mov dword [esp], eax
lea ecx, [ebp - 0xac]
mov eax, edi
call fcn.00402e70
test eax, eax
jne 0x4079f3
test byte [0x415010], 4
je 0x4073dd
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 fcn.004020c0
jmp 0x4073dd
movzx edx, byte [esi + 4]
mov ecx, dword [ebp - 0xc0]
mov word [ecx + 0x50], dx
test byte [0x415010], 8
je 0x4076c0
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 fcn.004020c0
jmp 0x4076c0
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
shl eax, 8
add eax, edx
cmp ax, 0x5a
je 0x408814
test byte [0x415010], 4
je 0x4076cd
mov dword [esp + 0xc], str.system6_n
mov dword [esp + 8], str.HLPFILE_SystemCommands
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call fcn.004020c0
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
shl eax, 8
add eax, edx
jmp 0x4076cd
movzx eax, byte [esi + 9]
movzx edx, byte [esi + 8]
shl eax, 8
add eax, edx
cmp ax, 1
je 0x407820
test byte [0x415010], 1
jne 0x4087eb
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 dword [sym.imp.user32.dll_CreateIconFromResourceEx]
mov ecx, dword [ebp - 0xc0]
sub esp, 0x1c
mov dword [ecx + 0x94], eax
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
shl eax, 8
add eax, edx
jmp 0x4076cd
mov dword [esp], ebx
mov eax, dword [ebp - 0xbc]
call eax
mov edx, eax
lea eax, [eax + 9]
mov dword [ebp - 0xc8], edx
mov dword [esp], eax
mov eax, dword [ebp - 0xc4]
call eax
mov edx, dword [ebp - 0xc8]
test eax, eax
mov edi, eax
je 0x4076c0
lea ecx, [eax + 8]
add edx, 1
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], edx
mov dword [ebp - 0xc8], ecx
call sub.ucrtbase.dll_memcpy
mov eax, dword [ebp - 0xc0]
mov dword [edi + 4], 0
mov ecx, dword [ebp - 0xc8]
mov eax, dword [eax + 0x1c]
mov dword [edi], ecx
test eax, eax
je 0x408e6a
lea esi, [esi]
mov edx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x407900
add edx, 4
mov dword [edx], edi
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
shl eax, 8
add eax, edx
jmp 0x4076cd
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
movzx ecx, byte [0x415010]
shl eax, 8
add eax, edx
cmp ax, 4
je 0x4080ca
and ecx, 4
je 0x4076cd
mov dword [esp + 0xc], str.system3_n
jmp 0x4077cc
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x408bb2
test byte [0x415010], 4
je 0x4076c0
mov dword [esp + 0xc], str.copyright_n
jmp 0x4077cc
test byte [0x415010], 4
je 0x4076c0
mov eax, ebx
call fcn.00401e10
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 0x407796
mov eax, dword [ebp - 0xc0]
mov edi, dword [eax + 0xc]
test edi, edi
je 0x408c06
test byte [0x415010], 4
je 0x4076c0
mov dword [esp + 0xc], str.title_n
jmp 0x4077cc
mov esi, dword [ebp - 0xac]
mov ebx, dword [ebp - 0xa8]
sub ebx, esi
sub ebx, 9
mov dword [esp], ebx
mov eax, dword [ebp - 0xc4]
call eax
mov dword [edi + 0x38], eax
test eax, eax
je 0x4073dd
add esi, 9
mov dword [esp + 8], ebx
shr ebx, 2
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.ucrtbase.dll_memcpy
mov dword [edi + 0x34], ebx
lea eax, [ebp - 0xa8]
mov edx, str.Phrases
mov dword [esp], eax
lea ecx, [ebp - 0xac]
mov eax, edi
call fcn.00402e70
test eax, eax
je 0x40846f
mov ebx, dword [ebp - 0xac]
movzx esi, byte [ebx + 0xa]
movzx eax, byte [ebx + 9]
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa8]
cmp word [edi + 0x4c], 0x10
movzx esi, si
mov dword [ebp - 0xc0], eax
lea eax, [esi + esi]
mov dword [ebp - 0xc8], eax
lea eax, [ebx + eax + 0x13]
mov dword [ebp - 0xcc], eax
ja 0x40842d
mov ecx, dword [ebp - 0xc0]
mov dword [edi + 0x64], esi
cmp dword [ebp - 0xcc], ecx
jae 0x408442
mov dword [ebp - 0xd0], 0xd
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xc8]
sub eax, ebx
sub eax, 0xf
sub eax, ecx
mov dword [ebp - 0xd4], eax
lea eax, [esi*4 + 4]
mov dword [esp], eax
mov eax, dword [ebp - 0xc4]
call eax
mov ecx, dword [ebp - 0xd4]
mov dword [edi + 0x68], eax
mov dword [ebp - 0xb8], eax
mov dword [esp], ecx
mov eax, dword [ebp - 0xc4]
call eax
mov ecx, dword [ebp - 0xb8]
mov dword [edi + 0x6c], eax
test ecx, ecx
je 0x409de1
test eax, eax
je 0x409de1
mov edx, dword [ebp - 0xc8]
mov eax, 0xfffffffe
sub eax, edx
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0xb8], eax
movzx eax, byte [ebx + edx + 1]
movzx edx, byte [ebx + edx]
shl eax, 8
add eax, edx
mov edx, dword [ebp - 0xb8]
movzx eax, ax
add eax, edx
mov dword [ecx], eax
test esi, esi
je 0x407b9d
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xd0], ebx
lea esi, [ebx + ecx + 3]
mov ecx, 4
lea edx, [ebx + eax + 3]
add esi, eax
lea esi, [esi]
movzx eax, byte [edx]
add edx, 2
movzx ebx, byte [edx - 3]
shl eax, 8
add eax, ebx
mov ebx, dword [ebp - 0xb8]
movzx eax, ax
add eax, ebx
mov ebx, dword [edi + 0x68]
mov dword [ebx + ecx], eax
add ecx, 4
cmp esi, edx
jne 0x407b70
mov ebx, dword [ebp - 0xd0]
cmp word [edi + 0x4c], 0x10
mov ecx, dword [edi + 0x6c]
ja 0x408d85
mov eax, dword [ebp - 0xc8]
lea eax, [ebx + eax + 0xf]
mov ebx, dword [ebp - 0xd4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call sub.ucrtbase.dll_memcpy
mov dword [edi + 0x5c], 1
lea eax, [ebp - 0xa8]
mov edx, str.TOPIC
mov dword [esp], eax
lea ecx, [ebp - 0xac]
mov eax, edi
call fcn.00402e70
test eax, eax
je 0x4083f7
mov ecx, dword [ebp - 0xac]
xor edx, edx
mov eax, dword [ebp - 0xa8]
movzx esi, word [edi + 0x52]
lea ebx, [ecx + 9]
mov dword [ebp - 0xb8], eax
sub eax, ebx
mov dword [ebp - 0xc8], eax
lea eax, [eax - 1]
div esi
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xcc], eax
mov ebx, eax
mov eax, dword [edi + 0x58]
add ebx, 1
mov dword [edi + 0x78], ebx
test eax, eax
je 0x408cf0
lea edx, [ebx*4]
mov dword [ebp - 0xd4], edx
test ebx, ebx
je 0x409b41
mov eax, dword [ebp - 0xb8]
lea ebx, [ecx + 0x4d]
xor ecx, ecx
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0xc8], 0
mov edi, ecx
sub eax, 0x44
mov dword [ebp - 0xd0], eax
jmp 0x407c82
mov edi, eax
mov ecx, dword [ebp - 0xb8]
lea eax, [ebx - 0x44]
cmp ecx, ebx
cmovb eax, dword [ebp - 0xd0]
lea edx, [eax + esi]
cmp ecx, edx
cmovbe edx, ecx
add eax, 0xc
add ebx, esi
call fcn.00401930
mov ecx, dword [ebp - 0xcc]
add dword [ebp - 0xc8], eax
lea eax, [edi + 1]
cmp edi, ecx
jne 0x407c80
mov ebx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xd8]
add eax, ebx
mov dword [esp], eax
mov edx, dword [ebp - 0xc4]
call edx
mov edx, eax
mov dword [edi + 0x70], eax
test eax, eax
je 0x4073dd
mov ecx, dword [ebp - 0xd4]
add ecx, eax
mov eax, ebx
xor ebx, ebx
add eax, ecx
mov dword [edi + 0x74], eax
mov eax, dword [ebp - 0xb8]
sub eax, 0x44
mov dword [ebp - 0xc8], eax
mov eax, esi
jmp 0x407d17
mov edx, dword [edi + 0x70]
movzx eax, word [edi + 0x52]
mov esi, dword [ebp - 0xc0]
imul eax, ebx
mov dword [edx + ebx*4], ecx
movzx edx, word [edi + 0x52]
add eax, esi
lea esi, [eax + 0x44]
cmp dword [ebp - 0xb8], esi
mov esi, dword [ebp - 0xb8]
cmovb eax, dword [ebp - 0xc8]
add edx, eax
cmp esi, edx
cmovbe edx, esi
add eax, 0xc
add ebx, 1
call fcn.004019c0
mov ecx, eax
cmp ebx, dword [edi + 0x78]
jb 0x407d10
mov edx, str.FONT
lea eax, [ebp - 0xa8]
mov dword [esp], eax
lea ecx, [ebp - 0xac]
mov eax, edi
call fcn.00402e70
test eax, eax
je 0x408e44
mov ebx, dword [ebp - 0xac]
lea eax, [ebx + 9]
mov dword [ebp - 0xac], eax
movzx edx, byte [ebx + 9]
mov dword [ebp - 0xf4], eax
movzx eax, byte [ebx + 0xa]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0xb]
movzx eax, ax
mov dword [ebp - 0xdc], eax
movzx eax, byte [ebx + 0xc]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0xd]
movzx eax, ax
mov dword [ebp - 0xd4], eax
movzx eax, byte [ebx + 0xe]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0xf]
movzx eax, ax
mov dword [ebp - 0xe0], eax
movzx eax, byte [ebx + 0x10]
shl eax, 8
add eax, edx
movzx esi, ax
test byte [0x415010], 8
jne 0x409907
mov eax, dword [ebp - 0xd4]
mov dword [edi + 0x84], eax
imul eax, eax, 0x44
mov dword [esp], eax
mov eax, dword [ebp - 0xc4]
call eax
cmp dword [ebp - 0xe0], 0xf
mov ecx, eax
mov dword [edi + 0x88], eax
ja 0x4098be
cmp dword [ebp - 0xe0], 0xb
ja 0x409a32
mov eax, 0xa
mov edx, 5
mov dword [edi + 0xa4], eax
mov eax, dword [ebp - 0xd4]
mov dword [edi + 0xa8], edx
test eax, eax
je 0x408eea
mov edx, dword [ebp - 0xe0]
mov eax, esi
add ebx, esi
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xb8], ebx
sub eax, edx
xor edx, edx
div dword [ebp - 0xdc]
mov dword [ebp - 0xfc], eax
mov esi, dword [ebp - 0xfc]
mov eax, 0x1f
mov ebx, eax
cmp esi, eax
cmovbe ebx, esi
lea eax, [ebx - 1]
mov dword [ebp - 0xf0], ebx
mov ebx, edi
mov dword [ebp - 0x100], eax
lea esi, [esi]
mov esi, dword [ebp - 0xb8]
movzx eax, byte [esi + 9]
movzx edx, byte [esi + 0xb]
mov byte [ebp - 0xc8], al
movzx eax, byte [esi + 0xa]
mov byte [ebp - 0xd0], dl
imul edx, dword [ebp - 0xc0], 0x44
mov dword [ecx + edx], eax
mov eax, dword [ebx + 0x88]
mov dword [eax + edx + 4], 0
mov eax, dword [ebx + 0x88]
mov dword [eax + edx + 8], 0
mov eax, dword [ebx + 0x88]
mov dword [eax + edx + 0xc], 0
movzx eax, byte [ebp - 0xc8]
mov ecx, dword [ebx + 0x88]
and eax, 1
cmp al, 1
mov byte [ebp - 0xe4], al
sbb eax, eax
and eax, 0xfffffed4
add eax, 0x2bc
mov dword [ecx + edx + 0x10], eax
movzx ecx, byte [ebp - 0xc8]
mov esi, dword [ebx + 0x88]
mov eax, ecx
and eax, 2
setne byte [esi + edx + 0x14]
mov esi, dword [ebx + 0x88]
mov byte [ebp - 0xe6], al
mov eax, ecx
and eax, 4
mov byte [ebp - 0xe8], al
setne byte [esi + edx + 0x15]
mov eax, dword [ebx + 0x88]
and ecx, 8
mov byte [ebp - 0xea], cl
setne byte [eax + edx + 0x16]
mov eax, dword [ebx + 0x88]
movzx ecx, word [ebx + 0x50]
mov byte [eax + edx + 0x17], cl
mov eax, dword [ebx + 0x88]
mov byte [eax + edx + 0x18], 0
mov eax, dword [ebx + 0x88]
movzx ecx, byte [ebp - 0xd0]
mov byte [eax + edx + 0x19], 0
mov eax, dword [ebx + 0x88]
mov byte [eax + edx + 0x1a], 0
mov eax, dword [ebx + 0x88]
mov byte [eax + edx + 0x1b], 0
movzx eax, byte [0x415010]
mov byte [ebp - 0xcc], al
cmp cl, 5
ja case.0x407fb8.0
jmp dword [ecx*4 + 0x4173d4]
mov ecx, dword [ebx + 0x88]
add ecx, edx
or byte [ecx + 0x1b], 0x50
lea esi, [esi]
nop
mov esi, dword [ebp - 0xb8]
movzx ecx, byte [esi + 0xd]
movzx esi, byte [esi + 0xc]
shl ecx, 8
add ecx, esi
mov esi, dword [ebp - 0xdc]
movzx ecx, cx
mov dword [ebp - 0xd8], ecx
cmp ecx, esi
jb 0x40838a
test byte [ebp - 0xcc], 1
jne 0x408c5a
mov ecx, dword [ebx + 0x88]
add ecx, edx
mov dword [ecx + 0x1c], 0x766c6548
mov byte [ecx + 0x20], 0
mov ecx, dword [ebx + 0x88]
mov eax, dword [ebp - 0xb8]
mov dword [ecx + edx + 0x3c], 0
mov esi, dword [ebx + 0x88]
movzx ecx, byte [eax + 0xf]
movzx edi, byte [eax + 0x10]
shl ecx, 8
shl edi, 0x10
or ecx, edi
movzx edi, byte [eax + 0xe]
or ecx, edi
mov dword [esi + edx + 0x40], ecx
test byte [ebp - 0xcc], 8
jne 0x40825a
add dword [ebp - 0xc0], 1
add dword [ebp - 0xb8], 0xb
mov eax, dword [ebp - 0xc0]
cmp dword [ebp - 0xd4], eax
je 0x408ee8
mov ecx, dword [ebx + 0x88]
jmp 0x407ea0
mov ecx, dword [ebx + 0x88]
add ecx, edx
or byte [ecx + 0x1b], 0x40
jmp 0x407fd0
mov ecx, dword [ebx + 0x88]
add ecx, edx
or byte [ecx + 0x1b], 0x20
jmp 0x407fd0
mov ecx, dword [ebx + 0x88]
add ecx, edx
or byte [ecx + 0x1b], 0x10
jmp 0x407fd0
mov ecx, dword [ebx + 0x88]
add ecx, edx
or byte [ecx + 0x1b], 0x30
jmp 0x407fd0
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
mov ebx, dword [ebp - 0xc0]
movzx edx, dx
add eax, edx
and ecx, 8
mov dword [ebx + 0x3c], eax
je 0x4076c0
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 0x407796
movzx eax, ax
mov dword [esp + 0xc], str.Unsupported_SystemRecord__d__n
mov dword [esp + 0x10], eax
jmp 0x4079a8
test byte [0x415010], 4
je 0x4073dd
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 fcn.004020c0
jmp 0x4073dd
mov dword [esp + 0xc], str.wrong_header_n
jmp 0x407409
mov eax, 0x7f4
add ebx, 0x15
mov dword [edi + 0x58], 0
movd dword [edi + 0x4c], xmm0
mov dword [edi + 0x50], 0x8000001
mov word [edi + 0x54], ax
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll__strdup]
mov dword [edi + 0xc], eax
test eax, eax
je 0x4073dd
test byte [0x415010], 8
je 0x4076f0
call fcn.00401e10
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 fcn.004020c0
jmp 0x4076f0
movd dword [ebp - 0xcc], xmm0
mov dword [esp + 0x1c], edx
mov dword [ebp - 0xc8], edx
mov dword [esp + 0x18], ecx
movzx eax, word [ebp - 0xb8]
mov dword [ebp - 0xc0], ecx
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 + 0x14], eax
movzx eax, si
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x415010
mov dword [esp], 3
call fcn.004020c0
mov edx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xc0]
movd xmm0, dword [ebp - 0xcc]
jmp 0x407627
mov esi, eax
movzx eax, byte [eax + 0x11]
movzx ecx, byte [esi + 0x10]
add edx, dword [ebx + 0x88]
shl eax, 8
add eax, ecx
movzx ecx, byte [esi + 0xf]
movzx esi, byte [esi + 0xe]
shl eax, 0x10
shl ecx, 8
add ecx, esi
movzx ecx, cx
add eax, ecx
and eax, 0xffffff
mov dword [ebp - 0xcc], eax
lea eax, [edx + 0x1c]
call fcn.00401e10
mov esi, dword [ebp - 0xb8]
mov edx, str._underline
mov dword [ebp - 0xf8], eax
movzx edi, byte [ebp - 0xd0]
mov eax, 0x4166fd
movzx ecx, byte [esi + 0xa]
mov esi, str._smallCaps
mov dword [esp + 0x30], ecx
movzx ecx, byte [ebp - 0xc8]
test cl, 0x20
cmove esi, eax
and ecx, 0x10
mov dword [esp + 0x2c], esi
mov esi, str._dblUnderline
cmove esi, eax
mov dword [esp + 0x28], esi
cmp byte [ebp - 0xea], 0
mov esi, str._strikeOut
cmove esi, eax
cmp byte [ebp - 0xe8], 0
cmove edx, eax
cmp byte [ebp - 0xe6], 0
mov ecx, edx
mov edx, str._italic
cmove edx, eax
mov dword [esp + 0x1c], edx
cmp byte [ebp - 0xe4], 0
mov edx, str._bold
cmovne eax, edx
mov edx, dword [ebp - 0xcc]
mov dword [esp + 0x40], edx
mov edx, dword [ebp - 0xd8]
mov dword [esp + 0x3c], edx
mov edx, dword [ebp - 0xf8]
mov dword [esp + 0x34], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x18], eax
movzx eax, byte [ebp - 0xc8]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xc0]
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 + 8], str.HLPFILE_ReadFont
mov dword [esp + 4], 0x415010
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.004020c0
jmp 0x40805b
mov ecx, dword [ebx + 0x88]
mov eax, dword [ebp - 0xd8]
lea edi, [ecx + edx]
lea esi, [edi + 0x1c]
mov dword [ebp - 0xf8], esi
mov esi, dword [ebp - 0xfc]
imul esi, eax
mov eax, dword [ebp - 0xe0]
add esi, eax
mov eax, dword [ebp - 0xf4]
add esi, eax
mov eax, dword [ebp - 0xf0]
cmp eax, 4
jae 0x408e20
test eax, eax
je 0x4083e5
movzx ecx, byte [esi]
mov byte [edi + 0x1c], cl
mov ecx, eax
and ecx, 2
jne 0x409d7d
mov ecx, dword [ebx + 0x88]
mov eax, dword [ebp - 0xf0]
add ecx, eax
mov byte [edx + ecx + 0x1c], 0
jmp 0x40801a
test byte [0x415010], 4
je 0x4073dd
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 fcn.004020c0
jmp 0x4073dd
mov ecx, dword [ebp - 0xc0]
mov dword [edi + 0x64], esi
cmp dword [ebp - 0xcc], ecx
jb 0x408ec2
test byte [0x415010], 4
je 0x40846f
mov dword [esp + 0xc], 0x417139
mov dword [esp + 8], str.HLPFILE_UncompressLZ77_Phrases
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call fcn.004020c0
lea eax, [ebp - 0xb0]
mov edx, str.PhrIndex
mov dword [esp], eax
lea ecx, [ebp - 0xb4]
mov eax, edi
call fcn.00402e70
test eax, eax
je 0x407bd2
lea eax, [ebp - 0xa8]
mov edx, str.PhrImage
mov dword [esp], eax
lea ecx, [ebp - 0xac]
mov eax, edi
call fcn.00402e70
test eax, eax
je 0x407bd2
mov ebx, dword [ebp - 0xb4]
movzx eax, byte [ebx + 0x22]
movzx edx, byte [ebx + 0x21]
shl eax, 8
add eax, edx
and edx, 0xf
mov word [ebp - 0xc0], ax
movzx eax, byte [ebx + 0xe]
mov word [ebp - 0xc8], dx
movzx edx, byte [ebx + 0xd]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ebp - 0xcc], eax
mov dword [edi + 0x64], eax
test byte [0x415010], 8
jne 0x409c13
movzx eax, byte [ebx + 0x18]
movzx edx, byte [ebx + 0x17]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0x15]
mov ecx, eax
movzx eax, byte [ebx + 0x16]
shl ecx, 0x10
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0x1b]
movzx eax, ax
lea esi, [ecx + eax]
movzx eax, byte [ebx + 0x1c]
mov dword [ebp - 0xd8], esi
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0x19]
mov ecx, eax
movzx eax, byte [ebx + 0x1a]
shl ecx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add eax, ecx
mov dword [ebp - 0xe4], eax
cmp eax, esi
je 0x4085a9
mov eax, dword [ebp - 0xac]
mov edx, dword [ebp - 0xa8]
lea esi, [eax + 9]
mov eax, esi
mov dword [ebp - 0xb8], edx
call fcn.00401930
mov ecx, dword [ebp - 0xd8]
cmp eax, ecx
je 0x4085a9
test byte [0x415010], 4
jne 0x409da5
mov edx, dword [ebp - 0xb8]
mov eax, esi
call fcn.00401930
mov ecx, dword [ebp - 0xd8]
cmp ecx, eax
cmovge eax, ecx
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xcc]
lea eax, [eax*4 + 4]
mov dword [esp], eax
mov esi, dword [ebp - 0xc4]
call esi
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xb8], eax
mov dword [edi + 0x68], eax
mov dword [esp], ecx
call esi
mov edx, dword [ebp - 0xb8]
mov esi, eax
mov ecx, eax
mov dword [edi + 0x6c], eax
mov eax, dword [ebp - 0xb8]
test edx, edx
je 0x409e02
test esi, esi
je 0x409e02
mov dword [eax], 0
mov eax, dword [ebp - 0xcc]
lea edx, [ebx + 0x21]
test eax, eax
je 0x409965
movzx ecx, word [ebp - 0xc8]
mov eax, 1
xor ebx, ebx
mov dword [ebp - 0xd4], edi
mov esi, eax
mov edi, ebx
shl esi, cl
movzx ecx, word [ebp - 0xc0]
mov dword [ebp - 0xc0], 0
mov eax, ecx
and ecx, 0xc
and eax, 0xe
mov word [ebp - 0xdc], cx
mov word [ebp - 0xd0], ax
xor eax, eax
mov ecx, 1
jmp 0x408675
add ecx, esi
mov edx, ebx
mov eax, 2
mov ebx, eax
and ebx, dword [edx]
je 0x408750
add ecx, esi
add eax, eax
jne 0x408669
lea ebx, [edx + 4]
test byte [edx + 4], 1
jne 0x408660
mov eax, 2
mov edx, dword [ebx]
and edx, eax
cmp edx, 1
sbb cx, 0xffff
cmp word [ebp - 0xd0], 0
je 0x408777
add eax, eax
jne 0x408cb5
lea edx, [ebx + 4]
test byte [ebx + 4], 1
je 0x4086b4
add ecx, 2
cmp word [ebp - 0xc8], 2
jbe 0x4098a1
mov eax, 2
mov ebx, eax
and ebx, dword [edx]
je 0x4086d0
add ecx, 4
cmp word [ebp - 0xdc], 0
je 0x4087bc
add eax, eax
jne 0x4087a5
lea ebx, [edx + 4]
test byte [edx + 4], 1
je 0x4086f2
add ecx, 8
cmp word [ebp - 0xc8], 4
mov eax, 2
jbe 0x409a7b
mov edx, eax
and edx, dword [ebx]
mov edx, ebx
je 0x408710
add ecx, 0x10
mov ebx, dword [ebp - 0xc0]
movzx ecx, cx
add edi, 1
add ecx, ebx
mov ebx, dword [ebp - 0xb8]
mov dword [ebx + edi*4], ecx
cmp dword [ebp - 0xcc], edi
je 0x40995c
mov ecx, dword [ebp - 0xd4]
mov ecx, dword [ecx + 0x68]
mov dword [ebp - 0xb8], ecx
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0xc0], ecx
jmp 0x408652
add eax, eax
jne 0x409e17
lea ebx, [edx + 4]
test byte [edx + 4], 1
je 0x408764
add ecx, 1
cmp word [ebp - 0xd0], 0
jne 0x408cb0
mov eax, 1
mov edx, ebx
jmp 0x408710
add eax, eax
mov edx, ebx
jne 0x4086c7
lea edx, [ebx + 4]
test byte [ebx + 4], 1
jne 0x409952
cmp word [ebp - 0xdc], 0
je 0x409b63
mov eax, 2
mov ebx, dword [edx]
and ebx, eax
mov dword [ebp - 0xe0], ebx
cmp dword [ebp - 0xe0], 0
lea ebx, [ecx + 8]
cmovne ecx, ebx
cmp word [ebp - 0xc8], 4
jbe 0x408710
add eax, eax
jne 0x409d9e
test byte [edx + 4], 1
lea eax, [edx + 4]
mov edx, eax
mov eax, 1
je 0x408710
jmp 0x40870d
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 fcn.004020c0
jmp 0x407820
mov ebx, dword [ebp - 0xc0]
mov eax, dword [ebx + 0x8c]
mov dword [ebp - 0xc8], eax
add eax, 1
mov dword [ebx + 0x8c], eax
imul eax, eax, 0x68
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x90]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_realloc]
mov dword [ebx + 0x90], eax
test eax, eax
je 0x4076c0
mov ecx, dword [ebp - 0xc0]
imul edx, dword [ecx + 0x8c], 0x68
lea edi, [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 - 0xd4], ax
jne 0x409880
mov byte [edi], 0
mov eax, ecx
and ax, 2
mov word [ebp - 0xd8], ax
jne 0x40985c
mov byte [edi + 0xa], 0
mov eax, ecx
and ax, 4
mov word [ebp - 0xdc], ax
je 0x408e78
lea eax, [esi + 0x19]
mov dword [ebp - 0xc8], ecx
mov dword [esp + 4], eax
lea eax, [edi + 0x13]
mov dword [ebp - 0xf0], eax
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_strcpy]
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xc8], 0x80000000
mov eax, ecx
and ax, 8
mov word [ebp - 0xe0], ax
je 0x408904
movzx eax, byte [esi + 0x4d]
movzx edx, byte [esi + 0x4c]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xcc], 0x80000000
mov eax, dword [ebp - 0xc8]
mov dword [edi + 0x48], eax
mov eax, ecx
and ax, 0x10
mov word [ebp - 0xe4], ax
je 0x40893c
movzx eax, byte [esi + 0x4f]
movzx edx, byte [esi + 0x4e]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xd0], 0x80000000
mov eax, dword [ebp - 0xcc]
mov dword [edi + 0x4c], eax
mov eax, ecx
and ax, 0x20
mov word [ebp - 0xe6], ax
je 0x408974
movzx eax, byte [esi + 0x51]
movzx edx, byte [esi + 0x50]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xd0]
mov ebx, 0x80000000
mov dword [edi + 0x50], eax
mov eax, ecx
and ax, 0x40
mov word [ebp - 0xe8], ax
je 0x4089a1
movzx eax, byte [esi + 0x53]
movzx edx, byte [esi + 0x52]
shl eax, 8
add eax, edx
movzx ebx, ax
mov edx, ecx
mov dword [edi + 0x54], ebx
mov eax, 5
and dx, 0x80
mov word [ebp - 0xea], dx
je 0x4089c9
movzx eax, byte [esi + 0x55]
movzx edx, byte [esi + 0x54]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [edi + 0x58], eax
mov eax, 0xffffff
mov dword [edi + 0x5c], 0xcf0000
test ch, 1
je 0x408a0b
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 - 0xf4], eax
movzx eax, byte [esi + 0x57]
shl eax, 8
add eax, edx
mov edx, dword [ebp - 0xf4]
movzx eax, ax
add eax, edx
and ch, 2
mov dword [edi + 0x60], eax
mov eax, 0xffffff
je 0x408a3c
movzx eax, byte [esi + 0x5d]
movzx edx, byte [esi + 0x5c]
shl eax, 8
add eax, edx
movzx edx, byte [esi + 0x5a]
mov ecx, eax
movzx eax, byte [esi + 0x5b]
shl ecx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add eax, ecx
mov dword [edi + 0x64], eax
test byte [0x415010], 8
je 0x4076c0
mov eax, dword [ebp - 0xf0]
call fcn.00401e10
mov dword [ebp - 0xf0], eax
lea eax, [edi + 0xa]
call fcn.00401e10
mov dword [ebp - 0xf4], eax
mov eax, edi
call fcn.00401e10
mov dword [esp + 0x30], eax
cmp word [ebp - 0xea], 1
sbb edx, edx
and edx, 0x20
add edx, 0x53
cmp word [ebp - 0xe8], 1
sbb ecx, ecx
and ecx, 0x20
add ecx, 0x48
cmp word [ebp - 0xe6], 1
sbb edi, edi
and edi, 0x20
add edi, 0x57
cmp word [ebp - 0xe4], 1
sbb eax, eax
and eax, 0x20
add eax, 0x59
cmp word [ebp - 0xe0], 1
mov dword [ebp - 0xe4], eax
sbb eax, eax
and eax, 0x20
add eax, 0x58
cmp word [ebp - 0xdc], 1
mov dword [ebp - 0xe0], eax
sbb eax, eax
and eax, 0x20
add eax, 0x43
cmp word [ebp - 0xd8], 1
mov dword [ebp - 0xdc], eax
sbb eax, eax
and eax, 0x20
add eax, 0x4e
cmp word [ebp - 0xd4], 1
mov dword [ebp - 0xd8], eax
mov dword [esp + 0x48], ebx
mov ebx, dword [ebp - 0xd0]
sbb eax, eax
and eax, 0x20
mov dword [esp + 0x44], ebx
mov ebx, dword [ebp - 0xcc]
add eax, 0x54
mov dword [esp + 0x40], ebx
mov ebx, dword [ebp - 0xc8]
mov dword [esp + 0x3c], ebx
mov ebx, dword [ebp - 0xf0]
mov dword [esp + 0x38], ebx
mov ebx, dword [ebp - 0xf4]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], ebx
mov ecx, dword [ebp - 0xe4]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp - 0xe0]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp - 0xdc]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp - 0xd8]
mov dword [esp + 0x10], eax
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 + 0x14], ecx
mov dword [esp + 4], 0x415010
mov dword [esp], 3
call fcn.004020c0
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
shl eax, 8
add eax, edx
jmp 0x4076cd
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll__strdup]
mov ecx, dword [ebp - 0xc0]
mov dword [ecx + 0x10], eax
test eax, eax
je 0x409dd6
test byte [0x415010], 8
je 0x4076c0
call fcn.00401e10
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 0x407796
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll__strdup]
mov ecx, dword [ebp - 0xc0]
mov dword [ecx + 0xc], eax
test eax, eax
je 0x409dd6
test byte [0x415010], 8
je 0x4076c0
call fcn.00401e10
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 0x407796
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xf8], edx
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp + 0xc], str.Too_high_face_ref___u__u__n
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 4], 0x415010
mov dword [esp + 0x10], eax
mov dword [esp], 0
call fcn.004020c0
movzx eax, byte [0x415010]
mov edx, dword [ebp - 0xf8]
mov byte [ebp - 0xcc], al
jmp 0x408007
mov eax, 2
mov edx, dword [ebx]
and edx, eax
mov dword [ebp - 0xe0], edx
cmp dword [ebp - 0xe0], 0
lea edx, [ecx + 2]
cmovne ecx, edx
cmp word [ebp - 0xc8], 2
ja 0x40877b
cmp word [ebp - 0xdc], 0
mov edx, ebx
jne 0x4086de
jmp 0x408710
movzx esi, word [edi + 0x54]
lea eax, [esi + 4]
imul eax, ebx
mov dword [esp], eax
mov eax, dword [ebp - 0xc4]
call eax
mov dword [edi + 0x70], eax
test eax, eax
je 0x4073dd
mov edx, dword [ebp - 0xc8]
lea ecx, [eax + ebx*4]
add edx, ecx
mov dword [edi + 0x74], edx
test ebx, ebx
je 0x407d58
xor ebx, ebx
mov edx, esi
mov dword [ebp - 0xb8], ecx
jmp 0x408d3f
mov eax, dword [edi + 0x70]
movzx edx, word [edi + 0x54]
mov ecx, dword [ebp - 0xb8]
imul edx, ebx
mov esi, dword [ebp - 0xc0]
add edx, ecx
mov dword [eax + ebx*4], edx
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
mov dword [esp], edx
imul eax, ebx
add ebx, 1
lea eax, [esi + eax + 0xc]
mov dword [esp + 4], eax
call sub.ucrtbase.dll_memcpy
cmp ebx, dword [edi + 0x78]
jb 0x408d38
jmp 0x407d58
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xcc]
call fcn.004019c0
jmp 0x407bcb
mov dword [edi + 0x58], 1
cmp dx, 4
je 0x409b2a
mov eax, 0x4000
movd dword [edi + 0x4c], xmm0
mov word [edi + 0x54], ax
mov dword [edi + 0x50], 0x8000001
jmp 0x40766a
test byte [ebp - 0xcc], 1
je 0x407fd0
movzx eax, byte [ebp - 0xd0]
mov dword [ebp - 0xd8], edx
mov dword [esp + 0xc], str.Unknown_family__u_n
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 4], 0x415010
mov dword [esp + 0x10], eax
mov dword [esp], 0
call fcn.004020c0
movzx eax, byte [0x415010]
mov edx, dword [ebp - 0xd8]
mov byte [ebp - 0xcc], al
jmp 0x407fd0
mov eax, dword [ebp - 0xf0]
mov edi, dword [ebp - 0xf8]
mov ecx, dword [esi + eax - 4]
mov dword [edi + eax - 4], ecx
mov ecx, dword [ebp - 0x100]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x4083df
test byte [0x415010], 4
jne 0x409b7d
mov dword [edi + 0x84], 0
mov dword [edi + 0x88], 0
jmp 0x4073dd
mov eax, dword [ebp - 0xc0]
lea edx, [eax + 0x1c]
jmp 0x40790c
mov eax, dword [ebp - 0xc0]
lea ebx, [edi + 0x45]
mov dword [ebp - 0xc8], edi
mov edx, dword [eax + 0xc]
lea eax, [edi + 0x13]
mov dword [ebp - 0xf0], eax
mov edi, edx
jmp 0x408ead
add eax, 1
add edi, 1
mov byte [eax - 1], dl
cmp eax, ebx
je 0x408eb4
movzx edx, byte [edi]
test dl, dl
jne 0x408ea0
mov edi, dword [ebp - 0xc8]
mov byte [eax], 0
jmp 0x4088d5
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xcc]
call fcn.00401930
mov dword [ebp - 0xd0], 0x11
mov dword [ebp - 0xd4], eax
jmp 0x407ace
mov edi, ebx
cmp word [edi + 0x4c], 0x10
ja 0x409a0d
mov dword [ebp - 0xcc], 0
xor ecx, ecx
mov dword [ebp - 0xc8], 0xffffffff
mov dword [ebp - 0xc0], 0xc
lea esi, [esi]
movzx ebx, word [edi + 0x54]
mov eax, ecx
xor edx, edx
div ebx
mov ebx, dword [ebp - 0xc8]
mov esi, edx
mov dword [ebp - 0xb8], eax
cmp eax, ebx
je 0x408f42
cmp ebx, 0xffffffff
je 0x408f42
sub esi, 0xc
mov dword [ebp - 0xc0], ecx
test byte [0x415010], 8
jne 0x40904a
mov eax, dword [ebp - 0xb8]
cmp eax, dword [edi + 0x78]
jae 0x4094d9
mov eax, dword [edi + 0x70]
mov ecx, dword [ebp - 0xb8]
add esi, dword [eax + ecx*4]
mov ecx, dword [edi + 0x74]
lea eax, [esi + 0x15]
cmp eax, ecx
jae 0x4099d7
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 - 0xc8]
lea eax, [esi + ebx]
cmp ecx, eax
cmova ecx, eax
xor eax, eax
cmp dword [ebp - 0xb8], edx
cmove eax, dword [ebp - 0xcc]
mov dword [ebp - 0xcc], eax
movzx eax, byte [esi + 0x14]
cmp al, 2
je 0x409110
jbe 0x4090c8
cmp al, 0x20
je 0x4090d0
cmp al, 0x23
je 0x4090d0
test byte [0x415010], 2
jne 0x409476
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 0x409090
mov ecx, dword [ebp - 0xb8]
lea ebx, [eax - 0xc]
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xc8], ecx
mov eax, ebx
and ebx, 0x3fff
shr eax, 0xe
mov esi, ebx
mov dword [ebp - 0xb8], eax
test byte [0x415010], 8
je 0x408f4f
mov dword [esp + 0x18], esi
mov eax, dword [ebp - 0xb8]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xc0]
mov dword [esp + 0xc], str.ref_08lx_____u__u__n
mov dword [esp + 8], str.HLPFILE_DoReadHlpFile
mov dword [esp + 4], 0x415010
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.004020c0
jmp 0x408f4f
add dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0xc0]
test eax, eax
je 0x409506
cmp ecx, 0xffffffff
je 0x409506
mov eax, dword [ebp - 0xb8]
sub ecx, 0xc
mov dword [ebp - 0xc8], eax
jmp 0x408f18
cmp al, 1
jne 0x408fdf
mov edx, dword [edi + 0x14]
test edx, edx
je 0x409628
lea edx, [esi + 0x19]
cmp ecx, edx
jb 0x4094a3
cmp al, 0x20
je 0x40965e
cmp al, 0x23
sete al
sub ecx, esi
sub ecx, 0xf
test al, al
jne 0x40965e
add dword [ebp - 0xcc], ecx
jmp 0x408fec
cmp word [edi + 0x4c], 0x10
mov eax, dword [ebp - 0xb8]
ja 0x4091a9
mov edx, dword [ebp - 0xc0]
lea eax, [eax + eax*2]
lea eax, [edx + eax*4]
mov dword [ebp - 0xd4], 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 - 0xc8], ax
movzx eax, byte [esi + 0x10]
add ax, word [ebp - 0xc8]
movzx eax, ax
add eax, edx
mov dword [ebp - 0xd8], eax
add eax, esi
mov dword [ebp - 0xdc], eax
cmp ecx, eax
jae 0x4091bf
test byte [0x415010], 4
je 0x4073dd
mov dword [esp + 0xc], str.page2_n
mov dword [esp + 8], str.HLPFILE_AddPage
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call fcn.004020c0
jmp 0x4073dd
mov edx, dword [ebp - 0xcc]
shl eax, 0xf
add eax, edx
mov dword [ebp - 0xd4], eax
jmp 0x409133
movzx eax, byte [esi + 7]
mov dword [ebp - 0xe0], ecx
movzx edx, byte [esi + 6]
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 dword [ebp - 0xd0], eax
add eax, 0x2d
mov dword [esp], eax
mov ecx, dword [ebp - 0xc4]
call ecx
mov dword [ebp - 0xc8], eax
test eax, eax
je 0x4073dd
lea edx, [eax + 0x2c]
mov ecx, dword [ebp - 0xd8]
mov dword [eax], edx
mov eax, dword [ebp - 0xd0]
sub ebx, ecx
cmp ebx, eax
jae 0x409682
mov ecx, dword [edi + 0x5c]
test ecx, ecx
mov ecx, dword [ebp - 0xe0]
jne 0x40974d
mov eax, dword [edi + 0x60]
test eax, eax
jne 0x409997
test byte [0x415010], 1
jne 0x409ac0
mov dword [esp + 8], ebx
mov eax, dword [ebp - 0xdc]
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.ucrtbase.dll_memcpy
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xd0], ebx
mov edx, dword [eax]
mov eax, dword [ebp - 0xd0]
mov byte [edx + eax], 0
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x40971a
mov eax, dword [edi + 0x18]
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0x18], ecx
mov eax, dword [edi + 0x18]
mov dword [edi + 0x18], ecx
mov dword [ecx + 0x1c], eax
mov ebx, dword [ebp - 0xc8]
movd xmm2, dword [ebp - 0xd4]
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 - 0xc0]
movzx edx, dx
add eax, edx
movd xmm0, eax
mov dword [ebx + 0x14], ecx
punpckldq xmm0, xmm2
movq qword [ebx + 0xc], xmm0
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 - 0xc8]
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 - 0xc8]
movzx eax, ax
add eax, edx
cmp word [edi + 0x4c], 0x10
mov dword [ecx + 0x24], eax
ja 0x409385
mov edx, 0xffffffff
cmp ebx, 0xffff
je 0x40936a
mov edx, dword [edi + 0x38]
mov edx, dword [edx + ebx*4]
mov ecx, dword [ebp - 0xc8]
mov dword [ecx + 0x20], edx
cmp eax, 0xffff
jne 0x409739
mov dword [ecx + 0x24], 0xffffffff
test byte [0x415010], 8
jne 0x4096af
mov eax, dword [ebp - 0xc8]
mov ebx, dword [eax]
mov dword [esp], ebx
mov ecx, dword [ebp - 0xbc]
call ecx
mov ecx, dword [ebp - 0xd0]
lea edx, [ebx + eax + 1]
lea eax, [ebx + ecx]
cmp edx, eax
jae 0x408fec
mov dword [ebp - 0xd4], esi
mov esi, edx
mov dword [ebp - 0xd8], edi
mov edi, dword [ebp - 0xc8]
jmp 0x40941b
lea eax, [ebx + 9]
add ebx, 1
mov dword [esp], eax
mov eax, dword [ebp - 0xc4]
call eax
mov edx, eax
lea eax, [eax + 8]
mov dword [ebp - 0xc8], edx
mov dword [edx], eax
mov dword [esp + 4], esi
add esi, ebx
mov dword [esp + 8], ebx
mov dword [esp], eax
call sub.ucrtbase.dll_memcpy
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xc8]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0xd0]
add eax, dword [edi]
mov dword [edi + 4], edx
cmp esi, eax
jae 0x409465
mov dword [esp], esi
mov eax, dword [ebp - 0xbc]
call eax
mov ebx, eax
test byte [0x415010], 8
je 0x4093d0
mov eax, esi
call fcn.00401e10
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 fcn.004020c0
jmp 0x4093d0
mov esi, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xd8]
jmp 0x408fec
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 fcn.004020c0
jmp 0x408fec
test byte [0x415010], 4
je 0x4073dd
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 fcn.004020c0
jmp 0x4073dd
test byte [0x415010], 4
je 0x409506
mov dword [esp + 0xc], str.maplen_n
mov dword [esp + 8], str.HLPFILE_DoReadHlpFile
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call fcn.004020c0
lea eax, [ebp - 0xa8]
mov edx, str.KWBTREE
mov dword [esp], eax
lea ecx, [ebp - 0xac]
mov eax, edi
call fcn.00402e70
test eax, eax
je 0x409591
mov esi, dword [ebp - 0xac]
mov ebx, dword [ebp - 0xa8]
sub ebx, esi
mov dword [esp], ebx
mov eax, dword [ebp - 0xc4]
call eax
mov dword [edi + 0x24], eax
test eax, eax
je 0x409591
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.ucrtbase.dll_memcpy
lea eax, [ebp - 0xa8]
mov edx, str.KWDATA
mov dword [esp], eax
lea ecx, [ebp - 0xac]
mov eax, edi
call fcn.00402e70
test eax, eax
jne 0x409a87
test byte [0x415010], 2
jne 0x409d54
mov eax, dword [edi + 0x24]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
lea eax, [ebp - 0xa8]
mov edx, str.CTXOMAP
mov dword [esp], eax
lea ecx, [ebp - 0xac]
mov eax, edi
call fcn.00402e70
test eax, eax
jne 0x409770
test byte [0x415010], 4
jne 0x409ba6
cmp word [edi + 0x4c], 0x10
jbe 0x4072bb
lea eax, [ebp - 0xa8]
mov edx, str.CONTEXT
mov dword [esp], eax
lea ecx, [ebp - 0xac]
mov eax, edi
call fcn.00402e70
test eax, eax
jne 0x409af1
test byte [0x415010], 4
je 0x4073dd
mov dword [esp + 0xc], str.context0_n
mov dword [esp + 8], str.HLPFILE_GetContext
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call fcn.004020c0
jmp 0x4073dd
test byte [0x415010], 4
je 0x4073dd
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 fcn.004020c0
jmp 0x4073dd
test byte [esi + 0x15], 1
lea eax, [esi + 0x17]
cmove edx, eax
movzx ecx, byte [edx]
test cl, 1
je 0x409852
movzx ecx, word [edx]
shr cx, 1
movzx ecx, cx
jmp 0x409100
mov eax, dword [ebp - 0xd0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xdc]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [ebp - 0xd8], edx
call sub.ucrtbase.dll_memcpy
mov edx, dword [ebp - 0xd8]
jmp 0x409271
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax + 0x24]
mov ebx, dword [eax + 0x20]
mov eax, dword [eax]
mov dword [ebp - 0xd8], edx
call fcn.00401e10
mov edx, dword [ebp - 0xd8]
mov dword [esp + 0x20], edx
mov ecx, dword [ebp - 0xd4]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
mov eax, dword [ebp - 0xc8]
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 + 4], 0x415010
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.004020c0
jmp 0x409392
mov eax, dword [ebp - 0xc8]
movd xmm0, eax
mov dword [eax + 0x1c], 0
punpckldq xmm0, xmm0
movq qword [edi + 0x14], xmm0
jmp 0x40929b
mov edx, dword [edi + 0x38]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [edx + eax*4]
mov dword [ecx + 0x24], eax
jmp 0x409385
add eax, edx
mov dword [esp], edx
mov dword [esp + 4], eax
mov edx, dword [ebp - 0xdc]
mov eax, edi
call fcn.00402930
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
jmp 0x409271
mov ebx, dword [ebp - 0xac]
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], edx
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xbc], edx
call eax
mov dword [ebp - 0xb8], eax
mov dword [edi + 0x30], eax
test eax, eax
je 0x4095c1
mov dword [edi + 0x2c], esi
test esi, esi
je 0x4095c1
mov edx, dword [ebp - 0xbc]
lea eax, [ebx + 0xb]
lea ecx, [eax + edx]
mov edx, 0xfffffff5
sub edx, ebx
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xc0], edx
jmp 0x4097e4
mov ecx, dword [edi + 0x30]
mov dword [ebp - 0xb8], ecx
mov ecx, dword [ebp - 0xc0]
movzx edx, byte [eax + 3]
movzx esi, byte [eax]
lea ebx, [ecx + eax]
movzx ecx, byte [eax + 2]
add eax, 8
shl edx, 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 - 0xb8]
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
mov ecx, dword [ebp - 0xbc]
cmp eax, ecx
jne 0x4097db
jmp 0x4095c1
shr cl, 1
movzx ecx, cl
jmp 0x40967a
lea eax, [esi + 0x10]
mov dword [ebp - 0xc8], ecx
mov dword [esp + 4], eax
lea eax, [edi + 0xa]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_strcpy]
mov ecx, dword [ebp - 0xc8]
jmp 0x40889d
lea eax, [esi + 6]
mov dword [ebp - 0xc8], ecx
mov dword [esp + 4], eax
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_strcpy]
mov ecx, dword [ebp - 0xc8]
jmp 0x408886
cmp word [ebp - 0xdc], 0
mov eax, 2
jne 0x4087a5
mov eax, 1
jmp 0x408710
mov eax, 1
xor edx, edx
mov dword [edi + 0xa4], eax
mov dword [edi + 0xa8], edx
test byte [0x415010], 1
je 0x4073dd
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 fcn.004020c0
jmp 0x4073dd
mov dword [esp + 0x1c], esi
mov eax, dword [ebp - 0xd4]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0xe0]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xdc]
mov dword [esp + 0xc], str.Got_NumFacenames_u__u_NumDesc_u__u_n
mov dword [esp + 8], str.HLPFILE_ReadFont
mov dword [esp + 4], 0x415010
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.004020c0
jmp 0x407def
mov eax, 1
jmp 0x4086cd
mov edi, dword [ebp - 0xd4]
mov ecx, dword [edi + 0x6c]
mov eax, dword [ebp - 0xac]
mov esi, dword [ebp - 0xe4]
add eax, 9
cmp dword [ebp - 0xd8], esi
je 0x409bcf
mov edx, dword [ebp - 0xa8]
call fcn.004019c0
mov dword [edi + 0x60], 1
jmp 0x407bd2
mov eax, dword [ebp - 0xd0]
mov dword [esp + 4], ecx
mov ecx, dword [ebp - 0xdc]
add eax, edx
mov dword [esp], ecx
mov ecx, eax
mov eax, edi
call fcn.00402a80
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
jmp 0x409271
mov dword [esp], 0x4166fd
call dword [sym.imp.ucrtbase.dll__strdup]
mov dword [edi + 0xc], eax
jmp 0x4076f0
test byte [0x415010], 4
je 0x409506
mov dword [esp + 0xc], str.extra_n
mov dword [esp + 8], str.HLPFILE_DoReadHlpFile
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call fcn.004020c0
jmp 0x409506
mov dword [ebp - 0xcc], 0
xor ebx, ebx
mov dword [ebp - 0xc8], 0xffffffff
mov dword [ebp - 0xc0], 0xc
jmp 0x40902a
mov eax, 1
xor edx, edx
mov dword [edi + 0xa4], eax
mov dword [edi + 0xa8], edx
test byte [0x415010], 1
je 0x4073dd
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 fcn.004020c0
jmp 0x4073dd
mov edx, ebx
mov eax, 1
jmp 0x408710
mov esi, dword [ebp - 0xac]
mov ebx, dword [ebp - 0xa8]
sub ebx, esi
mov dword [esp], ebx
mov eax, dword [ebp - 0xc4]
call eax
mov dword [edi + 0x28], eax
test eax, eax
je 0x409591
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.ucrtbase.dll_memcpy
jmp 0x409591
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 fcn.004020c0
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
jmp 0x40924d
mov esi, dword [ebp - 0xac]
mov ebx, dword [ebp - 0xa8]
sub ebx, esi
mov dword [esp], ebx
mov eax, dword [ebp - 0xc4]
call eax
mov dword [edi + 0x20], eax
test eax, eax
je 0x4073dd
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.ucrtbase.dll_memcpy
jmp 0x4072bb
mov word [edi + 0x4c], cx
mov dword [edi + 0x4e], 0x10004
mov dword [edi + 0x52], 0x40001000
jmp 0x40766a
mov dword [esp], 0
mov eax, dword [ebp - 0xc4]
call eax
mov dword [edi + 0x70], eax
test eax, eax
je 0x4073dd
mov dword [edi + 0x74], eax
jmp 0x407d58
cmp word [ebp - 0xc8], 4
mov ebx, edx
mov eax, 2
ja 0x408705
jmp 0x4098b4
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 fcn.004020c0
jmp 0x408e51
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 fcn.004020c0
jmp 0x4095c1
mov ebx, dword [ebp - 0xd8]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], ebx
call sub.ucrtbase.dll_memcpy
jmp 0x40998b
mov dword [esp + 0xc], str.filesize2_n
mov dword [esp + 8], str.HLPFILE_ReadFileToBuffer
mov dword [esp + 4], 0x415010
mov dword [esp], 2
call fcn.004020c0
jmp 0x40757f
movzx eax, byte [ebx + 0x24]
movzx edx, byte [ebx + 0x23]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [esp + 0x2c], eax
movzx eax, byte [ebx + 0x22]
movzx edx, byte [ebx + 0x21]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [esp + 0x28], eax
movzx eax, byte [ebx + 0x20]
movzx edx, byte [ebx + 0x1f]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0x1d]
mov ecx, eax
movzx eax, byte [ebx + 0x1e]
shl ecx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add ecx, eax
mov dword [esp + 0x24], ecx
movzx eax, byte [ebx + 0x1c]
movzx edx, byte [ebx + 0x1b]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0x19]
mov ecx, eax
movzx eax, byte [ebx + 0x1a]
shl ecx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add ecx, eax
mov dword [esp + 0x20], ecx
movzx eax, byte [ebx + 0x18]
movzx edx, byte [ebx + 0x17]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0x15]
mov ecx, eax
movzx eax, byte [ebx + 0x16]
shl ecx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add ecx, eax
mov dword [esp + 0x1c], ecx
movzx eax, byte [ebx + 0x14]
movzx edx, byte [ebx + 0x13]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0x11]
mov ecx, eax
movzx eax, byte [ebx + 0x12]
shl ecx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add ecx, eax
mov dword [esp + 0x18], ecx
movzx eax, byte [ebx + 0x10]
movzx edx, byte [ebx + 0xf]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 0xd]
mov ecx, eax
movzx eax, byte [ebx + 0xe]
shl ecx, 0x10
shl eax, 8
add eax, edx
movzx eax, ax
add ecx, eax
mov dword [esp + 0x14], ecx
movzx eax, byte [ebx + 0xc]
movzx edx, byte [ebx + 0xb]
shl eax, 8
add eax, edx
movzx edx, byte [ebx + 9]
mov ecx, eax
movzx eax, byte [ebx + 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
mov dword [esp + 4], 0x415010
mov dword [esp], 3
shl eax, 8
add eax, edx
movzx eax, ax
add ecx, eax
mov dword [esp + 0x10], ecx
call fcn.004020c0
jmp 0x4084ff
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 fcn.004020c0
jmp 0x409585
mov eax, dword [ebp - 0xf0]
movzx ecx, word [esi + eax - 2]
mov esi, dword [ebp - 0xf8]
mov word [esi + eax - 2], cx
mov ecx, dword [ebx + 0x88]
jmp 0x4083e5
mov ebx, edx
jmp 0x408705
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
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 fcn.004020c0
jmp 0x40858b
mov edi, dword [ebp - 0xc0]
jmp 0x4073dd
mov dword [ebp - 0xb8], eax
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov dword [esp], ecx
call ebx
mov eax, dword [ebp - 0xb8]
mov dword [esp], eax
call ebx
jmp 0x40846f
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov dword [esp], eax
call ebx
mov dword [esp], esi
call ebx
jmp 0x407bd2
mov ebx, edx
jmp 0x408687