Function at 0x140046c50
Capabilities:
Inspect section memory permissions

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x10
mov byte [rcx + 2], 1
lea r8, [0x14009dc2c]
mov dword [rcx + 0x18], 1
mov r9, rcx
mov rax, qword [rcx + 0x80]
xor r11d, r11d
bts rax, 4
mov qword [rcx + 0x80], rax
xor eax, eax
xor ecx, ecx
cpuid
mov edi, eax
xor r10d, r10d
cmp dword [r8 - 4], ebx
jne 0x140046cb3
cmp dword [r8], edx
jne 0x140046cb3
cmp dword [r8 + 4], ecx
je 0x140046cc0
inc r10d
add r8, 0x14
cmp r10d, 4
jb 0x140046ca2
lea rax, [r10 + r10*4]
lea r12, [0x140000000]
mov rax, qword [r12 + rax*4 + 0x9dc20]
mov qword [r9 + 0x24], rax
cmp edi, 1
jb 0x140046f84
xor ecx, ecx
mov eax, 1
cpuid
mov esi, edx
mov r8d, eax
shr r8d, 4
mov edx, eax
shr edx, 8
and r8d, 0xf
mov r10d, ecx
and edx, 0xf
mov dword [rsp + 8], r10d
mov ecx, eax
mov dword [rsp + 0xc], esi
cmp edx, 6
je 0x140046d16
cmp edx, 0xf
jne 0x140046d31
shr eax, 0xc
and eax, 0xf0
add r8d, eax
cmp edx, 0xf
jne 0x140046d31
mov eax, ecx
shr eax, 0x14
movzx edx, al
add edx, 0xf
movzx eax, bl
mov dword [r9 + 0xc], eax
mov eax, ecx
shr eax, 0xc
and ecx, 0xf
and eax, 3
mov dword [r9 + 0x10], ecx
mov dword [r9 + 0x14], eax
mov ecx, r10d
shr ecx, 5
mov eax, ebx
shr eax, 0x10
and ecx, 1
movzx eax, al
mov dword [r9 + 0x18], eax
shl rcx, 7
mov dword [r9 + 8], r8d
mov dword [r9 + 4], edx
shr ebx, 8
movzx eax, bl
shl eax, 3
mov dword [r9 + 0x1c], eax
mov eax, r10d
shr eax, 9
mov rbx, qword [rsp + 8]
and eax, 1
or rcx, rax
movzx eax, r10b
and eax, 1
shl rcx, 4
or rcx, rax
mov eax, r10d
shr eax, 6
and eax, 1
shl rcx, 4
or rcx, rax
mov eax, r10d
shr eax, 1
and eax, 1
shl rcx, 0x14
or rcx, rax
mov eax, r10d
shr eax, 3
and eax, 1
shl rcx, 0xb
or rcx, rax
mov eax, r10d
shr eax, 0xd
and eax, 1
shl rcx, 0xc
or qword [r9 + 0x80], rcx
mov ecx, r10d
shl rax, 0x30
or qword [r9 + 0x78], rax
mov eax, r10d
shr eax, 0x13
and eax, 1
shr ecx, 0x14
and ecx, 1
add rcx, rcx
or rcx, rax
mov eax, r10d
shr eax, 0x17
and eax, 1
shl rcx, 0x17
or rcx, rax
mov eax, r10d
shr eax, 0x16
and eax, 1
shl rcx, 0xb
or rcx, rax
mov rax, rbx
shr rax, 0x13
and eax, 0x40
shl rcx, 0xe
or qword [r9 + 0x80], rcx
or qword [r9 + 0x78], rax
mov rax, rbx
shr rax, 0x1a
and eax, 1
or qword [r9 + 0x88], rax
mov rcx, rbx
mov rax, rbx
shr rax, 6
and ecx, 0x40000000
and eax, 0x200000
shl rcx, 3
or rcx, rax
mov edx, esi
or qword [r9 + 0x80], rcx
mov r8d, esi
shr rdx, 0x19
mov ecx, esi
shr ecx, 4
and edx, 1
and ecx, 1
shr r8, 0x1c
shl rcx, 0x11
and r8d, 1
movzx eax, sil
add r8, r8
and eax, 1
shl rax, 0x38
or qword [r9 + 0x78], rax
mov eax, esi
shr eax, 5
and eax, 1
or rcx, rax
mov eax, esi
shr eax, 0xf
and eax, 1
shl rcx, 0x12
or qword [r9 + 0x80], rcx
mov ecx, esi
shr ecx, 8
and ecx, 1
shl rcx, 3
or rcx, rax
mov eax, esi
shr eax, 0x13
and eax, 1
shl rcx, 4
or rcx, rax
mov eax, esi
shr eax, 0x17
and eax, 1
shl rcx, 0x2a
or qword [r9 + 0x78], rcx
mov ecx, edx
shl rax, 0xa
or qword [r9 + 0x80], rax
mov eax, esi
and eax, 0x1000000
shl rcx, 0x2d
shl rax, 0x25
or qword [r9 + 0x78], rax
mov eax, edx
shl rax, 0x23
or rax, rdx
shl rax, 0xb
or rax, rcx
or qword [r9 + 0x80], rax
or r8, qword [r9 + 0x78]
mov qword [r9 + 0x78], r8
test byte [r9 + 0x88], 1
je 0x140046f4d
mov eax, dword [r9 + 0x80]
shr rax, 0x15
test al, 1
je 0x140046f4d
xor ecx, ecx
xgetbv
shl rdx, 0x20
or rdx, rax
mov r11, rdx
bt r10d, 0x1c
jae 0x140046f84
mov eax, r11d
and eax, 6
cmp al, 6
jne 0x140046f84
shr rbx, 0x1d
bts r8, 0xc
mov eax, r10d
and ebx, 1
shr eax, 0xc
and eax, 1
add rax, rax
or rax, rbx
shl rax, 0x35
or rax, r8
mov qword [r9 + 0x78], rax
mov r10d, r11d
mov esi, r11d
and r10d, 0x60000
and esi, 0xe6
xor r14b, r14b
cmp edi, 7
jb 0x1400474bc
xor ecx, ecx
mov eax, 7
cpuid
mov ebp, ecx
mov r15d, eax
mov r8d, edx
mov dword [rsp + 0xc], edx
mov edx, ebx
movzx eax, bl
and eax, 1
shr edx, 3
shl rax, 0x15
and edx, 1
or rdx, rax
mov dword [rsp + 8], ebp
mov eax, ebx
shl rdx, 0x24
or qword [r9 + 0x78], rdx
mov ecx, ebx
shr ecx, 7
mov r14d, ebx
and ecx, 1
shr eax, 4
shl rcx, 0x28
and eax, 1
or rcx, rax
shr r14d, 0xe
shl rcx, 2
mov eax, ebx
or qword [r9 + 0x80], rcx
and r14b, 1
shr eax, 8
mov ecx, ebx
shr ecx, 9
and eax, 1
and ecx, 1
shl rcx, 0xf
or rcx, rax
mov eax, ebx
shl rcx, 0x25
or qword [r9 + 0x78], rcx
mov ecx, ebx
shr eax, 0x12
shr ecx, 0xb
and eax, 1
and ecx, 1
shl rcx, 3
or rcx, rax
mov eax, ebx
shr eax, 0x13
shl rcx, 0x22
and eax, 1
or qword [r9 + 0x80], rcx
mov ecx, ebx
shl rax, 5
or qword [r9 + 0x78], rax
mov eax, ebx
shr ecx, 0x17
shr eax, 0x14
and ecx, 1
and eax, 1
shl rcx, 0x17
shl rax, 0x29
or qword [r9 + 0x80], rax
mov eax, ebx
and eax, 0x1000000
or rcx, rax
movzx eax, bpl
shl rcx, 0x14
and eax, 1
or qword [r9 + 0x78], rcx
mov ecx, ebp
shr ecx, 5
and ecx, 1
shl rcx, 0x20
or rcx, rax
mov eax, ebp
shr eax, 4
and eax, 1
shl rcx, 6
or rcx, rax
mov rdx, qword [rsp + 8]
mov eax, ebx
and eax, 0x20000000
shl rcx, 0xc
or rcx, rax
mov eax, ebp
shr eax, 7
and eax, 1
shl rcx, 0xa
or qword [r9 + 0x80], rcx
mov ecx, ebp
shl rax, 0x27
or qword [r9 + 0x78], rax
mov eax, ebp
shr eax, 9
and eax, 1
shr ecx, 0xa
and ecx, 1
shl rcx, 2
or rcx, rax
mov eax, ebp
shr eax, 0x16
and eax, 1
shl rcx, 0x1a
or rcx, rax
mov eax, ebp
shr eax, 8
and eax, 1
shl rcx, 0x1e
or rcx, rax
mov rax, rdx
and eax, 0x2000000
add rcx, rcx
or qword [r9 + 0x80], rcx
mov rcx, rdx
shl rax, 0x10
or qword [r9 + 0x78], rax
mov rax, rdx
and eax, 0x8000000
shr rcx, 2
and ecx, 0x4000000
and edx, 0x20000000
or rcx, rax
mov eax, r8d
shr eax, 4
and eax, 1
shr rcx, 0xb
or qword [r9 + 0x80], rcx
mov ecx, r8d
shl rax, 0x24
or rax, rdx
shr ecx, 5
shl rax, 0x16
and ecx, 1
or qword [r9 + 0x78], rax
add rcx, rcx
mov eax, r8d
shr eax, 0x10
and eax, 1
or rcx, rax
mov eax, r8d
shr eax, 0xe
and eax, 1
shl rcx, 0x11
or rcx, rax
mov eax, r8d
shr eax, 0x12
and eax, 1
shl rcx, 0xe
or rcx, rax
mov eax, r8d
shr eax, 0x14
and eax, 1
shl rcx, 0x18
or qword [r9 + 0x80], rcx
shl rax, 0x26
or qword [r9 + 0x78], rax
mov rcx, qword [r9 + 0x80]
movzx eax, cl
shr al, 2
test al, 1
jne 0x1400471db
mov rax, rcx
shr rax, 0x25
test al, 1
je 0x1400471e7
bts rcx, 0x36
mov qword [r9 + 0x80], rcx
test bl, 0x20
je 0x140047204
mov rcx, qword [r9 + 0x78]
mov rax, rcx
shr rax, 0xc
test al, 1
je 0x140047204
bts rcx, 0xd
mov qword [r9 + 0x78], rcx
cmp esi, 0xe6
jne 0x14004731b
bt ebx, 0x10
jae 0x14004731b
mov eax, ebp
mov edx, r8d
shr eax, 0xb
mov ecx, ebp
and eax, 1
shr edx, 8
and edx, 1
shr ecx, 0xe
add rdx, rdx
and ecx, 1
or rdx, rax
shl rcx, 0x1f
shl rdx, 2
mov eax, ebp
shr eax, 6
and eax, 1
or rdx, rax
mov eax, ebp
shr eax, 1
add rdx, rdx
and eax, 1
or rdx, rax
mov eax, ebx
shr rax, 0x1a
add rdx, rdx
and eax, 1
or rdx, rax
mov eax, ebx
shr eax, 0x15
add rdx, rdx
and eax, 1
or rdx, rax
mov eax, r8d
shr eax, 0x17
add rdx, rdx
and eax, 1
or rdx, rax
mov eax, ebx
shr rax, 0x1b
and eax, 1
shl rdx, 2
or rdx, rax
mov eax, ebx
shr eax, 0x11
add rdx, rdx
and eax, 1
or rdx, rax
mov eax, ebx
shr rax, 0x1c
add rdx, rdx
and eax, 1
or rdx, rax
mov eax, ebx
shr rax, 0x1e
add rdx, rdx
and eax, 1
or rdx, rax
mov eax, ebp
shr eax, 0xc
add rdx, rdx
and eax, 1
or rdx, rax
mov eax, r8d
shr eax, 2
and eax, 1
shl rdx, 2
or rdx, rax
mov eax, r8d
shr eax, 3
add rdx, rdx
and eax, 1
or rdx, rax
mov eax, ebx
shr rax, 3
or rcx, rax
shl rdx, 0xe
movabs rax, 0x1ffffffff0000000
and rcx, rax
mov rax, qword [r9 + 0x78]
or rdx, rcx
bts rax, 0x16
or rdx, rax
mov qword [r9 + 0x78], rdx
cmp r10d, 0x60000
jne 0x140047354
mov eax, r8d
mov ecx, r8d
shr ecx, 0x16
and eax, 0x1000000
and ecx, 1
mov edx, r8d
shr rdx, 2
and edx, 0x800000
shl rcx, 8
or rdx, rax
shr rdx, 0xd
or rdx, rcx
or qword [r9 + 0x78], rdx
cmp r15d, 1
jb 0x1400474bc
mov eax, 7
mov ecx, 1
cpuid
mov esi, edx
mov dword [rsp], eax
mov r8d, eax
mov dword [rsp + 8], ecx
mov ecx, eax
mov dword [rsp + 4], ebx
shr ecx, 3
and ecx, 1
shl rcx, 0x1e
or qword [r9 + 0x80], rcx
mov ecx, eax
shr eax, 0xb
and eax, 1
shr ecx, 0xa
movzx edx, cl
shl rdx, 3
or rdx, rax
mov eax, r8d
shr eax, 0xc
add rdx, rdx
and eax, 1
or rdx, rax
mov eax, r8d
shl rdx, 0xc
shr eax, 7
and eax, 1
or rdx, rax
mov eax, esi
shl rdx, 0x2f
or qword [r9 + 0x78], rdx
mov edx, r8d
shr edx, 0x13
and edx, 1
shr eax, 0xe
shl rdx, 0x24
and eax, 1
or rdx, rax
mov eax, r8d
shl rdx, 0x17
shr eax, 0x16
and eax, 1
or rdx, rax
mov rax, qword [rsp]
shl rdx, 3
mov rcx, rax
shr rcx, 0xc
and eax, 0x8000000
and ecx, 0x4000
or rcx, rax
shr rcx, 8
or rdx, rcx
or qword [r9 + 0x80], rdx
mov edx, esi
shr edx, 0x12
and edx, 1
shl rdx, 0x28
or rdx, qword [r9 + 0x78]
mov rax, rdx
mov qword [r9 + 0x78], rdx
shr rax, 0xd
test al, 1
je 0x14004747d
mov eax, r8d
mov ecx, esi
shr eax, 4
and eax, 1
shr ecx, 4
and ecx, 1
add rcx, rcx
or rcx, rax
mov eax, esi
shr eax, 5
add rcx, rcx
and eax, 1
or rcx, rax
mov eax, r8d
shr eax, 0x17
add rcx, rcx
and eax, 1
or rcx, rax
shl rcx, 0x20
or rcx, rdx
mov rdx, rcx
mov qword [r9 + 0x78], rcx
mov rax, rdx
shr rax, 0x16
test al, 1
je 0x14004749f
mov eax, r8d
shr eax, 5
and eax, 1
shl rax, 0x10
or rax, rdx
mov rdx, rax
mov qword [r9 + 0x78], rax
cmp r10d, 0x60000
jne 0x1400474bc
mov eax, r8d
shr eax, 0x15
and eax, 1
shl rax, 9
or rax, rdx
mov qword [r9 + 0x78], rax
cmp edi, 0xd
jb 0x140047534
xor ecx, ecx
mov eax, SafeArrayDestroy
cpuid
and r11d, eax
mov dword [rsp + 8], ecx
and r11d, 0x18
mov dword [rsp + 0xc], edx
cmp r11b, 0x18
jne 0x1400474f7
test r14b, r14b
je 0x1400474f7
mov rdx, qword [r9 + 0x80]
bts rdx, 0x11
mov qword [r9 + 0x80], rdx
mov eax, SafeArrayDestroy
mov ecx, 1
cpuid
mov dword [rsp + 0xc], edx
mov edx, eax
shr edx, 3
and edx, 1
mov dword [rsp + 8], ecx
add rdx, rdx
movzx ecx, al
shr eax, 1
and ecx, 1
or rdx, rcx
and eax, 1
add rdx, rdx
or rdx, rax
add rdx, rdx
or qword [r9 + 0x88], rdx
cmp edi, 0xe
jb 0x14004755b
xor ecx, ecx
mov eax, SafeArrayDestroy
cpuid
shr ebx, 4
and ebx, 1
mov dword [rsp + 8], ecx
shl rbx, 0x1d
or qword [r9 + 0x80], rbx
mov dword [rsp + 0xc], edx
lea r10, [r9 + 0x34]
mov ebp, 0x80000000
mov qword [rsp + 0x40], r10
lea r15, [0x14009dc84]
mov r14, r10
mov r11d, ebp
movabs r10, 0xffffffff8000000
mov r13d, 0x8000001f
nop word [rax + rax]
xor ecx, ecx
mov eax, r11d
cpuid
mov edi, ecx
lea ecx, [r11 - 0x80000000]
mov esi, edx
mov dword [rsp + 8], edi
mov dword [rsp + 0xc], esi
cmp ecx, 0x1f
ja case.0x1400475c7.2147483643
movzx ecx, byte [r12 + rcx + 0x47860]
mov edx, dword [r12 + rcx*4 + 0x47848]
add rdx, r12
jmp rdx
cmp eax, r13d
mov ebp, eax
cmova ebp, r13d
jmp case.0x1400475c7.2147483643
mov eax, edi
mov ecx, edi
shr eax, 2
mov rdx, rsi
and eax, 1
shr ecx, 0x15
and ecx, 1
shr rdx, 4
add rcx, rcx
and rdx, r10
or rcx, rax
mov eax, edi
shr eax, 6
and eax, 1
shl rcx, 2
or rcx, rax
mov eax, edi
shr eax, 0xc
and eax, 1
shl rcx, 0xa
or rcx, rax
mov eax, edi
shr eax, 8
and eax, 1
shl rcx, 0xd
or rcx, rax
mov eax, edi
shr eax, 7
shl rcx, 7
and eax, 1
or rcx, rax
mov eax, edi
shl rcx, 0xc
shr eax, 5
and eax, 1
or rcx, rax
mov eax, edi
add rcx, rcx
shr eax, 0xf
and eax, 1
or rcx, rax
movzx eax, dil
shl rcx, 2
and eax, 1
or rcx, rax
mov rax, qword [rsp + 8]
shl rcx, 5
shr rax, 0x10
and eax, 0x2000
or rcx, rax
mov eax, esi
or qword [r9 + 0x80], rcx
mov ecx, esi
shr ecx, 0x15
and ecx, 1
shr eax, 0x14
shl rcx, 0x3c
and eax, 1
or rcx, rax
mov eax, esi
shl rcx, 2
and eax, 0x8000000
or qword [r9 + 0x78], rcx
mov ecx, esi
shr ecx, 0x16
and ecx, 1
shl rcx, 2
or rcx, rax
mov eax, esi
shr rax, 2
shl rcx, 9
and eax, 0x8000000
or rcx, rax
or qword [r9 + 0x80], rcx
mov ecx, esi
shr rcx, 0x1e
and ecx, 1
mov eax, ecx
shl rax, 4
or qword [r9 + 0x78], rax
shl rcx, 0xb
or rdx, rcx
or rdx, qword [r9 + 0x80]
mov qword [r9 + 0x80], rdx
mov rbx, qword [r9 + 0x78]
mov rax, rbx
shr rax, 0xc
test al, 1
je 0x140047729
mov eax, edi
shr eax, 0xb
movzx ecx, al
mov eax, edi
shr eax, 0x10
shl rcx, 0x3f
and eax, 1
or rcx, rdx
shl rax, 0x37
mov qword [r9 + 0x80], rcx
or qword [r9 + 0x78], rax
mov rbx, qword [r9 + 0x78]
xor eax, eax
nop dword [rax + rax]
movzx ecx, byte [r9 + rax + 0x24]
inc rax
cmp cl, byte [r15 + rax - 1]
jne case.0x1400475c7.2147483643
cmp rax, 4
jne 0x140047730
mov eax, edi
shr eax, 4
and eax, 1
shl rax, 7
or rax, rbx
mov qword [r9 + 0x78], rax
jmp case.0x1400475c7.2147483643
mov dword [r14], eax
mov dword [r14 + 4], ebx
mov dword [r14 + 8], edi
mov dword [r14 + 0xc], esi
add r14, 0x10
cmp r11d, 0x80000004
jne case.0x1400475c7.2147483643
mov r11d, 0x80000007
jmp case.0x1400475c7.2147483643
movzx ecx, bl
mov edx, ebx
shr edx, 9
and ecx, 1
and edx, 1
mov eax, ecx
shl rax, 0x2d
mov r11d, 0x8000001e
or qword [r9 + 0x78], rax
mov eax, ebx
shl rdx, 0x1d
or rdx, rcx
shr eax, 8
shl rdx, 0x17
and eax, 1
or rdx, rax
shl rdx, 9
or qword [r9 + 0x80], rdx
jmp case.0x1400475c7.2147483643
shr eax, 4
and eax, 1
shl rax, 0x2c
or qword [r9 + 0x80], rax
inc r11d
cmp r11d, ebp
jbe 0x140047590
mov r10, qword [rsp + 0x40]
xor bl, bl
mov rdx, r10
movzx ecx, byte [r10]
mov byte [r10], bl
test cl, cl
je 0x140047828
cmp cl, 0x20
jne 0x14004780c
cmp bl, 0x40
je 0x140047814
movzx eax, byte [r10 + 1]
sub al, cl
test al, 0xdf
je 0x140047814
mov byte [rdx], cl
movzx ebx, cl
inc rdx
movzx ecx, byte [r10 + 1]
inc r10
mov byte [r10], 0
test cl, cl
jne 0x1400477f7
mov byte [rdx], cl
jmp 0x14004782b
mov byte [r10], bl
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x10
pop r15
pop r14
pop r13
pop r12
pop rdi
ret