Function at 0x180101590
Capabilities:
Inspect section memory permissions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x10
mov byte [rcx + 2], 1
lea r8, [0x1802a754c]
mov dword [rcx + 0x18], 1
mov r10, rcx
mov rax, qword [rcx + 0x80]
xor r11d, r11d
bts rax, 7
mov qword [rcx + 0x80], rax
xor eax, eax
xor ecx, ecx
cpuid
mov r14d, eax
xor r9d, r9d
cmp dword [r8 - 4], ebx
jne 0x1801015f4
cmp dword [r8], edx
jne 0x1801015f4
cmp dword [r8 + 4], ecx
je 0x180101601
inc r9d
add r8, 0x14
cmp r9d, 4
jb 0x1801015e3
lea rax, [r9 + r9*4]
lea r12, [0x180000000]
mov rax, qword [r12 + rax*4 + 0x2a7540]
mov qword [r10 + 0x24], rax
cmp r14d, 1
jb 0x1801018d4
xor ecx, ecx
mov eax, 1
cpuid
mov edi, edx
mov r8d, eax
shr r8d, 4
mov edx, eax
shr edx, 8
and r8d, 0xf
mov r9d, ecx
and edx, 0xf
mov dword [rsp + 8], r9d
mov ecx, eax
mov dword [rsp + 0xc], edi
cmp edx, 6
je 0x180101658
cmp edx, 0xf
jne 0x180101673
shr eax, 0xc
and eax, 0xf0
add r8d, eax
cmp edx, 0xf
jne 0x180101673
mov eax, ecx
shr eax, 0x14
movzx edx, al
add edx, 0xf
mov dword [r10 + 8], r8d
mov dword [r10 + 4], edx
movzx eax, bl
mov dword [r10 + 0xc], eax
mov eax, ecx
shr eax, 0xc
and ecx, 0xf
and eax, 3
mov dword [r10 + 0x10], ecx
mov dword [r10 + 0x14], eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov dword [r10 + 0x18], eax
shr ebx, 8
movzx eax, bl
shl eax, 3
mov dword [r10 + 0x1c], eax
mov eax, r9d
shr eax, 5
and eax, 1
mov rbx, qword [rsp + 8]
shl rax, 7
or qword [r10 + 0x88], rax
mov eax, r9d
shr eax, 9
movzx ecx, al
shl rcx, 4
movzx eax, r9b
and eax, 1
or rcx, rax
mov eax, r9d
shr eax, 6
and eax, 1
shl rcx, 3
or rcx, rax
mov eax, r9d
shr eax, 1
and eax, 1
shl rcx, 0x1d
or rcx, rax
mov eax, r9d
shr eax, 3
and eax, 1
shl rcx, 0xb
or rcx, rax
mov eax, r9d
shr eax, 0xd
and eax, 1
shl rcx, 0x10
or qword [r10 + 0x80], rcx
mov ecx, r9d
shl rax, 0x33
or qword [r10 + 0x78], rax
mov eax, r9d
shr eax, 0x13
and eax, 1
shr ecx, 0x14
and ecx, 1
add rcx, rcx
or rcx, rax
mov eax, r9d
shr eax, 0x17
and eax, 1
shl rcx, 0x1f
or rcx, rax
mov eax, r9d
shr eax, 0x16
and eax, 1
shl rcx, 0xb
or rcx, rax
mov rax, rbx
shr rax, 0x13
and eax, 0x40
shl rcx, 0x12
or qword [r10 + 0x80], rcx
or qword [r10 + 0x78], rax
mov rax, rbx
shr rax, 0xd
and eax, 0x2000
or qword [r10 + 0x88], rax
mov rcx, rbx
mov rax, rbx
shr rax, 2
and ecx, 0x40000000
and eax, 0x2000000
shl rcx, 8
or rcx, rax
mov r8d, edi
or qword [r10 + 0x80], rcx
mov ecx, edi
shr ecx, 4
and ecx, 1
shr r8, 0x1c
shl rcx, 0x12
and r8d, 1
movzx eax, dil
add r8, r8
and eax, 1
shl rax, 0x3b
or qword [r10 + 0x78], rax
mov eax, edi
shr eax, 5
and eax, 1
or rcx, rax
mov eax, edi
shr eax, 0xf
and eax, 1
shl rcx, 0x16
or qword [r10 + 0x80], rcx
mov ecx, edi
shr ecx, 8
and ecx, 1
shl rcx, 3
or rcx, rax
mov eax, edi
shr eax, 0x13
and eax, 1
shl rcx, 4
or rcx, rax
mov eax, edi
shr rax, 0x1a
and eax, 1
shl rcx, 0x2d
or qword [r10 + 0x78], rcx
mov ecx, edi
shr rcx, 0x19
and ecx, 1
lea rdx, [rax + rax]
or rdx, rax
mov eax, edi
shr eax, 0x17
or rdx, rcx
and eax, 1
shl rdx, 0x2a
or rdx, rcx
add rdx, rdx
or rdx, rax
mov eax, edi
shr rax, 0x18
and eax, 1
shl rdx, 0xe
or rdx, rax
or qword [r10 + 0x80], rdx
or r8, qword [r10 + 0x78]
mov qword [r10 + 0x78], r8
mov eax, dword [r10 + 0x88]
shr rax, 0xd
test al, 1
je 0x18010189a
mov eax, dword [r10 + 0x80]
shr rax, 0x19
test al, 1
je 0x18010189a
xor ecx, ecx
xgetbv
shl rdx, 0x20
or rdx, rax
mov r11, rdx
mov eax, r9d
shr eax, 0x1c
test al, 1
je 0x1801018d4
mov eax, r11d
and eax, 6
cmp al, 6
jne 0x1801018d4
shr rbx, 0x1d
bts r8, 0xe
mov eax, r9d
and ebx, 1
shr eax, 0xc
and eax, 1
add rax, rax
or rax, rbx
shl rax, 0x38
or rax, r8
mov qword [r10 + 0x78], rax
mov ebp, r11d
mov r9d, r11d
and ebp, 0x60000
and r9d, 0xe6
xor r15b, r15b
cmp r14d, 7
jb 0x180101e8c
xor ecx, ecx
mov eax, 7
cpuid
mov edi, ecx
mov esi, 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], edi
mov eax, ebx
shl rdx, 0x27
or qword [r10 + 0x78], rdx
mov ecx, ebx
shr ecx, 7
mov r15d, ebx
and ecx, 1
shr eax, 4
shl rcx, 0x32
and eax, 1
or rcx, rax
shr r15d, 0xe
shl rcx, 5
mov eax, ebx
or qword [r10 + 0x80], rcx
and r15b, 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, 0x28
or qword [r10 + 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, 0x27
and eax, 1
or qword [r10 + 0x80], rcx
mov ecx, ebx
shl rax, 5
or qword [r10 + 0x78], rax
mov eax, ebx
shr ecx, 0x17
shr eax, 0x14
and ecx, 1
and eax, 1
shl rcx, 0x17
shl rax, 0x35
or qword [r10 + 0x80], rax
mov eax, ebx
and eax, 0x1000000
or rcx, rax
movzx eax, dil
shl rcx, 0x17
and eax, 1
or qword [r10 + 0x78], rcx
mov ecx, edi
shr ecx, 4
shl rax, 6
and ecx, 1
or rcx, rax
mov eax, ebx
and eax, 0x20000000
shl rcx, 7
or rcx, rax
shl rcx, 0x13
or qword [r10 + 0x80], rcx
mov eax, edi
shr eax, 5
mov ecx, edi
mov rdx, qword [rsp + 8]
and eax, 1
shl rax, 9
or qword [r10 + 0x88], rax
mov eax, edi
shr eax, 7
and eax, 1
shr ecx, 0xa
shl rax, 0x2a
and ecx, 1
or qword [r10 + 0x78], rax
mov eax, edi
shr eax, 9
and eax, 1
shl rcx, 2
or rcx, rax
mov eax, edi
shl rcx, 6
or qword [r10 + 0x88], rcx
mov ecx, edi
shr eax, 8
and eax, 1
shr ecx, 0x16
and ecx, 1
shl rcx, 0x20
or rcx, rax
mov rax, rdx
and eax, 0x2000000
shl rcx, 4
or qword [r10 + 0x80], rcx
mov rcx, rdx
shl rax, 0x13
or qword [r10 + 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, 7
or qword [r10 + 0x80], rcx
mov ecx, r8d
shl rax, 0x24
or rax, rdx
shr ecx, 5
shl rax, 0x19
and ecx, 1
or qword [r10 + 0x78], rax
add rcx, rcx
mov eax, r8d
shr eax, 0x10
and eax, 1
or rcx, rax
mov eax, r8d
shl rcx, 4
or qword [r10 + 0x88], rcx
mov ecx, r8d
shr eax, 0x12
and eax, 1
shr ecx, 0xe
and ecx, 1
shl rcx, 0x10
or rcx, rax
mov eax, r8d
shr eax, 0x14
and eax, 1
shl rcx, 0x1c
or rcx, qword [r10 + 0x80]
shl rax, 0x29
mov qword [r10 + 0x80], rcx
or qword [r10 + 0x78], rax
movzx eax, cl
shr al, 5
test al, 1
jne 0x180101b36
shr rcx, 0x2a
test cl, 1
je 0x180101b49
mov rax, qword [r10 + 0x88]
bts rax, 3
mov qword [r10 + 0x88], rax
mov eax, ebx
shr eax, 5
test al, 1
je 0x180101b6a
mov rcx, qword [r10 + 0x78]
mov rax, rcx
shr rax, 0xe
test al, 1
je 0x180101b6a
bts rcx, 0xf
mov qword [r10 + 0x78], rcx
cmp r9d, 0xe6
jne 0x180101c84
mov eax, ebx
shr eax, 0x10
test al, 1
je 0x180101c84
mov eax, edi
mov edx, r8d
shr eax, 0xb
mov ecx, edi
and eax, 1
shr edx, 8
and edx, 1
shr ecx, 0xe
add rdx, rdx
and ecx, 1
or rdx, rax
shl rcx, 0x21
shl rdx, 2
mov eax, edi
shr eax, 6
and eax, 1
or rdx, rax
mov eax, edi
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, edi
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, 1
or rcx, rax
shl rdx, 0x10
movabs rax, 0x7fffffffc0000000
and rcx, rax
mov rax, qword [r10 + 0x78]
or rdx, rcx
bts rax, 0x18
or rdx, rax
mov qword [r10 + 0x78], rdx
cmp ebp, 0x60000
jne 0x180101cbc
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, 0xc
or rdx, rcx
or qword [r10 + 0x78], rdx
cmp esi, 1
jb 0x180101e8c
mov ecx, 1
mov eax, 7
cpuid
mov edi, eax
mov r8d, eax
mov esi, edx
mov dword [rsp + 8], ecx
mov ecx, eax
shr r8d, 2
movzx eax, al
and r8d, 1
and eax, 1
shr ecx, 1
and ecx, 1
mov dword [rsp], edi
add r8, r8
mov dword [rsp + 4], ebx
or r8, rcx
mov edx, edi
shr edx, 0xc
and edx, 1
shl r8, 2
or r8, rax
mov eax, edi
shr eax, 3
and eax, 1
shl r8, 0xf
or r8, rax
mov eax, edi
shr eax, 7
and eax, 1
shl r8, 0x22
or qword [r10 + 0x80], r8
shl rax, 0x32
or qword [r10 + 0x78], rax
mov eax, edi
shr eax, 0xa
and eax, 1
shl rax, 2
or qword [r10 + 0x80], rax
mov eax, edi
shr eax, 0xb
movzx ecx, al
mov eax, ebx
add rcx, rcx
shr eax, 1
or rdx, rcx
and eax, 1
shl rdx, 0x3e
mov ecx, edi
or qword [r10 + 0x78], rdx
mov edx, esi
shr edx, 0xe
and edx, 1
shr ecx, 0x13
shl rdx, 7
and ecx, 1
shl rcx, 9
or rcx, rax
shl rcx, 2
or qword [r10 + 0x88], rcx
mov rcx, qword [rsp]
mov rax, rcx
shr rcx, 0x1a
shr rax, 0x1b
and ecx, 1
and eax, 1
or rdx, rax
mov eax, edi
shl rdx, 0xd
or rdx, rcx
shr eax, 0x16
shl rdx, 4
and eax, 1
or rdx, rax
shl rdx, 6
or qword [r10 + 0x80], rdx
mov edx, esi
shr edx, 0x12
and edx, 1
shl rdx, 0x1e
mov eax, esi
shr eax, 0x15
and eax, 1
or rdx, rax
shl rdx, 0xd
or rdx, qword [r10 + 0x78]
mov rax, rdx
mov qword [r10 + 0x78], rdx
shr rax, 0xf
test al, 1
je 0x180101e42
mov eax, esi
mov ecx, esi
shr eax, 0xa
and eax, 1
shr ecx, 4
and ecx, 1
add rcx, rcx
or rcx, rax
mov eax, edi
shr eax, 4
add rcx, rcx
and eax, 1
or rcx, rax
mov eax, esi
shr eax, 5
add rcx, rcx
and eax, 1
or rcx, rax
mov eax, edi
shr eax, 0x17
add rcx, rcx
and eax, 1
or rcx, rax
shl rcx, 0x22
or rcx, rdx
mov rdx, rcx
mov qword [r10 + 0x78], rcx
mov rax, rdx
shr rax, 0x18
test al, 1
je 0x180101e63
mov eax, edi
shr eax, 5
and eax, 1
shl rax, 0x12
or rax, rdx
mov rdx, rax
mov qword [r10 + 0x78], rax
cmp ebp, 0x60000
jne 0x180101e8c
mov ecx, edi
mov eax, esi
shr ecx, 0x15
and ecx, 1
shr eax, 8
add rcx, rcx
and eax, 1
or rcx, rax
shl rcx, 9
or rcx, rdx
mov qword [r10 + 0x78], rcx
cmp r14d, 0xd
jb 0x180101f34
xor ecx, ecx
mov eax, reloc.WS2_32.dll_listen
cpuid
and r11d, eax
mov dword [rsp + 8], ecx
and r11d, 0x18
mov dword [rsp + 0xc], edx
cmp r11b, 0x18
jne 0x180101ecc
test r15b, r15b
je 0x180101ecc
mov rdx, qword [r10 + 0x80]
bts rdx, 0x15
mov qword [r10 + 0x80], rdx
mov eax, reloc.WS2_32.dll_listen
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
shl rdx, 0xe
or qword [r10 + 0x88], rdx
cmp r14d, 0xe
jb 0x180101f34
mov eax, recv
xor ecx, ecx
cpuid
mov eax, ebx
mov dword [rsp + 8], ecx
shr eax, 4
and eax, 1
mov dword [rsp + 0xc], edx
shl rax, 0x21
or qword [r10 + 0x80], rax
mov ebp, 0x80000000
lea r14, [r10 + 0x34]
mov r9d, ebp
lea r15, [0x1802a75a4]
mov r13d, 0x8000001f
nop dword [rax]
xor ecx, ecx
mov eax, r9d
cpuid
mov r11d, ecx
lea ecx, [r9 - 0x80000000]
mov edi, edx
mov esi, eax
mov dword [rsp + 8], r11d
mov dword [rsp + 0xc], edi
cmp ecx, 0x1f
ja case.0x180101f8b.2147483643
movzx ecx, byte [r12 + rcx + 0x10226c]
mov edx, dword [r12 + rcx*4 + 0x102254]
add rdx, r12
jmp rdx
cmp esi, r13d
mov ebp, esi
cmova ebp, r13d
jmp case.0x180101f8b.2147483643
mov eax, r11d
mov ecx, r11d
shr eax, 2
and eax, 1
shr ecx, 0x15
and ecx, 1
add rcx, rcx
or rcx, rax
mov eax, r11d
or qword [r10 + 0x88], rcx
mov ecx, r11d
shr eax, 0xc
and eax, 1
shr ecx, 6
and ecx, 1
shl rcx, 0xc
or rcx, rax
mov eax, r11d
shr eax, 8
and eax, 1
shl rcx, 0x13
or rcx, rax
mov eax, r11d
shr eax, 7
and eax, 1
shl rcx, 7
or rcx, rax
mov rax, qword [rsp + 8]
shr rax, 0x1d
and eax, 1
shl rcx, 7
or rcx, rax
mov eax, r11d
shr eax, 5
and eax, 1
shl rcx, 5
or rcx, rax
mov eax, r11d
shr eax, 0xf
add rcx, rcx
and eax, 1
or rcx, rax
movzx eax, r11b
and eax, 1
shl rcx, 2
or rcx, rax
mov eax, edi
shl rcx, 9
or qword [r10 + 0x80], rcx
mov ecx, edi
shr eax, 0x14
and eax, 1
shr ecx, 0x16
shl rax, 2
and ecx, 1
or qword [r10 + 0x78], rax
add rcx, rcx
mov eax, edi
and eax, 0x8000000
or rcx, rax
mov eax, edi
and eax, 0x20000000
shl rcx, 0xc
or rcx, rax
mov eax, edi
shr eax, 0x15
add rcx, rcx
and eax, 1
or rcx, rax
add rcx, rcx
or qword [r10 + 0x80], rcx
mov ecx, edi
shr rcx, 0x1e
and ecx, 1
mov eax, ecx
shl rcx, 0xf
shl rax, 4
or qword [r10 + 0x78], rax
mov rax, rdi
and rax, 0xffffffff80000000
or rax, rcx
or qword [r10 + 0x80], rax
mov rdx, qword [r10 + 0x78]
mov rax, rdx
shr rax, 0xe
test al, 1
je 0x1801020eb
mov eax, r11d
shr eax, 0xb
and eax, 1
shl rax, 0xc
or qword [r10 + 0x88], rax
mov eax, r11d
shr eax, 0x10
and eax, 1
shl rax, 0x3a
or qword [r10 + 0x78], rax
mov rdx, qword [r10 + 0x78]
xor eax, eax
nop dword [rax]
movzx ecx, byte [r10 + rax + 0x24]
inc rax
cmp cl, byte [r15 + rax - 1]
jne case.0x180101f8b.2147483643
cmp rax, 4
jne 0x1801020f0
mov eax, r11d
shr eax, 4
and eax, 1
shl rax, 7
or rax, rdx
mov qword [r10 + 0x78], rax
jmp case.0x180101f8b.2147483643
mov dword [r14], esi
mov dword [r14 + 4], ebx
mov dword [r14 + 8], r11d
mov dword [r14 + 0xc], edi
add r14, 0x10
cmp r9d, 0x80000004
jne case.0x180101f8b.2147483643
mov r9d, 0x80000007
jmp case.0x180101f8b.2147483643
movzx ecx, bl
mov r9d, 0x8000001e
and ecx, 1
mov eax, ecx
shl rcx, 0x18
shl rax, 0x30
or qword [r10 + 0x78], rax
mov eax, ebx
shr eax, 8
and eax, 1
or rax, rcx
shl rax, 0xd
or qword [r10 + 0x80], rax
mov eax, ebx
shr eax, 9
and eax, 1
shl rax, 0xa
or qword [r10 + 0x88], rax
jmp case.0x180101f8b.2147483643
mov ecx, esi
movzx eax, sil
and eax, 1
shr ecx, 4
shl rax, 7
and ecx, 1
or rcx, rax
mov eax, esi
shr eax, 3
add rcx, rcx
and eax, 1
or rcx, rax
mov eax, esi
shr eax, 1
add rcx, rcx
and eax, 1
or rcx, rax
mov eax, esi
shr eax, 6
shl rcx, 0xa
and eax, 1
or rcx, rax
shl rcx, 0x23
or qword [r10 + 0x80], rcx
inc r9d
cmp r9d, ebp
jbe 0x180101f50
movzx eax, byte [r10 + 0x34]
add r10, 0x34
xor bl, bl
mov rcx, r10
mov byte [r10], bl
test al, al
je 0x180102234
nop
cmp al, 0x20
jne 0x180102218
cmp bl, 0x40
je 0x180102220
movzx edx, byte [r10 + 1]
test dl, 0x9f
jne 0x180102218
cmp dl, 0x60
jne 0x180102220
mov byte [rcx], al
movzx ebx, al
inc rcx
movzx eax, byte [r10 + 1]
inc r10
mov byte [r10], 0
test al, al
jne 0x180102200
mov byte [rcx], al
jmp 0x180102237
mov byte [r10], bl
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x10
pop r15
pop r14
pop r13
pop r12
pop rdi
ret