Function at 0x1001a250
Capabilities:
Inspect section memory permissions

Disassembly:
mov dl, byte [0x10067ce0]
mov eax, dword [str.DDSCAPS_]
mov ecx, dword [0x10067cdc]
mov byte [0x10084880], dl
mov edx, dword [esp + 4]
mov dword [0x10084878], eax
mov dword [0x1008487c], ecx
test dl, 1
je 0x1001a2ae
mov eax, 0x10084878
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a281
mov ecx, dword [str.RESERVED1]
mov dword [eax], ecx
mov ecx, dword [0x10067cd0]
mov dword [eax + 4], ecx
mov cx, word [0x10067cd4]
mov word [eax + 8], cx
mov cl, byte [0x10067cd6]
mov byte [eax + 0xa], cl
test dl, 2
je 0x1001a2e4
mov eax, 0x10084878
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a2c0
mov ecx, dword [str.ALPHA]
mov dword [eax], ecx
mov cx, word [0x10067cc8]
mov word [eax + 4], cx
mov cl, byte [0x10067cca]
mov byte [eax + 6], cl
test dl, 4
je 0x1001a312
mov eax, 0x10084878
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a2f0
mov ecx, dword [str.BACKBUFFER]
mov dword [eax], ecx
mov ecx, dword [0x10067cbc]
mov dword [eax + 4], ecx
mov ecx, dword [0x10067cc0]
mov dword [eax + 8], ecx
test dl, 8
je 0x1001a342
mov eax, 0x10084878
dec eax
lea ecx, [ecx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a320
mov ecx, dword [str.COMPLEX]
mov dword [eax], ecx
mov ecx, dword [0x10067cb0]
mov dword [eax + 4], ecx
mov cl, byte [0x10067cb4]
mov byte [eax + 8], cl
test dl, 0x10
je 0x1001a36b
mov eax, 0x10084878
dec eax
lea ecx, [ecx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a350
mov ecx, dword [0x10067ca4]
mov dword [eax], ecx
mov cx, word [0x10067ca8]
mov word [eax + 4], cx
test dl, 0x20
je 0x1001a3a1
mov eax, 0x10084878
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a376
mov ecx, dword [str.FRONTBUFFER]
mov dword [eax], ecx
mov ecx, dword [0x10067c98]
mov dword [eax + 4], ecx
mov ecx, dword [0x10067c9c]
mov dword [eax + 8], ecx
mov cl, byte [0x10067ca0]
mov byte [eax + 0xc], cl
test dl, 0x40
je 0x1001a3db
mov eax, 0x10084878
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a3b0
mov ecx, dword [str.OFFSCREENPLAIN]
mov dword [eax], ecx
mov ecx, dword [0x10067c88]
mov dword [eax + 4], ecx
mov ecx, dword [0x10067c8c]
mov dword [eax + 8], ecx
mov ecx, dword [0x10067c90]
mov dword [eax + 0xc], ecx
test dl, dl
jns 0x1001a407
mov eax, 0x10084878
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a3e5
mov ecx, dword [0x10067c78]
mov dword [eax], ecx
mov ecx, dword [0x10067c7c]
mov dword [eax + 4], ecx
mov cl, byte [0x10067c80]
mov byte [eax + 8], cl
test edx, 0x100
je 0x1001a437
mov eax, 0x10084878
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a415
mov ecx, dword [str.PALETTE]
mov dword [eax], ecx
mov ecx, dword [0x10067c70]
mov dword [eax + 4], ecx
mov cl, byte [0x10067c74]
mov byte [eax + 8], cl
test edx, 0x200
je 0x1001a470
mov eax, 0x10084878
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a445
mov ecx, dword [str.PRIMARYSURFACE]
mov dword [eax], ecx
mov ecx, dword [0x10067c60]
mov dword [eax + 4], ecx
mov ecx, dword [0x10067c64]
mov dword [eax + 8], ecx
mov ecx, dword [0x10067c68]
mov dword [eax + 0xc], ecx
test edx, 0x800
je 0x1001a4ad
mov eax, 0x10084878
dec eax
mov edi, edi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a480
mov ecx, dword [str.SYSTEMMEMORY]
mov dword [eax], ecx
mov ecx, dword [0x10067c50]
mov dword [eax + 4], ecx
mov ecx, dword [0x10067c54]
mov dword [eax + 8], ecx
mov cx, word [0x10067c58]
mov word [eax + 0xc], cx
test edx, 0x1000
je 0x1001a4e2
mov eax, 0x10084878
dec eax
jmp 0x1001a4c0
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a4c0
mov ecx, dword [str.TEXTURE]
mov dword [eax], ecx
mov ecx, dword [0x10067c44]
mov dword [eax + 4], ecx
mov cl, byte [0x10067c48]
mov byte [eax + 8], cl
test edx, 0x2000
je 0x1001a514
mov eax, 0x10084878
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a4f0
mov ecx, dword [str.3DDEVICE]
mov dword [eax], ecx
mov ecx, dword [0x10067c38]
mov dword [eax + 4], ecx
mov cx, word [0x10067c3c]
mov word [eax + 8], cx
test edx, 0x4000
je 0x1001a54d
mov eax, 0x10084878
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a522
mov ecx, dword [str.VIDEOMEMORY]
mov dword [eax], ecx
mov ecx, dword [0x10067c28]
mov dword [eax + 4], ecx
mov ecx, dword [0x10067c2c]
mov dword [eax + 8], ecx
mov cl, byte [0x10067c30]
mov byte [eax + 0xc], cl
test edx, 0x8000
je 0x1001a582
mov eax, 0x10084878
dec eax
jmp 0x1001a560
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a560
mov ecx, dword [str.VISIBLE]
mov dword [eax], ecx
mov ecx, dword [0x10067c1c]
mov dword [eax + 4], ecx
mov cl, byte [0x10067c20]
mov byte [eax + 8], cl
test edx, 0x10000
je 0x1001a5bd
mov eax, 0x10084878
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a590
mov ecx, dword [str.WRITEONLY]
mov dword [eax], ecx
mov ecx, dword [0x10067c10]
mov dword [eax + 4], ecx
mov cx, word [0x10067c14]
mov word [eax + 8], cx
mov cl, byte [0x10067c16]
mov byte [eax + 0xa], cl
test edx, 0x20000
je 0x1001a5f2
mov eax, 0x10084878
dec eax
jmp 0x1001a5d0
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a5d0
mov ecx, dword [str.ZBUFFER]
mov dword [eax], ecx
mov ecx, dword [0x10067c04]
mov dword [eax + 4], ecx
mov cl, byte [0x10067c08]
mov byte [eax + 8], cl
test edx, 0x40000
je 0x1001a624
mov eax, 0x10084878
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a600
mov ecx, dword [str.OWNDC]
mov dword [eax], ecx
mov cx, word [0x10067bfc]
mov word [eax + 4], cx
mov cl, byte [0x10067bfe]
mov byte [eax + 6], cl
test edx, 0x80000
je 0x1001a65f
mov eax, 0x10084878
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a632
mov ecx, dword [str.LIVEVIDEO]
mov dword [eax], ecx
mov ecx, dword [0x10067bf0]
mov dword [eax + 4], ecx
mov cx, word [0x10067bf4]
mov word [eax + 8], cx
mov cl, byte [0x10067bf6]
mov byte [eax + 0xa], cl
test edx, 0x100000
je 0x1001a692
mov eax, 0x10084878
dec eax
lea ecx, [ecx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a670
mov ecx, dword [str.HWCODEC]
mov dword [eax], ecx
mov ecx, dword [0x10067be4]
mov dword [eax + 4], ecx
mov cl, byte [0x10067be8]
mov byte [eax + 8], cl
test edx, 0x200000
je 0x1001a6c4
mov eax, 0x10084878
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a6a0
mov ecx, dword [str.MODEX]
mov dword [eax], ecx
mov cx, word [0x10067bdc]
mov word [eax + 4], cx
mov cl, byte [0x10067bde]
mov byte [eax + 6], cl
test edx, 0x400000
je 0x1001a6eb
mov eax, 0x10084878
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a6d2
mov ecx, dword [str.MIPMAP]
mov dword [eax], ecx
mov ecx, dword [0x10067bd4]
mov dword [eax + 4], ecx
test edx, 0x800000
je 0x1001a72d
mov eax, 0x10084878
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a700
mov ecx, dword [str.RESERVED2]
mov dword [eax], ecx
mov ecx, dword [0x10067bc8]
mov dword [eax + 4], ecx
mov cx, word [0x10067bcc]
mov word [eax + 8], cx
mov cl, byte [0x10067bce]
mov byte [eax + 0xa], cl
test edx, 0x4000000
je 0x1001a76b
mov eax, 0x10084878
dec eax
jmp 0x1001a740
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a740
mov ecx, dword [str.ALLOCONLOAD]
mov dword [eax], ecx
mov ecx, dword [0x10067bb8]
mov dword [eax + 4], ecx
mov ecx, dword [0x10067bbc]
mov dword [eax + 8], ecx
mov cl, byte [0x10067bc0]
mov byte [eax + 0xc], cl
test edx, 0x8000000
je 0x1001a7ad
mov eax, 0x10084878
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a780
mov ecx, dword [str.VIDEOPORT]
mov dword [eax], ecx
mov ecx, dword [0x10067bac]
mov dword [eax + 4], ecx
mov cx, word [0x10067bb0]
mov word [eax + 8], cx
mov cl, byte [0x10067bb2]
mov byte [eax + 0xa], cl
test edx, 0x10000000
je 0x1001a7eb
mov eax, 0x10084878
dec eax
jmp 0x1001a7c0
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a7c0
mov ecx, dword [str.LOCALVIDMEM]
mov dword [eax], ecx
mov ecx, dword [0x10067b9c]
mov dword [eax + 4], ecx
mov ecx, dword [0x10067ba0]
mov dword [eax + 8], ecx
mov cl, byte [0x10067ba4]
mov byte [eax + 0xc], cl
test edx, 0x20000000
je 0x1001a82b
mov eax, 0x10084878
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a800
mov ecx, dword [str.NONLOCALVIDMEM]
mov dword [eax], ecx
mov ecx, dword [0x10067b8c]
mov dword [eax + 4], ecx
mov ecx, dword [0x10067b90]
mov dword [eax + 8], ecx
mov ecx, dword [0x10067b94]
mov dword [eax + 0xc], ecx
test edx, 0x40000000
je 0x1001a874
mov eax, 0x10084878
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a840
mov ecx, dword [str.STANDARDVGAMODE]
mov dword [eax], ecx
mov ecx, dword [0x10067b78]
mov dword [eax + 4], ecx
mov ecx, dword [0x10067b7c]
mov dword [eax + 8], ecx
mov ecx, dword [0x10067b80]
mov dword [eax + 0xc], ecx
mov cl, byte [0x10067b84]
mov byte [eax + 0x10], cl
test edx, edx
jns 0x1001a8ad
mov eax, 0x10084878
dec eax
mov edi, edi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1001a880
mov edx, dword [str.OPTIMIZED]
mov ecx, dword [0x10067b6c]
mov dword [eax], edx
mov dx, word [0x10067b70]
mov dword [eax + 4], ecx
mov cl, byte [0x10067b72]
mov word [eax + 8], dx
mov byte [eax + 0xa], cl
mov eax, 0x10084878
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1001a8b5
sub eax, edx
cmp eax, 8
jbe 0x1001a8cf
mov byte [eax + 0x10084877], cl
mov eax, 0x10084878
ret
mov byte [0x10084878], 0
mov eax, 0x10084878
ret