Function at 0x140031938
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 0x140031966
mov ecx, dword [rcx + 4]
test ecx, ecx
js 0x140031966
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 0x140031984
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031984
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 0x1400319a2
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x1400319a2
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 0x1400319c2
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x1400319c2
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 0x1400319e2
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x1400319e2
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 0x140031a00
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031a00
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 0x140031a20
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031a20
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 0x140031a40
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031a40
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 0x140031a5e
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031a5e
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 0x140031a7c
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031a7c
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 0x140031a9a
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031a9a
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 0x140031ac9
test dword [rbx + 4], 0x20000000
jne 0x140031ac9
lea r8, [rdi + 0x1a]
mov edx, 0x20
lea rcx, [rbx + 0x1a]
call fcn.1400098b8
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 0x140031b09
mov r8d, dword [rbx + 4]
test r9d, r8d
jne 0x140031b09
test dword [rdi + 8], r9d
je 0x140031af0
or edx, r9d
or r8d, r9d
jmp 0x140031b02
test r9d, eax
je 0x140031b09
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 0x140031b47
mov r8d, dword [rbx + 4]
test r9d, r8d
jne 0x140031b47
test dword [rdi + 8], r9d
je 0x140031b2d
or r8d, r9d
or ecx, r9d
jmp 0x140031b40
test dword [rdi + 4], r9d
je 0x140031b47
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 0x140031b70
mov edx, dword [rbx + 4]
test dl, 0x40
jne 0x140031b70
test byte [rdi + 8], 0x40
je 0x140031b61
or ecx, 0x40
jmp 0x140031b64
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 0x140031b9b
mov ecx, dword [rbx + 4]
test dl, cl
jne 0x140031b9b
mov eax, dword [rbx + 8]
test byte [rdi + 8], dl
je 0x140031b8c
or eax, edx
jmp 0x140031b90
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 0x140031bc6
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031bc6
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031bb7
or eax, edx
jmp 0x140031bbb
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 0x140031bf1
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031bf1
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031be2
or eax, edx
jmp 0x140031be6
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 0x140031c1c
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031c1c
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031c0d
or eax, edx
jmp 0x140031c11
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 0x140031c47
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031c47
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031c38
or eax, edx
jmp 0x140031c3c
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 0x140031c72
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031c72
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031c63
or eax, edx
jmp 0x140031c67
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 0x140031c9d
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031c9d
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031c8e
or eax, edx
jmp 0x140031c92
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 0x140031cc8
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031cc8
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031cb9
or eax, edx
jmp 0x140031cbd
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 0x140031cf1
mov ecx, dword [rbx + 4]
test cl, 1
jne 0x140031cf1
test byte [rdi + 8], 1
mov eax, dword [rbx + 8]
je 0x140031ce2
or eax, 1
jmp 0x140031ce5
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 0x140031d1a
mov ecx, dword [rbx + 4]
test cl, 2
jne 0x140031d1a
test byte [rdi + 8], 2
mov eax, dword [rbx + 8]
je 0x140031d0b
or eax, 2
jmp 0x140031d0e
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 0x140031d43
mov ecx, dword [rbx + 4]
test cl, 4
jne 0x140031d43
test byte [rdi + 8], 4
mov eax, dword [rbx + 8]
je 0x140031d34
or eax, 4
jmp 0x140031d37
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 0x140031d6c
mov ecx, dword [rbx + 4]
test cl, 8
jne 0x140031d6c
test byte [rdi + 8], 8
mov eax, dword [rbx + 8]
je 0x140031d5d
or eax, 8
jmp 0x140031d60
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 0x140031d95
mov ecx, dword [rbx + 4]
test cl, 0x10
jne 0x140031d95
test byte [rdi + 8], 0x10
mov eax, dword [rbx + 8]
je 0x140031d86
or eax, 0x10
jmp 0x140031d89
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 0x140031dbe
mov ecx, dword [rbx + 4]
test cl, 0x20
jne 0x140031dbe
test byte [rdi + 8], 0x20
mov eax, dword [rbx + 8]
je 0x140031daf
or eax, 0x20
jmp 0x140031db2
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 0x140031de9
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031de9
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031dda
or eax, edx
jmp 0x140031dde
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 0x140031e11
mov ecx, dword [rbx + 4]
test edx, ecx
jne 0x140031e11
mov eax, dword [rbx + 8]
test dword [rdi + 8], edx
je 0x140031e05
or eax, edx
jmp 0x140031e09
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 0x140031e22
or eax, ecx
mov dword [rbx + 4], eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret