Function at 0x4c7640
Capabilities:
Manipulate boot configuration

Disassembly:
push 0x30
mov eax, 0x607bf1
call fcn.00409179
push str.updateVolumeOrder
lea ecx, [ebp - 0x18]
call fcn.00553ab0
xor ebx, ebx
cmp byte [0x734a74], bl
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], 0x400
jne 0x4c768f
cmp dword [esi + 8], ebx
jne 0x4c768f
push 0x105
push str..._ntload.cpp
push str.vol__ghostDrv
push str.Assertion_failed:__s__file__s__line__d
push ebx
call fcn.0045aaff
add esp, 0x14
mov eax, dword [esi + 0x68]
and eax, dword [esi + 0x6c]
cmp eax, 0xffffffff
jne 0x4c76a1
push esi
call fcn.004c9e5f
pop ecx
mov ax, word [ebp + 8]
cmp word [esi + 0x1a], ax
je 0x4c7883
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x6c]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x4c7883
push dword [esi + 0xc4]
push ecx
push eax
push esi
call fcn.004bea7c
add esp, 0x10
test al, al
jne 0x4c76f0
push ebx
call fcn.00408c48
mov dword [esp], str.Error_reading_mft_record_for_BOOT.INI
push 0x69ca
call fcn.0045aaff
pop ecx
pop ecx
push 1
push 0x80
push dword [esi + 0xc4]
call fcn.004bc7e1
mov edi, eax
add esp, 0xc
cmp edi, ebx
jne 0x4c7736
push ebx
push 0x80
push dword [esi + 0xc4]
call fcn.004bc7e1
mov edi, eax
add esp, 0xc
cmp edi, ebx
jne 0x4c7736
push str.Error_finding_AT_DATA_attribute_for_BOOT.INI
push 0x6d5f
call fcn.0045aaff
pop ecx
pop ecx
cmp byte [edi + 8], bl
jne 0x4c7743
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x1c], ebx
jmp 0x4c774c
mov ecx, dword [edi + 0x34]
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x1c], ecx
and eax, 0xfffffc00
add eax, 0x400
push eax
call fcn.0040b899
cmp eax, ebx
pop ecx
mov dword [ebp - 0x10], eax
jne 0x4c77c2
cmp byte [edi + 8], bl
jne 0x4c7774
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], ebx
jmp 0x4c7780
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 0x34]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.004580a3
pop ecx
pop ecx
cmp dword [eax + 0x18], 0x10
mov byte [ebp - 4], 1
jb 0x4c779e
mov eax, dword [eax + 4]
jmp 0x4c77a1
add eax, 4
push eax
push str.Unable_to_allocate_buffer_to_hold_BOOT.INI___s_bytes_
push 0x69cb
call fcn.0045aaff
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], bl
call fcn.0040349d
cmp byte [edi + 8], bl
jne 0x4c77cf
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x1c], ebx
jmp 0x4c77d8
mov ecx, dword [edi + 0x34]
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x1c], ecx
push ebx
lea ecx, [ebp - 0x14]
push ecx
push dword [ebp - 0x10]
mov edi, 0x80
push eax
push ebx
push ebx
push ebx
push edi
push dword [esi + 0xc4]
push esi
call fcn.004bde78
add esp, 0x28
test al, al
jne 0x4c7818
push dword [ebp - 0x10]
call fcn.00408c48
mov dword [esp], str.Error_reading_AT_DATA_attribute_for_BOOT.INI
push 0x69cb
call fcn.0045aaff
pop ecx
pop ecx
movzx eax, word [esi + 0x1a]
push eax
push dword [ebp + 8]
push dword [ebp - 0x14]
push dword [ebp - 0x10]
call fcn.004c675a
add esp, 0x10
test al, al
je 0x4c787a
push ebx
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push ebx
push ebx
push ebx
push edi
push dword [esi + 0x6c]
push dword [esi + 0x68]
push dword [esi + 0xc4]
push esi
call fcn.004bdab4
add esp, 0x30
test al, al
je 0x4c785f
cmp dword [ebp - 0x14], ebx
jne 0x4c787a
push dword [ebp - 0x10]
call fcn.00408c48
mov dword [esp], str.Error_writing_AT_DATA_attribute_for_BOOT.INI
push 0x69cb
call fcn.0045aaff
pop ecx
pop ecx
push dword [ebp - 0x10]
call fcn.00408c48
pop ecx
lea ecx, [ebp - 0x18]
call fcn.00553477
mov al, 1
call fcn.00409251
ret