Function at 0x100b9e50
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10249fa8
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x102e1e14]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
mov ebx, dword [ebp + 8]
push 0x10c
mov dword [ebx], 0
mov dword [ebx + 4], 0
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], 0x10c
xor al, al
mov dword [ebp - 4], 0
xor esi, esi
nop
test al, al
jne 0x100b9f17
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
push 0
call fcn.100bb3b0
inc esi
cmp esi, 5
jl 0x100b9eb0
test al, al
jne 0x100b9f17
push str.error_reading_profile_list
lea ecx, [ebp - 0x1c]
call fcn.10016440
push str.GetCapabilities
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 1
call fcn.10016440
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x34]
push eax
push edi
push 0
call fcn.100bc160
add esp, 0x10
lea ecx, [ebp - 0x34]
mov bl, al
call fcn.100165a0
lea ecx, [ebp - 0x1c]
call fcn.100165a0
jmp 0x100ba6fe
push 0x2c
call fcn.100d1d56
mov esi, eax
add esp, 4
mov dword [ebp - 0x20], esi
mov eax, dword [edi]
mov ecx, edi
push esi
mov byte [ebp - 4], 3
mov eax, dword [eax + 0xa0]
call eax
test al, al
jne 0x100b9f77
push str.error_reading_capabilities_page
lea ecx, [ebp - 0x1c]
call fcn.10016440
push str.GetCapabilities
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 4
call fcn.10016440
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x34]
push eax
push edi
push 0
call fcn.100bc160
add esp, 0x10
mov bl, al
jmp 0x100ba6e3
test byte [esi + 0xa], 1
je 0x100b9f86
mov eax, dword [ebx + 4]
or dword [ebx], 1
mov dword [ebx + 4], eax
test byte [esi + 0xb], 1
je 0x100b9f98
mov eax, dword [ebx + 4]
or dword [ebx], 0x80000
mov dword [ebx + 4], eax
test byte [esi + 0xa], 2
je 0x100b9fa7
mov eax, dword [ebx + 4]
or dword [ebx], 2
mov dword [ebx + 4], eax
test byte [esi + 0xb], 2
je 0x100b9fb9
mov eax, dword [ebx + 4]
or dword [ebx], 0x100000
mov dword [ebx + 4], eax
mov al, byte [esi + 0xa]
test al, 8
je 0x100b9fcc
mov eax, dword [ebx + 4]
or dword [ebx], 4
mov dword [ebx + 4], eax
mov al, byte [esi + 0xa]
test al, 0x10
mov eax, dword [ebx + 4]
je 0x100b9fd9
or dword [ebx], 0x18
mov dword [ebx + 4], eax
test byte [esi + 0xb], 0x10
mov ecx, dword [ebx]
je 0x100b9fec
or ecx, 0x600000
mov dword [ebx + 4], eax
mov dword [ebx], ecx
test byte [esi + 0xa], 0x20
je 0x100b9ffa
or ecx, 0x20
mov dword [ebx + 4], eax
mov dword [ebx], ecx
mov dl, byte [esi + 0xb]
test dl, 0x20
je 0x100ba010
or ecx, 0x800000
mov dword [ebx + 4], eax
mov dword [ebx], ecx
mov dl, byte [esi + 0xb]
test dl, 4
je 0x100ba01d
or eax, 0x10
mov dword [ebx], ecx
mov dword [ebx + 4], eax
mov dl, byte [esi + 0xc]
test dl, dl
jns 0x100ba02f
or eax, 0x20
mov dword [ebx], ecx
mov dword [ebx + 4], eax
mov dl, byte [esi + 0xc]
test dl, 0x40
je 0x100ba03e
or eax, 0x80
mov dword [ebx], ecx
mov dword [ebx + 4], eax
mov eax, dword [ebp + 0xc]
and eax, 0x30000c0
or eax, 0
je 0x100ba0a5
push 0x10
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 6
push eax
push 0x2a
mov ecx, edi
call fcn.100bb3b0
mov ecx, dword [ebp - 0x18]
test al, al
je 0x100ba096
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
or eax, 0xc0
mov dword [ebx], eax
mov dword [ebx + 4], edx
test byte [ecx + 0xc], 1
je 0x100ba096
or eax, 0x3000000
mov dword [ebx + 4], edx
mov dword [ebx], eax
push 0x10
push ecx
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
mov ecx, dword [ebp + 0x10]
xor eax, eax
and ecx, 0x2800
or eax, ecx
je 0x100ba10e
push 0x10
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 7
push eax
push 0x3b
mov ecx, edi
call fcn.100bb3b0
mov ecx, dword [ebp - 0x18]
test al, al
je 0x100ba0ff
mov eax, dword [ebx + 4]
mov edx, dword [ebx]
or eax, 0x800
mov dword [ebx], edx
mov dword [ebx + 4], eax
test byte [ecx + 0xc], 1
je 0x100ba0ff
or eax, 0x2000
mov dword [ebx], edx
mov dword [ebx + 4], eax
push 0x10
push ecx
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
mov ecx, dword [ebp + 0x10]
xor eax, eax
and ecx, 0x5000
or eax, ecx
je 0x100ba177
push 0x10
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 8
push eax
push 0x3a
mov ecx, edi
call fcn.100bb3b0
mov ecx, dword [ebp - 0x18]
test al, al
je 0x100ba168
mov eax, dword [ebx + 4]
mov edx, dword [ebx]
or eax, 0x1000
mov dword [ebx], edx
mov dword [ebx + 4], eax
test byte [ecx + 0xc], 1
je 0x100ba168
or eax, 0x4000
mov dword [ebx], edx
mov dword [ebx + 4], eax
push 0x10
push ecx
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
mov eax, dword [ebp + 0xc]
and eax, 0x100
or eax, 0
je 0x100ba1d1
push 0x10
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 9
push eax
push 0x1f
mov ecx, edi
call fcn.100bb3b0
mov ecx, dword [ebp - 0x18]
test al, al
je 0x100ba1c2
test byte [ecx + 0xe], 1
je 0x100ba1c2
mov eax, dword [ebx + 4]
or dword [ebx], 0x100
mov dword [ebx + 4], eax
push 0x10
push ecx
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
mov eax, dword [ebp + 0xc]
and eax, 0x4000100
or eax, 0
je 0x100ba249
mov edi, dword [ebp - 0x28]
xor cl, cl
mov byte [ebp + 0xb], cl
test byte [edi + 0xb], 0xfc
jbe 0x100ba249
nop dword [eax]
movzx eax, cl
push 0x15
lea eax, [eax*4 + 0xc]
mov dword [ebp - 0x14], eax
call fcn.10032230
mov ecx, dword [ebp - 0x14]
add esp, 4
cmp word [ecx + edi], ax
je 0x100ba23d
mov edi, dword [ebp - 0x28]
push 0x16
call fcn.10032230
mov ecx, dword [ebp - 0x14]
add esp, 4
cmp word [ecx + edi], ax
je 0x100ba23d
mov edi, dword [ebp - 0x28]
mov cl, byte [ebp + 0xb]
inc cl
mov byte [ebp + 0xb], cl
mov al, byte [edi + 0xb]
shr al, 2
cmp cl, al
jb 0x100ba1f0
jmp 0x100ba249
mov eax, dword [ebx + 4]
or dword [ebx], 0x4000100
mov dword [ebx + 4], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
and ecx, 0x40000
and eax, 8
or ecx, eax
je 0x100ba2a5
push 0x10
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x10
mov edi, dword [ebp - 0x10]
lea eax, [ebp - 0x18]
push eax
push 0x27
mov ecx, edi
mov byte [ebp - 4], 0xa
call fcn.100bb3b0
test al, al
je 0x100ba292
or dword [ebx], 0x40000
or dword [ebx + 4], 8
push 0x10
push dword [ebp - 0x18]
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
jmp 0x100ba2a8
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp + 0xc]
and eax, 0x1c00
or eax, 0
je 0x100ba343
push 0x28
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0x28
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0xb
push eax
push 0x40
mov ecx, edi
call fcn.100bb3b0
mov ecx, dword [ebp - 0x30]
test al, al
je 0x100ba334
mov eax, 0x200
test word [ecx + 0x20], ax
je 0x100ba2fc
mov eax, dword [ebx + 4]
or dword [ebx], 0x1000
mov dword [ebx + 4], eax
mov edx, dword [ebx + 4]
mov edi, 0x200
mov eax, dword [ebx]
mov dword [ebp - 0x14], edx
mov dword [ebp + 8], eax
test word [ecx + 0x18], di
je 0x100ba31c
or eax, 0x400
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov edi, 0x600
test word [ecx + 0x10], di
mov edi, dword [ebp - 0x10]
je 0x100ba334
or eax, 0x800
mov dword [ebx + 4], edx
mov dword [ebx], eax
push 0x28
push ecx
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
mov eax, dword [ebp + 0xc]
and eax, 0x30000000
or eax, 0
je 0x100ba3bf
push 0x20
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0x20
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0xc
push eax
push 0x41
mov ecx, edi
call fcn.100bb3b0
mov ecx, dword [ebp - 0x30]
test al, al
je 0x100ba3b0
mov eax, 0x200
test word [ecx + 0x18], ax
je 0x100ba393
mov eax, dword [ebx + 4]
or dword [ebx], 0x10000000
mov dword [ebx + 4], eax
mov edx, dword [ebx + 4]
mov edi, 0x600
test word [ecx + 0x10], di
mov eax, dword [ebx]
mov edi, dword [ebp - 0x10]
je 0x100ba3b0
or eax, 0x20000000
mov dword [ebx + 4], edx
mov dword [ebx], eax
push 0x20
push ecx
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
mov eax, dword [ebp + 0xc]
and eax, 0xe000
or eax, 0
je 0x100ba436
push 0x10
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0xd
push eax
push 0x50
mov ecx, edi
call fcn.100bb3b0
mov ecx, dword [ebp - 0x30]
test al, al
je 0x100ba427
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
or eax, 0x8000
mov dword [ebx], eax
mov dword [ebx + 4], edx
test byte [ecx + 0xc], 1
je 0x100ba417
or eax, 0x2000
mov dword [ebx + 4], edx
mov dword [ebx], eax
test byte [ecx + 0xe], 1
je 0x100ba427
or eax, 0x4000
mov dword [ebx + 4], edx
mov dword [ebx], eax
push 0x10
push ecx
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
mov eax, dword [ebp + 0xc]
and eax, 0xc0000000
or eax, 0
je 0x100ba4a5
push 0x10
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0xe
push eax
push 0x51
mov ecx, edi
call fcn.100bb3b0
mov ecx, dword [ebp - 0x30]
test al, al
je 0x100ba496
test byte [ecx + 0xc], 1
je 0x100ba481
mov eax, dword [ebx + 4]
or dword [ebx], 0x40000000
mov dword [ebx + 4], eax
test byte [ecx + 0xe], 1
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
je 0x100ba496
or eax, 0x80000000
mov dword [ebx + 4], edx
mov dword [ebx], eax
push 0x10
push ecx
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
and ecx, 0x20000
and eax, 4
or ecx, eax
je 0x100ba511
push 0x10
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0xf
push eax
push 0x28
mov ecx, edi
call fcn.100bb3b0
mov edx, dword [ebp - 0x30]
test al, al
je 0x100ba502
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
or ecx, 0x20000
mov dword [ebx], ecx
mov dword [ebx + 4], eax
test byte [edx + 0xc], 1
je 0x100ba502
or eax, 4
mov dword [ebx], ecx
mov dword [ebx + 4], eax
push 0x10
push edx
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
mov ecx, dword [ebp + 0x10]
xor eax, eax
and ecx, 0x40
or eax, ecx
je 0x100ba562
push 0x10
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0x10
push eax
push 0x101
mov ecx, edi
call fcn.100bb3b0
test al, al
je 0x100ba551
mov eax, dword [ebx]
or dword [ebx + 4], 0x40
mov dword [ebx], eax
push 0x10
push dword [ebp - 0x30]
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
mov ecx, dword [ebp + 0x10]
xor eax, eax
and ecx, 0x400
or eax, ecx
je 0x100ba5b9
push 0x10
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0x11
push eax
push 0x107
mov ecx, edi
call fcn.100bb3b0
test al, al
je 0x100ba5a8
mov eax, dword [ebx]
or dword [ebx + 4], 0x400
mov dword [ebx], eax
push 0x10
push dword [ebp - 0x30]
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
mov ecx, dword [ebp + 0x10]
xor eax, eax
and ecx, 0x100
or eax, ecx
je 0x100ba610
push 0x10
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0x12
push eax
push 0x10b
mov ecx, edi
call fcn.100bb3b0
test al, al
je 0x100ba5ff
mov eax, dword [ebx]
or dword [ebx + 4], 0x100
mov dword [ebx], eax
push 0x10
push dword [ebp - 0x30]
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
mov ecx, dword [ebp + 0x10]
xor eax, eax
and ecx, 0x200
or eax, ecx
je 0x100ba664
push 0x10
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0x13
push eax
push 0x24
mov ecx, edi
call fcn.100bb3b0
test al, al
je 0x100ba653
mov eax, dword [ebx]
or dword [ebx + 4], 0x200
mov dword [ebx], eax
push 0x10
push dword [ebp - 0x30]
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
mov ecx, dword [ebp + 0x10]
xor eax, eax
and ecx, 0x8000
or eax, ecx
je 0x100ba6b8
push 0x20
call fcn.100d1d56
add esp, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0x20
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0x14
push eax
push 0x33
mov ecx, edi
call fcn.100bb3b0
test al, al
je 0x100ba6a7
mov eax, dword [ebx]
or dword [ebx + 4], 0x8000
mov dword [ebx], eax
push 0x20
push dword [ebp - 0x30]
mov byte [ebp - 4], 3
call fcn.10209d2a
add esp, 8
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x1c]
and dword [ebx], eax
mov eax, dword [ebp + 0x10]
and dword [ebx + 4], eax
push str.no_error
call fcn.10016440
push str.GetCapabilities
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x15
call fcn.10016440
mov bl, 1
lea ecx, [ebp - 0x34]
call fcn.100165a0
lea ecx, [ebp - 0x1c]
call fcn.100165a0
push 0x2c
push esi
call fcn.10209d2a
add esp, 8
push 0x10c
push dword [ebp - 0x28]
call fcn.10209d2a
add esp, 8
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc