Function at 0x529f90
Capabilities:
Manipulate boot configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
mov ebx, ecx
call fcn.004f80c0
mov ecx, eax
call fcn.004f9de0
mov ecx, ebx
mov esi, eax
call fcn.004f8200
test eax, eax
jne 0x52a3e0
mov ecx, ebx
call fcn.004f8230
test eax, eax
je 0x529fd1
mov ecx, ebx
call fcn.004f8080
cmp al, 4
jae 0x52a3e0
mov ecx, ebx
call fcn.004f84b0
movzx ecx, al
push ecx
mov byte [ebp - 1], al
mov dword [ebp - 8], 0
call fcn.004f7c20
add esp, 4
mov ecx, ebx
push 0
test eax, eax
je 0x52a01b
movzx eax, byte [ebp - 1]
push eax
push 2
call fcn.004f8120
push edx
push eax
mov ecx, ebx
call fcn.004f8010
push edx
push eax
push esi
call fcn.004faad0
add esp, 0x20
mov dword [ebp - 8], eax
jmp 0x52a04e
push 0x5fc93c
call fcn.004f9af0
test eax, eax
je 0x52a04b
push 2
mov ecx, ebx
call fcn.004f8120
push edx
push eax
mov ecx, ebx
call fcn.004f8010
push edx
push eax
push esi
call fcn.004fad70
add esp, 0x18
mov dword [ebp - 8], eax
jmp 0x52a04e
mov eax, dword [ebp - 8]
push edi
test eax, eax
je 0x52a3d0
movzx eax, word [esi + 6]
push eax
call fcn.00479f2b
add esp, 4
mov dword [ebp - 0x10], eax
test eax, eax
je 0x52a3b4
push esi
push 1
push eax
push 0
push 0
call fcn.004faf40
add esp, 0x14
test eax, eax
je 0x52a38b
mov esi, dword [ebp - 0x10]
xor edi, edi
mov dword [ebp - 0xc], 1
add esi, 0x1c6
nop dword [eax]
mov al, byte [esi - 4]
test al, al
je 0x52a0cb
movzx eax, al
push eax
call fcn.004f7d50
add esp, 4
test eax, eax
jne 0x52a0cb
mov ecx, ebx
call fcn.004f8010
xor ecx, ecx
cmp dword [esi], eax
jne 0x52a0c8
cmp ecx, edx
je 0x52a0d4
inc dword [ebp - 0xc]
inc edi
add esi, 0x10
cmp edi, 4
jb 0x52a0a0
cmp edi, 4
jne 0x52a13c
mov ecx, ebx
call fcn.004f8240
test eax, eax
jne 0x52a10b
push 1
push dword [ebp - 0x10]
lea edi, [eax + 8]
call fcn.0058bb51
add esp, 8
lea eax, [ebp - 8]
push eax
call fcn.00479c30
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, ebx
call fcn.004f7f40
mov ecx, ebx
test eax, eax
jns 0x52a130
call fcn.004f2e40
test eax, eax
je 0x52a13c
mov ecx, eax
call fcn.004f7f40
mov esi, dword [ebp - 0xc]
inc esi
add esi, eax
jmp 0x52a13f
call fcn.004f7f40
mov esi, dword [ebp - 0xc]
add esi, eax
jmp 0x52a13f
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
push 0
push 0x8002
push str.boot.ini
mov eax, dword [ecx]
call dword [eax + 0x80]
mov edi, eax
mov dword [ebp - 0x14], edi
cmp edi, 0xffffffff
je 0x52a362
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0x2c]
push eax
push edi
call fcn.005071b0
mov eax, dword [ebp - 0x2c]
add eax, 0x200
push eax
mov dword [ebp - 0x18], eax
call fcn.00479f2b
mov ebx, eax
add esp, 4
mov dword [ebp - 0xc], ebx
test ebx, ebx
je 0x52a32a
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x2c]
mov edx, dword [ecx]
push ebx
push edi
call dword [edx + 0x44]
mov edi, eax
test edi, edi
jne 0x52a2ec
mov eax, dword [ebp - 0x2c]
push esi
push 0x5fdd34
mov byte [eax + ebx], 0
mov ebx, dword [ebp - 0x10]
push ebx
call fcn.00504ab0
mov edi, ebx
add esp, 0xc
lea ecx, [edi + 1]
nop dword [eax + eax]
mov al, byte [edi]
inc edi
test al, al
jne 0x52a1d0
mov eax, dword [ebp - 0xc]
sub edi, ecx
mov esi, eax
mov dword [ebp - 0x1c], edi
mov al, byte [eax]
test al, al
je 0x52a286
nop dword [eax + eax]
movsx eax, al
push eax
call fcn.005d091d
add esp, 4
cmp eax, 0x70
jne 0x52a27a
push 0xa
push str.partition_
push esi
call fcn.005db519
add esp, 0xc
test eax, eax
jne 0x52a27a
add esi, 0xa
cmp byte [esi], al
je 0x52a286
push 0x29
push esi
call fcn.005ca430
mov edx, eax
add esp, 8
test edx, edx
je 0x52a27a
mov ecx, edx
sub ecx, esi
cmp edi, ecx
je 0x52a26f
mov ecx, edx
lea ebx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x52a240
mov eax, dword [ebp - 0xc]
sub ecx, ebx
add eax, dword [ebp - 0x18]
lea ebx, [ecx + 1]
lea ecx, [ebx + esi]
add ecx, edi
mov edi, dword [ebp - 0x1c]
cmp ecx, eax
ja 0x52a286
push ebx
push edx
lea eax, [esi + edi]
push eax
call fcn.005c9380
mov ebx, dword [ebp - 0x10]
add esp, 0xc
push edi
push ebx
push esi
call fcn.005c9900
add esp, 0xc
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x52a1f0
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x14]
push 0
push 0
mov eax, dword [ecx]
push 0
push esi
call dword [eax + 0x84]
mov ecx, dword [ebp - 8]
lea edx, [ebp - 0x24]
mov ebx, dword [ebp - 0xc]
push edx
push dword [ebp - 0x20]
mov eax, dword [ecx]
push ebx
push esi
call dword [eax + 0x48]
push 1
push ebx
mov edi, eax
call fcn.0058bb51
mov ecx, dword [ebp - 8]
add esp, 8
mov eax, dword [ecx]
push esi
call dword [eax + 0x8c]
push 1
push dword [ebp - 0x10]
call fcn.0058bb51
add esp, 8
lea eax, [ebp - 8]
push eax
call fcn.00479c30
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov esi, dword [ebp - 0x14]
push 1
push ebx
call fcn.0058bb51
mov ecx, dword [ebp - 8]
add esp, 8
mov eax, dword [ecx]
push esi
call dword [eax + 0x8c]
push 1
push dword [ebp - 0x10]
call fcn.0058bb51
add esp, 8
lea eax, [ebp - 8]
push eax
call fcn.00479c30
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp - 8]
mov edi, 2
mov esi, dword [ebp - 0x14]
push esi
mov eax, dword [ecx]
call dword [eax + 0x8c]
push 1
push dword [ebp - 0x10]
call fcn.0058bb51
add esp, 8
lea eax, [ebp - 8]
push eax
call fcn.00479c30
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 1
push dword [ebp - 0x10]
mov edi, 6
call fcn.0058bb51
add esp, 8
lea eax, [ebp - 8]
push eax
call fcn.00479c30
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 1
push dword [ebp - 0x10]
mov edi, 0x12
call fcn.0058bb51
add esp, 8
lea eax, [ebp - 8]
push eax
call fcn.00479c30
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea eax, [ebp - 8]
mov edi, 2
push eax
call fcn.00479c30
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, 5
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
pop esi
mov eax, 0x49
pop ebx
mov esp, ebp
pop ebp
ret 4