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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x28], rdx
mov rax, r8
mov r14, rdx
mov r15, rcx
test r9b, r9b
je 0x140010612
mov r14, rax
mov qword [rsp + 0x28], rax
jmp 0x140010623
mov r8d, 0x40
mov rdx, rax
mov rcx, r14
call fcn.140023bc0
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.140029a64
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.140029a64
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.140029a64
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.140029a64
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.140029a64
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.140029a64
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 0x14001066a
mov r14, qword [rsp + 0x28]
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 + r10*4]
xor ecx, esi
xor edx, dword [r14 + r8*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 + r11*4]
xor ecx, r13d
xor edx, dword [r14 + r8*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 0x14001083b
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
and r10d, 0xf
mov ecx, r13d
or ecx, r9d
mov eax, r13d
and ecx, r12d
and eax, r9d
xor r8d, dword [r14 + r11*4]
or ecx, eax
xor r8d, dword [r14 + rdi*4]
mov rax, qword [rsp + 0x28]
rol r8d, 1
add ecx, r8d
mov dword [r14 + rdi*4], r8d
add ecx, ebp
ror r9d, 2
lea ebp, [rdx - 0x70e44324]
mov dword [rsp + 0x20], r9d
add ebp, ecx
lea rcx, [rax - 4]
and ecx, 0xf
mov edx, ebp
inc rax
rol edx, 5
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 + r11*4]
or ecx, dword [rsp + 0x98]
xor r8d, dword [r14 + r9*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 + r10*4]
mov eax, ebp
and ecx, dword [rsp + 0x98]
and eax, r12d
xor r8d, dword [r14 + rdi*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 0x1400109e7
mov r15d, 0x39
lea r10, [r15 + 5]
mov rax, r15
and eax, 0xf
lea rcx, [r15 - 5]
and ecx, 0xf
lea rbx, [r15 + 3]
and r10d, 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 + rbx*4]
xor eax, r13d
xor edx, dword [r14 + r10*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 + r9*4]
xor eax, esi
xor edx, dword [r14 + r11*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 + r8*4]
xor eax, esi
xor edx, dword [r14 + r10*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 + r9*4]
xor edx, dword [r14 + rbx*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 + r8*4]
xor eax, r12d
xor edx, dword [r14 + r11*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 0x140010bfb
mov r15, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x88]
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