Function at 0x48f670
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 0x533337
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x320
mov eax, dword [0x5c6150]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x2f8], esi
mov byte [ebp - 0x318], 0
mov dword [ebp - 0x31c], 0
mov dword [ebp - 4], 0
lea eax, [esi + 0x10]
cmp byte [esi + 0x120], 0
jne 0x48f6e0
mov eax, dword [esi + 0xc]
push 0
push 0
push 0
push 0
push 0
add eax, 4
lea ecx, [ebp - 0x2e8]
push eax
call fcn.00451610
push 0
push 0
push 0
push 0
push 0
push 0x5af2c0
lea ecx, [ebp - 0x1c0]
mov byte [ebp - 4], 1
call fcn.00451610
cmp byte [ebp - 0xa4], 0
lea edi, [ebp - 0x1b4]
mov ecx, dword [ebp - 0x2e4]
cmove edi, dword [ebp - 0x1b8]
mov edx, dword [ebp - 0x1bc]
add edi, 4
cmp ecx, edx
jbe 0x48f768
cmp byte [ebp - 0x1cc], 0
lea eax, [ebp - 0x2dc]
push edi
cmove eax, dword [ebp - 0x2e0]
sub ecx, edx
lea eax, [eax + ecx*2]
add eax, 4
push eax
call fcn.004e0bff
add esp, 8
test eax, eax
je 0x48f774
push edi
lea ecx, [ebp - 0x2e8]
call fcn.00450150
cmp byte [ebp - 0xa4], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x48f7a0
mov eax, dword [ebp - 0x1b8]
lea ecx, [ebp - 0x1b4]
cmp eax, ecx
je 0x48f7a0
push eax
call fcn.004e1b56
add esp, 4
mov eax, dword [esi + 0x12c]
mov dword [ebp - 0x24], eax
call fcn.004ed9db
cmp dword [eax + 0x18], 1
jne 0x48f7c7
push 0
call fcn.004e2e2c
add esp, 4
push eax
call fcn.004e7021
add esp, 4
lea edi, [ebp - 0x1c]
mov esi, 4
nop
call fcn.004e7000
mov byte [edi], al
lea edi, [edi + 1]
sub esi, 1
jne 0x48f7d0
push esi
mov dword [ebp - 0x20], 1
call fcn.004e2e2c
add esp, 4
mov dword [ebp - 0x32c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - method.t_fileBufWrite.1.virtual_0], vtable.t_fileBufWrite.1.0
mov dword [ebp - method.t_fileBufWrite.virtual_0], vtable.t_fileBufWrite.0
push 0x10000
mov dword [ebp - 0x304], esi
mov dword [ebp - 0x300], esi
mov dword [ebp - 0x308], 0x10000
call fcn.004e1b5b
add esp, 4
mov dword [ebp - 0x30c], eax
push 0x10
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x31c]
push eax
lea ecx, [ebp - 0x314]
call fcn.004641f0
mov esi, dword [ebp - 0x2f8]
mov edi, dword [esi + 0x134]
imul eax, edi, 0x98
mov dword [ebp - 0x2f0], edi
add eax, 4
push eax
mov dword [ebp - 0x2f4], eax
call fcn.004e1b5b
add esp, 4
mov dword [ebp - 0x2fc], eax
mov byte [ebp - 4], 3
lea ecx, [eax + 4]
mov dword [eax], edi
mov dword [ebp - 0x320], ecx
test edi, edi
jle 0x48f9c0
mov eax, dword [ebp - 0x2f0]
xor edi, edi
mov dword [ebp - 0x324], edi
mov dword [ebp - 0x328], eax
nop dword [eax]
push 0x98
lea eax, [ebp - 0x138]
push 0
push eax
call fcn.004d9fe0
mov ecx, dword [esi + 0x130]
add esp, 0xc
mov eax, dword [ecx + edi]
mov dword [ebp - 0x138], eax
mov eax, dword [ecx + edi + 4]
mov dword [ebp - 0x134], eax
lea eax, [ecx + 8]
add eax, edi
push eax
lea eax, [ebp - 0x120]
push 0x80
push eax
call fcn.004ee3f4
add esp, 0xc
cmp byte [ebp - 0x120], 0
je 0x48f975
mov eax, dword [esi + 0x130]
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x98], 0x67452301
mov dword [ebp - 0x94], 0xefcdab89
mov dword [ebp - 0x90], 0x98badcfe
push dword [edi + eax + 4]
mov edx, dword [edi + eax + 0x88]
mov dword [ebp - 0x8c], 0x10325476
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x40], 0
call fcn.0046d430
add esp, 4
lea edx, [ebp - 0x98]
lea ecx, [ebp - 0x130]
call fcn.0046d6f0
mov eax, dword [ebp - 0x320]
lea esi, [ebp - 0x138]
mov edi, eax
mov ecx, 0x26
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x324]
add eax, 0x98
mov esi, dword [ebp - 0x2f8]
add edi, 0x8d
sub dword [ebp - 0x328], 1
mov dword [ebp - 0x320], eax
mov dword [ebp - 0x324], edi
jne 0x48f8b0
mov edi, dword [ebp - 0x2f0]
mov eax, dword [ebp - 0x2f4]
lea ecx, [ebp - 0x98]
mov edx, dword [ebp - 0x2fc]
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
push eax
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x98], 0x67452301
mov dword [ebp - 0x94], 0xefcdab89
mov dword [ebp - 0x90], 0x98badcfe
mov dword [ebp - 0x8c], 0x10325476
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x40], 0
call fcn.0046d430
add esp, 4
lea edx, [ebp - 0x98]
lea ecx, [ebp - 0x38]
call fcn.0046d6f0
imul eax, dword [ebp - 0x1c], 0x9ae42313
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x314]
push eax
push 0x14
call fcn.0048eaf0
mov edx, dword [ebp - 0x2fc]
lea ecx, [ebp - 0x314]
push eax
push dword [ebp - 0x2f4]
call fcn.0048eaf0
add esp, 0x10
test edi, edi
jle 0x48fb3b
xor edi, edi
nop word [eax + eax]
mov edx, dword [esi + 0x130]
add edx, edi
cmp byte [edx + 8], 0
je 0x48faae
imul eax, dword [edx], 0x9ae42313
lea ecx, [ebp - 0x314]
push eax
push dword [edx + 4]
mov edx, dword [edx + 0x88]
call fcn.0048eaf0
add esp, 8
jmp 0x48fb09
mov ecx, dword [edx + 4]
sub ecx, dword [esi + 0x128]
mov dword [ebp - 0x2f4], ecx
test ecx, ecx
jle 0x48fb09
imul eax, dword [edx], 0x9ae42313
mov edx, dword [edx + 0x88]
push eax
push ecx
lea ecx, [ebp - 0x314]
call fcn.0048eaf0
mov eax, dword [esi + 0x130]
lea ecx, [ebp - 0x314]
add esp, 8
mov eax, dword [edi + eax + 0x88]
push dword [esi + 0x128]
add eax, dword [ebp - 0x2f4]
push eax
lea eax, [ebp - 0x31c]
push eax
call fcn.004641f0
mov eax, dword [esi + 0x130]
cmp byte [edi + eax + 0x8c], 0
je 0x48fb28
push dword [edi + eax + 0x88]
call fcn.004e1b56
add esp, 4
add edi, 0x8d
sub dword [ebp - 0x2f0], 1
jne 0x48fa80
lea eax, [ebp - 0x2e8]
push eax
lea eax, [ebp - 0x31c]
push eax
lea ecx, [ebp - 0x314]
call fcn.00464360
cmp byte [esi + 0x120], 0
lea eax, [esi + 0x10]
jne 0x48fb63
mov eax, dword [esi + 0xc]
push 0
push 0
push 0
push 0
push 0
add eax, 4
lea ecx, [ebp - 0x1c0]
push eax
call fcn.00451610
push 0
lea eax, [ebp - 0x1c0]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x31c]
push eax
lea ecx, [ebp - 0x2e8]
call fcn.00452d20
test al, al
mov byte [ebp - 4], 3
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
sete cl
cmp byte [ebp - 0xa4], 0
mov byte [ebp - 0x2e9], cl
jne 0x48fbdc
mov eax, dword [ebp - 0x1b8]
lea edx, [ebp - 0x1b4]
cmp eax, edx
je 0x48fbdc
push eax
call fcn.004e1b56
mov cl, byte [ebp - 0x2e9]
add esp, 4
test cl, cl
je 0x48fbe9
mov byte [ebp - 0x2e9], 0
jmp 0x48fc0b
mov eax, dword [esi + 0x168]
test eax, eax
je 0x48fc04
push dword [esi + 0x16c]
push dword [ebp - 0x32c]
call eax
add esp, 8
mov byte [ebp - 0x2e9], 1
push dword [ebp - 0x2fc]
call fcn.004e1b56
mov eax, dword [ebp - 0x30c]
add esp, 4
mov dword [ebp - method.t_fileBufWrite.1.virtual_0], vtable.t_fileBufWrite.1.0
mov dword [ebp - method.t_fileBufWrite.virtual_0], vtable.t_fileBufWrite.0
mov dword [ebp - 0x304], 0
mov dword [ebp - 0x300], 0
mov dword [ebp - 0x308], 0
test eax, eax
je 0x48fc68
push eax
call fcn.004e1b56
add esp, 4
mov dword [ebp - 0x30c], 0
cmp byte [ebp - 0x1cc], 0
mov dword [ebp - method.t_byteStreamRead.virtual_0], vtable.t_byteStreamRead.0
mov dword [ebp - method.t_byteStreamWrite.virtual_0], vtable.t_byteStreamWrite.0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x48fca8
mov ecx, dword [ebp - 0x2e0]
lea eax, [ebp - 0x2dc]
cmp ecx, eax
je 0x48fca8
push ecx
call fcn.004e1b56
add esp, 4
lea ecx, [ebp - 0x31c]
call fcn.00450c20
mov al, byte [ebp - 0x2e9]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004d6cfd
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret