Function at 0x418800
Capabilities:
Hash data using sha512

Disassembly:
push ebp
mov ebp, esp
cld
push esi
push edi
push ebx
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xc0]
mov ebx, eax
and ebx, 0x7f
cmp ebx, 0x70
jb 0x41897a
mov ecx, 0x80
sub ecx, ebx
add edi, 0x40
add edi, ebx
mov esi, 0x418b17
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp + 8]
mov esi, edi
add edi, 0x40
call fcn.0040e30c
push eax
push ebx
push ecx
push edx
push edi
push esi
mov edi, dword [ebp + 8]
mov esi, edi
add edi, 0xb0
add esi, 0xc0
lodsd eax, dword [esi]
mov edx, eax
lodsd eax, dword [esi]
mov ebx, eax
lodsd eax, dword [esi]
mov ecx, eax
lodsd eax, dword [esi]
xchg edx, eax
add eax, eax
adc ebx, ebx
adc ecx, ecx
adc edx, edx
add eax, eax
adc ebx, ebx
adc ecx, ecx
adc edx, edx
add eax, eax
adc ebx, ebx
adc ecx, ecx
adc edx, edx
bswap eax
bswap ebx
bswap ecx
bswap edx
xchg edx, eax
stosd dword es:[edi], eax
mov eax, ecx
stosd dword es:[edi], eax
mov eax, ebx
stosd dword es:[edi], eax
mov eax, edx
stosd dword es:[edi], eax
pop esi
pop edi
pop edx
pop ecx
pop ebx
pop eax
mov ebx, edi
xor eax, eax
mov ecx, 0x1c
rep stosd dword es:[edi], eax
mov edi, ebx
call fcn.0040e30c
mov edi, dword [ebp + 0xc]
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov edi, dword [ebp + 8]
mov esi, 0x40e2cc
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
add edi, 0x80
mov cx, 4
xor eax, eax
rep stosd dword es:[edi], eax
pop ebx
pop edi
pop esi
leave
ret 8
mov ecx, 0x70
sub ecx, ebx
mov esi, 0x418b17
add edi, 0x40
add edi, ebx
rep movsb byte es:[edi], byte [esi]
push eax
push ebx
push ecx
push edx
push edi
push esi
mov edi, dword [ebp + 8]
mov esi, edi
add edi, 0xb0
add esi, 0xc0
lodsd eax, dword [esi]
mov edx, eax
lodsd eax, dword [esi]
mov ebx, eax
lodsd eax, dword [esi]
mov ecx, eax
lodsd eax, dword [esi]
xchg edx, eax
add eax, eax
adc ebx, ebx
adc ecx, ecx
adc edx, edx
add eax, eax
adc ebx, ebx
adc ecx, ecx
adc edx, edx
add eax, eax
adc ebx, ebx
adc ecx, ecx
adc edx, edx
bswap eax
bswap ebx
bswap ecx
bswap edx
xchg edx, eax
stosd dword es:[edi], eax
mov eax, ecx
stosd dword es:[edi], eax
mov eax, ebx
stosd dword es:[edi], eax
mov eax, edx
stosd dword es:[edi], eax
pop esi
pop edi
pop edx
pop ecx
pop ebx
pop eax
push eax
push ebx
push ecx
push edx
push edi
push esi
mov edi, dword [ebp + 8]
mov esi, edi
add edi, 0xb0
add esi, 0xc0
lodsd eax, dword [esi]
mov edx, eax
lodsd eax, dword [esi]
mov ebx, eax
lodsd eax, dword [esi]
mov ecx, eax
lodsd eax, dword [esi]
xchg edx, eax
add eax, eax
adc ebx, ebx
adc ecx, ecx
adc edx, edx
add eax, eax
adc ebx, ebx
adc ecx, ecx
adc edx, edx
add eax, eax
adc ebx, ebx
adc ecx, ecx
adc edx, edx
bswap eax
bswap ebx
bswap ecx
bswap edx
xchg edx, eax
stosd dword es:[edi], eax
mov eax, ecx
stosd dword es:[edi], eax
mov eax, ebx
stosd dword es:[edi], eax
mov eax, edx
stosd dword es:[edi], eax
pop esi
pop edi
pop edx
pop ecx
pop ebx
pop eax
mov edi, dword [ebp + 8]
mov esi, edi
add edi, 0x40
call fcn.0040e30c
mov edi, dword [ebp + 0xc]
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov eax, dword [esi]
bswap eax
mov edx, eax
mov eax, dword [esi + 4]
bswap eax
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 8
add edi, 8
mov edi, dword [ebp + 8]
mov esi, 0x40e2cc
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
add edi, 0x80
mov cx, 4
xor eax, eax
rep stosd dword es:[edi], eax
pop ebx
pop edi
pop esi
leave
ret 8