Function at 0x140161330
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, 0x30
mov byte [rcx + 2], 1
lea r8, [0x1402cdfec]
mov dword [rcx + 0x18], 1
mov r10, rcx
mov rax, qword [rcx + 0x80]
xor edi, edi
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 0x140161393
cmp dword [r8], edx
jne 0x140161393
cmp dword [r8 + 4], ecx
je 0x1401613a0
inc r9d
add r8, 0x14
cmp r9d, 4
jb 0x140161382
lea rax, [r9 + r9*4]
lea r12, [0x140000000]
mov rax, qword [r12 + rax*4 + 0x2cdfe0]
mov qword [r10 + 0x24], rax
cmp r14d, 1
jb 0x14016167a
xor ecx, ecx
mov eax, 1
cpuid
mov r11d, 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 + 0x28], r9d
mov ecx, eax
mov dword [rsp + 0x2c], r11d
cmp edx, 6
je 0x1401613f9
cmp edx, 0xf
jne 0x140161414
shr eax, 0xc
and eax, 0xf0
add r8d, eax
cmp edx, 0xf
jne 0x140161414
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 + 0x28]
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, r11d
or qword [r10 + 0x80], rcx
mov ecx, r11d
shr ecx, 4
and ecx, 1
shr r8, 0x1c
shl rcx, 0x12
and r8d, 1
movzx eax, r11b
add r8, r8
and eax, 1
shl rax, 0x3b
or qword [r10 + 0x78], rax
mov eax, r11d
shr eax, 5
and eax, 1
or rcx, rax
mov eax, r11d
shr eax, 0xf
and eax, 1
shl rcx, 0x16
or qword [r10 + 0x80], rcx
mov ecx, r11d
shr ecx, 8
and ecx, 1
shl rcx, 3
or rcx, rax
mov eax, r11d
shr eax, 0x13
and eax, 1
shl rcx, 4
or rcx, rax
mov eax, r11d
shr rax, 0x1a
and eax, 1
shl rcx, 0x2d
or qword [r10 + 0x78], rcx
mov ecx, r11d
shr rcx, 0x19
and ecx, 1
lea rdx, [rax + rax]
or rdx, rax
mov eax, r11d
shr eax, 0x17
or rdx, rcx
and eax, 1
shl rdx, 0x2a
or rdx, rcx
add rdx, rdx
or rdx, rax
mov eax, r11d
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 0x140161644
mov eax, dword [r10 + 0x80]
shr rax, 0x19
test al, 1
je 0x140161644
xor ecx, ecx
xgetbv
shl rdx, 0x20
or rdx, rax
mov rdi, rdx
bt r9d, 0x1c
jae 0x14016167a
mov eax, edi
and eax, 6
cmp al, 6
jne 0x14016167a
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, edi
mov r9d, edi
and ebp, 0x60000
and r9d, 0xe6
xor r15b, r15b
cmp r14d, 7
jb 0x140161c47
xor ecx, ecx
mov eax, 7
cpuid
mov r11d, ecx
mov esi, eax
mov r8d, edx
mov dword [rsp + 0x2c], 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 + 0x28], r11d
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, r11b
shl rcx, 0x17
and eax, 1
or qword [r10 + 0x78], rcx
mov ecx, r11d
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, r11d
shr eax, 5
mov ecx, r11d
mov rdx, qword [rsp + 0x28]
and eax, 1
shl rax, 9
or qword [r10 + 0x88], rax
mov eax, r11d
shr eax, 7
and eax, 1
shr ecx, 0xa
shl rax, 0x2a
and ecx, 1
or qword [r10 + 0x78], rax
mov eax, r11d
shr eax, 9
and eax, 1
shl rcx, 2
or rcx, rax
mov eax, r11d
shl rcx, 6
or qword [r10 + 0x88], rcx
mov ecx, r11d
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 0x1401618e4
shr rcx, 0x2a
test cl, 1
je 0x1401618f7
mov rax, qword [r10 + 0x88]
bts rax, 3
mov qword [r10 + 0x88], rax
test bl, 0x20
je 0x140161914
mov rcx, qword [r10 + 0x78]
mov rax, rcx
shr rax, 0xe
test al, 1
je 0x140161914
bts rcx, 0xf
mov qword [r10 + 0x78], rcx
cmp r9d, 0xe6
jne 0x140161a30
bt ebx, 0x10
jae 0x140161a30
mov eax, r11d
mov edx, r8d
shr eax, 0xb
mov ecx, r11d
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, r11d
shr eax, 6
and eax, 1
or rdx, rax
mov eax, r11d
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, r11d
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 0x140161a68
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 0x140161c47
mov ecx, 1
mov eax, 7
cpuid
mov r11d, eax
mov r8d, eax
mov esi, edx
mov dword [rsp + 0x28], 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 + 0x20], r11d
add r8, r8
mov dword [rsp + 0x24], ebx
or r8, rcx
mov edx, r11d
shr edx, 0xc
and edx, 1
shl r8, 2
or r8, rax
mov eax, r11d
shr eax, 3
and eax, 1
shl r8, 0xf
or r8, rax
mov eax, r11d
shr eax, 7
and eax, 1
shl r8, 0x22
or qword [r10 + 0x80], r8
shl rax, 0x32
or qword [r10 + 0x78], rax
mov eax, r11d
shr eax, 0xa
and eax, 1
shl rax, 2
or qword [r10 + 0x80], rax
mov eax, r11d
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, r11d
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 + 0x20]
mov rax, rcx
shr rcx, 0x1a
shr rax, 0x1b
and ecx, 1
and eax, 1
or rdx, rax
mov eax, r11d
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 0x140161bfb
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, r11d
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, r11d
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 0x140161c1d
mov eax, r11d
shr eax, 5
and eax, 1
shl rax, 0x12
or rax, rdx
mov rdx, rax
mov qword [r10 + 0x78], rax
cmp ebp, 0x60000
jne 0x140161c47
mov ecx, r11d
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 0x140161ced
xor ecx, ecx
mov eax, recv
cpuid
and edi, eax
mov dword [rsp + 0x28], ecx
and edi, 0x18
mov dword [rsp + 0x2c], edx
cmp dil, 0x18
jne 0x140161c85
test r15b, r15b
je 0x140161c85
mov rdx, qword [r10 + 0x80]
bts rdx, 0x15
mov qword [r10 + 0x80], rdx
mov eax, recv
mov ecx, 1
cpuid
mov dword [rsp + 0x2c], edx
mov edx, eax
shr edx, 3
and edx, 1
mov dword [rsp + 0x28], 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 0x140161ced
mov eax, reloc.WS2_32.dll_ntohl
xor ecx, ecx
cpuid
mov eax, ebx
mov dword [rsp + 0x28], ecx
shr eax, 4
and eax, 1
mov dword [rsp + 0x2c], edx
shl rax, 0x21
or qword [r10 + 0x80], rax
mov ebp, 0x80000000
lea r14, [r10 + 0x34]
mov r9d, ebp
lea r15, [0x1402ce044]
mov r13d, 0x8000001f
xor ecx, ecx
mov eax, r9d
cpuid
mov r11d, ecx
lea ecx, [r9 - 0x80000000]
mov edi, edx
mov esi, eax
mov dword [rsp + 0x28], r11d
mov dword [rsp + 0x2c], edi
cmp ecx, 0x1f
ja case.0x140161d41.2147483643
movzx ecx, byte [r12 + rcx + 0x161ff4]
mov edx, dword [r12 + rcx*4 + 0x161fdc]
add rdx, r12
jmp rdx
cmp esi, r13d
mov ebp, esi
cmova ebp, r13d
jmp case.0x140161d41.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 + 0x28]
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 0x140161ea1
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]
nop word [rax + rax]
movzx ecx, byte [r10 + rax + 0x24]
inc rax
cmp cl, byte [r15 + rax - 1]
jne case.0x140161d41.2147483643
cmp rax, 4
jne 0x140161eb0
mov eax, r11d
shr eax, 4
and eax, 1
shl rax, 7
or rax, rdx
mov qword [r10 + 0x78], rax
jmp case.0x140161d41.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.0x140161d41.2147483643
mov r9d, 0x80000007
jmp case.0x140161d41.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.0x140161d41.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 0x140161d06
lea rcx, [r10 + 0x34]
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
jmp 0x140162120
movzx edx, byte [rcx]
xor r9b, r9b
mov byte [rcx], r9b
mov r8, rcx
test dl, dl
je 0x140162161
cmp dl, 0x20
jne 0x140162145
cmp r9b, 0x40
je 0x14016214f
movzx eax, byte [rcx + 1]
sub al, dl
test al, 0xdf
je 0x14016214f
mov byte [r8], dl
movzx r9d, dl
inc r8
movzx edx, byte [rcx + 1]
inc rcx
mov byte [rcx], 0
test dl, dl
jne 0x140162130
mov byte [r8], dl
ret
mov byte [rcx], r9b
ret