Function at 0x405be0
Capabilities:
Encode data using xor
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
push ebx
push esi
push edi
push 0x40
push dword [ebp + 0xc]
lea eax, [ebp - 0x68]
lea edi, [ebp - 0x68]
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [ebp + 8]
add esp, 0xc
mov dword [ebp - 0x20], 0x10
mov ecx, dword [eax]
mov edx, dword [eax + 0x10]
mov dword [ebp + 0xc], ecx
mov ecx, dword [eax + 4]
mov dword [ebp + 8], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 4], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + 0x14]
mov dword [ebp - 8], ecx
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0xc], ecx
mov ecx, dword [eax + 0x1c]
lea esi, [eax + 0x28]
mov dword [ebp - 0x18], ecx
mov ecx, 0x418394
mov dword [ebp - 0x1c], esi
sub dword [ebp - 0x1c], ecx
mov dword [ebp - 0x10], ecx
jmp 0x405c49
mov edi, dword [ebp - 0x24]
mov esi, dword [edi]
add edi, 4
mov ecx, esi
mov dword [ebp - 0x24], edi
shr ecx, 0x10
shl esi, 0x10
or ecx, esi
mov edi, dword [ebp - 0x10]
mov esi, ecx
and ch, 0
shr esi, 8
and esi, 0xff00ff
mov ebx, edx
shl ecx, 8
or esi, ecx
mov ecx, dword [ebp - 0x1c]
shr ebx, 6
mov dword [ecx + edi], esi
mov ecx, edx
mov edi, edx
shl ecx, 0x15
shr edi, 0xb
or ecx, edi
mov edi, edx
shl edi, 0x1a
or edi, ebx
mov ebx, edx
xor ecx, edi
mov edi, edx
shr edi, 0x19
shl ebx, 7
or edi, ebx
mov ebx, dword [ebp - 8]
xor ecx, edi
mov edi, edx
not edi
and edi, dword [ebp - 0xc]
and ebx, edx
xor edi, ebx
add ecx, edi
mov edi, dword [ebp - 0x10]
add ecx, dword [edi]
add ecx, esi
mov esi, dword [ebp + 0xc]
mov dword [ebp + 0xc], esi
mov edi, esi
shl dword [ebp + 0xc], 0x13
shr edi, 0xd
or dword [ebp + 0xc], edi
mov edi, esi
mov ebx, esi
add ecx, dword [ebp - 0x18]
shr edi, 0x16
shl ebx, 0xa
or edi, ebx
mov ebx, esi
xor dword [ebp + 0xc], edi
mov edi, esi
shl edi, 0x1e
shr ebx, 2
or edi, ebx
mov ebx, dword [ebp + 8]
xor dword [ebp + 0xc], edi
mov edi, dword [ebp + 8]
xor ebx, esi
and edi, esi
and ebx, dword [ebp - 4]
xor ebx, edi
mov edi, dword [ebp + 0xc]
add edi, ebx
mov ebx, dword [ebp - 0xc]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 8]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 4]
mov dword [ebp - 8], edx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp + 8]
add edx, ecx
mov dword [ebp - 4], ebx
add dword [ebp - 0x10], 4
add edi, ecx
mov ecx, 0x4183d4
mov dword [ebp + 8], esi
cmp dword [ebp - 0x10], ecx
mov dword [ebp + 0xc], edi
jl 0x405c46
mov dword [ebp - 0x10], 0xe
mov dword [ebp - 0x1c], ecx
mov esi, dword [ebp - 0x10]
lea ecx, [eax + 0x28]
lea edi, [esi + 3]
and esi, 0xf
and edi, 0xf
mov esi, dword [ecx + esi*4]
mov edi, dword [ecx + edi*4]
mov ebx, esi
mov dword [ebp - 0x24], edi
mov edi, dword [ebp - 0x20]
and edi, 0xf
shl ebx, 0xd
lea ecx, [ecx + edi*4]
mov edi, esi
mov dword [ebp - 0x28], ecx
mov ecx, esi
shr edi, 0x11
shl ecx, 0xf
or edi, ecx
mov ecx, esi
shr ecx, 0x13
or ecx, ebx
xor edi, ecx
mov ecx, dword [ebp - 0x24]
shr esi, 0xa
xor edi, esi
mov esi, ecx
mov ebx, ecx
shr esi, 0x12
shl ebx, 0xe
or esi, ebx
mov ebx, ecx
shl ebx, 0x19
shr ecx, 7
or ebx, ecx
mov ecx, dword [ebp - 0x24]
xor esi, ebx
mov ebx, edx
shr ecx, 3
xor esi, ecx
mov ecx, dword [ebp - 0x10]
add edi, esi
lea esi, [ecx - 5]
lea ecx, [eax + 0x28]
and esi, 0xf
shr ebx, 6
add edi, dword [ecx + esi*4]
mov ecx, dword [ebp - 0x28]
add dword [ecx], edi
mov esi, dword [ecx]
mov edi, edx
mov ecx, edx
shl edi, 0x15
shr ecx, 0xb
or edi, ecx
mov ecx, edx
shl ecx, 0x1a
or ecx, ebx
mov ebx, edx
xor edi, ecx
mov ecx, edx
shr ecx, 0x19
shl ebx, 7
or ecx, ebx
mov ebx, dword [ebp - 8]
xor edi, ecx
mov ecx, edx
not ecx
and ecx, dword [ebp - 0xc]
and ebx, edx
add esi, edi
mov edi, dword [ebp + 0xc]
xor ecx, ebx
mov ebx, edi
add ecx, esi
mov esi, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x18]
add ecx, dword [esi]
mov esi, edi
shl esi, 0x13
shr ebx, 0xd
or esi, ebx
mov ebx, edi
shr ebx, 0x16
shl edi, 0xa
or ebx, edi
mov edi, dword [ebp + 0xc]
xor esi, ebx
mov ebx, dword [ebp + 0xc]
shl edi, 0x1e
shr ebx, 2
or edi, ebx
mov ebx, dword [ebp + 8]
and ebx, dword [ebp + 0xc]
xor esi, edi
mov edi, dword [ebp + 8]
add dword [ebp - 0x1c], 4
xor edi, dword [ebp + 0xc]
and edi, dword [ebp - 4]
xor edi, ebx
mov ebx, dword [ebp - 8]
add esi, edi
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 4]
mov dword [ebp - 8], edx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp + 8]
add edx, ecx
add ecx, esi
inc dword [ebp - 0x20]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x1c], 0x418494
mov dword [ebp - 4], ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x18], edi
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ecx
jl 0x405d41
add dword [eax], ecx
mov ecx, dword [ebp - 4]
add dword [eax + 8], ecx
mov ecx, dword [ebp - 0x14]
add dword [eax + 0xc], ecx
mov ecx, dword [ebp - 8]
add dword [eax + 0x14], ecx
mov ecx, dword [ebp - 0xc]
add dword [eax + 4], ebx
add dword [eax + 0x10], edx
add dword [eax + 0x18], ecx
add dword [eax + 0x1c], edi
pop edi
pop esi
pop ebx
leave
ret