Function at 0x10032130
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
push ebx
mov ebx, edx
mov dword [ebp - 0x30], ecx
push esi
push edi
mov dword [ebp - 0xc], 0x67452301
lea esi, [ebx + 1]
mov dword [ebp - 0x10], 0xefcdab89
mov edi, esi
mov dword [ebp - 0x14], 0x98badcfe
mov eax, edi
mov dword [ebp - 0x18], 0x10325476
and eax, 0x3f
mov dword [ebp - 0x28], esi
cmp al, 0x38
je 0x1003217d
nop dword [eax + eax]
inc edi
mov eax, edi
and eax, 0x3f
cmp al, 0x38
jne 0x10032170
mov dword [ebp - 0x28], edi
lea eax, [edi + 8]
push eax
call dword [0x10054d1c]
push ebx
push dword [ebp - 0x30]
mov dword [ebp - 8], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [ebp - 8]
add esp, 0x10
mov byte [edx + ebx], 0x80
cmp esi, edi
jae 0x100321bf
mov ecx, edi
xor eax, eax
sub ecx, esi
lea edi, [esi + edx]
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, dword [ebp - 8]
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [ebp - 0x28]
lea ecx, [ebx*8]
shr ebx, 0x1d
mov eax, ecx
mov byte [edi + edx], cl
shr eax, 8
mov byte [edi + edx + 1], al
mov eax, ecx
shr eax, 0x10
mov byte [edi + edx + 2], al
mov eax, ebx
shr eax, 8
shr ecx, 0x18
mov byte [edi + edx + 3], cl
mov byte [edi + edx + 5], al
mov eax, ebx
shr eax, 0x10
mov byte [edi + edx + 4], bl
mov byte [edi + edx + 6], al
xor eax, eax
shr ebx, 0x18
mov byte [edi + edx + 7], bl
mov dword [ebp - 0x30], eax
test edi, edi
je 0x1003232e
nop
add edx, 2
xor esi, esi
add edx, eax
nop word [eax + eax]
movzx ecx, byte [edx + 1]
lea edx, [edx + 4]
movzx eax, byte [edx - 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx - 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx - 6]
shl ecx, 8
or ecx, eax
mov dword [ebp + esi*4 - 0x74], ecx
inc esi
cmp esi, 0x10
jb 0x10032220
mov eax, dword [ebp - 0xc]
xor esi, esi
mov edx, dword [ebp - 0x14]
xor ecx, ecx
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 4], edx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], 5
mov dword [ebp - 0x1c], 1
jmp 0x10032278
mov edx, dword [ebp - 4]
cmp esi, 0x10
jae 0x1003228d
mov eax, edi
mov ecx, edx
not eax
and ecx, edi
and eax, ebx
mov edx, esi
or eax, ecx
jmp 0x100322bc
mov eax, ebx
cmp esi, 0x20
jae 0x100322a3
not eax
mov ecx, ebx
and eax, edx
and ecx, edi
mov edx, dword [ebp - 0x1c]
or eax, ecx
jmp 0x100322b9
cmp esi, 0x30
jae 0x100322b1
xor eax, edx
mov edx, dword [ebp - 0x20]
xor eax, edi
jmp 0x100322b9
not eax
or eax, edi
xor eax, edx
mov edx, ecx
and edx, 0xf
mov edx, dword [ebp + edx*4 - 0x74]
add edx, dword [esi*4 + 0x100484a0]
mov ecx, dword [esi*4 + 0x100483a0]
add edx, eax
add edx, dword [ebp - 0x2c]
inc esi
add dword [ebp - 0x24], 7
add dword [ebp - 0x20], 3
rol edx, cl
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x34], ebx
add ecx, 5
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 4], edi
add edi, edx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x141
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
jb 0x10032275
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 4]
add dword [ebp - 0x10], edi
add dword [ebp - 0x18], ebx
mov edx, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x30]
add eax, 0x40
mov dword [ebp - 0x30], eax
cmp eax, dword [ebp - 0x28]
jb 0x10032210
push edx
call dword [0x10054d20]
mov ecx, dword [ebp + 8]
add esp, 4
mov edx, dword [ebp - 0xc]
mov eax, edx
shr eax, 8
mov byte [ecx + 1], al
mov eax, edx
mov byte [ecx], dl
shr eax, 0x10
mov byte [ecx + 2], al
shr edx, 0x18
mov byte [ecx + 3], dl
mov edx, dword [ebp - 0x10]
mov eax, edx
shr eax, 8
mov byte [ecx + 5], al
mov eax, edx
mov byte [ecx + 4], dl
shr eax, 0x10
mov byte [ecx + 6], al
shr edx, 0x18
mov byte [ecx + 7], dl
mov edx, dword [ebp - 0x14]
mov eax, edx
shr eax, 8
mov byte [ecx + 9], al
mov eax, edx
mov byte [ecx + 8], dl
shr eax, 0x10
mov byte [ecx + 0xa], al
shr edx, 0x18
mov byte [ecx + 0xb], dl
mov edx, dword [ebp - 0x18]
mov eax, edx
shr eax, 8
mov byte [ecx + 0xd], al
mov eax, edx
pop edi
shr eax, 0x10
mov byte [ecx + 0xc], dl
shr edx, 0x18
pop esi
mov byte [ecx + 0xe], al
mov byte [ecx + 0xf], dl
pop ebx
mov esp, ebp
pop ebp
ret