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

Disassembly:
mov qword [rsp + 0x18], r8
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x178
movzx eax, byte [rcx + 1]
lea rdi, [rsp + 0x38]
movzx r8d, byte [rcx]
shl r8d, 8
or r8d, eax
mov dword [rsp + 0x30], edx
movzx eax, byte [rcx + 2]
shl r8d, 8
or r8d, eax
mov qword [rsp], rdi
movzx eax, byte [rcx + 3]
shl r8d, 8
or r8d, eax
mov qword [rsp + 0x20], 4
movzx eax, byte [rcx + 5]
mov dword [rsp + 8], r8d
movzx r8d, byte [rcx + 4]
shl r8d, 8
or r8d, eax
movzx eax, byte [rcx + 6]
shl r8d, 8
or r8d, eax
movzx eax, byte [rcx + 7]
shl r8d, 8
or r8d, eax
movzx eax, byte [rcx + 9]
mov dword [rsp + 0xc], r8d
movzx r8d, byte [rcx + 8]
shl r8d, 8
or r8d, eax
movzx eax, byte [rcx + 0xa]
shl r8d, 8
or r8d, eax
movzx eax, byte [rcx + 0xb]
shl r8d, 8
or r8d, eax
movzx eax, byte [rcx + 0xd]
mov dword [rsp + 0x10], r8d
movzx r8d, byte [rcx + 0xc]
shl r8d, 8
or r8d, eax
movzx eax, byte [rcx + 0xe]
shl r8d, 8
or r8d, eax
movzx eax, byte [rcx + 0xf]
shl r8d, 8
or r8d, eax
movzx eax, byte [rcx + 0x11]
mov dword [rsp + 0x14], r8d
movzx r8d, byte [rcx + 0x10]
shl r8d, 8
or r8d, eax
movzx eax, byte [rcx + 0x12]
shl r8d, 8
or r8d, eax
movzx eax, byte [rcx + 0x13]
shl r8d, 8
or r8d, eax
xor eax, eax
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x28], rax
mov edx, eax
mov qword [rsp + 0x34], rax
mov qword [rsp + 0x3c], rax
mov qword [rsp + 0x44], rax
mov qword [rsp + 0x4c], rax
mov qword [rsp + 0x54], rax
mov qword [rsp + 0x5c], rax
mov qword [rsp + 0x64], rax
mov dword [rsp + 0x6c], eax
nop dword [rax]
nop dword [rax + rax]
mov r14d, dword [rdi + 0x1c]
lea r12, [rdi + 0x40]
mov r9d, dword [rdi + 0x2c]
mov r15d, dword [rdi + 0x18]
mov ebp, dword [rdi + 0x20]
mov eax, dword [rdi + 8]
mov r8d, dword [rdi + 0x30]
mov esi, dword [rdi + 0x24]
mov ecx, dword [rdi + 0x10]
mov r13d, dword [rdi + 0x34]
mov r11d, dword [rdi - 8]
mov r10d, dword [rdi - 4]
xor r11d, edx
xor edx, r13d
xor r10d, r8d
xor edx, ebp
xor r11d, r9d
xor edx, eax
xor r11d, r15d
mov dword [rsp + 0x1c8], edx
xor r10d, r14d
xor r10d, dword [rdi + 4]
mov ebx, r11d
mov dword [r12], edx
xor ebx, esi
mov edx, dword [rdi + 0xc]
xor ebx, edx
xor ebx, dword [rdi + 4]
mov dword [rsp + 0x1c0], r11d
mov dword [rdi + 0x38], r11d
mov r11d, r10d
mov dword [rdi + 0x3c], r10d
mov dword [rsp + 0x1d8], r10d
mov r10d, dword [rsp + 0x1c8]
mov dword [rdi + 0x44], ebx
mov edi, dword [rdi + 0x28]
xor r11d, edi
xor r11d, ecx
xor r11d, eax
mov rax, qword [rsp]
mov dword [rax + 0x48], r11d
mov eax, dword [rax + 0x14]
xor r10d, eax
xor r10d, edx
mov rdx, qword [rsp]
xor r10d, r9d
mov r9d, ebx
xor r9d, ecx
mov rcx, rdx
xor r9d, r8d
mov r8d, r11d
xor r8d, eax
mov dword [rdx + 0x4c], r10d
xor r9d, r15d
xor r8d, r13d
mov dword [rdx + 0x50], r9d
xor r8d, r14d
mov dword [rdx + 0x54], r8d
mov eax, r8d
xor eax, dword [rsp + 0x1c8]
mov edx, r10d
xor edx, dword [rsp + 0x1c0]
xor eax, edi
xor edx, ebp
xor eax, ebp
xor edx, r15d
mov dword [rcx + 0x58], edx
xor edx, ebx
xor edx, esi
mov ecx, r9d
xor ecx, dword [rsp + 0x1d8]
xor ecx, esi
xor ecx, r14d
mov r14, qword [rsp]
xor edx, dword [r14 + 0x2c]
mov dword [r14 + 0x5c], ecx
xor ecx, r11d
xor ecx, edi
mov dword [r14 + 0x60], eax
xor ecx, dword [r14 + 0x30]
mov dword [r14 + 0x64], edx
xor edx, r9d
mov dword [r14 + 0x68], ecx
xor edx, dword [rsp + 0x1c0]
xor ecx, r8d
xor edx, dword [r14 + 0x30]
xor eax, r10d
xor ecx, dword [rsp + 0x1d8]
xor eax, r13d
xor eax, dword [r14 + 0x2c]
xor ecx, r13d
sub qword [rsp + 0x20], 1
mov rdi, r12
mov dword [r14 + 0x70], edx
mov edx, dword [rsp + 0x1c8]
mov dword [r14 + 0x6c], eax
mov dword [r14 + 0x74], ecx
mov qword [rsp], r12
jne 0x180044030
mov esi, dword [rsp + 8]
mov r11d, esi
mov ebp, dword [rsp + 0xc]
mov r9d, ebp
mov r14d, dword [rsp + 0x10]
mov r8d, r14d
mov r15d, dword [rsp + 0x14]
mov r10d, r15d
mov r12d, dword [rsp + 0x18]
mov ebx, r12d
nop dword [rax]
nop dword [rax + rax]
mov ecx, r9d
mov eax, r8d
and eax, r9d
not ecx
and ecx, r10d
mov edx, r11d
or ecx, eax
rol edx, 5
add edx, ecx
lea eax, [rbx + 0x5a827999]
mov rcx, qword [rsp + 0x28]
mov ebx, r10d
mov r10d, r8d
mov r8d, r9d
ror r8d, 2
mov r9d, r11d
add edx, dword [rsp + rcx*4 + 0x30]
inc rcx
add eax, edx
mov qword [rsp + 0x28], rcx
mov r11d, eax
cmp rcx, 0x14
jl 0x1800441d0
mov edi, 0x14
nop
rol eax, 5
add ebx, 0x6ed9eba1
add eax, dword [rsp + rdi*4 + 0x30]
mov edx, r10d
xor edx, r8d
add eax, ebx
xor edx, r9d
mov ebx, r10d
mov r10d, r8d
add eax, edx
mov r8d, r9d
inc rdi
ror r8d, 2
mov r9d, r11d
mov r11d, eax
cmp rdi, 0x28
jl 0x180044220
mov edi, 0x28
nop dword [rax + rax]
mov edx, r8d
rol eax, 5
or edx, r9d
mov ecx, r8d
and edx, r10d
add ebx, 0x8f1bbcdc
and ecx, r9d
add eax, ebx
or edx, ecx
mov ebx, r10d
add edx, dword [rsp + rdi*4 + 0x30]
mov r10d, r8d
mov r8d, r9d
add eax, edx
ror r8d, 2
inc rdi
mov r9d, r11d
mov r11d, eax
cmp rdi, 0x3c
jl 0x180044260
mov edi, 0x3c
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [rsp + rdi*4 + 0x30]
add ebx, 0xca62c1d6
rol eax, 5
mov edx, r10d
xor edx, r8d
add eax, ebx
xor edx, r9d
mov ebx, r10d
mov r10d, r8d
add ecx, edx
mov r8d, r9d
add eax, ecx
ror r8d, 2
inc rdi
mov r9d, r11d
mov r11d, eax
cmp rdi, 0x50
jl 0x1800442b0
mov rdx, qword [rsp + 0x1d0]
lea ecx, [rax + rsi]
lea eax, [r9 + rbp]
mov dword [rdx + 4], eax
lea eax, [r8 + r14]
mov dword [rdx + 8], eax
lea eax, [r10 + r15]
mov dword [rdx + 0xc], eax
lea eax, [rbx + r12]
mov dword [rdx + 0x10], eax
xor eax, eax
mov dword [rdx], ecx
add rsp, 0x178
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret