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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1808
call fcn.00411c40
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
call fcn.0040d240
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
test eax, eax
je 0x408be3
push 0x42b18c
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov edi, eax
mov dword [ebp - 4], eax
and edi, 0xfffffff8
or edi, 0x80
cmp eax, edi
je 0x4089ff
push edi
push 0x42b18c
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 0x42b18c
push 0x800
lea eax, [ebp - 0x1808]
push eax
push 0x42b1ac
push 0
push 0x42b198
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x1808], 0
lea esi, [ebp - 0x1808]
je 0x408bc7
push 6
push 0x42b1b0
push esi
call fcn.0041bbf0
add esp, 0xc
test eax, eax
jne 0x408bae
push 0x42b18c
push 0x800
lea eax, [ebp - 0x808]
push eax
push 0x42b1ac
push esi
push 0x42b198
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x808], 0
je 0x408bae
lea eax, [ebp - 0x808]
push eax
lea eax, [ebp - 0x1008]
push 0x800
push eax
call fcn.00415b43
cmp dword [ebp + 8], 0
lea eax, [ebp - 0x1008]
je 0x408b04
push 0x42b1b8
push eax
call fcn.00414470
add esp, 0x14
test eax, eax
je 0x408acb
push 0x42b1c4
lea eax, [ebp - 0x1008]
push 0x800
push eax
call fcn.00415b43
add esp, 0xc
lea eax, [ebp - 0x1008]
push 0x42b1c4
push eax
call fcn.00414470
add esp, 8
test eax, eax
jne 0x408bae
push 0x42af68
lea eax, [ebp - 0x808]
push 0x800
push eax
call fcn.00415b9d
push 0x42b1c4
jmp 0x408b62
push 0x42b1c4
push eax
call fcn.00414470
add esp, 0x14
test eax, eax
je 0x408b2f
push 0x42b1b8
lea eax, [ebp - 0x1008]
push 0x800
push eax
call fcn.00415b43
add esp, 0xc
lea eax, [ebp - 0x1008]
push 0x42b1b8
push eax
call fcn.00414470
add esp, 8
test eax, eax
jne 0x408bae
push 0x42af68
lea eax, [ebp - 0x808]
push 0x800
push eax
call fcn.00415b9d
push 0x42b1b8
lea eax, [ebp - 0x808]
push 0x800
push eax
call fcn.00415b9d
add esp, 0x18
push 0x42b18c
push 0
push 0
push 0
call ebx
push 0x42b18c
lea eax, [ebp - 0x808]
push eax
push esi
push 0x42b198
call ebx
test eax, eax
jne 0x408ba1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x42b18c
push 0
push 0
push 0
call ebx
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408bb3
sub ecx, edx
inc esi
add esi, ecx
cmp byte [esi], al
jne 0x408a35
mov eax, dword [ebp - 4]
cmp eax, edi
je 0x408c8c
push eax
push 0x42b18c
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
jmp 0x408c8c
push 0x42b1d0
push 1
push 0x42b1e8
push 0x42b1e0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp dword [ebp + 8], 0
je 0x408c12
test eax, eax
je 0x408c17
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 1
jne 0x408c92
push 0x42b1d0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov esi, eax
cmp esi, 0x20
je 0x408c38
push 0x20
push 0x42b1d0
call edi
push 0x42b1d0
push 0
push 0
push 0
call ebx
cmp dword [ebp + 8], 0
mov ecx, 0x42aaa4
push 0x42b1d0
mov eax, 0x42ae6c
cmove eax, ecx
push eax
push 0x42b1e8
push 0x42b1e0
call ebx
test eax, eax
jne 0x408c72
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x42b1d0
push 0
push 0
push 0
call ebx
cmp esi, 0x20
je 0x408c8c
push esi
push 0x42b1d0
call edi
cmp dword [ebp + 8], 0
jne 0x408cad
mov eax, dword [ebp - 8]
add eax, 0x13c
push eax
push 0x42ae6c
push 0x42ab5c
push dword [0x434008]
call ebx
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 4