Function at 0x1400317c4
Capabilities:
Inspect section memory permissions

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov eax, dword [rdx + 4]
mov rdi, rdx
mov rbx, rcx
test eax, eax
jns 0x1400317f2
mov ecx, dword [rcx + 4]
test ecx, ecx
js 0x1400317f2
mov eax, dword [rdx + 0xc]
bts ecx, 0x1f
mov dword [rbx + 4], ecx
mov dword [rbx + 0xc], eax
mov eax, dword [rdx + 4]
mov edx, 0x10000000
test edx, eax
je 0x140031810
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031810
mov eax, dword [rdi + 0x10]
or ecx, edx
mov dword [rbx + 4], ecx
mov dword [rbx + 0x10], eax
mov eax, dword [rdi + 4]
mov edx, 0x8000000
test edx, eax
je 0x14003182e
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x14003182e
mov al, byte [rdi + 0x18]
or ecx, edx
mov byte [rbx + 0x18], al
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x400000
test edx, eax
je 0x14003184e
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x14003184e
movzx eax, word [rdi + 0x5c]
or ecx, edx
mov word [rbx + 0x5c], ax
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x200000
test edx, eax
je 0x14003186e
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x14003186e
movzx eax, word [rdi + 0x5e]
or ecx, edx
mov word [rbx + 0x5e], ax
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x2000000
test edx, eax
je 0x14003188c
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x14003188c
mov eax, dword [rdi + 0x64]
or ecx, edx
mov dword [rbx + 4], ecx
mov dword [rbx + 0x64], eax
mov eax, dword [rdi + 4]
mov edx, 0x80000
test edx, eax
je 0x1400318ac
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x1400318ac
movzx eax, word [rdi + 0x6c]
or ecx, edx
mov word [rbx + 0x6c], ax
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x100000
test edx, eax
je 0x1400318cc
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x1400318cc
movzx eax, word [rdi + 0x6e]
or ecx, edx
mov word [rbx + 0x6e], ax
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x800000
test edx, eax
je 0x1400318ea
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x1400318ea
mov al, byte [rdi + 0x70]
or ecx, edx
mov byte [rbx + 0x70], al
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x40000
test edx, eax
je 0x140031908
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031908
mov al, byte [rdi + 0x71]
or ecx, edx
mov byte [rbx + 0x71], al
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x8000
test edx, eax
je 0x140031926
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031926
mov al, byte [rdi + 0x72]
or ecx, edx
mov byte [rbx + 0x72], al
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
bt eax, 0x1d
jae 0x140031955
test dword [rbx + 4], 0x20000000
jne 0x140031955
lea r8, [rdi + 0x1a]
mov edx, 0x20
lea rcx, [rbx + 0x1a]
call fcn.140009c88
mov al, byte [rdi + 0x19]
bts dword [rbx + 4], 0x1d
mov byte [rbx + 0x19], al
mov eax, dword [rdi + 4]
mov ecx, dword [rbx + 8]
mov r9d, 0x4000000
mov edx, ecx
test r9d, ecx
jne 0x140031995
mov r8d, dword [rbx + 4]
test r9d, r8d
jne 0x140031995
test dword [rdi + 8], r9d
je 0x14003197c
or edx, r9d
or r8d, r9d
jmp 0x14003198e
test r9d, eax
je 0x140031995
mov eax, dword [rdi + 0x60]
or r8d, r9d
btr edx, 0x1a
mov dword [rbx + 0x60], eax
mov dword [rbx + 8], edx
mov dword [rbx + 4], r8d
mov r9d, 0x40000000
mov ecx, edx
test r9d, edx
jne 0x1400319d3
mov r8d, dword [rbx + 4]
test r9d, r8d
jne 0x1400319d3
test dword [rdi + 8], r9d
je 0x1400319b9
or r8d, r9d
or ecx, r9d
jmp 0x1400319cc
test dword [rdi + 4], r9d
je 0x1400319d3
mov eax, dword [rdi + 0x14]
or r8d, r9d
btr ecx, 0x1e
mov dword [rbx + 0x14], eax
mov dword [rbx + 8], ecx
mov dword [rbx + 4], r8d
mov eax, dword [rdi + 4]
test al, 0x40
je 0x1400319fc
mov edx, dword [rbx + 4]
test dl, 0x40
jne 0x1400319fc
test byte [rdi + 8], 0x40
je 0x1400319ed
or ecx, 0x40
jmp 0x1400319f0
and ecx, 0xffffffbf
mov dword [rbx + 8], ecx
or edx, 0x40
mov dword [rbx + 4], edx
mov eax, dword [rdi + 4]
mov edx, 0x80
test dl, al
je 0x140031a27
mov ecx, dword [rbx + 4]
test dl, cl
jne 0x140031a27
mov eax, dword [rbx + 8]
test byte [rdi + 8], dl
je 0x140031a18
or eax, edx
jmp 0x140031a1c
btr eax, 7
mov dword [rbx + 8], eax
or ecx, edx
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x100
test edx, eax
je 0x140031a52
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031a52
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031a43
or eax, edx
jmp 0x140031a47
btr eax, 8
mov dword [rbx + 8], eax
or ecx, edx
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x200
test edx, eax
je 0x140031a7d
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031a7d
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031a6e
or eax, edx
jmp 0x140031a72
btr eax, 9
mov dword [rbx + 8], eax
or ecx, edx
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, COleDropTarget::XDropTarget::AddRef
test edx, eax
je 0x140031aa8
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031aa8
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031a99
or eax, edx
jmp 0x140031a9d
btr eax, 0xa
mov dword [rbx + 8], eax
or ecx, edx
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x800
test edx, eax
je 0x140031ad3
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031ad3
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031ac4
or eax, edx
jmp 0x140031ac8
btr eax, 0xb
mov dword [rbx + 8], eax
or ecx, edx
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x1000
test edx, eax
je 0x140031afe
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031afe
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031aef
or eax, edx
jmp 0x140031af3
btr eax, 0xc
mov dword [rbx + 8], eax
or ecx, edx
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x2000
test edx, eax
je 0x140031b29
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031b29
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031b1a
or eax, edx
jmp 0x140031b1e
btr eax, 0xd
mov dword [rbx + 8], eax
or ecx, edx
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x4000
test edx, eax
je 0x140031b54
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031b54
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031b45
or eax, edx
jmp 0x140031b49
btr eax, 0xe
mov dword [rbx + 8], eax
or ecx, edx
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
test al, 1
je 0x140031b7d
mov ecx, dword [rbx + 4]
test cl, 1
jne 0x140031b7d
test byte [rdi + 8], 1
mov eax, dword [rbx + 8]
je 0x140031b6e
or eax, 1
jmp 0x140031b71
and eax, 0xfffffffe
mov dword [rbx + 8], eax
or ecx, 1
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
test al, 2
je 0x140031ba6
mov ecx, dword [rbx + 4]
test cl, 2
jne 0x140031ba6
test byte [rdi + 8], 2
mov eax, dword [rbx + 8]
je 0x140031b97
or eax, 2
jmp 0x140031b9a
and eax, 0xfffffffd
mov dword [rbx + 8], eax
or ecx, 2
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
test al, 4
je 0x140031bcf
mov ecx, dword [rbx + 4]
test cl, 4
jne 0x140031bcf
test byte [rdi + 8], 4
mov eax, dword [rbx + 8]
je 0x140031bc0
or eax, 4
jmp 0x140031bc3
and eax, 0xfffffffb
mov dword [rbx + 8], eax
or ecx, 4
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
test al, 8
je 0x140031bf8
mov ecx, dword [rbx + 4]
test cl, 8
jne 0x140031bf8
test byte [rdi + 8], 8
mov eax, dword [rbx + 8]
je 0x140031be9
or eax, 8
jmp 0x140031bec
and eax, 0xfffffff7
mov dword [rbx + 8], eax
or ecx, 8
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
test al, 0x10
je 0x140031c21
mov ecx, dword [rbx + 4]
test cl, 0x10
jne 0x140031c21
test byte [rdi + 8], 0x10
mov eax, dword [rbx + 8]
je 0x140031c12
or eax, 0x10
jmp 0x140031c15
and eax, 0xffffffef
mov dword [rbx + 8], eax
or ecx, 0x10
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
test al, 0x20
je 0x140031c4a
mov ecx, dword [rbx + 4]
test cl, 0x20
jne 0x140031c4a
test byte [rdi + 8], 0x20
mov eax, dword [rbx + 8]
je 0x140031c3b
or eax, 0x20
jmp 0x140031c3e
and eax, 0xffffffdf
mov dword [rbx + 8], eax
or ecx, 0x20
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x10000
test edx, eax
je 0x140031c75
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031c75
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031c66
or eax, edx
jmp 0x140031c6a
btr eax, 0x10
mov dword [rbx + 8], eax
or ecx, edx
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
mov edx, 0x20000
test edx, eax
je 0x140031c9d
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031c9d
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031c91
or eax, edx
jmp 0x140031c95
btr eax, 0x11
or ecx, edx
mov dword [rbx + 8], eax
mov dword [rbx + 4], ecx
mov eax, dword [rbx + 4]
mov ecx, 0x30000
test ecx, eax
je 0x140031cae
or eax, ecx
mov dword [rbx + 4], eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret