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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x384
mov eax, dword [0x68f014]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x37c], ecx
mov dword [ebp - 0x380], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
test ecx, ecx
je 0x462a3e
test eax, eax
je 0x462a3e
mov dword [eax], 0
cmp byte [ebx + 0xff], 0xbc
jne 0x462a28
mov ecx, 0x37
lea edi, [ebp - 0x108]
mov esi, ebx
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x308]
mov edx, 0x20
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, ecx
sub eax, esi
lea esi, [eax + 0xdf]
mov al, byte [esi + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
sub edx, 1
jne 0x462804
test byte [ebx], 0x80
jne 0x462a28
lea eax, [ebp - 0x208]
push 0xdf
push eax
lea ecx, [ebp - 0x308]
call fcn.00466570
add esp, 8
test eax, eax
jne 0x462a43
nop dword [eax]
movups xmm0, xmmword [ebp + eax - 0x108]
movups xmm1, xmmword [ebp + eax - 0x208]
pxor xmm1, xmm0
movups xmmword [ebp + eax - 0x108], xmm1
movups xmm0, xmmword [ebp + eax - 0xf8]
movups xmm1, xmmword [ebp + eax - 0x1f8]
pxor xmm1, xmm0
movups xmmword [ebp + eax - 0xf8], xmm1
movups xmm0, xmmword [ebp + eax - 0xe8]
movups xmm1, xmmword [ebp + eax - 0x1e8]
pxor xmm1, xmm0
movups xmmword [ebp + eax - 0xe8], xmm1
movups xmm0, xmmword [ebp + eax - 0xd8]
movups xmm1, xmmword [ebp + eax - 0x1d8]
pxor xmm1, xmm0
movups xmmword [ebp + eax - 0xd8], xmm1
add eax, 0x40
cmp eax, 0xc0
jb 0x462840
cmp eax, 0xdf
jae 0x4628d7
mov cl, byte [ebp + eax - 0x208]
xor byte [ebp + eax - 0x108], cl
inc eax
cmp eax, 0xdf
jb 0x4628c1
and byte [ebp - 0x108], 0x7f
xor esi, esi
cmp byte [ebp + esi - 0x108], 0
jne 0x462a28
inc esi
cmp esi, 0xbe
jb 0x4628e0
cmp byte [ebp + esi - 0x108], 1
jne 0x462a28
xorps xmm0, xmm0
mov dword [ebp - 0x350], 0
push 8
lea edx, [ebp - 0x208]
movlpd qword [ebp - 0x378], xmm0
lea ecx, [ebp - 0x378]
mov dword [ebp - 0x370], 0x6a09e667
mov dword [ebp - 0x36c], 0xbb67ae85
mov dword [ebp - 0x368], 0x3c6ef372
mov dword [ebp - 0x364], 0xa54ff53a
mov dword [ebp - 0x360], 0x510e527f
mov dword [ebp - 0x35c], 0x9b05688c
mov dword [ebp - 0x358], 0x1f83d9ab
mov dword [ebp - 0x354], 0x5be0cd19
movq qword [ebp - 0x208], xmm0
call fcn.0045e940
add esp, 4
test eax, eax
jne 0x462a43
mov edx, dword [ebp - 0x37c]
lea ecx, [ebp - 0x378]
push 0x20
call fcn.0045e940
add esp, 4
test eax, eax
jne 0x462a43
lea edx, [ebp - 0x107]
push 0x20
add edx, esi
lea ecx, [ebp - 0x378]
call fcn.0045e940
add esp, 4
test eax, eax
jne 0x462a43
lea edx, [ebp - 0x208]
lea ecx, [ebp - 0x378]
call fcn.0045ea30
test eax, eax
jne 0x462a43
mov esi, 0x20
xor edx, edx
nop word [eax + eax]
mov al, byte [ebp + edx - 0x208]
lea ecx, [ebp - 0x308]
add ecx, edx
dec esi
inc edx
cmp al, byte [ecx]
jne 0x462a15
test esi, esi
jne 0x4629f0
mov eax, dword [ebp - 0x380]
mov dword [eax], 1
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005cf250
mov esp, ebp
pop ebp
ret
mov eax, 7
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005cf250
mov esp, ebp
pop ebp
ret
mov eax, 0x10
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005cf250
mov esp, ebp
pop ebp
ret