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

Disassembly:
sub esp, 0xa3c
mov eax, dword [0x10063790]
xor eax, esp
mov dword [esp + 0xa34], eax
push ebx
push ebp
push esi
push edi
xor ebp, ebp
push 0x206
lea eax, [esp + 0x1e]
push ebp
push eax
mov ebx, ecx
xor esi, esi
mov word [esp + 0x24], bp
call fcn.1003d360
add esp, 0xc
push 0x206
lea ecx, [esp + 0x226]
push ebp
push ecx
mov word [esp + 0x22c], bp
call fcn.1003d360
add esp, 0xc
push 0x206
lea edx, [esp + 0x636]
push ebp
push edx
mov word [esp + 0x63c], bp
call fcn.1003d360
add esp, 0xc
push 0x206
lea eax, [esp + 0x42e]
push ebp
push eax
mov word [esp + 0x434], bp
call fcn.1003d360
add esp, 0xc
push 0x206
lea ecx, [esp + 0x83e]
push ebp
push ecx
mov word [esp + 0x844], bp
call fcn.1003d360
add esp, 0xc
cmp word [ebx], bp
je 0x10008d28
lea eax, [esp + 0x18]
mov esi, ebx
mov ecx, eax
mov edx, 0x104
sub esi, ecx
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x100089d6
movzx ecx, word [esi + eax]
cmp cx, bp
je 0x100089d6
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x100089b6
jmp 0x100089da
cmp edx, ebp
jne 0x100089dd
sub eax, 2
mov edi, dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea edx, [esp + 0x18]
push edx
mov word [eax], bp
call edi
mov ecx, 0x104
lea eax, [esp + 0x18]
cmp word [eax], bp
je 0x10008a05
add eax, 2
sub ecx, 1
jne 0x100089f6
jmp 0x10008a25
cmp ecx, ebp
je 0x10008a25
mov eax, 0x104
sub eax, ecx
mov edx, 0x104
sub edx, eax
lea ecx, [esp + eax*2 + 0x18]
mov eax, 0x10057a18
call fcn.100067e0
lea eax, [esp + 0x18]
push eax
call fcn.1000b750
add esp, 4
test eax, eax
jne 0x10008a75
test byte [0x10065ac4], 1
jne 0x10008a58
or dword [0x10065ac4], 1
call fcn.1001db00
push 0x10051230
call fcn.1003c413
add esp, 4
push ebx
push str.NTLDR_not_found_on__s
mov eax, 0x10065ac8
call fcn.1001e660
add esp, 8
mov esi, 0x801e0009
jmp 0x10008d28
mov edx, 0x104
lea eax, [esp + 0x18]
mov edi, edi
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x10008aa0
movzx ecx, word [esi + eax]
cmp cx, bp
je 0x10008aa0
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x10008a80
jmp 0x10008aa4
cmp edx, ebp
jne 0x10008aa7
sub eax, 2
lea edx, [esp + 0x18]
push edx
mov word [eax], bp
call edi
mov ecx, 0x104
lea eax, [esp + 0x18]
lea ebx, [ebx]
cmp word [eax], bp
je 0x10008acf
add eax, 2
sub ecx, 1
jne 0x10008ac0
jmp 0x10008aef
cmp ecx, ebp
je 0x10008aef
mov eax, 0x104
sub eax, ecx
mov edx, 0x104
sub edx, eax
lea ecx, [esp + eax*2 + 0x18]
mov eax, str.BOOT.INI
call fcn.100067e0
lea eax, [esp + 0x18]
push eax
call fcn.1000b750
add esp, 4
test eax, eax
jne 0x10008b1d
push ebx
push str.Boot.ini_not_found_on__s
call fcn.100020c0
call fcn.1001e660
add esp, 8
mov esi, 0x801e000b
jmp 0x10008d28
push 0x80
lea ecx, [esp + 0x1c]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [esp + 0x18]
push edx
push 0x104
lea eax, [esp + 0x228]
push eax
push str.none
push 0x10057aa4
push str.boot_loader
call ebx
lea ecx, [esp + 0x220]
push str.none
push ecx
call fcn.1003c8ff
add esp, 8
test eax, eax
je 0x10008c1c
movzx edi, word [esp + 0x22c]
lea edx, [esp + 0x220]
push str.multi_
push edx
mov word [esp + 0x234], bp
call fcn.1003c8ff
add esp, 8
mov esi, eax
lea eax, [esp + 0x220]
neg esi
push eax
sbb esi, esi
push str.Default_boot_in_Boot.ini:__s
add esi, 1
mov word [esp + 0x234], di
call fcn.100020c0
call fcn.1001e660
add esp, 8
cmp esi, ebp
je 0x10008c1c
lea ecx, [esp + 0x18]
push ecx
push 0x104
lea edx, [esp + 0x638]
push edx
push str.none
lea eax, [esp + 0x230]
push eax
push str.operating_systems
call ebx
lea ecx, [esp + 0x630]
push str.none
push ecx
call fcn.1003c8ff
add esp, 8
test eax, eax
jne 0x10008c26
push str.Default_boot_does_not_point_on_Windows_entry.
push ecx
call fcn.100020c0
add esp, 4
call fcn.1001e660
add esp, 4
mov esi, 0x801e000c
jmp 0x10008d1b
lea edx, [esp + 0x220]
push 0x5c
push edx
call fcn.1003ca7d
add esp, 8
cmp eax, ebp
mov edx, 0x104
lea ecx, [esp + 0x428]
jne 0x10008c85
lea esi, [esp + 0x220]
mov eax, ecx
sub esi, ecx
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x10008c79
movzx ecx, word [esi + eax]
cmp cx, bp
je 0x10008c79
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x10008c53
sub eax, 2
mov word [eax], bp
jmp 0x10008cbb
cmp edx, ebp
jne 0x10008c80
sub eax, 2
mov word [eax], bp
jmp 0x10008cbb
lea esi, [esp + 0x428]
sub eax, esi
lea esi, [eax + 2]
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x10008cb1
movzx eax, word [esi + ecx]
cmp ax, bp
je 0x10008cb1
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x10008c91
jmp 0x10008cb5
cmp edx, ebp
jne 0x10008cb8
sub ecx, 2
mov word [ecx], bp
mov ecx, dword [esp + 0xa54]
mov edx, dword [esp + 0xa50]
push ecx
push edx
call fcn.10009020
lea ecx, [esp + 0x430]
push ecx
push eax
push str.multi_0_disk_0_rdisk_0_partition__u__s
lea edx, [esp + 0x84c]
push 0x104
push edx
call fcn.10003980
add esp, 0x1c
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x83c]
push ecx
call fcn.1003c8ff
add esp, 8
test eax, eax
je 0x10008d19
push str.The_path_of_Windows_is_invalid_in_boot.ini.
jmp 0x10008c0b
mov esi, ebp
push 7
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esp + 0xa44]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1003c13d
add esp, 0xa3c
ret