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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x150
mov rax, qword [0x14020e198]
xor rax, rsp
mov qword [rsp + 0x140], rax
movzx eax, byte [rcx + 0x15]
mov rsi, rcx
movzx edx, byte [rcx + 0x14]
shl edx, 8
or edx, eax
movzx eax, byte [rcx + 0x16]
shl edx, 8
or edx, eax
movzx eax, byte [rcx + 0x17]
movzx ecx, byte [rcx + 0x18]
shl ecx, 8
shl edx, 8
or edx, eax
movzx eax, byte [rsi + 0x19]
or ecx, eax
mov dword [rsp], edx
shl ecx, 8
movzx eax, byte [rsi + 0x1a]
or ecx, eax
movzx eax, byte [rsi + 0x1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x1d]
mov dword [rsp + 4], ecx
movzx ecx, byte [rsi + 0x1c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x1e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x1f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x21]
mov dword [rsp + 8], ecx
movzx ecx, byte [rsi + 0x20]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x22]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x23]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x25]
mov dword [rsp + 0xc], ecx
movzx ecx, byte [rsi + 0x24]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x26]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x27]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x29]
mov dword [rsp + 0x10], ecx
movzx ecx, byte [rsi + 0x28]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x2a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x2d]
mov dword [rsp + 0x14], ecx
movzx ecx, byte [rsi + 0x2c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x2e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x2f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x31]
mov dword [rsp + 0x18], ecx
movzx ecx, byte [rsi + 0x30]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x32]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x33]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x35]
mov dword [rsp + 0x1c], ecx
movzx ecx, byte [rsi + 0x34]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x36]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x37]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x39]
mov dword [rsp + 0x20], ecx
movzx ecx, byte [rsi + 0x38]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x3a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x3b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x3d]
mov dword [rsp + 0x24], ecx
movzx ecx, byte [rsi + 0x3c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x3e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x3f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x41]
mov dword [rsp + 0x28], ecx
movzx ecx, byte [rsi + 0x40]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x42]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x43]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x45]
mov dword [rsp + 0x2c], ecx
movzx ecx, byte [rsi + 0x44]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x46]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x47]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x49]
mov dword [rsp + 0x30], ecx
movzx ecx, byte [rsi + 0x48]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x4a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x4b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x4d]
mov dword [rsp + 0x34], ecx
movzx ecx, byte [rsi + 0x4c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x4e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x4f]
lea rdx, [rsp + 8]
shl ecx, 8
mov r8d, 0x40
or ecx, eax
movzx eax, byte [rsi + 0x51]
mov dword [rsp + 0x38], ecx
movzx ecx, byte [rsi + 0x50]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x52]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x53]
shl ecx, 8
or ecx, eax
mov dword [rsp + 0x3c], ecx
nop
mov eax, dword [rdx + 0x2c]
xor eax, dword [rdx + 0x18]
xor eax, dword [rdx - 8]
xor eax, dword [rdx]
lea rdx, [rdx + 4]
mov ecx, eax
add eax, eax
shr ecx, 0x1f
xor ecx, eax
mov dword [rdx + 0x34], ecx
sub r8, 1
jne 0x14011a8e0
mov r14d, dword [rsi]
xor r10d, r10d
mov r15d, dword [rsi + 4]
mov edi, r14d
mov r12d, dword [rsi + 8]
mov r8d, r15d
mov r13d, dword [rsi + 0xc]
mov r9d, r12d
mov ebp, dword [rsi + 0x10]
mov r11d, r13d
cmp r10, 0x14
jae 0x14011a93f
mov eax, r8d
mov ecx, r9d
not eax
and ecx, r8d
and eax, r11d
mov ebx, 0x5a827999
or eax, ecx
jmp 0x14011a978
cmp r10, 0x28
jae 0x14011a94c
mov ebx, 0x6ed9eba1
jmp 0x14011a96f
cmp r10, 0x3c
jae 0x14011a96a
mov eax, r9d
mov ecx, r9d
or eax, r8d
and ecx, r8d
and eax, r11d
mov ebx, 0x8f1bbcdc
or eax, ecx
jmp 0x14011a978
mov ebx, 0xca62c1d6
mov eax, r11d
xor eax, r9d
xor eax, r8d
mov edx, edi
mov ecx, edi
shr edx, 0x1b
shl ecx, 5
xor edx, ecx
add edx, dword [rsp + r10*4]
inc r10
add edx, ebx
add edx, eax
add edx, ebp
mov ebp, r11d
mov r11d, r9d
mov r9d, r8d
shr r8d, 2
shl r9d, 0x1e
xor r9d, r8d
mov r8d, edi
mov edi, edx
cmp r10, 0x50
jb 0x14011a922
add dword [rsi + 0x10], ebp
lea eax, [r14 + rdx]
mov dword [rsi], eax
lea eax, [r15 + r8]
mov dword [rsi + 4], eax
lea eax, [r12 + r9]
mov dword [rsi + 8], eax
lea eax, [r11 + r13]
mov dword [rsi + 0xc], eax
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.14011f090
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret