Function at 0x180005a20
Capabilities:
Encode data using xor
Hash data using sha1
Hash data using sha256

Disassembly:
push rbp
push rbx
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x1f]
sub rsp, 0xf8
mov rax, qword [0x180055010]
xor rax, rsp
mov qword [rbp - 9], rax
movsxd r13, dword [rbp + 0x77]
lea eax, [r9 + 1]
movsxd rbx, r8d
mov edi, r9d
add eax, ebx
mov dword [rsp + 0x30], r9d
mov r12, rdx
mov r14, rcx
cmp eax, r13d
jle 0x180005a8d
mov eax, dword [rbp + 0x7f]
sub r13d, r9d
mov r8, rdx
mov dword [rsp + 0x28], 1
mov r9d, r13d
mov dword [rsp + 0x20], eax
lea rdx, [rbp - 0x29]
call qword [rcx + 0x68]
mov eax, 0xfffffecf
jmp 0x180005d4f
mov qword [rsp + 0xe8], r15
lea r9, [rbx + 1]
xor r15d, r15d
mov r8d, r15d
test r9, r9
jle 0x180005ac5
mov r10, r13
mov edx, r15d
sub r10, r9
add r10, r12
movzx ecx, byte [r10 + rdx]
inc rdx
movzx eax, bl
xor ecx, eax
or r8d, ecx
cmp rdx, r9
jl 0x180005ab0
mov eax, dword [rbp + 0x7f]
lea rdx, [rbp - 0x29]
mov r10, qword [r14 + 0x68]
mov r9d, r13d
sub r9d, edi
mov dword [rsp + 0x28], 1
test r8d, r8d
mov dword [rsp + 0x20], eax
mov r8, r12
mov rcx, r14
je 0x180005afa
call r10
mov eax, 0xfffffecf
jmp 0x180005d47
sub r9d, ebx
mov qword [rsp + 0xf0], rsi
dec r9d
call r10
mov esi, eax
mov dword [rsp + 0x34], eax
sub r13d, edi
mov r11d, r15d
mov ecx, r15d
lea eax, [r13 - 0x2a]
sub r13d, ebx
cdq
and edx, 0x3f
add eax, edx
mov r10d, eax
and eax, 0x3f
sub eax, edx
sar r10d, 6
mov r8d, eax
lea eax, [r13 - 0x2b]
cdq
and edx, 0x3f
add eax, edx
mov r9d, eax
and eax, 0x3f
sar r9d, 6
test r8d, r8d
setne r11b
cmp eax, edx
setne cl
sub r11d, ecx
sub r11d, r9d
add r11d, r10d
je 0x180005d1c
movzx ecx, byte [r14 + 0x22c]
sub ecx, 1
je 0x180005c5e
sub ecx, 1
je 0x180005bfe
cmp ecx, 2
jne 0x180005d1c
mov dword [rsp + 0x4c], 0x6a09e667
mov dword [rsp + 0x50], 0xbb67ae85
mov dword [rsp + 0x54], 0x3c6ef372
mov dword [rsp + 0x58], 0xa54ff53a
mov dword [rbp - 0x7d], 0x510e527f
mov dword [rbp - 0x79], 0x9b05688c
mov dword [rbp - 0x75], 0x1f83d9ab
mov dword [rbp - 0x71], 0x5be0cd19
mov qword [rsp + 0x40], r15
mov dword [rsp + 0x48], r15d
test r11d, r11d
jle 0x180005d1c
mov ebx, r11d
nop word [rax + rax]
mov r8d, 0x40
lea rcx, [rsp + 0x40]
mov rdx, r14
call fcn.18002cf90
sub rbx, 1
jne 0x180005be0
jmp 0x180005d1c
mov dword [rbp - 0x4d], 0x67452301
mov dword [rbp - 0x49], 0xefcdab89
mov dword [rbp - 0x45], 0x98badcfe
mov dword [rbp - 0x41], 0x10325476
mov dword [rbp - 0x3d], 0xc3d2e1f0
mov qword [rsp + 0x40], r15
mov dword [rsp + 0x48], r15d
test r11d, r11d
jle 0x180005d1c
mov ebx, r11d
nop word [rax + rax]
mov r8d, 0x40
lea rcx, [rsp + 0x40]
mov rdx, r14
call fcn.18002c200
sub rbx, 1
jne 0x180005c40
jmp 0x180005d1c
mov dword [rbp - 0x4d], 0x67452301
mov edx, r15d
mov dword [rsp + 0x40], edx
mov dword [rbp - 0x49], 0xefcdab89
mov dword [rbp - 0x45], 0x98badcfe
mov dword [rbp - 0x41], 0x10325476
mov qword [rsp + 0x44], r15
test r11d, r11d
jle 0x180005d1c
mov r15d, r11d
nop dword [rax]
nop word [rax + rax]
mov ebx, 0x40
mov rsi, r14
nop dword [rax + rax]
mov eax, edx
mov ecx, 0x40
sub ecx, edx
mov edi, ebx
cmp ebx, ecx
mov rdx, rsi
cmovae edi, ecx
lea rcx, [rsp + 0x4c]
add rcx, rax
mov r8d, edi
call fcn.18002fd00
mov edx, dword [rsp + 0x40]
add rsi, rdi
add edx, edi
sub ebx, edi
mov dword [rsp + 0x40], edx
cmp edx, 0x40
jne 0x180005d0a
lea rcx, [rsp + 0x40]
call fcn.180028c10
mov ecx, dword [rsp + 0x44]
lea eax, [rcx + 0x40]
mov dword [rsp + 0x44], eax
cmp eax, ecx
jae 0x180005d04
inc dword [rsp + 0x48]
xor edx, edx
mov dword [rsp + 0x40], edx
test ebx, ebx
jne 0x180005cb0
sub r15, 1
jne 0x180005ca0
mov edi, dword [rsp + 0x30]
mov esi, dword [rsp + 0x34]
lea eax, [r13 - 1]
mov r8d, edi
movsxd rdx, eax
lea rcx, [rbp - 0x29]
add rdx, r12
call fcn.180002560
test eax, eax
jne 0x180005d3a
test esi, esi
je 0x180005d3f
mov eax, 0xfffffecf
mov rsi, qword [rsp + 0xf0]
mov r15, qword [rsp + 0xe8]
mov rcx, qword [rbp - 9]
xor rcx, rsp
call fcn.18002d8d0
add rsp, 0xf8
pop r14
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret