Function at 0x6ee647f0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
mov eax, dword [0x6ee97254]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
push 6
push str._apr1_
push esi
mov dword [ebp - 0x14c], esi
mov dword [ebp - 0x150], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x6ee64839
add esi, 6
mov dword [ebp - 0x14c], esi
mov al, byte [esi]
mov edi, esi
test al, al
je 0x6ee64854
cmp al, 0x24
je 0x6ee64854
lea eax, [esi + 8]
cmp edi, eax
jae 0x6ee64854
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x6ee64841
mov ecx, ebx
mov dword [ebp - 0x130], 0
sub edi, esi
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x148], edi
mov dword [ebp - 0x144], 0x67452301
mov dword [ebp - 0x140], 0xefcdab89
lea edx, [ecx + 1]
mov dword [ebp - 0x13c], 0x98badcfe
mov dword [ebp - 0x138], 0x10325476
mov dword [ebp - 0xec], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x6ee648a7
push 0
sub ecx, edx
lea eax, [ebp - 0x144]
push ecx
push ebx
push eax
call fcn.6ee64f00
push 0
push 6
lea eax, [ebp - 0x144]
push str._apr1_
push eax
call fcn.6ee64f00
push 0
push edi
lea eax, [ebp - 0x144]
push esi
push eax
call fcn.6ee64f00
mov ecx, ebx
mov dword [ebp - 0xd4], 0
add esp, 0x30
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xe8], 0x67452301
mov dword [ebp - 0xe4], 0xefcdab89
mov dword [ebp - 0xe0], 0x98badcfe
lea edx, [ecx + 1]
mov dword [ebp - 0xdc], 0x10325476
mov dword [ebp - 0x90], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x6ee64933
push 0
sub ecx, edx
lea eax, [ebp - 0xe8]
push ecx
push ebx
push eax
call fcn.6ee64f00
push 0
push edi
lea eax, [ebp - 0xe8]
push esi
push eax
call fcn.6ee64f00
mov ecx, ebx
add esp, 0x20
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x6ee64964
push 0
sub ecx, edx
lea eax, [ebp - 0xe8]
push ecx
push ebx
push eax
call fcn.6ee64f00
add esp, 0x10
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x14]
push eax
call sym.libaprutil_1.dll__apr_md5_final_8
mov esi, ebx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x6ee64995
sub esi, ecx
test esi, esi
jle 0x6ee649d0
mov edi, 0x10
cmp esi, edi
mov eax, esi
push 1
cmovg eax, edi
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x144]
push eax
call fcn.6ee64f00
sub esi, edi
add esp, 0x10
test esi, esi
jg 0x6ee649a7
mov edi, dword [ebp - 0x148]
mov esi, ebx
xorps xmm0, xmm0
movups xmmword [ebp - 0x14], xmm0
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x6ee649e0
sub esi, ecx
je 0x6ee64a12
nop dword [eax + eax]
mov eax, esi
lea ecx, [ebp - 0x14]
and eax, 1
push eax
cmove ecx, ebx
lea eax, [ebp - 0x144]
push 1
push ecx
push eax
call fcn.6ee64f00
add esp, 0x10
sar esi, 1
jne 0x6ee649f0
xor ecx, ecx
nop dword [eax]
nop dword [eax + eax]
mov al, byte [ecx + str._apr1_]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x8d], al
test al, al
jne 0x6ee64a20
push edi
push dword [ebp - 0x14c]
lea eax, [ebp - 0x8c]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
lea edi, [ebp - 0x8c]
add esp, 0xc
dec edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x6ee64a52
mov ax, word [0x6ee8d510]
mov word [edi], ax
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x14]
push eax
call sym.libaprutil_1.dll__apr_md5_final_8
mov edi, dword [ebp - 0x148]
xor esi, esi
nop dword [eax]
mov eax, esi
mov dword [ebp - 0xd4], 0
and eax, 1
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xe8], 0x67452301
mov dword [ebp - 0xe4], 0xefcdab89
mov dword [ebp - 0xe0], 0x98badcfe
mov dword [ebp - 0xdc], 0x10325476
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x148], eax
je 0x6ee64ae7
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x6ee64ad8
push 0
sub ecx, edx
push ecx
push ebx
jmp 0x6ee64aef
push 1
push 0x10
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.6ee64f00
mov eax, 0xaaaaaaab
mov ecx, esi
mul esi
add esp, 0x10
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
je 0x6ee64b28
push 0
push edi
push dword [ebp - 0x14c]
lea eax, [ebp - 0xe8]
push eax
call fcn.6ee64f00
add esp, 0x10
mov eax, 0x24924925
mul esi
mov eax, esi
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 2
lea ecx, [eax*8]
sub ecx, eax
mov eax, esi
sub eax, ecx
je 0x6ee64b6c
mov ecx, ebx
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x6ee64b50
push 0
sub ecx, edx
lea eax, [ebp - 0xe8]
push ecx
push ebx
push eax
call fcn.6ee64f00
add esp, 0x10
cmp dword [ebp - 0x148], 0
je 0x6ee64b7f
push 1
push 0x10
lea eax, [ebp - 0x14]
push eax
jmp 0x6ee64b91
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x6ee64b84
push 0
sub eax, edx
push eax
push ebx
lea eax, [ebp - 0xe8]
push eax
call fcn.6ee64f00
add esp, 0x10
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x14]
push eax
call sym.libaprutil_1.dll__apr_md5_final_8
inc esi
cmp esi, 0x3e8
jl 0x6ee64a80
pop edi
lea ecx, [ebp - 0x8c]
pop esi
lea edx, [ecx + 1]
pop ebx
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x6ee64bd0
sub ecx, edx
movzx eax, byte [ebp - 0xe]
lea edx, [ebp - 0x8c]
add edx, ecx
movzx ecx, byte [ebp - 0x14]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 8]
shl ecx, 8
or ecx, eax
mov eax, ecx
shr ecx, 6
and eax, 0x3f
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx], al
mov eax, ecx
and eax, 0x3f
shr ecx, 6
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 1], al
mov eax, ecx
and eax, 0x3f
shr ecx, 6
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 2], al
movzx eax, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 3], al
movzx ecx, byte [ebp - 0x13]
movzx eax, byte [ebp - 0xd]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 7]
shl ecx, 8
or ecx, eax
mov eax, ecx
shr ecx, 6
and eax, 0x3f
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 4], al
mov eax, ecx
and eax, 0x3f
shr ecx, 6
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 5], al
mov eax, ecx
and eax, 0x3f
shr ecx, 6
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 6], al
movzx eax, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
movzx ecx, byte [ebp - 0x12]
mov byte [edx + 7], al
movzx eax, byte [ebp - 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 6]
shl ecx, 8
or ecx, eax
mov eax, ecx
shr ecx, 6
and eax, 0x3f
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 8], al
mov eax, ecx
and eax, 0x3f
shr ecx, 6
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 9], al
mov eax, ecx
and eax, 0x3f
shr ecx, 6
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 0xa], al
movzx eax, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
movzx ecx, byte [ebp - 0x11]
mov byte [edx + 0xb], al
movzx eax, byte [ebp - 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 5]
shl ecx, 8
or ecx, eax
xorps xmm0, xmm0
mov eax, ecx
shr ecx, 6
and eax, 0x3f
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 0xc], al
mov eax, ecx
and eax, 0x3f
shr ecx, 6
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 0xd], al
mov eax, ecx
and eax, 0x3f
shr ecx, 6
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 0xe], al
movzx eax, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
movzx ecx, byte [ebp - 0x10]
mov byte [edx + 0xf], al
movzx eax, byte [ebp - 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0xf]
shl ecx, 8
or ecx, eax
mov eax, ecx
shr ecx, 6
and eax, 0x3f
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 0x10], al
mov eax, ecx
and eax, 0x3f
shr ecx, 6
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 0x11], al
mov eax, ecx
and eax, 0x3f
shr ecx, 6
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 0x12], al
movzx eax, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
movzx ecx, byte [ebp - 9]
mov byte [edx + 0x13], al
mov eax, ecx
and eax, 0x3f
shr ecx, 6
movups xmmword [ebp - 0x14], xmm0
movzx eax, byte [eax + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 0x14], al
movzx eax, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]
mov byte [edx + 0x15], al
mov eax, dword [ebp + 0x14]
dec eax
mov byte [edx + 0x16], 0
push eax
lea eax, [ebp - 0x8c]
push eax
push dword [ebp - 0x150]
call sub.libapr_1.dll__apr_cpystrn_12
mov ecx, dword [ebp - 4]
xor eax, eax
xor ecx, ebp
call fcn.6ee8c039
mov esp, ebp
pop ebp
ret 0x10