Function at 0x40b760
Capabilities:
Get file attributes
Manipulate boot configuration
Read .ini file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1050
call fcn.0041c620
mov dword [ebp - 0x104c], ecx
call fcn.0040ca60
test eax, eax
je 0x40ba5e
mov dword [ebp - 8], str.C:BOOT.INI
mov dword [ebp - 4], str.Operating_Systems
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x1014], eax
mov ecx, dword [ebp - 0x1014]
mov dword [ebp - 0x1018], ecx
mov edx, dword [ebp - 0x1018]
and edx, 0xfffffff8
mov dword [ebp - 0x1018], edx
mov eax, dword [ebp - 0x1018]
or eax, 0x80
mov dword [ebp - 0x1018], eax
mov ecx, dword [ebp - 0x1014]
cmp ecx, dword [ebp - 0x1018]
je 0x40b7e9
mov edx, dword [ebp - 0x1018]
push edx
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov ecx, dword [ebp - 8]
push ecx
push 0x800
lea edx, [ebp - 0x1010]
push edx
push 0x424894
push 0
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x1010]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx]
test eax, eax
je 0x40ba3a
push 6
push str.multi_
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00422bb4
add esp, 0xc
test eax, eax
jne 0x40ba1f
mov edx, dword [ebp - 8]
push edx
push 0x800
lea eax, [ebp - 0x810]
push eax
push 0x4248a0
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
movsx eax, byte [ebp - 0x810]
test eax, eax
je 0x40ba1f
mov dword [ebp - 0x101c], str._noguiboot
mov dword [ebp - 0x1020], str._fastdetect
cmp dword [ebp + 8], 0
je 0x40b935
push 0x2f
lea ecx, [ebp - 0x810]
push ecx
call fcn.0041c070
add esp, 8
mov dword [ebp - 0x1024], eax
cmp dword [ebp - 0x1024], 0
je 0x40b8de
mov edx, dword [ebp - 0x101c]
push edx
mov eax, dword [ebp - 0x1024]
push eax
call fcn.00422a76
add esp, 8
test eax, eax
jne 0x40b8de
mov ecx, dword [ebp - 0x1020]
push ecx
mov edx, dword [ebp - 0x1024]
push edx
call fcn.0041a280
add esp, 8
jmp 0x40b930
cmp dword [ebp - 0x1024], 0
je 0x40b906
mov eax, dword [ebp - 0x1020]
push eax
mov ecx, dword [ebp - 0x1024]
push ecx
call fcn.00422a76
add esp, 8
test eax, eax
jne 0x40b906
jmp 0x40ba1f
push 0x4248bc
lea edx, [ebp - 0x810]
push edx
call fcn.0041a290
add esp, 8
mov eax, dword [ebp - 0x1020]
push eax
lea ecx, [ebp - 0x810]
push ecx
call fcn.0041a290
add esp, 8
jmp 0x40b9d6
push 0x2f
lea edx, [ebp - 0x810]
push edx
call fcn.0041c070
add esp, 8
mov dword [ebp - 0x1028], eax
cmp dword [ebp - 0x1028], 0
je 0x40b987
mov eax, dword [ebp - 0x1020]
push eax
mov ecx, dword [ebp - 0x1028]
push ecx
call fcn.00422a76
add esp, 8
test eax, eax
jne 0x40b987
mov edx, dword [ebp - 0x101c]
push edx
mov eax, dword [ebp - 0x1028]
push eax
call fcn.0041a280
add esp, 8
jmp 0x40b9d6
cmp dword [ebp - 0x1028], 0
je 0x40b9ac
mov ecx, dword [ebp - 0x101c]
push ecx
mov edx, dword [ebp - 0x1028]
push edx
call fcn.00422a76
add esp, 8
test eax, eax
jne 0x40b9ac
jmp 0x40ba1f
push 0x4248c0
lea eax, [ebp - 0x810]
push eax
call fcn.0041a290
add esp, 8
mov ecx, dword [ebp - 0x101c]
push ecx
lea edx, [ebp - 0x810]
push edx
call fcn.0041a290
add esp, 8
mov eax, dword [ebp - 8]
push eax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, dword [ebp - 8]
push ecx
lea edx, [ebp - 0x810]
push edx
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
test eax, eax
jne 0x40ba0f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x102c], eax
mov edx, dword [ebp - 8]
push edx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [ebp - 0xc]
push eax
call fcn.0041a8f0
add esp, 4
mov ecx, dword [ebp - 0xc]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0xc], edx
jmp 0x40b813
mov eax, dword [ebp - 0x1014]
cmp eax, dword [ebp - 0x1018]
je 0x40ba59
mov ecx, dword [ebp - 0x1014]
push ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
jmp 0x40bb9a
mov dword [ebp - 0x103c], str.C:MSDOS.SYS
mov dword [ebp - 0x1034], str.Options
mov dword [ebp - 0x1030], str.Logo
mov eax, dword [ebp - 0x103c]
push eax
push 1
mov ecx, dword [ebp - 0x1030]
push ecx
mov edx, dword [ebp - 0x1034]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x1038], eax
cmp dword [ebp + 8], 0
je 0x40baae
cmp dword [ebp - 0x1038], 0
je 0x40bac5
cmp dword [ebp + 8], 0
jne 0x40bb9a
cmp dword [ebp - 0x1038], 1
jne 0x40bb9a
mov eax, dword [ebp - 0x103c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x1040], eax
mov dword [ebp - 0x1044], 0x20
mov ecx, dword [ebp - 0x1040]
cmp ecx, dword [ebp - 0x1044]
je 0x40bb04
mov edx, dword [ebp - 0x1044]
push edx
mov eax, dword [ebp - 0x103c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov ecx, dword [ebp - 0x103c]
push ecx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
cmp dword [ebp + 8], 0
je 0x40bb29
mov dword [ebp - 0x1050], 0x4248e4
jmp 0x40bb33
mov dword [ebp - 0x1050], 0x4248e8
mov edx, dword [ebp - 0x103c]
push edx
mov eax, dword [ebp - 0x1050]
push eax
mov ecx, dword [ebp - 0x1030]
push ecx
mov edx, dword [ebp - 0x1034]
push edx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
test eax, eax
jne 0x40bb65
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1048], eax
mov eax, dword [ebp - 0x103c]
push eax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, dword [ebp - 0x1040]
cmp ecx, dword [ebp - 0x1044]
je 0x40bb9a
mov edx, dword [ebp - 0x1040]
push edx
mov eax, dword [ebp - 0x103c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
cmp dword [ebp + 8], 0
jne 0x40bbc1
mov ecx, dword [ebp - 0x104c]
add ecx, 0x7c
push ecx
push 0x4248ec
push 0x4248f0
mov edx, dword [str.Uninstall_Info]
push edx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, 1
mov esp, ebp
pop ebp
ret 4