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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffc2c
push edi
push 0x10000
push 0x40
call fcn.00401030
mov dword [ebp - 0x3cc], eax
push dword [ebp - 0x3cc]
call sub.kernel32.dll_GlobalLock
mov edi, dword [ebp - 0x3cc]
xor eax, eax
mov dword [ebp - 0x3c4], eax
mov dword [ebp - 0x3c8], eax
jmp 0x423844
inc dword [ebp - 0x3c4]
lea eax, [ebp - 0x380]
push eax
push dword [ebp - 0x3c4]
call fcn.004011b7
push 0x45cb12
push 0x280
lea eax, [ebp - 0x280]
push eax
push 0x44ef8c
lea eax, [ebp - 0x380]
push eax
push str.StringTable
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
je 0x423835
mov dword [ebp - 0x3c8], 0
lea eax, [ebp - 0x380]
push eax
lea eax, [ebp - 0x280]
push eax
call fcn.0040cd48
lea eax, [ebp - 0x3c0]
push eax
lea eax, [ebp - 0x280]
push eax
call fcn.0040cd48
lea eax, [ebp - 0x3c0]
push eax
call fcn.00401168
or eax, eax
je 0x423844
cmp byte [ebp - 0x380], 0
je 0x423844
push str.define
push edi
call fcn.00420b04
add edi, eax
mov al, 0x20
stosb byte es:[edi], al
lea eax, [ebp - 0x380]
push eax
push edi
call fcn.00420b04
add edi, eax
sub eax, 0x1f
neg eax
cmp eax, 0x80000000
jbe 0x42380f
xor eax, eax
xor edx, edx
idiv dword [0x44f3a5]
inc eax
mov ecx, eax
mov al, 9
rep stosb byte es:[edi], al
lea eax, [ebp - 0x3c0]
push eax
push edi
call fcn.00420b04
add edi, eax
mov ax, 0xa0d
stosw word es:[edi], ax
jmp 0x423844
inc dword [ebp - 0x3c8]
cmp dword [ebp - 0x3c8], 0xa
ja 0x423854
cmp dword [ebp - 0x3c4], 0x200
jb 0x423752
push str.STRINGTABLE
push edi
call fcn.00420b04
add edi, eax
mov al, 0x20
stosb byte es:[edi], al
push str.DISCARDABLE
push edi
call fcn.00420b04
add edi, eax
mov ax, 0xa0d
stosw word es:[edi], ax
push str.BEGIN
push edi
call fcn.00420b04
add edi, eax
mov ax, 0xa0d
stosw word es:[edi], ax
xor eax, eax
mov dword [ebp - 0x3c4], eax
mov dword [ebp - 0x3c8], eax
jmp 0x423981
inc dword [ebp - 0x3c4]
lea eax, [ebp - 0x380]
push eax
push dword [ebp - 0x3c4]
call fcn.004011b7
push 0x45cb12
push 0x280
lea eax, [ebp - 0x280]
push eax
push 0x44ef8c
lea eax, [ebp - 0x380]
push eax
push str.StringTable
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
je 0x423972
mov dword [ebp - 0x3c8], 0
mov ax, 0x2020
stosw word es:[edi], ax
lea eax, [ebp - 0x380]
push eax
lea eax, [ebp - 0x280]
push eax
call fcn.0040cd48
lea eax, [ebp - 0x3c0]
push eax
lea eax, [ebp - 0x280]
push eax
call fcn.0040cd48
cmp byte [ebp - 0x380], 0
je 0x42392b
lea eax, [ebp - 0x380]
jmp 0x423931
lea eax, [ebp - 0x3c0]
push eax
push edi
call fcn.00420b04
add edi, eax
sub eax, 0x19
neg eax
cmp eax, 0
jge 0x423946
xor eax, eax
xor edx, edx
idiv dword [0x44f3a5]
inc eax
mov ecx, eax
mov al, 9
rep stosb byte es:[edi], al
mov al, 0x22
stosb byte es:[edi], al
lea eax, [ebp - 0x280]
push eax
push edi
call fcn.00420b04
add edi, eax
mov al, 0x22
stosb byte es:[edi], al
mov ax, 0xa0d
stosw word es:[edi], ax
jmp 0x423981
inc dword [ebp - 0x3c8]
cmp dword [ebp - 0x3c8], 0xa
ja 0x423991
cmp dword [ebp - 0x3c4], 0x200
jb 0x42389d
push 0x44f092
push edi
call fcn.00420b04
add edi, eax
mov ax, 0xa0d
stosw word es:[edi], ax
cmp dword [ebp + 8], 0
je 0x4239cb
push 2
call fcn.0042ec60
call fcn.004305a1
call fcn.0042ed4b
push dword [ebp - 0x3cc]
call fcn.00430605
jmp 0x423b0f
mov word [ebp - 0x280], 0x30
push 0x45cb12
push 0x280
lea eax, [ebp - 0x280]
push eax
push 0x44ef8c
lea eax, [ebp - 0x280]
push eax
push str.MakeFiles
call sub.kernel32.dll_GetPrivateProfileStringA
lea eax, [ebp - 0x280]
push eax
call fcn.004010ef
sub eax, 4
mov byte ss:[eax + ebp - 0x280], 0
push 0x45de5e
lea eax, [ebp - 0x380]
push eax
call fcn.004010a7
push str.Res_
lea eax, [ebp - 0x380]
push eax
call fcn.004010c5
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x380]
push eax
call fcn.004010c5
push str.Str.rc
lea eax, [ebp - 0x380]
push eax
call fcn.004010c5
lea eax, [ebp - 0x380]
push eax
call sub.kernel32.dll_GetFileAttributesA
cmp eax, 0xffffffff
jne 0x423a86
push 0x800000
push 0x45cb12
push 0xffffffffffffffff
push 0x478
push dword [0x4538b0]
call fcn.00408423
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
lea eax, [ebp - 0x380]
push eax
call sub.kernel32.dll_CreateFileA
cmp eax, 0xffffffff
je 0x423b0f
mov dword [ebp - 0x3d0], eax
push dword [ebp - 0x3cc]
call fcn.004010ef
mov dword [ebp - 0x3d4], eax
push 0
lea eax, [ebp - 0x3d4]
push eax
push dword [ebp - 0x3d4]
push dword [ebp - 0x3cc]
push dword [ebp - 0x3d0]
call sub.kernel32.dll_WriteFile
push dword [ebp - 0x3d0]
call sub.kernel32.dll_CloseHandle
inc dword [0x44f339]
push 0x2000
lea eax, [ebp - 0x380]
push eax
push 5
push 0x48e
push dword [0x4538b0]
call fcn.00408423
push dword [ebp - 0x3cc]
call sub.kernel32.dll_GlobalUnlock
push dword [ebp - 0x3cc]
call sub.kernel32.dll_GlobalFree
pop edi
leave
ret 4