Function at 0x100159e0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10049f57
mov eax, dword fs:[0]
push eax
sub esp, 0x5bc
mov eax, dword [0x1005f0f8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x5a0], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x5a4], esi
push 0
mov dword [ebp - 0x59c], 0
call fcn.1002ec06
mov dword [ebp - 0x50c], eax
lea eax, [ebp - 0x50c]
push eax
mov dword [ebp - 0x508], edx
call fcn.1002eed2
movups xmm2, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
mov dword [esi], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
movaps xmm0, xmm1
mov dword [ebp - 4], 0
psrldq xmm0, 4
movd eax, xmm0
movaps xmm0, xmm2
psrldq xmm0, 0xc
mov dword [ebp - 0x59c], 1
add eax, 0x76c
mov dword [ebp - 0x18], 0x64323025
push eax
movd eax, xmm1
mov word [ebp - 0x14], 0x633a
mov byte [ebp - 0x12], 0
inc eax
push eax
movd eax, xmm0
movaps xmm0, xmm2
psrldq xmm0, 4
push eax
movd eax, xmm2
psrldq xmm2, 8
push eax
movd eax, xmm0
push eax
movd eax, xmm2
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x504]
push eax
call fcn.100044c0
lea ecx, [ebp - 0x504]
mov dword [ebp - 0x584], 0
add esp, 0x28
mov dword [ebp - 0x588], 0
mov dword [ebp - 0x598], 0x67452301
lea edx, [ecx + 1]
mov dword [ebp - 0x594], 0xefcdab89
mov dword [ebp - 0x590], 0x98badcfe
mov dword [ebp - 0x58c], 0x10325476
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10015b20
sub ecx, edx
lea eax, [ebp - 0x504]
push ecx
push eax
lea ecx, [ebp - 0x598]
call fcn.10015930
xor edx, edx
lea eax, [ebp - 0x587]
movzx ecx, byte [eax - 1]
lea eax, [eax + 4]
mov byte [ebp + edx - 0x20], cl
movzx ecx, byte [eax - 4]
mov byte [ebp + edx - 0x1f], cl
movzx ecx, byte [eax - 3]
mov byte [ebp + edx - 0x1e], cl
movzx ecx, byte [eax - 2]
mov byte [ebp + edx - 0x1d], cl
add edx, 4
cmp edx, 8
jb 0x10015b44
mov edx, dword [ebp - 0x588]
mov ecx, 0x78
shr edx, 3
mov eax, 0x38
and edx, 0x3f
sub ecx, edx
sub eax, edx
cmp edx, 0x38
cmovae eax, ecx
lea ecx, [ebp - 0x598]
push eax
push 0x1005fd00
call fcn.10015930
push 8
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x598]
call fcn.10015930
xor edx, edx
lea ecx, [ebp - 0x597]
nop dword [eax]
movzx eax, byte [ecx - 1]
lea ecx, [ecx + 4]
mov byte [ebp + edx - 0x540], al
movzx eax, byte [ecx - 4]
mov byte [ebp + edx - 0x53f], al
movzx eax, byte [ecx - 3]
mov byte [ebp + edx - 0x53e], al
movzx eax, byte [ecx - 2]
mov byte [ebp + edx - 0x53d], al
add edx, 4
cmp edx, 0x10
jb 0x10015bc0
push 0x58
lea eax, [ebp - 0x598]
push 0
push eax
call fcn.10029440
add esp, 0xc
lea edi, [ebp - 0x530]
xor esi, esi
movzx eax, byte [ebp + esi - 0x540]
push eax
push str._02x
push edi
call fcn.100044c0
inc esi
add esp, 0xc
add edi, 2
cmp esi, 0x10
jl 0x10015c12
lea ecx, [ebp - 0x530]
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10015c40
sub ecx, edx
lea eax, [ebp - 0x530]
push ecx
mov ecx, dword [ebp - 0x5a0]
push eax
call fcn.10003e80
mov eax, dword [ebp - 0x5a0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10026f69
mov esp, ebp
pop ebp
ret