Function at 0x1400316e4
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 0x140031712
mov ecx, dword [rcx + 4]
test ecx, ecx
js 0x140031712
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 0x140031730
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031730
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 0x14003174e
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x14003174e
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 0x14003176e
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x14003176e
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 0x14003178e
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x14003178e
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 0x1400317ac
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x1400317ac
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 0x1400317cc
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x1400317cc
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 0x1400317ec
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x1400317ec
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 0x14003180a
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x14003180a
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 0x140031828
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031828
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 0x140031846
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031846
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 0x140031875
test dword [rbx + 4], 0x20000000
jne 0x140031875
lea r8, [rdi + 0x1a]
mov edx, 0x20
lea rcx, [rbx + 0x1a]
call fcn.140009cc8
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 0x1400318b5
mov r8d, dword [rbx + 4]
test r9d, r8d
jne 0x1400318b5
test dword [rdi + 8], r9d
je 0x14003189c
or edx, r9d
or r8d, r9d
jmp 0x1400318ae
test r9d, eax
je 0x1400318b5
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 0x1400318f3
mov r8d, dword [rbx + 4]
test r9d, r8d
jne 0x1400318f3
test dword [rdi + 8], r9d
je 0x1400318d9
or r8d, r9d
or ecx, r9d
jmp 0x1400318ec
test dword [rdi + 4], r9d
je 0x1400318f3
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 0x14003191c
mov edx, dword [rbx + 4]
test dl, 0x40
jne 0x14003191c
test byte [rdi + 8], 0x40
je 0x14003190d
or ecx, 0x40
jmp 0x140031910
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 0x140031947
mov ecx, dword [rbx + 4]
test dl, cl
jne 0x140031947
mov eax, dword [rbx + 8]
test byte [rdi + 8], dl
je 0x140031938
or eax, edx
jmp 0x14003193c
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 0x140031972
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031972
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031963
or eax, edx
jmp 0x140031967
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 0x14003199d
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x14003199d
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x14003198e
or eax, edx
jmp 0x140031992
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 0x1400319c8
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x1400319c8
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x1400319b9
or eax, edx
jmp 0x1400319bd
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 0x1400319f3
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x1400319f3
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x1400319e4
or eax, edx
jmp 0x1400319e8
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 0x140031a1e
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031a1e
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031a0f
or eax, edx
jmp 0x140031a13
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 0x140031a49
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031a49
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031a3a
or eax, edx
jmp 0x140031a3e
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 0x140031a74
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031a74
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031a65
or eax, edx
jmp 0x140031a69
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 0x140031a9d
mov ecx, dword [rbx + 4]
test cl, 1
jne 0x140031a9d
test byte [rdi + 8], 1
mov eax, dword [rbx + 8]
je 0x140031a8e
or eax, 1
jmp 0x140031a91
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 0x140031ac6
mov ecx, dword [rbx + 4]
test cl, 2
jne 0x140031ac6
test byte [rdi + 8], 2
mov eax, dword [rbx + 8]
je 0x140031ab7
or eax, 2
jmp 0x140031aba
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 0x140031aef
mov ecx, dword [rbx + 4]
test cl, 4
jne 0x140031aef
test byte [rdi + 8], 4
mov eax, dword [rbx + 8]
je 0x140031ae0
or eax, 4
jmp 0x140031ae3
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 0x140031b18
mov ecx, dword [rbx + 4]
test cl, 8
jne 0x140031b18
test byte [rdi + 8], 8
mov eax, dword [rbx + 8]
je 0x140031b09
or eax, 8
jmp 0x140031b0c
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 0x140031b41
mov ecx, dword [rbx + 4]
test cl, 0x10
jne 0x140031b41
test byte [rdi + 8], 0x10
mov eax, dword [rbx + 8]
je 0x140031b32
or eax, 0x10
jmp 0x140031b35
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 0x140031b6a
mov ecx, dword [rbx + 4]
test cl, 0x20
jne 0x140031b6a
test byte [rdi + 8], 0x20
mov eax, dword [rbx + 8]
je 0x140031b5b
or eax, 0x20
jmp 0x140031b5e
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 0x140031b95
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031b95
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031b86
or eax, edx
jmp 0x140031b8a
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 0x140031bbd
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031bbd
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031bb1
or eax, edx
jmp 0x140031bb5
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 0x140031bce
or eax, ecx
mov dword [rbx + 4], eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret