Function at 0x401230
Capabilities:
Create directory
Delete file
Read .ini file
Set file attributes

Disassembly:
sub esp, 0x608
push esi
push edi
push str._H_OFF
push 0x405234
call fcn.004028f0
add esp, 8
call fcn.00401790
call fcn.00402170
test eax, eax
jne 0x4013cf
push str.2003
call fcn.00401000
push str.BOOT_MBR
push 0x65
push 0x404c1c
call fcn.004021b0
add esp, 0x10
test eax, eax
je 0x401766
push str.BOOT_MBR
push 0x68
push 0x404d20
call fcn.004021b0
add esp, 0xc
test eax, eax
je 0x401766
push ebp
push 0x404d20
push 0x404c1c
push 0x4043d0
call fcn.00401000
mov esi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
add esp, 0xc
push 0x80
push 0x404b18
call esi
mov ebp, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x404b18
push 0x4043b8
push 0x404c1c
push str.operating_systems
call ebp
push 0x404b18
push 0x4043a0
push str.timeout
push str.boot_loader
call ebp
mov al, byte [0x405338]
test al, al
je 0x4013a8
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0xd]
mov byte [esp + 0xc], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x404b18
lea eax, [esp + 0x10]
push 0x104
push eax
push 0x405758
push str.default
push str.boot_loader
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov esi, 0x404c1c
lea eax, [esp + 0xc]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40136d
test cl, cl
je 0x401369
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40136d
add eax, 2
add esi, 2
test cl, cl
jne 0x401349
xor eax, eax
jmp 0x401372
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4013a2
lea eax, [esp + 0xc]
push 0x404b18
push eax
push str.DefaultBackup
push 0x404370
call ebp
push 0x404b18
push 0x404c1c
push str.default
push str.boot_loader
call ebp
mov esi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 7
push 0x404c1c
call esi
push 7
push 0x404d20
call esi
push 7
push 0x404b18
call esi
pop ebp
pop edi
xor eax, eax
pop esi
add esp, 0x608
ret
call fcn.00402430
test eax, eax
je 0x40150d
push str.EFIGPT
call fcn.00401000
mov esi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
add esp, 4
push 0x80
push 0x404e24
call esi
push 0x80
push 0x404f28
call esi
mov al, byte [0x405338]
push str.BOOT_EFI
test al, al
jne 0x401489
push 0x66
push 0x404e24
call fcn.004021b0
add esp, 0xc
test eax, eax
je 0x40146c
push str.BOOT_EFI
push 0x66
push 0x404f28
call fcn.004021b0
add esp, 0xc
test eax, eax
je 0x40146c
push 0x404e24
push 0x404320
call fcn.00401000
push str._set_bootmgr_path_ORMORMLdr.efi
push 0x40502c
call fcn.004028f0
add esp, 0x10
xor eax, eax
pop edi
pop esi
add esp, 0x608
ret
push 0x404e24
push 0x4042dc
call fcn.00401000
add esp, 8
xor eax, eax
pop edi
pop esi
add esp, 0x608
ret
push 0x67
push 0x404e24
call fcn.004021b0
add esp, 0xc
test eax, eax
je 0x4014f0
push str.BOOT_EFI
push 0x66
push 0x404f28
call fcn.004021b0
add esp, 0xc
test eax, eax
je 0x4014f0
push 0x404e24
push 0x4042c0
call fcn.00401000
add esp, 8
push 0
push 0x404910
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push str._set_bootmgr_path_ORMORMLdr.efi
push 0x40502c
call fcn.004028f0
add esp, 8
xor eax, eax
pop edi
pop esi
add esp, 0x608
ret
push 0x404e24
push 0x4042a4
call fcn.00401000
add esp, 8
xor eax, eax
pop edi
pop esi
add esp, 0x608
ret
push str.Vista
call fcn.00401000
push 0x405130
call fcn.00401200
mov esi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
add esp, 8
test al, al
je 0x401559
push 0x405130
push 0x40425c
call fcn.00401000
add esp, 8
push 0x80
push 0x405130
call esi
push 0x405130
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x401574
mov al, byte [0x405338]
test al, al
je 0x401574
push 0x405130
push 0x40423c
call fcn.00401000
add esp, 8
push str._default_current
push 0x40502c
call fcn.004028f0
add esp, 8
test eax, eax
je 0x401597
push 0x404204
call fcn.00401000
add esp, 4
push 0x80
push 0x404c1c
call esi
push 0x80
push 0x404d20
call esi
push str.BOOT_MBR
push 0x65
push 0x404c1c
call fcn.004021b0
add esp, 0xc
test eax, eax
je 0x401766
push str.BOOT_MBR
push 0x68
push 0x404d20
call fcn.004021b0
add esp, 0xc
test eax, eax
je 0x401766
push 0x404d20
push 0x404c1c
push 0x4041e8
call fcn.00401000
add esp, 0xc
push 7
push 0x404c1c
call esi
push 7
push 0x404d20
call esi
push str._create_3919457F_2759_4187_8912_C68B887E407D__d
push 0x40502c
call fcn.004028f0
push str._set_3919457F_2759_4187_8912_C68B887E407D_path_ORMLdr
push 0x40502c
call fcn.004028f0
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x19]
mov byte [esp + 0x18], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, 0x404a14
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 8]
mov eax, ecx
mov esi, edi
mov edi, edx
mov byte [esp + 0x210], 0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
lea edx, [esp + 0x210]
rep movsb byte es:[edi], byte [esi]
mov ecx, 0xff
lea edi, [esp + 0x211]
rep stosd dword es:[edi], eax
mov esi, dword [sym.imp.MSVCRT.dll_sprintf]
lea ecx, [esp + 8]
stosw word es:[edi], ax
push ecx
push str._set_3919457F_2759_4187_8912_C68B887E407D_device_partition_s
push edx
mov byte [esp + 0x16], 0
stosb byte es:[edi], al
call esi
lea eax, [esp + 0x21c]
push eax
push 0x40502c
call fcn.004028f0
push str._displayorder_3919457F_2759_4187_8912_C68B887E407D__addlast
push 0x40502c
call fcn.004028f0
push str._timeout_3
push 0x40502c
call fcn.004028f0
mov al, byte [0x405338]
add esp, 0x24
test al, al
je 0x40177d
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x10d]
mov byte [esp + 0x10c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x405130
lea ecx, [esp + 0x110]
push str._export__s
push ecx
stosb byte es:[edi], al
call esi
lea edx, [esp + 0x118]
push edx
push 0x40502c
call fcn.004028f0
add esp, 0x14
push 0
push 0x404910
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push str._default_3919457F_2759_4187_8912_C68B887E407D
push 0x40502c
call fcn.004028f0
add esp, 8
push 0x404c1c
push 0x404068
call fcn.00401000
add esp, 8
xor eax, eax
pop edi
pop esi
add esp, 0x608
ret
push 0x404d20
push 0x404c1c
push 0x40404c
call fcn.00401000
add esp, 0xc
pop edi
xor eax, eax
pop esi
add esp, 0x608
ret