Function at 0x408cc5
Capabilities:
Manipulate boot configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push 0x4021c6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push 0x74
pop eax
call fcn.004021c0
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x14], 0x401520
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 4], 1
mov dword [ebp - 4], 2
push 0xffffffffffffffff
call fcn.004024c6
mov dword [ebp - 4], 3
mov dword [ebp - 0x58], 0x4048d0
mov dword [ebp - 0x60], 8
lea eax, [ebp - 0x40]
push eax
call fcn.004023e2
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.00402424
push eax
call fcn.0040248a
mov edx, eax
lea ecx, [ebp - 0x24]
call fcn.004024c0
lea eax, [ebp - 0x24]
push eax
call fcn.0040ede5
lea ecx, [ebp - 0x24]
call fcn.00402496
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x40]
push eax
push 2
call fcn.0040244e
add esp, 0xc
mov dword [ebp - 4], 4
or eax, 0xffffffff
test eax, eax
je 0x4094a1
mov dword [ebp - 4], 5
call fcn.00408713
mov dword [ebp - 4], 6
call fcn.00402400
mov dword [ebp - 4], 7
push 0x64
call fcn.00403418
call fcn.00402478
mov dword [ebp - 4], 8
push 0x412014
call fcn.0040ad7c
mov edx, eax
lea ecx, [ebp - 0x24]
call fcn.004024c0
lea ecx, [ebp - 0x24]
call fcn.00402496
mov dword [ebp - 4], 9
call fcn.00402400
mov dword [ebp - 4], 0xa
movzx eax, byte [0x412025]
test eax, eax
jne 0x408e2d
mov dword [ebp - 4], 0xb
push dword [0x412018]
push 0x4042ac
call fcn.004024ae
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], 8
push 0
lea eax, [ebp - 0x40]
push eax
call fcn.004023fa
fstp qword [ebp - 0x6c]
lea ecx, [ebp - 0x40]
call fcn.00402490
mov dword [ebp - 4], 0xd
call fcn.00402400
mov dword [ebp - 4], 0xe
push 0x64
call fcn.00403418
call fcn.00402478
mov dword [ebp - 4], 0xf
push dword [0x41201c]
push 0x4047b4
call fcn.004024ae
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], 8
push 0
lea eax, [ebp - 0x40]
push eax
call fcn.0040249c
mov edx, eax
lea ecx, [ebp - 0x24]
call fcn.004024c0
push eax
call fcn.004024ba
xor ecx, ecx
cmp eax, 5
setl cl
neg ecx
mov word [ebp - 0x70], cx
lea ecx, [ebp - 0x24]
call fcn.00402496
lea ecx, [ebp - 0x40]
call fcn.00402490
movsx eax, word [ebp - 0x70]
test eax, eax
je 0x408f39
mov dword [ebp - 4], 0x10
mov edx, 0x404628
lea ecx, [ebp - 0x28]
call fcn.004024b4
mov edx, 0x404418
lea ecx, [ebp - 0x24]
call fcn.004024b4
mov word [ebp - 0x64], 0x3e7
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040ab97
xor ecx, ecx
cmp eax, 5
setl cl
neg ecx
mov word [ebp - 0x70], cx
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
push 2
call fcn.004024a8
add esp, 0xc
movsx eax, word [ebp - 0x70]
test eax, eax
je 0x408f39
mov dword [ebp - 4], 0x11
call fcn.00402400
mov dword [ebp - 4], 0x12
push 0x3a98
call fcn.00403418
call fcn.00402478
jmp 0x408eb2
mov dword [ebp - 4], 0x15
call fcn.00402400
mov dword [ebp - 4], 0x16
push 0x64
call fcn.00403418
call fcn.00402478
mov dword [ebp - 4], 0x17
mov edx, 0x40482c
lea ecx, [ebp - 0x2c]
call fcn.004024b4
mov edx, 0x404294
lea ecx, [ebp - 0x28]
call fcn.004024b4
push dword [0x41201c]
push 0x4047b4
call fcn.004024ae
mov edx, eax
lea ecx, [ebp - 0x24]
call fcn.004024c0
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0040c472
mov edx, eax
lea ecx, [ebp - 0x30]
call fcn.004024c0
push eax
push 0x40484c
push 1
call fcn.004023dc
neg ax
sbb eax, eax
neg eax
neg eax
mov word [ebp - 0x70], ax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
push 4
call fcn.004024a8
add esp, 0x14
movsx eax, word [ebp - 0x70]
test eax, eax
je 0x409075
mov dword [ebp - 4], 0x18
mov edx, 0x404628
lea ecx, [ebp - 0x28]
call fcn.004024b4
mov edx, 0x404418
lea ecx, [ebp - 0x24]
call fcn.004024b4
mov word [ebp - 0x64], 0x3e7
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040ab97
xor ecx, ecx
cmp eax, 5
setl cl
neg ecx
mov word [ebp - 0x70], cx
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
push 2
call fcn.004024a8
add esp, 0xc
movsx eax, word [ebp - 0x70]
test eax, eax
je 0x409075
mov dword [ebp - 4], 0x19
call fcn.00402400
mov dword [ebp - 4], 0x1a
push 0x3a98
call fcn.00403418
call fcn.00402478
jmp 0x408fee
mov dword [ebp - 4], 0x1d
call fcn.00402400
mov dword [ebp - 4], 0x1e
push 0x64
call fcn.00403418
call fcn.00402478
mov dword [ebp - 4], 0x1f
push dword [0x412018]
push 0x4042ac
call fcn.004024ae
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], 8
push 0
lea eax, [ebp - 0x40]
push eax
call fcn.0040249c
mov edx, eax
lea ecx, [ebp - 0x24]
call fcn.004024c0
push eax
call fcn.004024ba
xor ecx, ecx
cmp eax, 5
setl cl
neg ecx
mov word [ebp - 0x70], cx
lea ecx, [ebp - 0x24]
call fcn.00402496
lea ecx, [ebp - 0x40]
call fcn.00402490
movsx eax, word [ebp - 0x70]
test eax, eax
je 0x40916a
mov dword [ebp - 4], 0x20
call fcn.00406ea6
mov edx, eax
lea ecx, [ebp - 0x2c]
call fcn.004024c0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x88], eax
and dword [ebp - 0x2c], 0
push dword [0x412018]
push 0x4042ac
call fcn.004024ae
mov edx, eax
lea ecx, [ebp - 0x28]
call fcn.004024c0
push eax
mov edx, dword [ebp - 0x88]
lea ecx, [ebp - 0x24]
call fcn.004024c0
push eax
call fcn.004023e8
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
push 3
call fcn.004024a8
add esp, 0x10
mov dword [ebp - 4], 0x21
call fcn.00402400
mov dword [ebp - 4], 0x23
call fcn.00402400
mov dword [ebp - 4], 0x24
push 0x64
call fcn.00403418
call fcn.00402478
mov dword [ebp - 4], 0x25
push dword [0x41201c]
push 0x4037e8
call fcn.004024ae
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], 8
push 0
lea eax, [ebp - 0x40]
push eax
call fcn.0040249c
mov edx, eax
lea ecx, [ebp - 0x24]
call fcn.004024c0
push eax
call fcn.004024ba
xor ecx, ecx
cmp eax, 5
setl cl
neg ecx
mov word [ebp - 0x70], cx
lea ecx, [ebp - 0x24]
call fcn.00402496
lea ecx, [ebp - 0x40]
call fcn.00402490
movsx eax, word [ebp - 0x70]
test eax, eax
je 0x40925f
mov dword [ebp - 4], 0x26
call fcn.00406ea6
mov edx, eax
lea ecx, [ebp - 0x2c]
call fcn.004024c0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x8c], eax
and dword [ebp - 0x2c], 0
push dword [0x41201c]
push 0x4037e8
call fcn.004024ae
mov edx, eax
lea ecx, [ebp - 0x28]
call fcn.004024c0
push eax
mov edx, dword [ebp - 0x8c]
lea ecx, [ebp - 0x24]
call fcn.004024c0
push eax
call fcn.004023e8
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
push 3
call fcn.004024a8
add esp, 0x10
mov dword [ebp - 4], 0x27
call fcn.00402400
mov dword [ebp - 4], 0x29
call fcn.00402400
mov dword [ebp - 4], 0x2a
push 0x64
call fcn.00403418
call fcn.00402478
mov dword [ebp - 4], 0x2b
push dword [0x412018]
push 0x404274
call fcn.004024ae
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], 8
push 0
lea eax, [ebp - 0x40]
push eax
call fcn.0040249c
mov edx, eax
lea ecx, [ebp - 0x24]
call fcn.004024c0
push eax
call fcn.004024ba
xor ecx, ecx
cmp eax, 5
setl cl
neg ecx
mov word [ebp - 0x70], cx
lea ecx, [ebp - 0x24]
call fcn.00402496
lea ecx, [ebp - 0x40]
call fcn.00402490
movsx eax, word [ebp - 0x70]
test eax, eax
je 0x409354
mov dword [ebp - 4], 0x2c
call fcn.00406ea6
mov edx, eax
lea ecx, [ebp - 0x2c]
call fcn.004024c0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x90], eax
and dword [ebp - 0x2c], 0
push dword [0x412018]
push 0x404274
call fcn.004024ae
mov edx, eax
lea ecx, [ebp - 0x28]
call fcn.004024c0
push eax
mov edx, dword [ebp - 0x90]
lea ecx, [ebp - 0x24]
call fcn.004024c0
push eax
call fcn.004023e8
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
push 3
call fcn.004024a8
add esp, 0x10
mov dword [ebp - 4], 0x2d
call fcn.00402400
mov dword [ebp - 4], 0x2f
call fcn.00402400
mov dword [ebp - 4], 0x30
push 0x64
call fcn.00403418
call fcn.00402478
mov dword [ebp - 4], 0x31
push dword [0x41201c]
push 0x4043c0
call fcn.004024ae
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], 8
push 0
lea eax, [ebp - 0x40]
push eax
call fcn.0040249c
mov edx, eax
lea ecx, [ebp - 0x24]
call fcn.004024c0
push eax
call fcn.004024ba
xor ecx, ecx
cmp eax, 5
setl cl
neg ecx
mov word [ebp - 0x70], cx
lea ecx, [ebp - 0x24]
call fcn.00402496
lea ecx, [ebp - 0x40]
call fcn.00402490
movsx eax, word [ebp - 0x70]
test eax, eax
je 0x409449
mov dword [ebp - 4], 0x32
call fcn.00406ea6
mov edx, eax
lea ecx, [ebp - 0x2c]
call fcn.004024c0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x94], eax
and dword [ebp - 0x2c], 0
push dword [0x41201c]
push 0x4043c0
call fcn.004024ae
mov edx, eax
lea ecx, [ebp - 0x28]
call fcn.004024c0
push eax
mov edx, dword [ebp - 0x94]
lea ecx, [ebp - 0x24]
call fcn.004024c0
push eax
call fcn.004023e8
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
push 3
call fcn.004024a8
add esp, 0x10
mov dword [ebp - 4], 0x33
call fcn.00402400
mov dword [ebp - 4], 0x35
call fcn.00402400
mov dword [ebp - 4], 0x36
push 0x64
call fcn.00403418
call fcn.00402478
mov dword [ebp - 4], 0x37
and word [ebp - 0x64], 0
lea eax, [ebp - 0x64]
push eax
call fcn.0040ba10
mov dword [ebp - 4], 0x38
call fcn.00402400
mov dword [ebp - 4], 0x39
push 0x64
call fcn.00403418
call fcn.00402478
jmp 0x408d78
wait
push 0x4094d7
jmp 0x4094d6
ret