Function at 0x4099a7
Capabilities:
Check if file exists
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff00
push 0x45d12a
call fcn.0040cc1b
push 0x45d12a
push 0x45cc16
call fcn.004010a7
push str.RadASM.ini
push 0x45cc16
call fcn.004010c5
push 0x45cc16
call sub.kernel32.dll_GetFileAttributesA
cmp eax, 0xffffffff
je 0x40a3f8
push 0x45cc16
push 0x104
push 0x45ca0e
push 0x44ef8c
push 0x44f3f9
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
je 0x409a3f
push 0x45ca0e
push 0x45d12a
call fcn.004010a7
push 0x45d12a
push 0x45cc16
call fcn.004010a7
push str.RadASM.ini
push 0x45cc16
call fcn.004010c5
push 0x45cc16
push 0
push str.Version
push str.Version
call sub.kernel32.dll_GetPrivateProfileIntA
cmp eax, 0x8a7
jae 0x409b0d
push ebx
xor ebx, ebx
jmp 0x409b03
mov byte [0x46ba3e], 0
lea eax, [ebp - 0x100]
push eax
push ebx
call fcn.004011b7
push 0x45cc16
push 0x4000
push 0x46ba3e
push 0x44ef8c
lea eax, [ebp - 0x100]
push eax
push str.Color
call sub.kernel32.dll_GetPrivateProfileStringA
cmp byte [0x46ba3e], 0
je 0x409b02
mov edx, 0x46ba3e
jmp 0x409ab2
inc edx
cmp byte [edx], 0x2c
jne 0x409ab1
mov ecx, 0x45ca0e
mov al, byte [edx]
mov byte [ecx], al
inc edx
inc ecx
cmp byte [edx], 0x2c
je 0x409ac9
jmp 0x409abc
mov byte [ecx], 0
xor ecx, ecx
jmp 0x409ae2
push ecx
push 0x45ca0e
push 0x46ba3e
call fcn.004010c5
pop ecx
inc ecx
cmp ecx, 0x14
jb 0x409ad0
push 0x45cc16
push 0x46ba3e
lea eax, [ebp - 0x100]
push eax
push str.Color
call sub.kernel32.dll_WritePrivateProfileStringA
inc ebx
cmp ebx, 0x10
jb 0x409a68
pop ebx
push 0x45ca0e
push dword [0x44f2e9]
call fcn.004011b7
push 0x45cc16
push 0x45ca0e
push str.Version
push str.Version
call sub.kernel32.dll_WritePrivateProfileStringA
push 0x45cc16
push 0x104
push 0x45ca0e
push 0x44ef8c
push str.LANGUAGE
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
je 0x409b8c
push 0x45d12a
push 0x45ce1e
call fcn.004010a7
push str.Language_
push 0x45ce1e
call fcn.004010c5
push 0x45ca0e
push 0x45ce1e
call fcn.004010c5
jmp 0x409b93
mov byte [0x45ce1e], 0
push 0x45cc16
push 0
push str.Maximized
push str.Window
call sub.kernel32.dll_GetPrivateProfileIntA
and eax, 1
mov dword [0x45f8a2], eax
push 0x45cc16
push 0
push str.TopMost
push str.Window
call sub.kernel32.dll_GetPrivateProfileIntA
and eax, 1
mov dword [0x45f8a6], eax
push 0x45cc16
push 0
push str.SingleInstance
push str.Window
call sub.kernel32.dll_GetPrivateProfileIntA
and eax, 1
mov dword [0x45c4ac], eax
push 0x45cc16
push 2
push 0x44fc2c
push str.Window
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x45f896], eax
push 0x45cc16
push 5
push str.Left
push str.Window
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x45f892], eax
push 0x45cc16
push 0x254
push str.Height
push str.Window
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x45f89e], eax
push 0x45cc16
push 0x316
push str.Width
push str.Window
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x45f89a], eax
push 0x45cc16
push 1
push str.ToolBar
push str.Window
call sub.kernel32.dll_GetPrivateProfileIntA
and eax, 1
mov dword [0x45f8aa], eax
push 0x45cc16
push 1
push str.StatusBar
push str.Window
call sub.kernel32.dll_GetPrivateProfileIntA
and eax, 1
mov dword [0x45f8ae], eax
push 0x45cc16
push 0x104
push 0x45ca0e
push str.200_150
push str.CCList
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
push 0x45ca0e
call fcn.00401168
cmp eax, 0x258
ja 0x409cd4
cmp eax, 0x64
jae 0x409cd9
mov eax, 0x64
mov dword [0x44fb41], eax
lea eax, [ebp - 0x100]
push eax
push 0x45ca0e
call fcn.0040cd48
push 0x45ca0e
call fcn.00401168
cmp eax, 0x258
ja 0x409d05
cmp eax, 0x64
jae 0x409d0a
mov eax, 0x64
mov dword [0x44fb45], eax
push 0x45cc16
push 0x40
push 0x45c6f2
push str.0_1_2_0_30_30_100_100_150_200
push str.ToolBox
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
push 0x45cc16
push 0x40
push 0x45c732
push str.0_1_2_0_30_30_100_100_150_200
push str.Project
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
push 0x45cc16
push 0x40
push 0x45c772
push str.0_1_2_0_30_30_100_100_150_200
push str.Output
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
push 0x45cc16
push 0x40
push 0x45c7b2
push str.0_1_2_0_30_30_100_100_150_200
push str.Property
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
push 0x45cc16
push 0x40
push 0x45c7f2
push str.0_1_2_0_30_30_100_100_150_200
push str.TabTool
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
push 0x45cc16
push 0x40
push 0x45c832
push str.0_1_2_0_30_30_100_100_150_200
push str.InfoTool
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
push 0x45cc16
push 0x40
push 0x45c872
push str.0_1_2_0_30_30_100_100_150_200
push 0x44fbe2
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
push 0x45cc16
push 0x40
push 0x45c8b2
push str.0_1_2_0_30_30_100_100_150_200
push 0x44fbe8
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
push 0x45cc16
push 0x40
push 0x45c8f2
push str.1_5_3_4_2_6_7_8
push str.ToolClipping
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
push 0x45c8f2
call fcn.004010ef
cmp eax, 9
jne 0x409e54
mov dword [0x45c8fb], 0x372c362c
mov dword [0x45c8ff], 0x382c
jmp 0x409e68
cmp eax, 0xf
je 0x409e68
push str.1_5_3_4_2_6_7_8
push 0x45c8f2
call fcn.004010a7
push 0x45cc16
push 1
push str.Divider
push str.Window
call sub.kernel32.dll_GetPrivateProfileIntA
and eax, 1
mov dword [0x45c932], eax
push 0x45cc16
push 1
push str.MultiLine
push str.Window
call sub.kernel32.dll_GetPrivateProfileIntA
and eax, 1
mov dword [0x45c936], eax
push 0x45cc16
push 1
push str.RightCaption
push str.Window
call sub.kernel32.dll_GetPrivateProfileIntA
and eax, 1
mov dword [0x45c93a], eax
push 0x45cc16
push 1
push str.AutoLoad
push str.Window
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x4539ec], eax
push 0x45cc16
push 0x104
push 0x45ca0e
push 0x44ef8c
push str.Font
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
je 0x409f88
push 0x481612
push 0x45ca0e
call fcn.0040cd48
push 0x45ca0e
call fcn.00401168
mov dword [0x4815f6], eax
lea eax, [ebp - 0x100]
push eax
push 0x45ca0e
call fcn.0040cd48
push 0x45ca0e
call fcn.00401168
mov byte [0x48160a], al
lea eax, [ebp - 0x100]
push eax
push 0x45ca0e
call fcn.0040cd48
push 0x45ca0e
call fcn.00401168
mov dword [0x481606], eax
lea eax, [ebp - 0x100]
push eax
push 0x45ca0e
call fcn.0040cd48
push 0x45ca0e
call fcn.00401168
mov byte [0x48160d], al
jmp 0x409fb2
push str.MS_Sans_Serif
push 0x481612
call fcn.004010a7
mov dword [0x4815f6], 0xfffffff5
mov dword [0x481606], 0x190
mov byte [0x48160d], 0
push 0x45cc16
push 0x20
push str.Magnify
push str.Window
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x4708ae], eax
push 0x45cc16
push 0x40
push 0x45ca0e
push str.10_10
push str.Find
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
lea eax, [ebp - 0x100]
push eax
push 0x45ca0e
call fcn.0040cd48
lea eax, [ebp - 0x100]
push eax
call fcn.00401168
mov dword [0x45f8b2], eax
push 0x45ca0e
call fcn.00401168
mov dword [0x45f8b6], eax
push 0x45cc16
push 0x40
push 0x45ca0e
push str.10_10
push str.Goto
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
lea eax, [ebp - 0x100]
push eax
push 0x45ca0e
call fcn.0040cd48
lea eax, [ebp - 0x100]
push eax
call fcn.00401168
mov dword [0x45f8ba], eax
push 0x45ca0e
call fcn.00401168
mov dword [0x45f8be], eax
push 0x45cc16
push 0x40
push 0x45ca0e
push str.10_10
push str.ProWiz
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
lea eax, [ebp - 0x100]
push eax
push 0x45ca0e
call fcn.0040cd48
lea eax, [ebp - 0x100]
push eax
call fcn.00401168
mov dword [0x45f8c2], eax
push 0x45ca0e
call fcn.00401168
mov dword [0x45f8c6], eax
push 0x45cc16
push 0x4000
push 0x470966
push 0x44ef8c
push str.Accept
push str.Accept
call sub.kernel32.dll_GetPrivateProfileStringA
push 0x45cc16
push 0x40
push 0x45ca0e
push str.10_10_301
push str.ProOpt
push str.Window
call sub.kernel32.dll_GetPrivateProfileStringA
lea eax, [ebp - 0x100]
push eax
push 0x45ca0e
call fcn.0040cd48
lea eax, [ebp - 0x100]
push eax
call fcn.00401168
mov dword [0x45f8ca], eax
lea eax, [ebp - 0x100]
push eax
push 0x45ca0e
call fcn.0040cd48
lea eax, [ebp - 0x100]
push eax
call fcn.00401168
mov dword [0x45f8ce], eax
push 0x45ca0e
call fcn.00401168
mov dword [0x45f8d2], eax
push 0x45cc16
push 0x100
push 0x461c42
push 0x44ef8c
push 0x44fc68
push str.Splash
call sub.kernel32.dll_GetPrivateProfileStringA
push 0x461c42
call fcn.00408490
push 0x45cc16
push 0
push str.nShow
push str.Splash
call sub.kernel32.dll_GetPrivateProfileIntA
shl eax, 1
mov dword [0x461d42], eax
push 0x45cc16
push 1
push str.SelAll
push str.Sniplet
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x45f45e], eax
push 0x45cc16
push 2
push str.CopyTo
push str.Sniplet
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x45f462], eax
push 0x45cc16
push 0
push str.Close
push str.Sniplet
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x45f466], eax
push 0x45cc16
push 1
push str.Expanded
push str.Sniplet
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x45f46a], eax
push 0x45cc16
push 0x1e
push str.Left
push str.Sniplet
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x45f46e], eax
push 0x45cc16
push 0x1e
push 0x44fc2c
push str.Sniplet
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x45f472], eax
push 0x45cc16
push 0x21c
push str.Width
push str.Sniplet
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x45f476], eax
push 0x45cc16
push 0x168
push str.Height
push str.Sniplet
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x45f47a], eax
push 0x45cc16
push 0x96
push str.Split
push str.Sniplet
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x45f47e], eax
push 0x45cc16
push 0x100
push 0x45f25e
push 0x44ef8c
push 0x44fcd6
push str.Template
call sub.kernel32.dll_GetPrivateProfileStringA
push 0x45cc16
push 0x100
push 0x45f35e
push 0x44ef8c
push 0x44fcda
push str.Template
call sub.kernel32.dll_GetPrivateProfileStringA
push 0x45cc16
push 0x80
push 0x45ca0e
push 0x44ef8c
push str.Assembler
push str.Assembler
call sub.kernel32.dll_GetPrivateProfileStringA
jmp 0x40a3d1
lea eax, [ebp - 0x100]
push eax
push 0x45ca0e
call fcn.0040cd48
lea eax, [ebp - 0x100]
push eax
call fcn.0040864a
or eax, eax
jne 0x40a3d1
push 0x45cc16
push 0x100
push 0x45eb92
push 0x44ef8c
push str.Filter
push str.FileBrowser
call sub.kernel32.dll_GetPrivateProfileStringA
mov byte [0x44f71b], 0x30
push edi
mov edi, 0x45e16a
jmp 0x40a3aa
push 0x45cc16
push 0x104
push edi
push 0x44ef8c
push 0x44f71b
push str.FileBrowser
call sub.kernel32.dll_GetPrivateProfileStringA
or eax, eax
jne 0x40a398
cmp byte [0x44f71b], 0x30
jne 0x40a398
push 0x45db52
push edi
call fcn.004010a7
push edi
call fcn.00408490
add edi, 0x104
inc byte [0x44f71b]
cmp byte [0x44f71b], 0x39
jbe 0x40a361
mov byte [0x44f71b], 0x30
push 0x45e16a
push 0x45e066
call fcn.004010a7
pop edi
mov eax, 0
leave
ret
cmp byte [0x45ca0e], 0
jne 0x40a30a
push 0x10
push 0x44f25f
push 0x44ec8a
push 0
call sub.user32.dll_MessageBoxA
mov eax, 1
leave
ret
push 0x44ecd3
push 0x467936
call fcn.004010a7
push 0x45cc16
push 0x467936
call fcn.004010c5
push 0x10
push 0x44f25f
push 0x467936
push 0
call sub.user32.dll_MessageBoxA
mov eax, 1
leave
ret