Function at 0x60c810
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov dword [esp + 0x18], edx
mov edx, dword [edx]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x40]
test edx, edx
je 0x60c836
cmp byte [edx], 0x78
je 0x60c9a1
movzx eax, byte [esi]
xor ebp, ebp
test al, al
je 0x60c9e0
mov edi, ebp
mov edx, 1
xor ebx, ebx
xor edi, 1
mov ecx, edi
mov edi, 1
mov byte [esp + 0x10], cl
jmp 0x60c892
mov ecx, edi
test cl, cl
je 0x60c897
cmp byte [ebx + str.http:__www.w3.org_XML_1998_namespace], al
sete cl
mov edi, ecx
test byte [esp + 0x10], dl
je 0x60c887
xor edx, edx
cmp ebx, 0x1d
jg 0x60c887
cmp byte [ebx + str.http:__www.w3.org_2000_xmlns_], al
sete dl
add ebx, 1
movzx eax, byte [esi + ebx]
test al, al
je 0x60c8a0
cmp ebx, 0x24
jle 0x60c860
xor edi, edi
jmp 0x60c871
cmp ebx, 0x24
mov ecx, edi
sete al
and ecx, eax
mov eax, ebp
cmp al, cl
je 0x60c8c2
cmp al, 1
sbb eax, eax
and eax, 2
add eax, 0x26
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
test dl, dl
je 0x60c8d0
cmp ebx, 0x1d
mov eax, 0x28
je 0x60c8ba
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp byte [ebp + 0x1d8], 1
mov edi, dword [ebp + 0x178]
mov dword [esp + 0x10], eax
sbb ebx, 0xffffffff
test edi, edi
je 0x60ca38
cmp dword [edi + 0x18], ebx
jl 0x60ca06
mov eax, dword [edi + 4]
mov dword [ebp + 0x178], eax
mov eax, dword [edi + 0x10]
mov dword [edi + 0x14], ebx
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 0x14], edx
call sub.msvcrt.dll_memcpy
movzx eax, byte [ebp + 0x1d8]
mov edx, dword [esp + 0x14]
test al, al
je 0x60c93a
mov ecx, dword [edi + 0x10]
mov byte [ecx + ebx - 1], al
mov eax, dword [esp + 0x10]
mov dword [edi], edx
mov dword [edi + 0xc], eax
mov eax, dword [edx + 4]
mov dword [edi + 8], eax
cmp byte [esi], 0
je 0x60c9e7
mov dword [edx + 4], edi
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
test ecx, ecx
mov dword [edi + 4], eax
mov eax, dword [esp + 0x44]
mov dword [eax], edi
je 0x60ca31
mov ecx, dword [ebp + 0x64]
test ecx, ecx
je 0x60ca31
mov eax, dword [edx + 4]
test eax, eax
mov eax, 0
cmove esi, eax
mov dword [esp + 8], esi
mov eax, dword [edx]
mov dword [esp + 4], eax
mov eax, dword [ebp + 4]
mov dword [esp], eax
call ecx
xor eax, eax
jmp 0x60c8ba
cmp byte [edx + 1], 0x6d
jne 0x60c836
cmp byte [edx + 2], 0x6c
jne 0x60c836
movzx eax, byte [edx + 3]
cmp al, 0x6e
je 0x60ca70
test al, al
movzx eax, byte [esi]
sete dl
mov ebp, edx
test al, al
jne 0x60c843
test dl, dl
mov eax, 0x26
jne 0x60c8ba
xor ebx, ebx
jmp 0x60c8d0
mov eax, dword [ebp + 0x164]
add eax, 0x98
cmp edx, eax
jne 0x60c952
mov dword [edx + 4], 0
jmp 0x60c955
lea ecx, [ebx + 0x18]
mov dword [esp + 4], ecx
mov eax, dword [edi + 0x10]
mov dword [esp + 0x14], ecx
mov dword [esp], eax
call dword [ebp + 0x10]
test eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
je 0x60ca94
mov dword [edi + 0x10], eax
mov dword [edi + 0x18], ecx
jmp 0x60c901
xor eax, eax
jmp 0x60c8ba
mov dword [esp + 0x18], edx
mov dword [esp], 0x1c
call dword [ebp + 0xc]
test eax, eax
mov edi, eax
je 0x60ca94
lea ecx, [ebx + 0x18]
mov dword [esp], ecx
mov dword [esp + 0x14], ecx
call dword [ebp + 0xc]
test eax, eax
mov dword [edi + 0x10], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
je 0x60ca8e
mov dword [edi + 0x18], ecx
jmp 0x60c90d
cmp byte [edx + 4], 0x73
jne 0x60c836
cmp byte [edx + 5], 0
mov eax, 0x27
je 0x60c8ba
jmp 0x60c836
mov dword [esp], edi
call dword [ebp + 0x14]
mov eax, 1
jmp 0x60c8ba