Function at 0x41fb11
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, 0x494640
push esi
push eax
call fcn.00426d54
movzx eax, ax
movsx ebx, ax
cmp ebx, 0xffff
jne 0x41fb56
mov dword [ebp - 8], 0xc0000001
mov esi, edi
call fcn.0041ffe3
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret
push ebx
call fcn.0042a046
mov dword [edi + 0x44], eax
test eax, eax
jne 0x41fb6c
mov dword [ebp - 8], 0xc0000017
jmp 0x41fb47
push ebx
push esi
push eax
mov dword [edi + 0x38], ebx
call fcn.00450cc0
mov eax, dword [edi]
add esp, 0xc
push 2
push esi
push eax
call fcn.00426d54
movzx eax, ax
movsx ebx, ax
mov dword [ebp - 0xc], eax
cmp ebx, 0xffff
je 0x41fb40
push ebx
call fcn.0042a046
mov dword [edi + 0x40], eax
test eax, eax
je 0x41fb63
push ebx
push esi
push eax
mov dword [edi + 0x34], ebx
call fcn.00450cc0
movzx eax, byte [0x494641]
mov dword [edi + 4], eax
mov al, byte [0x494642]
add esp, 0xc
cmp al, 0x10
jb 0x41fbc6
mov al, 0x10
movzx eax, al
push eax
lea eax, [edi + 8]
push 0x49465c
push eax
call fcn.00450cc0
movzx eax, byte [0x494653]
movzx ecx, byte [0x494652]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x494651]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x494650]
shl eax, 8
add eax, ecx
mov dword [edi + 0x18], eax
movzx eax, byte [0x494657]
movzx ecx, byte [0x494656]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x494655]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x494654]
shl eax, 8
add eax, ecx
xor ebx, ebx
add esp, 0xc
mov dword [edi + 0x1c], eax
cmp dword [edi + 0x18], ebx
jne 0x41fc6c
movzx eax, byte [0x49464f]
movzx ecx, byte [0x49464e]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x49464d]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x49464c]
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.00420048
cmp eax, ebx
je 0x41fc99
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 0x41fcbf
movzx ecx, byte [0x49465b]
movzx eax, byte [0x49465a]
shl ecx, 8
add ecx, eax
movzx eax, byte [0x494659]
shl ecx, 8
add ecx, eax
movzx eax, byte [0x494658]
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.00420048
cmp eax, ebx
je 0x41fcfc
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 0x41fcff
mov dword [ebp - 0x10], ebx
push dword [edi]
call fcn.00426cd9
movzx eax, ax
movsx ebx, ax
mov dword [ebp - 0xc], eax
cmp ebx, 0xffff
je 0x41fb40
push ebx
call fcn.0042a046
mov dword [edi + 0x48], eax
test eax, eax
je 0x41fb63
push ebx
push esi
push eax
mov dword [edi + 0x3c], ebx
call fcn.00450cc0
movzx eax, byte [0x494653]
movzx ecx, byte [0x494652]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x494651]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x494650]
shl eax, 8
add esp, 0xc
add eax, ecx
je 0x41fd6a
mov dword [edi + 0x18], eax
movzx eax, byte [0x494657]
movzx ecx, byte [0x494656]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x494655]
shl eax, 8
add eax, ecx
movzx ecx, byte [0x494654]
shl eax, 8
add eax, ecx
je 0x41fd9a
mov dword [edi + 0x1c], eax
xor ebx, ebx
push ebx
push 1
push dword [ebp - 0xc]
push esi
push 3
call fcn.00420048
cmp eax, ebx
je 0x41fdc9
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 0x41fdef
movzx ecx, byte [0x49465b]
movzx eax, byte [0x49465a]
shl ecx, 8
add ecx, eax
movzx eax, byte [0x494659]
shl ecx, 8
add ecx, eax
movzx eax, byte [0x494658]
shl ecx, 8
add ecx, eax
cmp ecx, ebx
je 0x41fdfb
mov dword [edi + 0x20], ecx
push ebx
push 1
push dword [ebp - 0xc]
push esi
push 1
call fcn.00420048
cmp eax, ebx
je 0x41fe2d
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 0x41fe2f
xor ecx, ecx
cmp ecx, ebx
jne 0x41fe36
mov ecx, dword [ebp - 0x10]
mov eax, ecx
and eax, dword [edi + 0x18]
and ecx, dword [edi + 0x1c]
cmp eax, ecx
jne 0x41fe45
mov dword [edi + 0x20], ebx
push 0x3fc
call fcn.0042a046
mov dword [edi + 0x28], eax
cmp eax, ebx
je 0x41fb63
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.00420048
test eax, eax
je 0x41fea1
movzx ebx, byte [ebp - 1]
push ebx
push eax
mov eax, dword [edi + 0x28]
add eax, dword [edi + 0x24]
push eax
call fcn.00450cc0
add dword [edi + 0x24], ebx
add esp, 0xc
inc byte [ebp - 2]
cmp byte [ebp - 2], 4
jbe 0x41fe61
cmp dword [edi + 0x24], 0
jne 0x41fb4e
push dword [edi + 0x28]
call fcn.0042a097
and dword [edi + 0x28], 0
lea eax, [ebp - 1]
push eax
push 1
push dword [ebp - 0xc]
push esi
push 0xfe
call fcn.00420048
mov ebx, eax
test ebx, ebx
je 0x41ff15
movzx esi, byte [ebp - 1]
lea eax, [esi + esi + 4]
push eax
call fcn.0042a046
test eax, eax
je 0x41fb63
mov dword [edi + 0x2c], eax
cmp byte [ebx], 0x5c
je 0x41fef7
push 0x5c
pop ecx
mov word [eax], cx
inc eax
inc eax
cmp byte [ebp - 1], 0
jbe 0x41ff0a
movzx cx, byte [ebx]
mov word [eax], cx
inc eax
inc eax
inc ebx
dec esi
jne 0x41fefd
push 0x30
pop ecx
mov word [eax], cx
jmp 0x41fb4e
lea eax, [ebp - 1]
push eax
push 1
push dword [ebp - 0xc]
push esi
push 0xfc
call fcn.00420048
mov esi, eax
test esi, esi
je 0x41ff6c
movzx ebx, byte [ebp - 1]
lea eax, [ebx + ebx + 4]
push eax
call fcn.0042a046
test eax, eax
je 0x41fb63
mov dword [edi + 0x30], eax
cmp byte [esi], 0x5c
je 0x41ff55
push 0x5c
pop ecx
mov word [eax], cx
inc eax
inc eax
cmp byte [ebp - 1], 0
jbe 0x41ff68
movzx cx, byte [esi]
mov word [eax], cx
inc eax
inc eax
inc esi
dec ebx
jne 0x41ff5b
xor ecx, ecx
jmp 0x41ff0d
push 0x5c
mov esi, 0x4946ac
push esi
call fcn.004445b0
pop ecx
pop ecx
test eax, eax
je 0x41ff8e
mov ecx, 0x494640
sub eax, ecx
sub eax, 0x6c
movzx eax, ax
jmp 0x41ff90
xor eax, eax
movsx ebx, ax
lea eax, [ebx + ebx + 0x16]
push eax
call fcn.0042a046
test eax, eax
je 0x41fb63
mov dword [edi + 0x2c], eax
cmp byte [0x4946ac], 0x5c
je 0x41ffb9
push 0x5c
pop ecx
mov word [eax], cx
inc eax
inc eax
xor cl, cl
test ebx, ebx
jle 0x41ffd2
movsx dx, byte [esi]
mov word [eax], dx
inc eax
inc eax
inc esi
inc cl
movzx edx, cl
cmp edx, ebx
jl 0x41ffbf
push 5
pop ecx
mov esi, str._boot.ini
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x41fb4e