Function at 0x140018978
Capabilities:
Encode data using xor
Hash data using sha1

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rax, r8
mov r14, rdx
mov r15, rcx
test r9b, r9b
je 0x1400189ad
mov r14, rax
mov qword [r11 + 0x10], rax
jmp 0x1400189be
mov r8d, 0x40
mov rdx, rax
mov rcx, r14
call fcn.14002b4d0
mov ecx, dword [r14]
mov esi, dword [r15]
mov edi, dword [r15 + 4]
mov r13d, dword [r15 + 8]
mov r12d, dword [r15 + 0xc]
mov ebx, dword [r15 + 0x10]
call fcn.140019494
add ebx, 0x5a827999
mov dword [r14], eax
mov ebp, r12d
mov ecx, esi
xor ebp, r13d
rol ecx, 5
and ebp, edi
add eax, ecx
xor ebp, r12d
add ebp, eax
add ebp, ebx
lea rbx, [r14 + 8]
ror edi, 2
mov r14d, 3
mov ecx, dword [rbx - 4]
call fcn.140019494
mov ecx, ebp
mov dword [rbx - 4], eax
rol ecx, 5
mov edx, r13d
xor edx, edi
add ecx, 0x5a827999
and edx, esi
add eax, ecx
mov ecx, dword [rbx]
xor edx, r13d
add edx, eax
ror esi, 2
add r12d, edx
call fcn.140019494
mov ecx, r12d
mov dword [rbx], eax
rol ecx, 5
mov edx, edi
xor edx, esi
add ecx, 0x5a827999
and edx, ebp
add eax, ecx
mov ecx, dword [rbx + 4]
xor edx, edi
add edx, eax
ror ebp, 2
add r13d, edx
call fcn.140019494
mov ecx, r13d
mov dword [rbx + 4], eax
rol ecx, 5
mov edx, ebp
xor edx, esi
add ecx, 0x5a827999
and edx, r12d
add eax, ecx
mov ecx, dword [rbx + 8]
xor edx, esi
add edx, eax
ror r12d, 2
add edi, edx
call fcn.140019494
mov dword [rbx + 8], eax
lea rbx, [rbx + 0x14]
mov ecx, edi
mov edx, ebp
xor edx, r12d
rol ecx, 5
and edx, r13d
add ecx, 0x5a827999
add eax, ecx
ror r13d, 2
mov ecx, dword [rbx - 8]
xor edx, ebp
add edx, eax
add esi, edx
call fcn.140019494
add ebp, 0x5a827999
mov dword [rbx - 8], eax
mov edx, r12d
mov ecx, esi
xor edx, r13d
rol ecx, 5
and edx, edi
add eax, ecx
xor edx, r12d
ror edi, 2
add edx, eax
add ebp, edx
sub r14, 1
jne 0x140018a05
mov r14, qword [rsp + 0x88]
mov eax, ebp
rol eax, 5
mov ecx, r13d
add eax, 0x5a827999
xor ecx, edi
and ecx, esi
ror esi, 2
mov r8d, dword [r14 + 0x34]
xor ecx, r13d
xor r8d, dword [r14 + 0x20]
xor r8d, dword [r14]
xor r8d, dword [r14 + 8]
mov edx, dword [r14 + 0x38]
xor edx, dword [r14 + 0x24]
xor edx, dword [r14 + 0xc]
xor edx, dword [r14 + 4]
rol edx, 1
mov dword [r14 + 4], edx
add edx, 0x5a827999
rol r8d, 1
add eax, r8d
mov dword [r14], r8d
add ecx, eax
add r12d, ecx
mov ecx, edi
xor ecx, esi
mov eax, r12d
rol eax, 5
and ecx, ebp
add eax, edx
ror ebp, 2
mov edx, dword [r14 + 0x3c]
xor ecx, edi
xor edx, dword [r14 + 0x28]
add ecx, eax
xor edx, dword [r14 + 0x10]
add r13d, ecx
xor edx, dword [r14 + 8]
mov eax, r13d
rol eax, 5
mov r15d, ebp
rol edx, 1
xor r15d, esi
mov dword [r14 + 8], edx
and r15d, r12d
add edx, 0x5a827999
ror r12d, 2
add eax, edx
xor r15d, esi
mov edx, dword [r14 + 0x2c]
add r15d, eax
xor edx, dword [r14 + 0x14]
add r15d, edi
xor edx, r8d
mov eax, r15d
xor edx, dword [r14 + 0xc]
mov r8d, 0x11
rol eax, 5
mov ecx, ebp
add eax, 0x5a827999
rol edx, 1
add eax, edx
mov dword [r14 + 0xc], edx
xor ecx, r12d
mov qword [rsp + 0x28], r8
and ecx, r13d
xor ecx, ebp
add ecx, eax
lea eax, [r8 - 0xd]
add esi, ecx
mov qword [rsp + 0x38], rax
ror r13d, 2
mov qword [rsp + 0x20], rax
lea rbx, [r8 + 3]
mov rax, r8
and eax, 0xf
lea rcx, [r8 - 5]
and ecx, 0xf
lea r11, [r8 + 4]
lea r9, [r8 + 6]
and ebx, 0xf
lea rdi, [r8 + 5]
and r11d, 0xf
mov r10, rdi
and r9d, 0xf
mov edx, dword [r14 + rcx*4]
and r10d, 0xf
xor edx, dword [r14 + rax*4]
mov ecx, r12d
xor edx, dword [r14 + rbx*4]
xor ecx, r13d
xor ecx, r15d
mov eax, esi
xor edx, dword [r14 + r10*4]
rol edx, 1
mov dword [r14 + rbx*4], edx
add edx, 0x6ed9eba1
rol eax, 5
add eax, edx
ror r15d, 2
add ecx, eax
lea rax, [r8 + 1]
add ebp, ecx
and eax, 0xf
lea rcx, [r8 - 4]
add r8, 7
and ecx, 0xf
and r8d, 0xf
mov edx, dword [r14 + rcx*4]
mov ecx, r13d
xor edx, dword [r14 + rax*4]
xor ecx, r15d
xor edx, dword [r14 + r11*4]
xor ecx, esi
xor edx, dword [r14 + r9*4]
mov eax, ebp
rol edx, 1
mov dword [r14 + r11*4], edx
add edx, 0x6ed9eba1
rol eax, 5
add eax, edx
ror esi, 2
add ecx, eax
mov rax, qword [rsp + 0x28]
add r12d, ecx
lea rcx, [rax - 3]
add rax, 2
and ecx, 0xf
and eax, 0xf
mov edx, dword [r14 + rcx*4]
mov ecx, ebp
xor edx, dword [r14 + rax*4]
xor ecx, r15d
xor edx, dword [r14 + r8*4]
xor ecx, esi
xor edx, dword [r14 + r10*4]
mov eax, r12d
rol edx, 1
mov dword [r14 + r10*4], edx
add edx, 0x6ed9eba1
mov r10, qword [rsp + 0x28]
rol eax, 5
add eax, edx
ror ebp, 2
add ecx, eax
add r13d, ecx
lea rax, [r10 - 2]
lea rcx, [r10 - 8]
and eax, 0xf
and ecx, 0xf
mov edx, dword [r14 + rcx*4]
xor edx, dword [r14 + rax*4]
xor edx, dword [r14 + rbx*4]
xor edx, dword [r14 + r9*4]
rol edx, 1
mov eax, r13d
mov dword [r14 + r9*4], edx
mov ecx, ebp
xor ecx, r12d
rol eax, 5
xor ecx, esi
ror r12d, 2
add edx, 0x6ed9eba1
mov qword [rsp + 0x28], rdi
add eax, edx
add esi, 0x6ed9eba1
add ecx, eax
lea rax, [r10 - 1]
add r15d, ecx
and eax, 0xf
lea rcx, [r10 - 7]
and ecx, 0xf
mov edx, dword [r14 + rcx*4]
mov ecx, ebp
xor edx, dword [r14 + rax*4]
xor ecx, r12d
xor edx, dword [r14 + r8*4]
xor ecx, r13d
xor edx, dword [r14 + r11*4]
mov eax, r15d
rol edx, 1
rol eax, 5
add eax, edx
ror r13d, 2
add ecx, eax
mov dword [r14 + r8*4], edx
add esi, ecx
mov r8, rdi
sub qword [rsp + 0x20], 1
jne 0x140018bd9
mov ebx, 0x25
mov dword [rsp + 0x98], esi
mov qword [rsp + 0x28], rbx
mov r9d, r15d
mov qword [rsp + 0x30], 4
mov edx, dword [rsp + 0x98]
lea rcx, [rbx - 5]
and ecx, 0xf
rol edx, 5
mov rax, rbx
lea rdi, [rbx + 3]
and eax, 0xf
lea r10, [rbx + 6]
and edi, 0xf
lea rsi, [rbx + 5]
mov r8d, dword [r14 + rcx*4]
add rbx, 4
mov r11, rsi
and ebx, 0xf
xor r8d, dword [r14 + rax*4]
and r11d, 0xf
xor r8d, dword [r14 + rdi*4]
and r10d, 0xf
mov ecx, r13d
mov eax, r13d
or ecx, r9d
and eax, r9d
xor r8d, dword [r14 + r11*4]
and ecx, r12d
or ecx, eax
rol r8d, 1
mov rax, qword [rsp + 0x28]
add ecx, r8d
add ecx, ebp
mov dword [r14 + rdi*4], r8d
ror r9d, 2
lea ebp, [rdx - 0x70e44324]
add ebp, ecx
mov dword [rsp + 0x20], r9d
lea rcx, [rax - 4]
mov edx, ebp
and ecx, 0xf
rol edx, 5
inc rax
and eax, 0xf
mov r8d, dword [r14 + rcx*4]
mov ecx, r9d
or ecx, dword [rsp + 0x98]
xor r8d, dword [r14 + rax*4]
and ecx, r13d
xor r8d, dword [r14 + rbx*4]
mov eax, r9d
xor r8d, dword [r14 + r10*4]
mov r9d, dword [rsp + 0x98]
and eax, r9d
or ecx, eax
rol r8d, 1
mov rax, qword [rsp + 0x28]
add ecx, r8d
add ecx, r12d
mov dword [r14 + rbx*4], r8d
ror r9d, 2
lea r12d, [rdx - 0x70e44324]
add r12d, ecx
mov dword [rsp + 0x98], r9d
lea rcx, [rax - 3]
mov edx, r12d
lea r9, [rax + 7]
rol edx, 5
and ecx, 0xf
add rax, 2
and eax, 0xf
and r9d, 0xf
mov r8d, dword [r14 + rcx*4]
mov ecx, ebp
xor r8d, dword [r14 + rax*4]
mov eax, ebp
xor r8d, dword [r14 + r9*4]
or ecx, dword [rsp + 0x98]
xor r8d, dword [r14 + r11*4]
and ecx, dword [rsp + 0x20]
and eax, dword [rsp + 0x98]
rol r8d, 1
or ecx, eax
mov dword [r14 + r11*4], r8d
add ecx, r8d
mov rax, qword [rsp + 0x28]
add r13d, ecx
ror ebp, 2
add edx, 0x8f1bbcdc
add r13d, edx
mov r11d, r13d
lea rcx, [rax - 8]
rol r11d, 5
and ecx, 0xf
add rax, 0xfffffffffffffffe
and eax, 0xf
mov r8d, dword [r14 + rcx*4]
mov ecx, ebp
xor r8d, dword [r14 + rax*4]
or ecx, r12d
xor r8d, dword [r14 + rdi*4]
mov eax, ebp
and ecx, dword [rsp + 0x98]
and eax, r12d
xor r8d, dword [r14 + r10*4]
or ecx, eax
mov rax, qword [rsp + 0x28]
rol r8d, 1
mov dword [r14 + r10*4], r8d
add r8d, 0x8f1bbcdc
add ecx, r8d
ror r12d, 2
add ecx, dword [rsp + 0x20]
add r11d, ecx
lea rcx, [rax - 7]
and ecx, 0xf
mov edx, r11d
dec rax
rol edx, 5
and eax, 0xf
mov r8d, dword [r14 + rcx*4]
mov ecx, r12d
or ecx, r13d
xor r8d, dword [r14 + rax*4]
and ecx, ebp
xor r8d, dword [r14 + rbx*4]
mov eax, r12d
xor r8d, dword [r14 + r9*4]
and eax, r13d
rol r8d, 1
or ecx, eax
add ecx, r8d
mov dword [r14 + r9*4], r8d
add ecx, dword [rsp + 0x98]
lea r8d, [rdx - 0x70e44324]
add r8d, ecx
ror r13d, 2
sub qword [rsp + 0x30], 1
mov rbx, rsi
mov r9d, r11d
mov dword [rsp + 0x98], r8d
mov qword [rsp + 0x28], rbx
jne 0x140018d85
mov r15d, 0x39
lea r10, [r15 + 5]
mov rax, r15
and eax, 0xf
lea rbx, [r15 + 3]
and r10d, 0xf
lea rcx, [r15 - 5]
and ecx, 0xf
lea r11, [r15 + 4]
and ebx, 0xf
and r11d, 0xf
mov edx, dword [r14 + rcx*4]
mov ecx, r8d
xor edx, dword [r14 + rax*4]
mov eax, r12d
xor edx, dword [r14 + r10*4]
xor eax, r13d
xor edx, dword [r14 + rbx*4]
xor eax, r9d
rol edx, 1
add eax, edx
mov dword [r14 + rbx*4], edx
add eax, ebp
rol ecx, 5
ror r9d, 2
mov dword [rsp + 0x20], r9d
lea r9, [r15 + 6]
mov esi, dword [rsp + 0x20]
and r9d, 0xf
lea ebp, [rcx - 0x359d3e2a]
add ebp, eax
lea rcx, [r15 - 4]
and ecx, 0xf
lea rax, [r15 + 1]
and eax, 0xf
mov edx, dword [r14 + rcx*4]
mov ecx, ebp
xor edx, dword [r14 + rax*4]
mov eax, r13d
xor edx, dword [r14 + r11*4]
xor eax, esi
xor edx, dword [r14 + r9*4]
xor eax, r8d
rol edx, 1
add eax, edx
mov dword [r14 + r11*4], edx
add eax, r12d
rol ecx, 5
ror r8d, 2
mov dword [rsp + 0x98], r8d
lea r8, [r15 + 7]
and r8d, 0xf
lea r12d, [rcx - 0x359d3e2a]
add r12d, eax
lea rcx, [r15 - 3]
and ecx, 0xf
lea rax, [r15 + 2]
and eax, 0xf
mov edx, dword [r14 + rcx*4]
mov ecx, r12d
xor edx, dword [r14 + rax*4]
mov eax, ebp
xor edx, dword [r14 + r10*4]
xor eax, esi
xor edx, dword [r14 + r8*4]
rol edx, 1
mov dword [r14 + r10*4], edx
mov r10d, dword [rsp + 0x98]
xor eax, r10d
add eax, edx
rol ecx, 5
add eax, r13d
ror ebp, 2
lea r13d, [rcx - 0x359d3e2a]
add r13d, eax
lea rcx, [r15 - 8]
and ecx, 0xf
lea rax, [r15 - 2]
and eax, 0xf
mov edx, dword [r14 + rcx*4]
xor edx, dword [r14 + rax*4]
xor edx, dword [r14 + rbx*4]
xor edx, dword [r14 + r9*4]
lea rcx, [r15 - 7]
rol edx, 1
mov eax, ebp
xor eax, r12d
mov dword [r14 + r9*4], edx
xor eax, r10d
ror r12d, 2
add eax, 0xca62c1d6
mov r9d, r13d
add eax, edx
rol r9d, 5
add eax, esi
and ecx, 0xf
add r9d, eax
lea rax, [r15 - 1]
and eax, 0xf
add r15, 5
mov edx, dword [r14 + rcx*4]
xor edx, dword [r14 + rax*4]
mov eax, ebp
xor edx, dword [r14 + r11*4]
xor eax, r12d
xor edx, dword [r14 + r8*4]
xor eax, r13d
rol edx, 1
mov dword [r14 + r8*4], edx
add eax, edx
add eax, r10d
ror r13d, 2
mov r8d, r9d
rol r8d, 5
add r8d, 0xca62c1d6
add r8d, eax
sub qword [rsp + 0x38], 1
jne 0x140018f99
mov r15, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x90]
add dword [r15], r8d
add dword [r15 + 4], r9d
add dword [r15 + 8], r13d
add dword [r15 + 0xc], r12d
add dword [r15 + 0x10], ebp
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret