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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rcx
mov ecx, dword [rcx + 0x28]
call fcn.140143008
mov dword [rsi + 0x28], eax
mov ecx, dword [rsi + 0x2c]
call fcn.140143008
mov dword [rsi + 0x2c], eax
mov ecx, dword [rsi + 0x30]
call fcn.140143008
mov dword [rsi + 0x30], eax
mov ecx, dword [rsi + 0x34]
call fcn.140143008
mov dword [rsi + 0x34], eax
mov ecx, dword [rsi + 0x38]
call fcn.140143008
mov dword [rsi + 0x38], eax
mov ecx, dword [rsi + 0x3c]
call fcn.140143008
mov dword [rsi + 0x3c], eax
mov ecx, dword [rsi + 0x40]
call fcn.140143008
mov dword [rsi + 0x40], eax
mov ecx, dword [rsi + 0x44]
call fcn.140143008
mov dword [rsi + 0x44], eax
mov ecx, dword [rsi + 0x48]
call fcn.140143008
mov dword [rsi + 0x48], eax
mov ecx, dword [rsi + 0x4c]
call fcn.140143008
mov dword [rsi + 0x4c], eax
mov ecx, dword [rsi + 0x50]
call fcn.140143008
mov dword [rsi + 0x50], eax
mov ecx, dword [rsi + 0x54]
call fcn.140143008
mov dword [rsi + 0x54], eax
mov ecx, dword [rsi + 0x58]
call fcn.140143008
mov dword [rsi + 0x58], eax
mov ecx, dword [rsi + 0x5c]
call fcn.140143008
mov dword [rsi + 0x5c], eax
mov ecx, dword [rsi + 0x60]
call fcn.140143008
mov dword [rsi + 0x60], eax
mov ecx, dword [rsi + 0x64]
call fcn.140143008
mov dword [rsi + 0x64], eax
xor eax, eax
nop word cs:[rax + rax]
nop
mov ecx, dword [rsi + rax*4 + 0x48]
xor ecx, dword [rsi + rax*4 + 0x5c]
xor ecx, dword [rsi + rax*4 + 0x30]
xor ecx, dword [rsi + rax*4 + 0x28]
rol ecx, 1
mov dword [rsi + rax*4 + 0x68], ecx
add rax, 1
cmp rax, 0x40
jne 0x1400644b0
mov r15d, dword [rsi + 0x14]
mov r11d, dword [rsi + 0x18]
mov dword [rsi], r15d
mov dword [rsi + 4], r11d
mov r10d, dword [rsi + 0x1c]
mov dword [rsi + 8], r10d
mov r14d, dword [rsi + 0x20]
mov dword [rsi + 0xc], r14d
mov eax, dword [rsi + 0x24]
mov dword [rsi + 0x10], eax
xor ebx, ebx
mov dword [rsp + 0x24], eax
mov ecx, r11d
mov edi, r10d
mov r9d, r14d
mov ebp, r15d
jmp 0x140064544
mov edx, edi
and edx, r9d
mov ebp, edi
not ebp
and ebp, r13d
or ebp, edx
add ebp, ecx
add ebp, eax
add ebp, dword [rsi + rbx*4 + 0x28]
mov eax, 0x5a827999
add ebp, eax
rol edi, 0x1e
add rbx, 1
mov eax, r13d
mov ecx, r8d
cmp rbx, 0x50
je 0x1400645c0
mov r8d, ebp
mov r13d, r9d
mov r9d, edi
mov edi, ecx
mov ecx, ebp
rol ecx, 5
cmp rbx, 0x14
jb 0x140064510
cmp rbx, 0x28
jae 0x140064580
mov ebp, r9d
xor ebp, r13d
xor ebp, edi
add ebp, ecx
add ebp, eax
add ebp, dword [rsi + rbx*4 + 0x28]
mov eax, 0x6ed9eba1
jmp 0x14006452b
cmp rbx, 0x3b
ja 0x14006459a
mov r12d, r9d
or r12d, r13d
and r12d, edi
mov ebp, r9d
and ebp, r13d
or ebp, r12d
jmp 0x1400645a2
mov ebp, r9d
xor ebp, r13d
xor ebp, edi
add ebp, ecx
add ebp, eax
add ebp, dword [rsi + rbx*4 + 0x28]
cmp rbx, 0x3c
mov eax, 0xca62c1d6
mov ecx, 0x8f1bbcdc
cmovb eax, ecx
jmp 0x14006452b
mov dword [rsi + 0x10], r13d
mov dword [rsi + 0xc], r9d
mov dword [rsi + 8], edi
mov dword [rsi + 4], r8d
mov dword [rsi], ebp
add r15d, ebp
mov dword [rsi + 0x14], r15d
add r11d, r8d
mov dword [rsi + 0x18], r11d
add r10d, edi
mov dword [rsi + 0x1c], r10d
add r14d, r9d
mov dword [rsi + 0x20], r14d
mov eax, dword [rsp + 0x24]
add eax, r13d
mov dword [rsi + 0x24], eax
mov dword [rsi + 0x168], 0
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret