Function at 0x438f0
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x810
test eax, 0x20000000
push ebx
push esi
push edi
mov edi, edx
mov edx, dword [ecx + 0xca0]
je 0x4394e
test eax, 0x40000000
je 0x43932
mov esi, dword [ecx + 0xc98]
cmp esi, 0xffffffff
je 0x4394e
mov ebx, eax
and ebx, 0xffffff
cmp dword [ecx + esi*4 + 0xb6c], ebx
jne 0x4394e
or eax, 0x80000000
jmp 0x4394e
mov esi, eax
and esi, 0xffffff
cmp dword [ecx + 0xc98], esi
jne 0x4394e
mov eax, dword [ecx + esi*4 + 0xb6c]
or eax, 0xe0000000
test eax, eax
jns 0x439f0
mov ecx, dword [ecx + 8]
and edi, 3
and eax, 0xffffff
shl edi, 0x1c
or edi, eax
lea eax, [esp + 0xc]
push eax
push 0x808
lea edx, [esp + 0x1c]
push edx
push 4
lea eax, [esp + 0x20]
push eax
push 0x2320bc
push ecx
mov dword [esp + 0x2c], edi
call sub.WIN32K.SYS_EngDeviceIoControl
test eax, eax
jne 0x43a50
mov ecx, dword [esp + 0x820]
add ecx, 0x200
movzx edx, word [esp + eax*8 + 0x18]
add dx, dx
add dx, dx
mov word [ecx + 0x200], dx
movzx edx, word [esp + eax*8 + 0x16]
add dx, dx
add dx, dx
mov word [ecx], dx
movzx edx, word [esp + eax*8 + 0x14]
add dx, dx
add dx, dx
mov word [ecx - 0x200], dx
add eax, 1
add ecx, 2
cmp eax, 0x100
jb 0x439a0
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x810
ret 4
cmp dword [ecx + 0x23c], 3
je 0x43a50
mov esi, dword [ecx + 0x244]
and esi, 3
cmp esi, edi
jne 0x43a50
test eax, 0x40000000
je 0x43a5e
mov edi, dword [ecx + 0xafc]
and eax, 0xffffff
xor esi, esi
test edi, edi
push ebp
mov ebp, eax
jbe 0x43a47
lea ebx, [ecx + 0xb50]
jmp 0x43a30
mov eax, dword [ebx]
cmp ebp, dword [ecx + eax*4 + 0xb6c]
je 0x43a4b
add esi, 1
add ebx, 4
cmp esi, edi
jb 0x43a30
jmp 0x43a4b
mov eax, dword [esp + 0x10]
cmp esi, edi
pop ebp
jb 0x43a63
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x810
ret 4
and eax, 0xffffff
mov ecx, dword [esp + 0x820]
lea eax, [eax + eax*8]
shl eax, 8
add ecx, 0x200
mov esi, 0x40
jmp 0x43a80
mov edi, dword [edx + 0x50]
movzx edi, word [edi + eax + 4]
add di, di
add di, di
mov word [ecx + 0x200], di
mov edi, dword [edx + 0x50]
movzx edi, word [edi + eax + 2]
add di, di
add di, di
mov word [ecx], di
mov edi, dword [edx + 0x50]
movzx edi, word [edi + eax]
add di, di
add di, di
mov word [ecx - 0x200], di
mov edi, dword [edx + 0x50]
movzx edi, word [edi + eax + 0xc]
add di, di
add di, di
mov word [ecx + 0x202], di
mov edi, dword [edx + 0x50]
movzx edi, word [edi + eax + 0xa]
add di, di
add di, di
mov word [ecx + 2], di
mov edi, dword [edx + 0x50]
movzx edi, word [edi + eax + 8]
add di, di
add di, di
mov word [ecx - 0x1fe], di
mov edi, dword [edx + 0x50]
movzx edi, word [edi + eax + 0x14]
add di, di
add di, di
mov word [ecx + 0x204], di
mov edi, dword [edx + 0x50]
movzx edi, word [edi + eax + 0x12]
add di, di
add di, di
mov word [ecx + 4], di
mov edi, dword [edx + 0x50]
movzx edi, word [edi + eax + 0x10]
add di, di
add di, di
mov word [ecx - 0x1fc], di
mov edi, dword [edx + 0x50]
movzx edi, word [edi + eax + 0x1c]
add di, di
add di, di
mov word [ecx + 0x206], di
mov edi, dword [edx + 0x50]
movzx edi, word [edi + eax + 0x1a]
add di, di
add di, di
mov word [ecx + 6], di
mov edi, dword [edx + 0x50]
movzx edi, word [edi + eax + 0x18]
add di, di
add di, di
mov word [ecx - 0x1fa], di
add eax, 0x20
add ecx, 8
sub esi, 1
jne 0x43a80
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x810
ret 4