Function at 0x41cd60
Capabilities:
Hash data with md5

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a16bd
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x490
push esi
mov esi, dword [ebx + 0xc]
shl esi, 4
push edi
mov edi, ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], edi
lea eax, [esi + 0x10]
cmp eax, dword [edi]
jbe 0x41cdf3
mov ecx, 0x4cfeb8
mov dword [ebp - 0x24], 0x4cfeb8
call fcn.00436390
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0
cmp eax, 1
jne 0x41cde2
push 0
push 0x4b362c
push 0x4b362c
push str._size_t_blockIndex__Blizzard::Util::MD5::SIZE__Blizzard::Util::MD5::SIZE___m_md5buffer.Size__
call fcn.00430100
add esp, 0x10
mov ecx, 0x4cfeb8
mov dword [ebp - 4], 0xffffffff
call fcn.004363a0
cmp byte [edi + 0x40], 0
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x14]
movups xmm0, xmmword [ecx + esi]
mov byte [eax], 0
movups xmmword [ebp - 0x34], xmm0
je 0x41ce2f
lea ecx, [ebp - 0x34]
mov edx, 0x4bbbc0
mov esi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41ce2f
add ecx, 4
add edx, 4
sub esi, 4
jae 0x41ce17
mov al, 1
jmp 0x41d060
push dword [ebx + 0x10]
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0x9c], 0
push dword [ebx + 8]
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x98], 0x67452301
mov dword [ebp - 0x94], 0xefcdab89
mov dword [ebp - 0x90], 0x98badcfe
mov dword [ebp - 0x8c], 0x10325476
call fcn.004025e0
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0xa0]
call fcn.00402710
lea ecx, [ebp - 0x34]
mov esi, 0xc
lea edx, [ebp - 0x44]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41ceab
add ecx, 4
add edx, 4
sub esi, 4
jae 0x41ce96
xor eax, eax
jmp 0x41ced0
cmp al, byte [edx]
jne 0x41cecb
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x41cecb
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x41cecb
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x41cecb
xor eax, eax
jmp 0x41ced0
sbb eax, eax
or eax, 1
test eax, eax
sete cl
xor edx, edx
test cl, cl
jne 0x41d05e
nop
mov edi, dword [edi + 0x3c]
mov esi, dword [edi + 0x5c]
test esi, esi
je 0x41d05e
mov eax, edx
inc edx
mov dword [ebp - 0x20], edx
cmp eax, 3
jge 0x41d05e
mov ecx, dword [ebp - 0x18]
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
mov eax, dword [ecx + 4]
add eax, dword [ebp - 0x1c]
push eax
push dword [ebx + 0x10]
push dword [ecx + 0x18]
push dword [ebx + 0xc]
push dword [ecx + 0x24]
push dword [ecx + 0x20]
mov ecx, esi
push dword [ebx + 8]
push edi
call edx
mov byte [ebp - 0x11], al
test al, al
je 0x41cfc4
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0xa0]
push dword [ebx + 0x10]
mov dword [ebp - 0x9c], 0
push dword [ebx + 8]
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x98], 0x67452301
mov dword [ebp - 0x94], 0xefcdab89
movups xmm0, xmmword [eax]
mov dword [ebp - 0x90], 0x98badcfe
mov dword [ebp - 0x8c], 0x10325476
movups xmmword [ebp - 0x34], xmm0
call fcn.004025e0
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0xa0]
call fcn.00402710
lea edx, [ebp - 0x34]
mov esi, 0xc
lea eax, [ebp - 0x44]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x41cfba
add edx, 4
add eax, 4
sub esi, 4
jae 0x41cfa5
mov al, 1
jmp 0x41cfbc
xor al, al
mov ecx, dword [ebx + 0x14]
mov byte [ebp - 0x11], al
mov byte [ecx], al
movzx eax, al
push eax
push dword [ebp - 0x20]
lea eax, [ebp - 0x4a0]
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push str.System_Mopaq::MD5VerifyData::ValidateBlock
push str._s___ValidateBlock_fail__d__d__d__d
push eax
call fcn.0043efe0
add esp, 0x1c
mov edx, 0x43fa80
mov esi, eax
push 0x43fa20
push ecx
mov ecx, 0x4ce180
call fcn.0043b0b0
test esi, esi
mov edx, 0x3ee
push 4
mov ecx, dword [eax + 8]
mov eax, 0x4b362c
cmovne eax, esi
push eax
call fcn.00430600
mov edi, eax
add esp, 0x10
test edi, edi
je 0x41d04d
push 0x43fa20
push ecx
mov edx, 0x43fa80
mov ecx, 0x4ce180
call fcn.0043b0b0
mov esi, eax
add esp, 8
mov ecx, dword [esi + 8]
cmp ecx, edi
je 0x41d04a
call fcn.00430940
mov dword [esi + 8], edi
mov cl, byte [ebp - 0x11]
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
test cl, cl
je 0x41cee0
mov al, cl
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10