Function at 0x4d37a0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55d2a6
mov eax, dword fs:[0]
push eax
sub esp, 0x228
mov eax, dword [0x5df7e4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x22c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x230], 0
mov edi, dword [eax]
lea eax, [ebp - 0xa8]
mov dword [ebp - 0xac], eax
test edi, edi
jne 0x4d3975
mov dword [ebp - 0xac], edi
mov dword [ebp - 4], 1
mov edx, dword [ebp - 0xac]
mov ecx, edx
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
lea esi, [ecx + 1]
mov byte [ebp - 0x28], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4d3840
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.004cf730
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xa8]
mov eax, dword [ebp - 0xac]
cmp eax, ecx
je 0x4d3870
push eax
call fcn.0052dbc0
add esp, 4
push 0x40
lea eax, [ebp - 0x104]
push 0
push eax
call fcn.0052a280
add esp, 0xc
mov dword [ebp - 0xc0], 0
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x104]
mov dword [ebp - 0xc4], 0
cmovae eax, dword [ebp - 0x28]
push dword [ebp - 0x18]
mov dword [ebp - 0xbc], 0x67452301
push eax
mov dword [ebp - 0xb8], 0xefcdab89
mov dword [ebp - 0xb4], 0x98badcfe
mov dword [ebp - 0xb0], 0x10325476
call fcn.004d4320
push 0
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x104]
call fcn.004d35e0
mov esi, eax
mov byte [ebp - 4], 4
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x4d3923
mov ecx, eax
call fcn.004cf390
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x11c]
call fcn.004c02e0
cmp dword [ebp - 0x14], 0x10
lea edi, [ebp - 0x28]
lea eax, [ebp - 0x21c]
cmovae edi, dword [ebp - 0x28]
mov dword [ebp - 0x220], eax
test edi, edi
jne 0x4d3a67
mov dword [ebp - 0x220], edi
mov byte [ebp - 4], 5
mov esi, dword [ebp - 0x220]
call fcn.004bb5b0
mov ecx, eax
test ecx, ecx
je 0x4d3bc3
jmp 0x4d3b38
mov ecx, edi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4d3980
sub ecx, edx
sar ecx, 1
push 0x80
lea eax, [ecx + 1]
lea esi, [eax*4]
mov dword [ebp - 0x224], eax
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0xac]
push esi
push eax
call fcn.004d3560
add esp, 0x10
push 0
push 0
push esi
push dword [ebp - 0xac]
mov esi, dword [ebp - 0x224]
push esi
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor ecx, ecx
test eax, eax
sete cl
mov dword [ebp - 0x228], ecx
test eax, eax
jne 0x4d3a5a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x4d3a54
push 0
push 0
push 0
push 0
push esi
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
lea eax, [ebp - 0xa8]
push 0x80
push eax
lea eax, [ebp - 0xac]
push esi
push eax
call fcn.004d3560
add esp, 0x10
push 0
push 0
push esi
push dword [ebp - 0xac]
push dword [ebp - 0x224]
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
jmp 0x4d3a5a
mov ecx, dword [ebp - 0x228]
test ecx, ecx
jne 0x4d3bcd
jmp 0x4d380c
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4d3a70
sub ecx, edx
lea eax, [ebp - 0x21c]
push 0x80
push eax
lea eax, [ebp - 0x220]
lea esi, [ecx + 1]
push esi
push eax
mov dword [ebp - 0x228], esi
call fcn.004be050
add esp, 0x10
push esi
push dword [ebp - 0x220]
push esi
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor ecx, ecx
test eax, eax
sete cl
mov dword [ebp - 0x224], ecx
test eax, eax
jne 0x4d3b2b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x4d3b25
push 0
push 0
push esi
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov esi, eax
lea eax, [ebp - 0x21c]
push 0x80
push eax
lea eax, [ebp - 0x220]
push esi
push eax
call fcn.004be050
add esp, 0x10
push esi
push dword [ebp - 0x220]
push dword [ebp - 0x228]
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
jmp 0x4d3b2b
mov ecx, dword [ebp - 0x224]
test ecx, ecx
jne 0x4d3bec
jmp 0x4d3957
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov edi, dword [ebp - 0x22c]
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 6
test esi, esi
je 0x4d3b67
test esi, 0xffff0000
jne 0x4d3b67
movzx eax, si
mov ecx, edi
push eax
call fcn.004bb960
jmp 0x4d3b6f
push esi
mov ecx, edi
call fcn.004bbdb0
mov byte [ebp - 4], 5
mov dword [ebp - 0x230], 1
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x21c]
mov eax, dword [ebp - 0x220]
cmp eax, ecx
je 0x4d3b9a
push eax
call fcn.0052dbc0
add esp, 4
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x28]
call fcn.004c02e0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005121be
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.004b95c0
push 0x80
lea eax, [ebp - 0xa8]
push eax
push dword [ebp - 0xac]
call fcn.004be0d0
add esp, 0xc
call fcn.004c0450
push 0x80
lea eax, [ebp - 0x21c]
push eax
push dword [ebp - 0x220]
call fcn.004be0d0
add esp, 0xc
call fcn.004c0450
int3