Function at 0x40be73
Capabilities:
Read file on windows
Resolve path using msvcrt

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
call fcn.00412aaa
mov dword [0x471490], eax
call fcn.00412aaa
mov dword [0x4714b0], eax
call fcn.00412aaa
mov dword [0x4714a0], eax
call fcn.00412aaa
mov dword [0x4714c0], eax
call fcn.00412aaa
mov dword [0x4714d0], eax
mov dword [ebp - 0x50], 0
call fcn.0040bd6e
call sub.msvcrt.dll___p__pgmptr
mov dword [esp + 8], 0
mov dword [esp + 4], 0x8000
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll__open
mov dword [0x471480], eax
test eax, eax
jns 0x40bee7
call fcn.00408758
mov dword [esp + 8], 0
mov dword [esp + 4], 0x5a00
mov eax, dword [0x471480]
mov dword [esp], eax
call sub.msvcrt.dll__lseek
test eax, eax
jns 0x40bf14
mov dword [esp], str.Seek_on_setup
call fcn.00401520
mov dword [esp + 8], 0x10
lea eax, [ebp - 0x48]
mov dword [esp + 4], eax
mov eax, dword [0x471480]
mov dword [esp], eax
call sub.msvcrt.dll__read
mov ebx, 0
movzx eax, byte [ebp + ebx - 0x48]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4633bd
lea eax, [ebx + ebx + 0x4714e0]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
inc ebx
cmp ebx, 0x10
jne 0x40bf35
mov dword [ebp - 0x4c], 0x32000
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x4c]
mov dword [esp + 4], eax
mov eax, dword [0x471480]
mov dword [esp], eax
call sub.msvcrt.dll__lseek
test eax, eax
js 0x40c0d5
mov dword [esp + 8], 0x14
lea ebx, [ebp - 0x38]
mov dword [esp + 4], ebx
mov eax, dword [0x471480]
mov dword [esp], eax
call sub.msvcrt.dll__read
cmp eax, 0x14
jne 0x40c0d5
mov esi, ebx
mov edi, 0x4563b0
mov ecx, 8
cld
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x40c0c9
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov eax, dword [0x471480]
mov dword [esp], eax
call sub.msvcrt.dll__lseek
mov esi, eax
mov eax, dword [ebp - 0x28]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
mov dword [esp], str.setuplen___lu__headersize___lu
call fcn.004013f2
mov eax, dword [ebp - 0x28]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
mov eax, dword [0x471480]
mov dword [esp], eax
call fcn.0040bc5d
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov eax, dword [0x471480]
mov dword [esp], eax
call sub.msvcrt.dll__lseek
mov eax, dword [0x471480]
mov dword [esp], eax
call sub.msvcrt.dll__dup
mov dword [esp + 4], 0x4628e5
mov dword [esp], eax
call fcn.00415978
mov dword [0x4743a0], eax
mov dword [esp], 0x10
call fcn.004131ff
mov dword [0x471470], eax
mov dword [eax], str.setup.exe
mov eax, dword [0x471470]
mov dword [eax + 8], str.SETUP
mov ebx, dword [0x471470]
call sub.msvcrt.dll___p__pgmptr
mov eax, dword [eax]
mov dword [ebx + 4], eax
mov edx, dword [ebp - 0x30]
mov eax, dword [0x471470]
mov dword [eax + 0xc], edx
mov eax, dword [0x471470]
mov dword [esp + 4], eax
mov eax, dword [0x4714d0]
mov dword [esp], eax
call fcn.00412bb1
call fcn.0040af5b
mov dword [ebp - 0x50], eax
mov dword [esp + 4], 1
mov dword [esp], 0x4633f5
call fcn.00403c52
jmp 0x40c0d5
add dword [ebp - 0x4c], 0x400
jmp 0x40bf62
cmp dword [ebp - 0x50], 0
jne 0x40c172
mov eax, dword [0x471480]
mov dword [esp], eax
call sub.msvcrt.dll__close
mov dword [esp], str.manifest
call fcn.0040a702
mov dword [ebp - 0x50], eax
call sub.msvcrt.dll___p__pgmptr
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll__strdup
mov ebx, eax
mov dword [esp + 4], 0x5c
mov dword [esp], eax
call sub.msvcrt.dll_strrchr
test eax, eax
je 0x40c160
mov byte [eax], 0
mov dword [esp + 4], 0x5c
mov dword [esp], ebx
call sub.msvcrt.dll_strrchr
mov esi, eax
test eax, eax
je 0x40c160
mov dword [esp + 4], str._resources
mov dword [esp], eax
call sub.msvcrt.dll__stricmp
test eax, eax
jne 0x40c160
mov byte [esi], 0
mov dword [esp + 4], ebx
mov dword [esp], 0x462d8d
call fcn.00403954
cmp dword [ebp - 0x50], 0
jne 0x40c172
mov dword [esp], str.Cant_find_the_manifest
call fcn.00401520
mov dword [esp + 8], 0x471450
mov dword [esp + 4], 0x462e14
mov eax, dword [ebp - 0x50]
mov dword [esp], eax
call fcn.00403d1d
mov dword [esp + 4], 0x4714e0
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40c1ad
mov dword [esp], str.Invalid_manifest_signature
call fcn.00401520
call fcn.0040a604
mov ebx, eax
test eax, eax
je 0x40c1bd
cmp byte [eax], 0x5b
je 0x40c1c9
mov dword [esp], str.Invalid_manifest_format
call fcn.00401520
mov dword [esp + 4], 0x46345c
mov dword [esp], ebx
call sub.msvcrt.dll_strtok
mov ebx, eax
mov dword [esp + 4], str.Resources
mov dword [esp], eax
call sub.msvcrt.dll__stricmp
test eax, eax
jne 0x40c1f6
call fcn.0040b74e
jmp 0x40c1ad
mov dword [esp + 4], 0x463469
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
je 0x40c2fa
mov dword [esp + 4], str.Variables
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
jne 0x40c229
call fcn.0040b04c
jmp 0x40c1ad
mov dword [esp + 4], str.Shortcuts
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
jne 0x40c247
call fcn.0040afa9
jmp 0x40c1ad
mov dword [esp + 4], str.Features
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
jne 0x40c265
call fcn.0040b109
jmp 0x40c1ad
mov dword [esp + 4], str.Components
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
jne 0x40c283
call fcn.0040b9d5
jmp 0x40c1ad
mov dword [esp + 4], str.Folders
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
jne 0x40c2a1
call fcn.0040bbf7
jmp 0x40c1ad
mov dword [esp + 4], str.Files
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
jne 0x40c2bf
call fcn.0040bc2a
jmp 0x40c1ad
mov dword [esp + 4], str.Registry
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
jne 0x40c2dd
call fcn.0040b022
jmp 0x40c1ad
mov dword [esp + 4], ebx
mov dword [esp], str.Unknown_line_in_manifest:
call fcn.004130c0
mov dword [esp], eax
call fcn.00401520
jmp 0x40c1ad
mov dword [esp], str.OrderingURL
call fcn.00403a4f
test eax, eax
jne 0x40c32e
mov dword [esp], str.HideOrderingURL
call fcn.00403c85
test al, al
jne 0x40c32e
mov dword [esp + 4], str.http:__www.htsoft.com
mov dword [esp], str.OrderingURL
call fcn.00403954
call sub.msvcrt.dll___p__pgmptr
mov dword [esp + 8], 0
mov dword [esp + 4], 0x8000
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll__open
mov esi, eax
test eax, eax
js 0x40c400
mov dword [esp + 8], 2
mov dword [esp + 4], 0xfffffffc
mov dword [esp], eax
call sub.msvcrt.dll__lseek
test eax, eax
js 0x40c3f8
mov dword [esp + 8], 4
lea edi, [ebp - 0x48]
mov dword [esp + 4], edi
mov dword [esp], esi
call sub.msvcrt.dll__read
cmp eax, 4
jne 0x40c3f8
movzx ebx, byte [ebp - 0x48]
movzx eax, byte [ebp - 0x47]
shl eax, 8
add ebx, eax
movzx eax, byte [ebp - 0x46]
movzx edx, byte [ebp - 0x45]
shl edx, 8
add eax, edx
not eax
and eax, 0xffff
cmp eax, ebx
jne 0x40c3f8
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x4634f9
mov dword [esp], edi
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], edi
mov dword [esp], str.ReferralID
call fcn.00403954
mov dword [esp], str._OrderingURL__referrer_ReferralID_
call fcn.00403af3
mov dword [esp + 4], eax
mov dword [esp], str.OrderingURL
call fcn.00403954
mov dword [esp], esi
call sub.msvcrt.dll__close
call fcn.00408c92
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret