Function at 0x1800ff0e0
Capabilities:
Encode data using xor
Hash data using sha256

Disassembly:
mov r11, rsp
push rbp
push rbx
push rdi
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov rax, qword [0x180428208]
xor rax, rsp
mov qword [rbp + 0x30], rax
mov r9, qword [rcx + 8]
lea rdi, [rcx + 8]
mov qword [r11 + 0x18], rsi
mov rsi, qword [rdi + 8]
mov rcx, rsi
mov qword [r11 - 0x20], r14
sub rcx, r9
mov qword [r11 - 0x28], r15
sar rcx, 2
mov r15, rdx
mov dword [rsp + 0x30], 0x428a2f98
mov dword [rsp + 0x34], 0x71374491
mov dword [rsp + 0x38], 0xb5c0fbcf
mov dword [rsp + 0x3c], 0xe9b5dba5
mov dword [rsp + 0x40], 0x3956c25b
mov dword [rsp + 0x44], 0x59f111f1
mov dword [rsp + 0x48], 0x923f82a4
mov dword [rsp + 0x4c], 0xab1c5ed5
mov dword [rsp + 0x50], 0xd807aa98
mov dword [rsp + 0x54], 0x12835b01
mov dword [rsp + 0x58], 0x243185be
mov dword [rsp + 0x5c], 0x550c7dc3
mov dword [rsp + 0x60], 0x72be5d74
mov dword [rsp + 0x64], 0x80deb1fe
mov dword [rsp + 0x68], 0x9bdc06a7
mov dword [rsp + 0x6c], 0xc19bf174
mov dword [rsp + 0x70], 0xe49b69c1
mov dword [rsp + 0x74], 0xefbe4786
mov dword [rsp + 0x78], 0xfc19dc6
mov dword [rsp + 0x7c], 0x240ca1cc
mov dword [rbp - 0x80], 0x2de92c6f
mov dword [rbp - 0x7c], 0x4a7484aa
mov dword [rbp - 0x78], 0x5cb0a9dc
mov dword [rbp - 0x74], 0x76f988da
mov dword [rbp - 0x70], 0x983e5152
mov dword [rbp - 0x6c], 0xa831c66d
mov dword [rbp - 0x68], 0xb00327c8
mov dword [rbp - 0x64], 0xbf597fc7
mov dword [rbp - 0x60], 0xc6e00bf3
mov dword [rbp - 0x5c], 0xd5a79147
mov dword [rbp - 0x58], 0x6ca6351
mov dword [rbp - 0x54], 0x14292967
mov dword [rbp - 0x50], 0x27b70a85
mov dword [rbp - 0x4c], 0x2e1b2138
mov dword [rbp - 0x48], 0x4d2c6dfc
mov dword [rbp - 0x44], 0x53380d13
mov dword [rbp - 0x40], 0x650a7354
mov dword [rbp - 0x3c], 0x766a0abb
mov dword [rbp - 0x38], 0x81c2c92e
mov dword [rbp - 0x34], 0x92722c85
mov dword [rbp - 0x30], 0xa2bfe8a1
mov dword [rbp - 0x2c], 0xa81a664b
mov dword [rbp - 0x28], 0xc24b8b70
mov dword [rbp - 0x24], 0xc76c51a3
mov dword [rbp - 0x20], 0xd192e819
mov dword [rbp - 0x1c], 0xd6990624
mov dword [rbp - 0x18], 0xf40e3585
mov dword [rbp - 0x14], 0x106aa070
mov dword [rbp - 0x10], 0x19a4c116
mov dword [rbp - 0xc], 0x1e376c08
mov dword [rbp - 8], 0x2748774c
mov dword [rbp - 4], 0x34b0bcb5
mov dword [rbp], 0x391c0cb3
mov dword [rbp + 4], 0x4ed8aa4a
mov dword [rbp + 8], 0x5b9cca4f
mov dword [rbp + 0xc], 0x682e6ff3
mov dword [rbp + 0x10], 0x748f82ee
mov dword [rbp + 0x14], 0x78a5636f
mov dword [rbp + 0x18], 0x84c87814
mov dword [rbp + 0x1c], 0x8cc70208
mov dword [rbp + 0x20], 0x90befffa
mov dword [rbp + 0x24], 0xa4506ceb
mov dword [rbp + 0x28], 0xbef9a3f7
mov dword [rbp + 0x2c], 0xc67178f2
cmp r9, rsi
jne 0x1800ff35f
cmp rcx, 0x40
jbe 0x1800ff311
lea rax, [r9 + 0x100]
mov qword [rdi + 8], rax
jmp 0x1800ff376
jae 0x1800ff376
mov rax, qword [rdi + 0x10]
sub rax, r9
sar rax, 2
cmp rax, 0x40
jae 0x1800ff338
lea r8, [rsp + 0x20]
mov edx, 0x40
mov rcx, rdi
call fcn.1800e2b50
jmp 0x1800ff376
mov ebx, 0x40
xor edx, edx
sub rbx, rcx
mov rcx, rsi
lea rbx, [rbx*4]
mov r8, rbx
call fcn.180283390
lea rax, [rbx + rsi]
mov qword [rdi + 8], rax
jmp 0x1800ff376
lea r8, [rcx*4]
test r8, r8
je 0x1800ff376
xor edx, edx
mov rcx, r9
call fcn.180283390
mov rsi, qword [r15 + 8]
xor ebx, ebx
mov r14, qword [rdi]
shr rsi, 2
test rsi, rsi
je 0x1800ff4a2
mov rdx, qword [r15]
lea r8, [rsi*4]
mov rcx, r14
call fcn.180282cf0
mov ecx, ebx
cmp rsi, 8
jb 0x1800ff490
mov edx, reloc.WS2_32.dll_recv
movaps xmmword [rsp + 0x150], xmm6
movdqa xmm6, xmmword [0x1803470b0]
mov rax, rsi
movaps xmmword [rsp + 0x140], xmm7
and rax, 0xfffffffffffffff8
movdqa xmm7, xmmword [0x1803470a0]
movd xmm4, edx
mov edx, 8
movd xmm5, edx
nop dword [rax]
nop dword [rax + rax]
movdqu xmm2, xmmword [r14 + rcx*4]
movdqa xmm0, xmm7
andps xmm0, xmm2
movdqa xmm3, xmm2
pslld xmm3, xmm4
movdqa xmm1, xmm2
orps xmm3, xmm0
movdqa xmm0, xmm6
psrld xmm1, xmm4
andps xmm0, xmm2
orps xmm1, xmm0
movdqa xmm0, xmm7
pslld xmm3, xmm5
psrld xmm1, xmm5
orps xmm3, xmm1
movdqu xmmword [r14 + rcx*4], xmm3
movdqu xmm2, xmmword [r14 + rcx*4 + 0x10]
andps xmm0, xmm2
movdqa xmm3, xmm2
pslld xmm3, xmm4
movdqa xmm1, xmm2
orps xmm3, xmm0
movdqa xmm0, xmm6
psrld xmm1, xmm4
andps xmm0, xmm2
orps xmm1, xmm0
psrld xmm1, xmm5
pslld xmm3, xmm5
orps xmm3, xmm1
movdqu xmmword [r14 + rcx*4 + 0x10], xmm3
add rcx, rdx
cmp rcx, rax
jne 0x1800ff3f0
movaps xmm7, xmmword [rsp + 0x140]
movaps xmm6, xmmword [rsp + 0x150]
cmp rcx, rsi
je 0x1800ff4a2
nop word [rax + rax]
mov eax, dword [r14 + rcx*4]
bswap eax
mov dword [r14 + rcx*4], eax
inc rcx
cmp rcx, rsi
jne 0x1800ff490
mov r15, qword [rsp + 0x160]
mov r10d, 4
mov r14, qword [rsp + 0x168]
mov rsi, qword [rsp + 0x1a0]
lea r11d, [r10 + 2]
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rdi]
mov ecx, dword [r9 + r10 + 0x34]
mov r8d, ecx
mov edx, dword [r10 + r9]
mov eax, ecx
ror r8d, 0x13
shr ecx, 0xa
ror eax, 0x11
xor r8d, eax
mov eax, edx
xor r8d, ecx
ror eax, 7
mov ecx, edx
shr edx, 3
ror ecx, 0x12
xor ecx, eax
xor ecx, edx
add r8d, ecx
add r8d, dword [r10 + r9 - 4]
add r8d, dword [r10 + r9 + 0x20]
mov dword [r9 + r10 + 0x3c], r8d
mov r9, qword [rdi]
mov ecx, dword [r9 + r10 + 0x38]
mov r8d, ecx
mov edx, dword [r10 + r9 + 4]
mov eax, ecx
shr ecx, 0xa
ror r8d, 0x13
ror eax, 0x11
xor r8d, eax
mov eax, edx
xor r8d, ecx
ror eax, 7
mov ecx, edx
shr edx, 3
ror ecx, 0x12
xor ecx, eax
xor ecx, edx
add r8d, ecx
add r8d, dword [r9 + r10 + 0x24]
add r8d, dword [r10 + r9]
mov dword [r9 + r10 + 0x40], r8d
mov r9, qword [rdi]
mov ecx, dword [r9 + r10 + 0x3c]
mov r8d, ecx
mov edx, dword [r9 + r10 + 8]
mov eax, ecx
shr ecx, 0xa
ror r8d, 0x13
ror eax, 0x11
xor r8d, eax
mov eax, edx
xor r8d, ecx
ror eax, 7
mov ecx, edx
shr edx, 3
ror ecx, 0x12
xor ecx, eax
xor ecx, edx
add r8d, ecx
add r8d, dword [r10 + r9 + 4]
add r8d, dword [r9 + r10 + 0x28]
mov dword [r9 + r10 + 0x44], r8d
mov r9, qword [rdi]
mov ecx, dword [r9 + r10 + 0x40]
mov r8d, ecx
mov edx, dword [r9 + r10 + 0xc]
mov eax, ecx
shr ecx, 0xa
ror eax, 0x11
ror r8d, 0x13
xor r8d, eax
mov eax, edx
xor r8d, ecx
ror eax, 7
mov ecx, edx
shr edx, 3
ror ecx, 0x12
xor ecx, eax
xor ecx, edx
add r8d, ecx
add r8d, dword [r9 + r10 + 0x2c]
add r8d, dword [r9 + r10 + 8]
mov dword [r9 + r10 + 0x48], r8d
mov r9, qword [rdi]
mov ecx, dword [r9 + r10 + 0x44]
mov r8d, ecx
mov edx, dword [r9 + r10 + 0x10]
mov eax, ecx
ror r8d, 0x13
shr ecx, 0xa
ror eax, 0x11
xor r8d, eax
mov eax, edx
xor r8d, ecx
ror eax, 7
mov ecx, edx
shr edx, 3
ror ecx, 0x12
xor ecx, eax
xor ecx, edx
add r8d, ecx
add r8d, dword [r9 + r10 + 0x30]
add r8d, dword [r9 + r10 + 0xc]
mov dword [r9 + r10 + 0x4c], r8d
mov r9, qword [rdi]
mov ecx, dword [r9 + r10 + 0x48]
mov r8d, ecx
mov edx, dword [r9 + r10 + 0x14]
mov eax, ecx
ror r8d, 0x13
shr ecx, 0xa
ror eax, 0x11
xor r8d, eax
mov eax, edx
xor r8d, ecx
ror eax, 7
mov ecx, edx
shr edx, 3
ror ecx, 0x12
xor ecx, eax
xor ecx, edx
add r8d, ecx
add r8d, dword [r9 + r10 + 0x34]
add r8d, dword [r9 + r10 + 0x10]
mov dword [r9 + r10 + 0x50], r8d
mov r9, qword [rdi]
mov ecx, dword [r9 + r10 + 0x4c]
mov r8d, ecx
mov edx, dword [r9 + r10 + 0x18]
mov eax, ecx
ror r8d, 0x13
shr ecx, 0xa
ror eax, 0x11
xor r8d, eax
mov eax, edx
xor r8d, ecx
ror eax, 7
mov ecx, edx
shr edx, 3
ror ecx, 0x12
xor ecx, eax
xor ecx, edx
add r8d, ecx
add r8d, dword [r9 + r10 + 0x38]
add r8d, dword [r9 + r10 + 0x14]
mov dword [r9 + r10 + 0x54], r8d
mov r9, qword [rdi]
mov ecx, dword [r9 + r10 + 0x50]
mov r8d, ecx
mov edx, dword [r9 + r10 + 0x1c]
mov eax, ecx
ror eax, 0x11
shr ecx, 0xa
ror r8d, 0x13
xor r8d, eax
mov eax, edx
xor r8d, ecx
ror eax, 7
mov ecx, edx
ror ecx, 0x12
xor ecx, eax
shr edx, 3
lea r10, [r10 + 0x20]
xor ecx, edx
add r8d, ecx
add r8d, dword [r9 + r10 + 0x1c]
add r8d, dword [r9 + r10 - 8]
mov dword [r9 + r10 + 0x38], r8d
sub r11, 1
jne 0x1800ff4d0
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x30]
add dword [rcx + rbx], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x34]
add dword [rcx + rbx + 4], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x38]
add dword [rcx + rbx + 8], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x3c]
add dword [rcx + rbx + 0xc], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x40]
add dword [rcx + rbx + 0x10], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x44]
add dword [rcx + rbx + 0x14], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x48]
add dword [rcx + rbx + 0x18], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x4c]
add dword [rcx + rbx + 0x1c], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x50]
add dword [rcx + rbx + 0x20], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x54]
add dword [rcx + rbx + 0x24], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x58]
add dword [rcx + rbx + 0x28], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x5c]
add dword [rcx + rbx + 0x2c], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x60]
add dword [rcx + rbx + 0x30], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x64]
add dword [rcx + rbx + 0x34], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x68]
add dword [rcx + rbx + 0x38], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x6c]
add dword [rcx + rbx + 0x3c], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x70]
add dword [rcx + rbx + 0x40], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x74]
add dword [rcx + rbx + 0x44], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x78]
add dword [rcx + rbx + 0x48], eax
mov rcx, qword [rdi]
mov eax, dword [rsp + rbx + 0x7c]
add dword [rcx + rbx + 0x4c], eax
mov rcx, qword [rdi]
mov eax, dword [rbp + rbx - 0x80]
add dword [rcx + rbx + 0x50], eax
mov rcx, qword [rdi]
mov eax, dword [rbp + rbx - 0x7c]
add dword [rcx + rbx + 0x54], eax
mov rcx, qword [rdi]
mov eax, dword [rbp + rbx - 0x78]
add dword [rcx + rbx + 0x58], eax
mov rcx, qword [rdi]
mov eax, dword [rbp + rbx - 0x74]
add dword [rcx + rbx + 0x5c], eax
mov rcx, qword [rdi]
mov eax, dword [rbp + rbx - 0x70]
add dword [rcx + rbx + 0x60], eax
mov rcx, qword [rdi]
mov eax, dword [rbp + rbx - 0x6c]
add dword [rcx + rbx + 0x64], eax
mov rcx, qword [rdi]
mov eax, dword [rbp + rbx - 0x68]
add dword [rcx + rbx + 0x68], eax
mov rcx, qword [rdi]
mov eax, dword [rbp + rbx - 0x64]
add dword [rcx + rbx + 0x6c], eax
mov rcx, qword [rdi]
mov eax, dword [rbp + rbx - 0x60]
add dword [rcx + rbx + 0x70], eax
mov rcx, qword [rdi]
mov eax, dword [rbp + rbx - 0x5c]
add dword [rcx + rbx + 0x74], eax
mov rcx, qword [rdi]
mov eax, dword [rbp + rbx - 0x58]
add dword [rcx + rbx + 0x78], eax
mov eax, dword [rbp + rbx - 0x54]
mov rcx, qword [rdi]
add dword [rcx + rbx + 0x7c], eax
sub rbx, 0xffffffffffffff80
cmp rbx, 0x100
jne 0x1800ff710
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.1800a5910
add rsp, 0x170
pop rdi
pop rbx
pop rbp
ret