Function at 0x426272
Capabilities:
Check if file exists
Get file attributes
Read .ini file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffcf0
push edi
push 0x4000
push 0x40
call fcn.00401030
mov dword [ebp - 0x308], eax
push dword [ebp - 0x308]
call sub.kernel32.dll_GlobalLock
mov edi, dword [ebp - 0x308]
push str.define
push edi
call fcn.00420b04
add edi, eax
mov al, 0x20
stosb byte es:[edi], al
push 0x45cb12
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push 0x44b4c3
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
jne 0x4262fd
push 0x45cc16
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push 0x44b4c3
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
lea eax, [ebp - 0x300]
push eax
push edi
call fcn.00420b04
add edi, eax
mov al, 0x20
stosb byte es:[edi], al
push 0x45cb12
push 1
push 0x44b4c7
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileIntA
or eax, eax
jne 0x42633f
push 0x45cc16
push 1
push 0x44b4c7
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileIntA
push edi
push eax
call fcn.004011b7
push edi
call fcn.004010ef
add edi, eax
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
push 0x45cb12
push 0x80
push edi
push 0x44ef8c
push 0x44b4c3
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
jne 0x426396
push 0x45cc16
push 0x80
push edi
push 0x44ef8c
push 0x44b4c3
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
push edi
call fcn.004010ef
add edi, eax
mov al, 0x20
stosb byte es:[edi], al
push str.VERSIONINFO
push edi
call fcn.00420b04
add edi, eax
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
push str.FILEVERSION
push edi
call fcn.00420b04
add edi, eax
mov al, 0x20
stosb byte es:[edi], al
push 0x45cb12
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push 0x451a7c
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
jne 0x426412
push 0x45cc16
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push 0x451a7c
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
lea edx, [ebp - 0x300]
mov al, byte [edx]
or al, al
jne 0x426426
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
jmp 0x426430
cmp al, 0x2e
jne 0x42642c
mov al, 0x2c
stosb byte es:[edi], al
inc edx
jmp 0x426418
push str.PRODUCTVERSION
push edi
call fcn.00420b04
add edi, eax
mov al, 0x20
stosb byte es:[edi], al
push 0x45cb12
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push 0x451a7f
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
jne 0x42648e
push 0x45cc16
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push 0x451a7f
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
lea edx, [ebp - 0x300]
mov al, byte [edx]
or al, al
jne 0x4264a2
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
jmp 0x4264ac
cmp al, 0x2e
jne 0x4264a8
mov al, 0x2c
stosb byte es:[edi], al
inc edx
jmp 0x426494
push str.FILEOS
push edi
call fcn.00420b04
add edi, eax
mov al, 0x20
stosb byte es:[edi], al
push 0x45cb12
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push str.VerOS
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
jne 0x42650a
push 0x45cc16
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push str.VerOS
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
je 0x42651d
lea eax, [ebp - 0x300]
push eax
push edi
call fcn.00420b04
add edi, eax
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
push str.FILETYPE
push edi
call fcn.00420b04
add edi, eax
mov al, 0x20
stosb byte es:[edi], al
push 0x45cb12
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push str.VerFT
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
jne 0x426581
push 0x45cc16
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push str.VerFT
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
je 0x426594
lea eax, [ebp - 0x300]
push eax
push edi
call fcn.00420b04
add edi, eax
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
push str.BEGIN
push edi
call fcn.00420b04
add edi, eax
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
mov al, 0x20
stosb byte es:[edi], al
stosb byte es:[edi], al
push str.BLOCK
push edi
call fcn.00420b04
add edi, eax
mov al, 0x20
stosb byte es:[edi], al
mov al, 0x22
stosb byte es:[edi], al
push str.StringFileInfo
push edi
call fcn.00420b04
add edi, eax
mov al, 0x22
stosb byte es:[edi], al
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
mov al, 0x20
stosb byte es:[edi], al
stosb byte es:[edi], al
push str.BEGIN
push edi
call fcn.00420b04
add edi, eax
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
mov al, 0x20
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
push str.BLOCK
push edi
call fcn.00420b04
add edi, eax
mov al, 0x20
stosb byte es:[edi], al
mov al, 0x22
stosb byte es:[edi], al
push 0x45cb12
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push str.VerLNG
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
jne 0x426658
push 0x45cc16
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push str.VerLNG
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
je 0x42666b
lea eax, [ebp - 0x2fa]
push eax
push edi
call fcn.00420b04
add edi, eax
push 0x45cb12
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push str.VerCHS
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
jne 0x4266b9
push 0x45cc16
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push str.VerCHS
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
je 0x4266cc
lea eax, [ebp - 0x2fa]
push eax
push edi
call fcn.00420b04
add edi, eax
mov al, 0x22
stosb byte es:[edi], al
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
mov al, 0x20
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
push str.BEGIN
push edi
call fcn.00420b04
add edi, eax
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
mov dword [ebp - 0x304], 1
jmp 0x4267d3
lea eax, [ebp - 0x200]
push eax
push dword [ebp - 0x304]
call fcn.004011b7
push 0x45cc16
push 0x80
push 0x45ca0e
push 0x44ef8c
lea eax, [ebp - 0x200]
push eax
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
jne 0x42673d
jmp 0x4267e0
lea eax, [ebp - 0x200]
push eax
push 0x45ca0e
call fcn.0040cd48
push 0x45cb12
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
lea eax, [ebp - 0x200]
push eax
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
je 0x4267cd
mov al, 0x20
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
push str.VALUE
push edi
call fcn.00420b04
add edi, eax
mov al, 0x20
stosb byte es:[edi], al
mov al, 0x22
stosb byte es:[edi], al
lea eax, [ebp - 0x200]
push eax
push edi
call fcn.00420b04
add edi, eax
mov al, 0x22
stosb byte es:[edi], al
mov al, 0x2c
stosb byte es:[edi], al
mov al, 0x20
stosb byte es:[edi], al
mov al, 0x22
stosb byte es:[edi], al
lea eax, [ebp - 0x300]
push eax
push edi
call fcn.00420b04
add edi, eax
mov al, 0x5c
stosb byte es:[edi], al
mov al, 0x30
stosb byte es:[edi], al
mov al, 0x22
stosb byte es:[edi], al
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
inc dword [ebp - 0x304]
cmp dword [ebp - 0x304], 0x20
jbe 0x4266fd
mov al, 0x20
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
push 0x44f092
push edi
call fcn.00420b04
add edi, eax
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
mov al, 0x20
stosb byte es:[edi], al
stosb byte es:[edi], al
push 0x44f092
push edi
call fcn.00420b04
add edi, eax
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
mov al, 0x20
stosb byte es:[edi], al
stosb byte es:[edi], al
push str.BLOCK
push edi
call fcn.00420b04
add edi, eax
mov al, 0x20
stosb byte es:[edi], al
mov al, 0x22
stosb byte es:[edi], al
push str.VarFileInfo
push edi
call fcn.00420b04
add edi, eax
mov al, 0x22
stosb byte es:[edi], al
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
mov al, 0x20
stosb byte es:[edi], al
stosb byte es:[edi], al
push str.BEGIN
push edi
call fcn.00420b04
add edi, eax
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
mov al, 0x20
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
push str.VALUE
push edi
call fcn.00420b04
add edi, eax
mov al, 0x20
stosb byte es:[edi], al
mov al, 0x22
stosb byte es:[edi], al
push str.Translation
push edi
call fcn.00420b04
add edi, eax
mov al, 0x22
stosb byte es:[edi], al
mov al, 0x2c
stosb byte es:[edi], al
mov al, 0x20
stosb byte es:[edi], al
mov al, 0x30
stosb byte es:[edi], al
mov al, 0x78
stosb byte es:[edi], al
push 0x45cb12
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push str.VerLNG
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
jne 0x4268d7
push 0x45cc16
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push str.VerLNG
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
je 0x4268ea
lea eax, [ebp - 0x2fa]
push eax
push edi
call fcn.00420b04
add edi, eax
mov al, 0x2c
stosb byte es:[edi], al
mov al, 0x20
stosb byte es:[edi], al
mov al, 0x30
stosb byte es:[edi], al
mov al, 0x78
stosb byte es:[edi], al
push 0x45cb12
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push str.VerCHS
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
jne 0x426944
push 0x45cc16
push 0x80
lea eax, [ebp - 0x300]
push eax
push 0x44ef8c
push str.VerCHS
push str.VerInf
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
je 0x426957
lea eax, [ebp - 0x2fa]
push eax
push edi
call fcn.00420b04
add edi, eax
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
mov al, 0x20
stosb byte es:[edi], al
stosb byte es:[edi], al
push 0x44f092
push edi
call fcn.00420b04
add edi, eax
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
push 0x44f092
push edi
call fcn.00420b04
add edi, eax
mov al, 0xd
stosb byte es:[edi], al
mov al, 0xa
stosb byte es:[edi], al
mov al, 0
stosb byte es:[edi], al
cmp dword [ebp + 8], 0
je 0x4269b1
push 2
call fcn.0042ec60
call fcn.004305a1
call fcn.0042ed4b
push dword [ebp - 0x308]
call fcn.00430605
jmp 0x426b6b
push 0x45cb12
push 0x200
lea eax, [ebp - 0x200]
push eax
push 0x44ef8c
push str.Ver.rc
push 0x44f7f1
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
jne 0x426a27
mov dword [ebp - 0x200], 0x31
push 0x45cb12
lea eax, [ebp - 0x200]
push eax
push str.Ver.rc
push 0x44f7f1
call sub.kernel32.dll_WritePrivateProfileStringA
mov dword [ebp - 0x200], 0
push 0x4000000
lea eax, [ebp - 0x200]
push eax
push 2
push 0x47b
push dword [0x4538b0]
call fcn.00408423
mov word [ebp - 0x200], 0x30
push 0x45cb12
push 0x200
lea eax, [ebp - 0x200]
push eax
push 0x44ef8c
lea eax, [ebp - 0x200]
push eax
push str.MakeFiles
call sub.kernel32.dll_GetPrivateProfileStringA
lea eax, [ebp - 0x200]
push eax
call fcn.004010ef
sub eax, 4
mov byte ss:[eax + ebp - 0x200], 0
push 0x45de5e
lea eax, [ebp - 0x300]
push eax
call fcn.004010a7
push str.Res_
lea eax, [ebp - 0x300]
push eax
call fcn.004010c5
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x300]
push eax
call fcn.004010c5
push str.Ver.rc
lea eax, [ebp - 0x300]
push eax
call fcn.004010c5
lea eax, [ebp - 0x300]
push eax
call sub.kernel32.dll_GetFileAttributesA
cmp eax, 0xffffffff
jne 0x426ae2
push 0x800000
push 0x45cb12
push 0xfffffffffffffffd
push 0x478
push dword [0x4538b0]
call fcn.00408423
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
lea eax, [ebp - 0x300]
push eax
call sub.kernel32.dll_CreateFileA
cmp eax, 0xffffffff
je 0x426b6b
mov dword [ebp - 0x30c], eax
push dword [ebp - 0x308]
call fcn.004010ef
mov dword [ebp - 0x310], eax
push 0
lea eax, [ebp - 0x310]
push eax
push dword [ebp - 0x310]
push dword [ebp - 0x308]
push dword [ebp - 0x30c]
call sub.kernel32.dll_WriteFile
push dword [ebp - 0x30c]
call sub.kernel32.dll_CloseHandle
inc dword [0x44f339]
push 0x2000
lea eax, [ebp - 0x300]
push eax
push 3
push 0x48e
push dword [0x4538b0]
call fcn.00408423
push dword [ebp - 0x308]
call sub.kernel32.dll_GlobalUnlock
push dword [ebp - 0x308]
call sub.kernel32.dll_GlobalFree
pop edi
leave
ret 4