Function at 0x1002a7f0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa0
push ebx
push ebp
mov ebx, ecx
xorps xmm0, xmm0
mov dword [esp + 0xc], ebx
mov eax, dword [edx + 0x10]
mov dword [esp + 0x24], 0
movq qword [esp + 0x48], xmm0
push esi
push edi
movups xmmword [esp + 0x1c], xmm0
movups xmmword [esp + 0x30], xmm0
movups xmmword [esp + 0x40], xmm0
test eax, eax
je 0x1002a967
cmp dword [edx + 0x14], 0x10
jb 0x1002a839
mov edx, dword [edx]
push eax
push edx
lea eax, [esp + 0x60]
mov dword [esp + 0x74], 0
push eax
lea ecx, [esp + 0x1f]
mov dword [esp + 0x74], 0
mov dword [esp + 0x64], 0x67452301
mov dword [esp + 0x68], 0xefcdab89
mov dword [esp + 0x6c], 0x98badcfe
mov dword [esp + 0x70], 0x10325476
call fcn.1000623b
xor edx, edx
lea ecx, [esp + 0x69]
nop
movzx eax, byte [ecx - 1]
lea ecx, [ecx + 4]
mov byte [esp + edx + 0x14], al
movzx eax, byte [ecx - 4]
mov byte [esp + edx + 0x15], al
movzx eax, byte [ecx - 3]
mov byte [esp + edx + 0x16], al
movzx eax, byte [ecx - 2]
mov byte [esp + edx + 0x17], al
add edx, 4
cmp edx, 8
jb 0x1002a880
mov edx, dword [esp + 0x68]
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, [esp + 0x13]
push eax
push 0x100cf8d8
lea eax, [esp + 0x60]
push eax
call fcn.1000623b
push 8
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x1f]
call fcn.1000623b
xor edx, edx
lea ecx, [esp + 0x59]
nop dword [eax + eax]
movzx eax, byte [ecx - 1]
lea ecx, [ecx + 4]
mov byte [esp + edx + 0x1c], al
movzx eax, byte [ecx - 4]
mov byte [esp + edx + 0x1d], al
movzx eax, byte [ecx - 3]
mov byte [esp + edx + 0x1e], al
movzx eax, byte [ecx - 2]
mov byte [esp + edx + 0x1f], al
add edx, 4
cmp edx, 0x10
jb 0x1002a900
lea esi, [esp + 0x1c]
mov edi, 0x10
lea edx, [esp + 0x30]
mov al, byte [esi]
lea esi, [esi + 1]
movzx ecx, al
lea edx, [edx + 2]
mov eax, ecx
and ecx, 0xf
shr eax, 4
movzx eax, byte [eax + str.0123456789ABCDEF]
mov byte [edx - 2], al
movzx eax, byte [ecx + str.0123456789ABCDEF]
mov byte [edx - 1], al
sub edi, 1
jne 0x1002a938
mov byte [edx], 0
lea esi, [esp + 0x30]
mov dword [ebx], 0
mov dword [ebx + 0x10], 0
lea ecx, [esi + 1]
mov dword [ebx + 0x14], 0xf
mov byte [ebx], 0
mov al, byte [esi]
inc esi
test al, al
jne 0x1002a985
sub esi, ecx
cmp esi, 0xf
ja 0x1002a9b3
push esi
lea eax, [esp + 0x34]
mov dword [ebx + 0x10], esi
push eax
push ebx
call fcn.1007f300
mov byte [esi + ebx], 0
add esp, 0xc
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp esi, 0x7fffffff
ja 0x1002aa43
mov edi, esi
or edi, 0xf
cmp edi, 0x7fffffff
jbe 0x1002a9ee
mov edi, SysReAllocString
mov ecx, 0x80000023
push ecx
call fcn.1007c352
add esp, 4
test eax, eax
je 0x1002aa4d
lea ebp, [eax + 0x23]
and ebp, 0xffffffe0
mov dword [ebp - 4], eax
jmp 0x1002aa1e
mov eax, 0x16
cmp edi, eax
cmovb edi, eax
lea eax, [edi + 1]
cmp eax, 0x1000
jb 0x1002aa0b
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x1002aa48
jmp 0x1002a9d6
test eax, eax
je 0x1002aa1c
push eax
call fcn.1007c352
add esp, 4
mov ebp, eax
jmp 0x1002aa1e
xor ebp, ebp
push esi
lea eax, [esp + 0x34]
mov dword [ebx + 0x10], esi
push eax
push ebp
mov dword [ebx + 0x14], edi
call fcn.1007f300
add esp, 0xc
mov byte [esi + ebp], 0
mov dword [ebx], ebp
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.10001c48
call fcn.10001bd9
call fcn.10081e2f
int3