Function at 0x1801c7510
Capabilities:
Encode data using xor
Hash data using sha1 via x86 extensions

Disassembly:
mov r11, rsp
mov dword [r11 + 0x20], r9d
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
sub rsp, 0xc8
movd xmm1, dword [rcx + 0x10]
xor edx, edx
cmp r9d, 1
movaps xmmword [rsp + 0x30], xmm10
movaps xmmword [rsp + 0x20], xmm11
mov eax, edx
mov qword [r11 - 8], rbx
xorps xmm4, xmm4
mov qword [r11 - 0x10], rbp
mov qword [r11 - 0x18], rsi
mov qword [r11 - 0x20], rdi
mov edi, ntohs
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x30], r13
mov qword [r11 - 0x38], r14
movd xmm0, edx
mov qword [r11 - 0x40], r15
mov r15d, 7
punpckldq xmm0, xmm1
punpckldq xmm4, xmm0
movdqu xmm0, xmmword [rcx]
mov ecx, 3
cmovne eax, ecx
mov dword [rsp], eax
mov eax, r9d
cmp eax, 1
pshufd xmm10, xmm0, 0x1b
mov r9d, reloc.WS2_32.dll_ntohs
setne r13b
inc r13b
cmp eax, 1
mov byte [rsp + 0x1e], r13b
sete r12b
inc r12b
cmp eax, 1
mov byte [rsp + 0x1d], r12b
cmovne ecx, edx
setne bpl
mov dword [rsp + 4], ecx
mov edx, 4
mov r14d, edx
mov ecx, 8
cmovne r14d, r15d
mov ebx, ecx
add bpl, 5
mov byte [rsp + 0x1b], r14b
cmp eax, 1
mov byte [rsp + 0x1a], bpl
sete sil
add sil, 5
cmp eax, 1
mov byte [rsp + 0x19], sil
cmovne r15d, edx
cmovne ebx, edi
setne r11b
mov byte [rsp + 0x18], r15b
add r11b, 9
mov byte [rsp + 0x17], bl
cmp eax, 1
mov byte [rsp + 0x16], r11b
sete r10b
add r10b, 9
cmp eax, 1
mov byte [rsp + 0x15], r10b
cmovne edi, ecx
setne dl
mov ecx, ntohs
mov byte [rsp + 0x14], dil
mov r8d, ecx
cmovne r8d, r9d
add dl, 0xd
cmp eax, 1
mov byte [rsp + 0x13], r8b
sete al
add al, 0xd
cmp dword [rsp + 0xe8], 1
cmovne r9d, ecx
mov ecx, dword [rsp]
mov byte [rsp + 0x1f], cl
mov ecx, dword [rsp + 4]
mov byte [rsp + 0x1c], cl
mov r15, qword [rsp + 0x88]
mov r14, qword [rsp + 0x90]
mov r13, qword [rsp + 0x98]
mov r12, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xd0]
mov byte [rsp + 0x11], al
mov rax, qword [rsp + 0xe0]
mov byte [rsp + 0x12], dl
mov byte [rsp + 0x10], r9b
movdqa xmm11, xmmword [rsp + 0x10]
cmp rax, 0x40
jb 0x1801c7964
mov rdx, qword [rsp + 0xd8]
movaps xmmword [rsp + 0x70], xmm6
add rdx, 0x20
movaps xmmword [rsp + 0x60], xmm7
movaps xmmword [rsp + 0x50], xmm8
shr rax, 6
movaps xmmword [rsp + 0x40], xmm9
movdqu xmm2, xmmword [rdx - 0x20]
movdqu xmm3, xmmword [rdx - 0x10]
movdqu xmm7, xmmword [rdx]
movdqu xmm6, xmmword [rdx + 0x10]
movdqa xmm1, xmm10
movdqa xmm9, xmm10
pshufb xmm7, xmm11
pshufb xmm6, xmm11
pshufb xmm2, xmm11
pshufb xmm3, xmm11
movdqa xmm0, xmm2
movdqa xmm8, xmm4
paddd xmm0, xmm4
movdqa xmm4, xmm7
sha1rnds4 xmm10, xmm0, 0
sha1nexte xmm1, xmm3
sha1msg1 xmm2, xmm3
movdqa xmm0, xmm10
xorps xmm4, xmm2
sha1rnds4 xmm10, xmm1, 0
sha1nexte xmm0, xmm7
sha1msg1 xmm3, xmm7
sha1msg1 xmm7, xmm6
movdqa xmm1, xmm10
movdqa xmm2, xmm6
sha1rnds4 xmm10, xmm0, 0
sha1nexte xmm1, xmm6
movdqa xmm0, xmm10
xorps xmm2, xmm3
sha1rnds4 xmm10, xmm1, 0
sha1msg2 xmm4, xmm6
sha1nexte xmm0, xmm4
movdqa xmm1, xmm10
xorps xmm7, xmm4
sha1rnds4 xmm10, xmm0, 0
sha1msg2 xmm2, xmm4
sha1nexte xmm1, xmm2
sha1msg2 xmm7, xmm2
movdqa xmm0, xmm10
movdqa xmm3, xmm7
sha1rnds4 xmm10, xmm1, 1
sha1nexte xmm0, xmm7
movdqa xmm1, xmm10
sha1rnds4 xmm10, xmm0, 1
sha1msg1 xmm6, xmm4
xorps xmm6, xmm2
movdqa xmm0, xmm10
sha1msg2 xmm6, xmm7
sha1nexte xmm1, xmm6
sha1rnds4 xmm10, xmm1, 1
sha1msg1 xmm4, xmm2
sha1msg1 xmm2, xmm7
sha1msg1 xmm7, xmm6
movdqa xmm1, xmm10
movdqa xmm5, xmm6
xorps xmm5, xmm2
xorps xmm3, xmm4
sha1msg2 xmm3, xmm6
sha1nexte xmm0, xmm3
sha1rnds4 xmm10, xmm0, 1
sha1msg2 xmm5, xmm3
sha1nexte xmm1, xmm5
movdqa xmm0, xmm10
xorps xmm7, xmm3
sha1msg2 xmm7, xmm5
sha1rnds4 xmm10, xmm1, 1
sha1msg1 xmm6, xmm3
sha1nexte xmm0, xmm7
movdqa xmm1, xmm10
xorps xmm6, xmm5
sha1msg2 xmm6, xmm7
sha1msg1 xmm3, xmm5
movdqa xmm2, xmm7
sha1rnds4 xmm10, xmm0, 2
sha1nexte xmm1, xmm6
xorps xmm2, xmm3
movdqa xmm0, xmm10
sha1msg1 xmm5, xmm7
sha1rnds4 xmm10, xmm1, 2
sha1msg2 xmm2, xmm6
sha1msg1 xmm7, xmm6
lea rdx, [rdx + 0x40]
movdqa xmm1, xmm10
xorps xmm7, xmm2
movdqa xmm4, xmm6
xorps xmm4, xmm5
sha1nexte xmm0, xmm2
sha1rnds4 xmm10, xmm0, 2
movdqa xmm0, xmm10
sha1msg2 xmm4, xmm2
sha1nexte xmm1, xmm4
sha1rnds4 xmm10, xmm1, 2
movdqa xmm1, xmm10
sha1msg1 xmm6, xmm2
xorps xmm6, xmm4
sha1msg2 xmm7, xmm4
movdqa xmm3, xmm7
sha1msg2 xmm6, xmm7
sha1nexte xmm0, xmm7
sha1rnds4 xmm10, xmm0, 2
movdqa xmm0, xmm10
sha1nexte xmm1, xmm6
sha1rnds4 xmm10, xmm1, 3
movdqa xmm1, xmm10
sha1msg1 xmm2, xmm4
xorps xmm3, xmm2
movdqa xmm2, xmm6
sha1msg1 xmm4, xmm7
xorps xmm2, xmm4
sha1msg2 xmm3, xmm6
sha1msg1 xmm7, xmm6
xorps xmm7, xmm3
sha1nexte xmm0, xmm3
sha1rnds4 xmm10, xmm0, 3
movdqa xmm0, xmm10
sha1msg2 xmm2, xmm3
sha1nexte xmm1, xmm2
sha1rnds4 xmm10, xmm1, 3
movdqa xmm1, xmm10
sha1msg1 xmm6, xmm3
xorps xmm6, xmm2
sha1msg2 xmm7, xmm2
sha1nexte xmm0, xmm7
sha1rnds4 xmm10, xmm0, 3
movdqa xmm4, xmm10
sha1msg2 xmm6, xmm7
sha1nexte xmm1, xmm6
sha1rnds4 xmm10, xmm1, 3
paddd xmm10, xmm9
sha1nexte xmm4, xmm8
sub rax, 1
jne 0x1801c7701
movaps xmm9, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x70]
movaps xmm11, xmmword [rsp + 0x20]
pshufd xmm0, xmm10, 0x1b
movaps xmm10, xmmword [rsp + 0x30]
movdqu xmmword [rcx], xmm0
pextrd dword [rcx + 0x10], xmm4, 3
add rsp, 0xc8
ret