Function at 0x41bbe0
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 0x4b3048
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 0x41bc73
mov ecx, 0x4e7150
mov dword [ebp - 0x34], 0x4e7150
call fcn.00432b80
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], 0
cmp eax, 1
jne 0x41bc62
push 0
push 0x4c7819
push 0x4c7819
push str._size_t_blockIndex__Blizzard::Util::MD5::SIZE__Blizzard::Util::MD5::SIZE___m_md5buffer.Size__
call fcn.0042d730
add esp, 0x10
mov ecx, 0x4e7150
mov dword [ebp - 4], 0xffffffff
call fcn.00432b90
mov eax, dword [ebx + 0x14]
lea edx, [ebp - 0x2c]
mov ecx, dword [edi + 4]
add ecx, esi
mov byte [eax], 0
lea eax, [ecx + 0x10]
cmp edx, eax
jae 0x41bc9f
lea eax, [ebp - 0x1c]
cmp eax, ecx
jbe 0x41bc9f
push 0x10
push ecx
mov eax, edx
push eax
call fcn.00488d20
add esp, 0xc
jmp 0x41bca6
movups xmm0, xmmword [ecx]
movups xmmword [ebp - 0x2c], xmm0
cmp byte [edi + 0x40], 0
je 0x41bcd8
lea ecx, [ebp - 0x2c]
mov edx, 0x4d0050
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41bcd8
add ecx, 4
add edx, 4
sub esi, 4
jae 0x41bcc0
mov al, 1
jmp 0x41bf3b
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.00402840
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0xa0]
call fcn.00402970
lea ecx, [ebp - 0x2c]
mov esi, 0xc
lea edx, [ebp - 0x44]
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41bd55
add ecx, 4
add edx, 4
sub esi, 4
jae 0x41bd40
xor eax, eax
jmp 0x41bd7a
cmp al, byte [edx]
jne 0x41bd75
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x41bd75
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x41bd75
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x41bd75
xor eax, eax
jmp 0x41bd7a
sbb eax, eax
or eax, 1
test eax, eax
sete cl
xor edx, edx
test cl, cl
jne 0x41bf39
nop dword [eax]
mov edi, dword [edi + 0x3c]
mov esi, dword [edi + 0x5c]
test esi, esi
je 0x41bf39
mov eax, edx
inc edx
mov dword [ebp - 0x30], edx
cmp eax, 3
jge 0x41bf39
mov ecx, dword [ebp - 0x18]
mov edx, dword [esi]
mov eax, dword [ecx + 4]
add eax, dword [ebp - 0x1c]
mov edi, dword [ecx + 0x3c]
push eax
push dword [ebx + 0x10]
mov eax, dword [edx + 0x18]
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 eax
mov byte [ebp - 0x11], al
test al, al
je 0x41be9f
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x2c]
mov ecx, dword [ecx + 4]
add ecx, dword [ebp - 0x1c]
lea eax, [ecx + 0x10]
cmp edx, eax
jae 0x41be0b
lea eax, [ebp - 0x1c]
cmp eax, ecx
jbe 0x41be0b
push 0x10
push ecx
mov eax, edx
push eax
call fcn.00488d20
add esp, 0xc
jmp 0x41be12
movups xmm0, xmmword [ecx]
movups xmmword [ebp - 0x2c], xmm0
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.00402840
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0xa0]
call fcn.00402970
lea edx, [ebp - 0x2c]
mov esi, 0xc
lea eax, [ebp - 0x44]
nop dword [eax]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x41be95
add edx, 4
add eax, 4
sub esi, 4
jae 0x41be80
mov al, 1
jmp 0x41be97
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 - 0x30]
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.0043a9e0
add esp, 0x1c
mov edx, 0x43b9a0
mov esi, eax
push 0x43b940
push ecx
mov ecx, 0x4e5424
call fcn.00437780
test esi, esi
mov edx, 0x3ee
push 4
mov ecx, dword [eax + 8]
mov eax, 0x4c7819
cmovne eax, esi
push eax
call fcn.0042dcc0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x41bf28
push 0x43b940
push ecx
mov edx, 0x43b9a0
mov ecx, 0x4e5424
call fcn.00437780
mov esi, eax
add esp, 8
mov ecx, dword [esi + 8]
cmp ecx, edi
je 0x41bf25
call fcn.0042e020
mov dword [esi + 8], edi
mov cl, byte [ebp - 0x11]
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x30]
test cl, cl
je 0x41bd90
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