Function at 0x10001730
Capabilities:
Hash data using sha512

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa0
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, ecx
xor ecx, ecx
test eax, eax
mov dword [ebp - 0x6c], eax
movzx eax, byte [ebp + 0xc]
cmovne ecx, edx
xor edx, edx
cmp dword [ebp + 8], edx
push ebx
cmovne edx, eax
mov dword [ebp - 0x64], ecx
mov ebx, 0x40
movzx eax, dl
cmp dl, bl
push esi
cmovb ebx, eax
test cl, 0x7f
mov ecx, 0
mov dword [ebp - 0x60], ebx
setne cl
movzx ebx, bl
test bl, 0x7f
mov dword [ebp - 0x58], ebx
mov eax, 0
setne al
add ecx, eax
mov eax, dword [ebp - 0x64]
shr eax, 7
add ecx, eax
mov eax, ebx
shr eax, 7
add eax, ecx
mov ecx, 1
cmp eax, ecx
push edi
cmova ecx, eax
push 0x80
push ecx
mov dword [ebp - 0x70], ecx
call fcn.100051a0
mov esi, eax
add esp, 8
mov dword [ebp - 0x54], esi
test esi, esi
je 0x100017dc
push 0x40
call fcn.100070cd
add esp, 4
mov dword [ebp - 0x78], eax
test eax, eax
jne 0x100017ef
push esi
call fcn.100070b2
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1000223c
mov esp, ebp
pop ebp
ret
xor edi, edi
test ebx, ebx
je 0x10001822
mov eax, edi
mov ecx, edi
shr eax, 3
and ecx, 7
and eax, 0xf
shl ecx, 3
lea esi, [esi + eax*8]
mov eax, dword [ebp + 8]
movzx eax, byte [eax + edi]
cdq
call fcn.100138e0
or dword [esi], eax
inc edi
or dword [esi + 4], edx
mov esi, dword [ebp - 0x54]
cmp edi, ebx
jb 0x100017f5
xor al, al
cmp al, byte [ebp - 0x60]
sbb eax, eax
xor edi, edi
neg eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x64], edi
jbe 0x10001874
mov ebx, eax
mov ecx, edi
mov eax, edi
shr ecx, 7
add ecx, ebx
shr eax, 3
shl ecx, 4
and eax, 0xf
add ecx, eax
mov eax, dword [ebp - 0x6c]
movzx eax, byte [eax + edi]
lea esi, [esi + ecx*8]
mov ecx, edi
cdq
and ecx, 7
shl ecx, 3
call fcn.100138e0
or dword [esi], eax
inc edi
or dword [esi + 4], edx
mov esi, dword [ebp - 0x54]
cmp edi, dword [ebp - 0x64]
jb 0x10001837
mov ebx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x64]
xorps xmm0, xmm0
movlpd qword [ebp - 0x5c], xmm0
mov esi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0x98], 0
movlpd qword [ebp - 0x94], xmm0
movlpd qword [ebp - 0x8c], xmm0
movlpd qword [ebp - 0x84], xmm0
nop dword [eax]
mov eax, dword [edx*8 + 0x100198f8]
mov ecx, dword [edx*8 + 0x100198fc]
mov dword [ebp + edx*8 - 0x4c], eax
mov dword [ebp + edx*8 - 0x48], ecx
add edx, 1
adc esi, 0
test esi, esi
jne 0x100018d5
cmp edx, 8
jb 0x100018b0
xor dword [ebp - 0x48], 0
mov ecx, dword [ebp - 0x70]
shl ebx, 8
xor ebx, 0x1010040
xor dword [ebp - 0x4c], ebx
cmp ecx, 1
jbe 0x1000199d
lea eax, [ecx - 1]
xorps xmm0, xmm0
movlpd qword [ebp - 0x5c], xmm0
test eax, eax
je 0x1000199d
mov eax, dword [ebp - 0x58]
mov edi, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x84]
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 0x50], eax
nop word [eax + eax]
mov edx, dword [ebp - 0x88]
mov eax, edx
mov ecx, dword [ebp - 0x8c]
not eax
not ecx
test eax, eax
ja 0x1000194f
jb 0x10001940
cmp ecx, 0x80
ja 0x1000194f
add ebx, 1
mov dword [ebp - 0x84], ebx
adc edi, 0
mov dword [ebp - 0x80], edi
add dword [ebp - 0x8c], 0x80
lea eax, [ebp - 0x8c]
push 0
adc edx, 0
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x88], edx
mov edx, esi
shl edx, 7
add edx, dword [ebp - 0x54]
push eax
call fcn.100013b0
mov eax, dword [ebp - 0x50]
add esp, 8
add esi, 1
adc eax, 0
mov dword [ebp - 0x50], eax
test eax, eax
jb 0x10001920
mov ecx, dword [ebp - 0x70]
ja 0x1000199a
lea eax, [ecx - 1]
cmp esi, eax
jb 0x10001920
mov edi, dword [ebp - 0x64]
cmp byte [ebp - 0x60], 0
je 0x100019bc
add edi, 0x80
mov eax, 0
mov dword [ebp - 0x9c], edi
adc eax, eax
mov dword [ebp - 0x98], eax
mov edx, dword [ebp - 0x54]
lea eax, [ebp - 0x9c]
shl ecx, 7
add edx, 0xffffff80
push 1
add edx, ecx
lea ecx, [ebp - 0x4c]
push eax
call fcn.100013b0
mov esi, dword [ebp - 0x78]
xorps xmm0, xmm0
movlpd qword [ebp - 0x5c], xmm0
add esp, 8
mov ecx, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x60], ebx
mov eax, ebx
and eax, 7
or eax, 0
jne 0x10001a61
and ebx, 0xfffffff8
xorps xmm0, xmm0
movlpd qword [ebp - 0x74], xmm0
mov esi, dword [ebp - 0x74]
mov ecx, dword [ebp + ebx - 0x4c]
mov eax, dword [ebp + ebx - 0x48]
mov ebx, dword [ebp - 0x70]
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x6c], eax
nop dword [eax + eax]
lea eax, [esi*8]
xor edx, edx
movzx edi, ax
mov eax, 0xff
mov ecx, edi
call fcn.100138e0
and eax, dword [ebp - 0x58]
mov ecx, edi
and edx, dword [ebp - 0x6c]
call fcn.10013900
mov byte [ebp + esi - 0x68], al
add esi, 1
adc ebx, 0
test ebx, ebx
jne 0x10001a58
cmp esi, 8
jb 0x10001a20
mov ebx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x78]
mov eax, ebx
and eax, 7
mov al, byte [ebp + eax - 0x68]
mov byte [ebx + esi], al
add ebx, 1
mov dword [ebp - 0x60], ebx
adc ecx, 0
mov dword [ebp - 0x50], ecx
test ecx, ecx
jne 0x10001a86
cmp ebx, 0x40
jb 0x100019f2
push dword [ebp - 0x54]
call fcn.100070b2
mov ecx, dword [ebp - 8]
add esp, 4
mov eax, esi
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.1000223c
mov esp, ebp
pop ebp
ret