Function at 0x14004d530
Capabilities:
Inspect section memory permissions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov rdi, rdx
mov r8d, ecx
movups xmm1, xmmword [0x140086220]
cmp ecx, 1
jb 0x14004d5a5
xor ecx, ecx
mov eax, 1
cpuid
mov dword [rsp], eax
mov dword [rsp + 4], ebx
mov dword [rsp + 8], ecx
mov dword [rsp + 0xc], edx
movaps xmm0, xmmword [rsp]
movdqa xmmword [rsp + 0x10], xmm0
cmp r8d, 7
jb 0x14004d5aa
mov eax, 7
xor ecx, ecx
cpuid
mov dword [rsp], eax
mov dword [rsp + 4], ebx
mov dword [rsp + 8], ecx
mov dword [rsp + 0xc], edx
movaps xmm0, xmmword [rsp]
movdqa xmmword [rsp], xmm0
jmp 0x14004d5ae
movups xmmword [rsp + 0x10], xmm1
movups xmmword [rsp], xmm1
mov r8, qword [rsp + 0x18]
mov eax, r8d
shr eax, 0x1a
test al, 1
je 0x14004d5d8
mov eax, r8d
shr eax, 0x1b
test al, 1
je 0x14004d5d8
xor ecx, ecx
xgetbv
shl rdx, 0x20
or rdx, rax
mov rsi, rdx
jmp 0x14004d5da
xor esi, esi
mov edx, dword [rsp + 0x10]
mov r9, r8
mov eax, edx
shr r9, 0x20
shr eax, 0x14
mov r14d, esi
movzx ecx, al
mov r15d, esi
mov eax, edx
movzx ebx, r9b
shr eax, 8
and r14d, 6
and eax, 0xf
and r15d, 0xe6
add ecx, eax
mov eax, edx
mov dword [rdi + 8], ecx
mov ecx, edx
shr ecx, 0xc
and edx, 0xf
and ecx, 0xf0
shr eax, 4
and eax, 0xf
mov dword [rdi + 0x10], edx
add ecx, eax
mov edx, r9d
mov dword [rdi + 0xc], ecx
mov eax, r9d
xor ebx, dword [rdi]
shr eax, 4
and ebx, 1
xor ebx, dword [rdi]
movzx ecx, al
mov eax, r9d
add ecx, ecx
shr eax, 8
xor ecx, ebx
shr edx, 0x1b
and ecx, 2
shl edx, 0x12
xor edx, dword [rdi + 4]
xor ebx, ecx
movzx ecx, al
and edx, 0x40000
xor edx, dword [rdi + 4]
mov eax, r9d
shl ecx, 2
xor ecx, ebx
shr eax, 0x13
and ecx, 4
xor ebx, ecx
movzx ecx, al
shl ecx, 3
mov eax, r9d
xor ecx, ebx
shr eax, 0x17
and ecx, 8
xor ebx, ecx
movzx ecx, al
shl ecx, 4
mov eax, r8d
xor ecx, ebx
shr eax, 1
and ecx, 0x10
xor ebx, ecx
movzx ecx, al
shl ecx, 9
mov eax, r8d
xor ecx, edx
shr eax, 6
and ecx, 0x200
xor edx, ecx
movzx ecx, al
shl ecx, 0xa
mov eax, r8d
xor ecx, edx
shr eax, 0xd
and ecx, 0x400
xor edx, ecx
movzx ecx, al
shl ecx, 0xc
xor ecx, edx
mov r10, qword [rsp]
and ecx, 0x1000
shr r10, 0x20
xor edx, ecx
mov eax, r8d
shr eax, 0x12
movzx ecx, al
mov eax, r8d
shl ecx, 0x11
xor ecx, edx
shr eax, 0x16
and ecx, 0x20000
xor edx, ecx
movzx ecx, al
shl ecx, 0xf
mov eax, r8d
xor ecx, edx
shr eax, 0x17
and ecx, 0x8000
xor edx, ecx
movzx ecx, al
shl ecx, 0xe
mov eax, r8d
shr eax, 0x19
xor ecx, edx
shl eax, 5
and ecx, 0x4000
xor eax, ebx
xor edx, ecx
and eax, 0x20
xor ebx, eax
mov eax, r8d
shr eax, 0x1d
shl eax, 7
xor eax, ebx
and eax, 0x80
xor ebx, eax
mov eax, r8d
shr eax, 0x1e
shl eax, 0x10
xor eax, edx
and eax, 0x10000
xor edx, eax
mov eax, r10d
shr eax, 2
movzx ecx, al
mov eax, r10d
shl ecx, 0xb
xor ecx, edx
shr eax, 3
and ecx, 0x800
xor edx, ecx
movzx ecx, al
shl ecx, 0xb
mov eax, r10d
xor ecx, ebx
shr eax, 4
and ecx, 0x800
xor ebx, ecx
movzx ecx, al
shl ecx, 0xc
mov eax, r10d
xor ecx, ebx
shr eax, 8
and ecx, 0x1000
xor ebx, ecx
movzx ecx, al
shl ecx, 0xd
mov eax, r10d
xor ecx, ebx
shr eax, 9
and ecx, 0x2000
xor ebx, ecx
movzx ecx, al
shl ecx, 6
mov eax, r10d
xor ecx, ebx
and ecx, 0x40
xor ebx, ecx
shr eax, 0xb
mov r11, qword [rsp + 8]
mov ebp, r10d
movzx ecx, al
mov eax, r10d
shl ecx, 0xe
xor ecx, ebx
shr eax, 0x12
and ecx, 0x4000
shr ebp, 0x1d
xor ebx, ecx
shl ebp, 0xd
movzx ecx, al
xor ebp, edx
shl ecx, 0xf
mov eax, r10d
xor ecx, ebx
shr eax, 0x17
and ecx, 0x8000
shr esi, 1
xor ebx, ecx
and ebp, 0x2000
movzx ecx, al
xor ebp, edx
shl ecx, 0x10
mov eax, r10d
xor ecx, ebx
shr eax, 0x18
and ecx, 0x10000
shl eax, 0x11
xor ebx, ecx
mov dword [rdi + 4], ebp
xor eax, ebx
and eax, 0x20000
xor ebx, eax
mov eax, r11d
shr eax, 9
movzx ecx, al
mov eax, r11d
shl ecx, 9
xor ecx, ebx
shr eax, 0xa
and ecx, 0x200
xor ebx, ecx
movzx ecx, al
shl ecx, 0xa
xor ecx, ebx
and ecx, 0x400
xor ebx, ecx
mov dword [rdi], ebx
test sil, 1
je 0x14004d8e0
mov eax, r9d
shr r9d, 0x1a
shr eax, 0x19
shl eax, 0x12
xor eax, ebx
shl r9d, 0x13
and eax, 0x40000
xor ebx, eax
movzx eax, r8b
shl eax, 0x14
xor r9d, ebx
and r9d, 0x80000
xor ebx, r9d
xor eax, ebx
and eax, 0x100000
xor ebx, eax
mov eax, r8d
shr eax, 9
movzx ecx, al
mov eax, r8d
shl ecx, 0x15
xor ecx, ebx
shr eax, 0x13
and ecx, 0x200000
xor ebx, ecx
movzx ecx, al
shl ecx, 0x16
mov eax, r8d
xor ecx, ebx
shr eax, 0x14
and ecx, 0x400000
xor ebx, ecx
movzx ecx, al
shl ecx, 0x17
xor ecx, ebx
and ecx, 0x800000
xor ecx, ebx
mov ebx, ecx
mov dword [rdi], ecx
cmp r14d, 6
jne 0x14004d929
mov eax, r8d
shr r8d, 0x1c
shr eax, 0xc
movzx ecx, al
mov eax, r10d
shl ecx, 8
xor ecx, ebx
shl r8d, 0x18
and ecx, 0x100
shr eax, 5
xor ecx, ebx
movzx ebx, al
xor r8d, ecx
shl ebx, 0x19
and r8d, 0x1000000
xor ecx, r8d
xor ebx, ecx
and ebx, 0x2000000
xor ebx, ecx
mov dword [rdi], ebx
cmp r15d, 0xe6
jne 0x14004da52
mov eax, r10d
and ebp, 0xfffffffe
shr eax, 0x10
movzx edx, al
mov eax, r10d
shr eax, 0x1c
shl eax, 0x1b
shl edx, 0x1a
xor edx, ebx
and edx, 0x4000000
xor edx, ebx
xor eax, edx
and eax, 0x8000000
xor edx, eax
mov eax, r10d
shr eax, 0x1b
shl eax, 0x1c
xor eax, edx
and eax, 0x10000000
xor edx, eax
mov eax, r10d
shr eax, 0x1a
shl eax, 0x1d
xor eax, edx
and eax, 0x20000000
xor edx, eax
mov eax, r10d
and eax, 0xc0000000
xor eax, edx
and eax, 0x40000000
xor edx, eax
mov eax, r10d
shr eax, 0x11
btr edx, 0x1f
movzx ecx, al
shl ecx, 0x1f
or ecx, edx
mov edx, r10d
mov dword [rdi], ecx
shr edx, 0x1f
or edx, ebp
shr r10d, 0x15
movzx eax, r10b
add eax, eax
xor eax, edx
and eax, 2
xor edx, eax
mov eax, r11d
shr eax, 1
movzx ecx, al
mov eax, r11d
shl ecx, 2
xor ecx, edx
shr eax, 6
and ecx, 4
xor edx, ecx
movzx ecx, al
shl ecx, 3
mov eax, r11d
xor ecx, edx
shr eax, 0xb
and ecx, 8
xor edx, ecx
movzx ecx, al
shl ecx, 4
mov eax, r11d
xor ecx, edx
shr eax, 0xc
and ecx, 0x10
xor edx, ecx
movzx ecx, al
shl ecx, 5
mov eax, r11d
xor ecx, edx
shr eax, 0xe
and ecx, 0x20
xor edx, ecx
movzx ecx, al
shl ecx, 6
xor ecx, edx
and ecx, 0x40
xor edx, ecx
shr r11, 0x20
mov eax, r11d
shr r11d, 3
shr eax, 2
movzx ecx, al
shl ecx, 7
xor ecx, edx
movzx eax, r11b
shl eax, 8
and ecx, 0x80
xor edx, ecx
xor eax, edx
and eax, 0x100
xor eax, edx
mov dword [rdi + 4], eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret