Function at 0x424580
Capabilities:
Manipulate boot configuration

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
and dword [ebp - 8], 0
push ebx
push esi
push edi
push 1
mov edi, eax
mov eax, dword [edi]
mov esi, 0x493380
push esi
push eax
call fcn.004277b4
movzx eax, ax
movsx ebx, ax
cmp ebx, 0xffff
jne 0x4245c5
mov dword [ebp - 8], 0xc0000001
mov esi, edi
call fcn.00424a52
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret
push ebx
call fcn.0042a848
mov dword [edi + 0x44], eax
test eax, eax
jne 0x4245db
mov dword [ebp - 8], 0xc0000017
jmp 0x4245b6
push ebx
push esi
push eax
mov dword [edi + 0x38], ebx
call fcn.0044dba0
mov eax, dword [edi]
add esp, 0xc
push 2
push esi
push eax
call fcn.004277b4
movzx eax, ax
movsx ebx, ax
mov dword [ebp - 0xc], eax
cmp ebx, 0xffff
je 0x4245af
push ebx
call fcn.0042a848
mov dword [edi + 0x40], eax
test eax, eax
je 0x4245d2
push ebx
push esi
push eax
mov dword [edi + 0x34], ebx
call fcn.0044dba0
movzx eax, byte [0x493381]
mov dword [edi + 4], eax
mov al, byte [0x493382]
add esp, 0xc
cmp al, 0x10
jb 0x424635
mov al, 0x10
movzx eax, al
push eax
lea eax, [edi + 8]
push 0x49339c
push eax
call fcn.0044dba0
movzx eax, byte [0x493393]
movzx ecx, byte [0x493392]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x493391]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x493390]
shl eax, 8
add eax, ecx
mov dword [edi + 0x18], eax
movzx eax, byte [0x493397]
movzx ecx, byte [0x493396]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x493395]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x493394]
shl eax, 8
add eax, ecx
xor ebx, ebx
add esp, 0xc
mov dword [edi + 0x1c], eax
cmp dword [edi + 0x18], ebx
jne 0x4246db
movzx eax, byte [0x49338f]
movzx ecx, byte [0x49338e]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x49338d]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x49338c]
shl eax, 8
add eax, ecx
mov dword [edi + 0x18], eax
push ebx
push 1
push dword [ebp - 0xc]
push esi
push 3
call fcn.00424ab7
cmp eax, ebx
je 0x424708
movzx ecx, byte [eax + 3]
movzx edx, byte [eax + 2]
shl ecx, 8
add ecx, edx
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
shl ecx, 8
add ecx, edx
jmp 0x42472e
movzx ecx, byte [0x49339b]
movzx eax, byte [0x49339a]
shl ecx, 8
add ecx, eax
movzx eax, byte [0x493399]
shl ecx, 8
add ecx, eax
movzx eax, byte [0x493398]
push ebx
push 1
push dword [ebp - 0xc]
shl ecx, 8
push esi
add ecx, eax
push 1
mov dword [edi + 0x20], ecx
call fcn.00424ab7
cmp eax, ebx
je 0x42476b
movzx ecx, byte [eax + 3]
movzx edx, byte [eax + 2]
shl ecx, 8
add ecx, edx
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
shl ecx, 8
add ecx, edx
shl ecx, 8
add ecx, eax
mov dword [ebp - 0x10], ecx
jmp 0x42476e
mov dword [ebp - 0x10], ebx
push dword [edi]
call fcn.00427739
movzx eax, ax
movsx ebx, ax
mov dword [ebp - 0xc], eax
cmp ebx, 0xffff
je 0x4245af
push ebx
call fcn.0042a848
mov dword [edi + 0x48], eax
test eax, eax
je 0x4245d2
push ebx
push esi
push eax
mov dword [edi + 0x3c], ebx
call fcn.0044dba0
movzx eax, byte [0x493393]
movzx ecx, byte [0x493392]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x493391]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x493390]
shl eax, 8
add esp, 0xc
add eax, ecx
je 0x4247d9
mov dword [edi + 0x18], eax
movzx eax, byte [0x493397]
movzx ecx, byte [0x493396]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x493395]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x493394]
shl eax, 8
add eax, ecx
je 0x424809
mov dword [edi + 0x1c], eax
xor ebx, ebx
push ebx
push 1
push dword [ebp - 0xc]
push esi
push 3
call fcn.00424ab7
cmp eax, ebx
je 0x424838
movzx ecx, byte [eax + 3]
movzx edx, byte [eax + 2]
shl ecx, 8
add ecx, edx
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
shl ecx, 8
add ecx, edx
jmp 0x42485e
movzx ecx, byte [0x49339b]
movzx eax, byte [0x49339a]
shl ecx, 8
add ecx, eax
movzx eax, byte [0x493399]
shl ecx, 8
add ecx, eax
movzx eax, byte [0x493398]
shl ecx, 8
add ecx, eax
cmp ecx, ebx
je 0x42486a
mov dword [edi + 0x20], ecx
push ebx
push 1
push dword [ebp - 0xc]
push esi
push 1
call fcn.00424ab7
cmp eax, ebx
je 0x42489c
movzx ecx, byte [eax + 3]
movzx edx, byte [eax + 2]
shl ecx, 8
add ecx, edx
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
shl ecx, 8
add ecx, edx
shl ecx, 8
add ecx, eax
jmp 0x42489e
xor ecx, ecx
cmp ecx, ebx
jne 0x4248a5
mov ecx, dword [ebp - 0x10]
mov eax, ecx
and eax, dword [edi + 0x18]
and ecx, dword [edi + 0x1c]
cmp eax, ecx
jne 0x4248b4
mov dword [edi + 0x20], ebx
push 0x3fc
call fcn.0042a848
mov dword [edi + 0x28], eax
cmp eax, ebx
je 0x4245d2
mov dword [edi + 0x24], ebx
mov byte [ebp - 2], 1
lea eax, [ebp - 1]
push eax
movzx ax, byte [ebp - 2]
movzx eax, ax
push eax
push dword [ebp - 0xc]
push esi
push 0xfd
call fcn.00424ab7
test eax, eax
je 0x424910
movzx ebx, byte [ebp - 1]
push ebx
push eax
mov eax, dword [edi + 0x28]
add eax, dword [edi + 0x24]
push eax
call fcn.0044dba0
add dword [edi + 0x24], ebx
add esp, 0xc
inc byte [ebp - 2]
cmp byte [ebp - 2], 4
jbe 0x4248d0
cmp dword [edi + 0x24], 0
jne 0x4245bd
push dword [edi + 0x28]
call fcn.0042a899
and dword [edi + 0x28], 0
lea eax, [ebp - 1]
push eax
push 1
push dword [ebp - 0xc]
push esi
push 0xfe
call fcn.00424ab7
mov ebx, eax
test ebx, ebx
je 0x424984
movzx esi, byte [ebp - 1]
lea eax, [esi + esi + 4]
push eax
call fcn.0042a848
test eax, eax
je 0x4245d2
mov dword [edi + 0x2c], eax
cmp byte [ebx], 0x5c
je 0x424966
push 0x5c
pop ecx
mov word [eax], cx
inc eax
inc eax
cmp byte [ebp - 1], 0
jbe 0x424979
movzx cx, byte [ebx]
mov word [eax], cx
inc eax
inc eax
inc ebx
dec esi
jne 0x42496c
push 0x30
pop ecx
mov word [eax], cx
jmp 0x4245bd
lea eax, [ebp - 1]
push eax
push 1
push dword [ebp - 0xc]
push esi
push 0xfc
call fcn.00424ab7
mov esi, eax
test esi, esi
je 0x4249db
movzx ebx, byte [ebp - 1]
lea eax, [ebx + ebx + 4]
push eax
call fcn.0042a848
test eax, eax
je 0x4245d2
mov dword [edi + 0x30], eax
cmp byte [esi], 0x5c
je 0x4249c4
push 0x5c
pop ecx
mov word [eax], cx
inc eax
inc eax
cmp byte [ebp - 1], 0
jbe 0x4249d7
movzx cx, byte [esi]
mov word [eax], cx
inc eax
inc eax
inc esi
dec ebx
jne 0x4249ca
xor ecx, ecx
jmp 0x42497c
push 0x5c
mov esi, 0x4933ec
push esi
call fcn.00442b10
pop ecx
pop ecx
test eax, eax
je 0x4249fd
mov ecx, 0x493380
sub eax, ecx
sub eax, 0x6c
movzx eax, ax
jmp 0x4249ff
xor eax, eax
movsx ebx, ax
lea eax, [ebx + ebx + 0x16]
push eax
call fcn.0042a848
test eax, eax
je 0x4245d2
mov dword [edi + 0x2c], eax
cmp byte [0x4933ec], 0x5c
je 0x424a28
push 0x5c
pop ecx
mov word [eax], cx
inc eax
inc eax
xor cl, cl
test ebx, ebx
jle 0x424a41
movsx dx, byte [esi]
mov word [eax], dx
inc eax
inc eax
inc esi
inc cl
movzx edx, cl
cmp edx, ebx
jl 0x424a2e
push 5
pop ecx
mov esi, str._boot.ini
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x4245bd