Function at 0x5c5c80
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe8
mov eax, dword [0x766480]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, ecx
cmp byte [edi + 0xcc], 1
mov ecx, dword [edi + 0xc4]
mov eax, dword [ecx]
jne 0x5c5ef0
lea edx, [ebp - 0x74]
push edx
push 2
push ecx
call dword [eax + 0x98]
movss xmm0, dword [ebp - 0x74]
lea eax, [ebp - 0x28]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebp - 0x64]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x54]
push eax
push eax
movss dword [ebp - 0x20], xmm0
call fcn.00402aa2
movss xmm0, dword [ebp - 0x70]
lea eax, [ebp - 0x34]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x60]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [ebp - 0x50]
push eax
push eax
movss dword [ebp - 0x2c], xmm0
call fcn.00402aa2
mov eax, dword [edi + 0xbc]
lea edx, [ebp - 0xcc]
push 0
push edx
push 0
mov dword [edi + 0x18], 0
mov dword [ebp - 0xcc], 0
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x2c]
cmp dword [edi + 4], 0
mov dword [ebp - 0xc4], 0
jle 0x5c637a
movss xmm1, dword [0x707808]
xor ecx, ecx
xorps xmm2, xmm2
mov dword [ebp - 0xbc], ecx
movss dword [ebp - 0xd8], xmm2
movss dword [ebp - 0xc0], xmm1
nop word [eax + eax]
mov edx, dword [edi + 0x10]
movss xmm0, dword [ecx + edx]
comiss xmm0, xmm2
jbe 0x5c5eba
movq xmm0, qword [ecx + edx + 4]
mov eax, dword [ecx + edx + 0xc]
movq qword [ebp - 0xe4], xmm0
movss xmm0, dword [edi + 0x94]
movss dword [ebp - 0xc8], xmm0
movss xmm0, dword [edi + 0x98]
movss dword [ebp - 0xd0], xmm0
movss xmm0, dword [edi + 0x9c]
movss dword [ebp - 0xd4], xmm0
movss xmm0, dword [ecx + edx + 0x44]
mulss xmm0, xmm1
mov dword [ebp - 0xdc], eax
call fcn.006dfba0
mov ecx, dword [edi + 0x10]
movzx esi, al
mov eax, dword [ebp - 0xbc]
movss xmm0, dword [eax + ecx + 0x5c]
mulss xmm0, dword [ebp - 0xc0]
call fcn.006dfba0
mov ecx, dword [edi + 0x10]
shl eax, 8
or esi, eax
mov eax, dword [ebp - 0xbc]
shl esi, 8
movss xmm0, dword [eax + ecx + 0x48]
mulss xmm0, dword [ebp - 0xc0]
call fcn.006dfba0
mov ecx, dword [edi + 0x10]
movzx eax, al
or esi, eax
mov eax, dword [ebp - 0xbc]
shl esi, 8
movss xmm0, dword [eax + ecx + 0x4c]
mulss xmm0, dword [ebp - 0xc0]
call fcn.006dfba0
mov ecx, dword [edi + 0x18]
movss xmm0, dword [ebp - 0xe4]
add ecx, ecx
subss xmm0, dword [ebp - 0xc8]
movzx eax, al
or esi, eax
movss xmm1, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xcc]
movss xmm2, dword [ebp - 0xd8]
mov dword [eax + ecx*8 + 0xc], esi
mov ecx, dword [edi + 0x18]
mov eax, dword [ebp - 0xcc]
add ecx, ecx
movss dword [eax + ecx*8], xmm0
movss xmm0, dword [ebp - 0xe0]
subss xmm0, dword [ebp - 0xd0]
movss dword [eax + ecx*8 + 4], xmm0
movss xmm0, dword [ebp - 0xdc]
subss xmm0, dword [ebp - 0xd4]
movss dword [eax + ecx*8 + 8], xmm0
inc dword [edi + 0x18]
mov ecx, dword [ebp - 0xbc]
jmp 0x5c5ecc
movq xmm0, qword [edi + 0x34]
movq qword [ecx + edx + 4], xmm0
mov eax, dword [edi + 0x3c]
mov dword [ecx + edx + 0xc], eax
mov eax, dword [ebp - 0xc4]
add ecx, 0x74
inc eax
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xc4], eax
cmp eax, dword [edi + 4]
jl 0x5c5d70
jmp 0x5c637a
lea edx, [ebp - 0xb4]
push edx
push 2
push ecx
call dword [eax + 0x98]
movss xmm0, dword [ebp - 0xb4]
lea eax, [ebp - 0x10]
movss dword [ebp - 0x10], xmm0
movss xmm0, dword [ebp - 0xa4]
movss dword [ebp - 0xc], xmm0
movss xmm0, dword [ebp - 0x94]
push eax
push eax
movss dword [ebp - 8], xmm0
call fcn.00402aa2
movss xmm0, dword [ebp - 0xb0]
lea eax, [ebp - 0x1c]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0xa0]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebp - 0x90]
push eax
push eax
movss dword [ebp - 0x14], xmm0
call fcn.00402aa2
mov eax, dword [edi + 0xbc]
lea edx, [ebp - 0xb8]
push 0
push edx
push 0
mov dword [edi + 0x18], 0
mov dword [ebp - 0xb8], 0
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x2c]
xor eax, eax
mov dword [ebp - 0xc8], eax
cmp dword [edi + 4], eax
jle 0x5c637a
movss xmm3, dword [0x707808]
xor ecx, ecx
movss xmm4, dword [0x70174c]
xorps xmm2, xmm2
mov dword [ebp - 0xbc], ecx
nop dword [eax + eax]
mov edx, dword [edi + 0x10]
movss xmm0, dword [ecx + edx]
comiss xmm0, xmm2
jbe 0x5c6361
movq xmm0, qword [ecx + edx + 4]
mov eax, dword [ecx + edx + 0xc]
movq qword [ebp - 0xe4], xmm0
movss xmm0, dword [ebp - 0xe4]
subss xmm0, dword [edi + 0x94]
movss xmm1, dword [ecx + edx + 0x30]
mov dword [ebp - 0xdc], eax
movss dword [ebp - 0xd4], xmm1
movss dword [ebp - 0xc0], xmm0
movss xmm0, dword [ebp - 0xe0]
subss xmm0, dword [edi + 0x98]
movss dword [ebp - 0xc4], xmm0
movss xmm0, dword [ebp - 0xdc]
subss xmm0, dword [edi + 0x9c]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ecx + edx + 0x28]
movss dword [ebp - 0xd8], xmm0
addss xmm0, xmm2
mulss xmm0, xmm4
movss dword [ebp - 0xd0], xmm0
movss xmm0, dword [ecx + edx + 0x44]
mulss xmm0, xmm3
call fcn.006dfba0
mov ecx, dword [edi + 0x10]
movzx esi, al
mov eax, dword [ebp - 0xbc]
movss xmm0, dword [eax + ecx + 0x5c]
mulss xmm0, dword [0x707808]
call fcn.006dfba0
mov ecx, dword [edi + 0x10]
shl eax, 8
or esi, eax
mov eax, dword [ebp - 0xbc]
shl esi, 8
movss xmm0, dword [eax + ecx + 0x48]
mulss xmm0, dword [0x707808]
call fcn.006dfba0
mov ecx, dword [edi + 0x10]
movzx eax, al
or esi, eax
mov eax, dword [ebp - 0xbc]
shl esi, 8
movss xmm0, dword [eax + ecx + 0x4c]
mulss xmm0, dword [0x707808]
call fcn.006dfba0
movzx eax, al
or esi, eax
mov eax, dword [edi + 0x18]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0xb8]
mov dword [eax + ecx*8 + 0xc], esi
mov eax, dword [edi + 0x18]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0xb8]
mov dword [eax + ecx*8 + 0x24], esi
mov eax, dword [edi + 0x18]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0xb8]
mov dword [eax + ecx*8 + 0x3c], esi
mov eax, dword [edi + 0x18]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0xb8]
mov dword [eax + ecx*8 + 0x54], esi
mov eax, dword [edi + 0x18]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0xb8]
mov dword [eax + ecx*8 + 0x10], 0
mov dword [eax + ecx*8 + 0x14], 0x3f800000
mov eax, dword [edi + 0x18]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0xb8]
mov dword [eax + ecx*8 + 0x28], 0x3f800000
mov dword [eax + ecx*8 + 0x2c], 0x3f800000
mov eax, dword [edi + 0x18]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0xb8]
mov dword [eax + ecx*8 + 0x40], 0
mov dword [eax + ecx*8 + 0x44], 0
mov eax, dword [edi + 0x18]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0xb8]
mov dword [eax + ecx*8 + 0x58], 0x3f800000
mov dword [eax + ecx*8 + 0x5c], 0
movss xmm0, dword [ebp - 0x1c]
subss xmm0, dword [ebp - 0x10]
mov eax, dword [edi + 0x18]
movss xmm1, dword [ebp - 0x18]
subss xmm1, dword [ebp - 0xc]
movss xmm4, dword [ebp - 0xd8]
movss xmm2, dword [ebp - 0x14]
lea ecx, [eax + eax*2]
subss xmm2, dword [ebp - 8]
mov eax, dword [ebp - 0xb8]
movss xmm6, dword [ebp - 0xd4]
mulss xmm0, xmm4
movss xmm5, dword [ebp - 0xd0]
movss xmm7, dword [ebp - 0xe8]
addss xmm0, dword [ebp - 0xc0]
movss dword [eax + ecx*8], xmm0
movaps xmm0, xmm6
mulss xmm0, xmm1
addss xmm0, dword [ebp - 0xc4]
movss dword [eax + ecx*8 + 4], xmm0
movaps xmm0, xmm5
mulss xmm0, xmm2
addss xmm0, xmm7
movss dword [eax + ecx*8 + 8], xmm0
movss xmm0, dword [ebp - 0x10]
addss xmm0, dword [ebp - 0x1c]
mov eax, dword [edi + 0x18]
movss xmm1, dword [ebp - 0x18]
inc eax
addss xmm1, dword [ebp - 0xc]
movss xmm2, dword [ebp - 0x14]
addss xmm2, dword [ebp - 8]
mulss xmm0, xmm4
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0xb8]
addss xmm0, dword [ebp - 0xc0]
movss dword [eax + ecx*8], xmm0
movaps xmm0, xmm6
mulss xmm0, xmm1
addss xmm0, dword [ebp - 0xc4]
movss dword [eax + ecx*8 + 4], xmm0
movaps xmm0, xmm5
mulss xmm0, xmm2
addss xmm0, xmm7
movss dword [eax + ecx*8 + 8], xmm0
movaps xmm0, xmm4
movss xmm1, dword [ebp - 0x10]
addss xmm1, dword [ebp - 0x1c]
xorps xmm0, xmmword [0x701990]
mov eax, dword [edi + 0x18]
movss xmm2, dword [ebp - 0x18]
add eax, 2
addss xmm2, dword [ebp - 0xc]
movss xmm3, dword [ebp - 0x14]
addss xmm3, dword [ebp - 8]
mulss xmm1, xmm0
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0xb8]
movss xmm0, dword [ebp - 0xc4]
addss xmm1, dword [ebp - 0xc0]
movss dword [eax + ecx*8], xmm1
movaps xmm1, xmm6
mulss xmm1, xmm2
subss xmm0, xmm1
movaps xmm1, xmm5
mulss xmm1, xmm3
movss dword [eax + ecx*8 + 4], xmm0
movaps xmm0, xmm7
subss xmm0, xmm1
movss dword [eax + ecx*8 + 8], xmm0
mov eax, dword [edi + 0x18]
movss xmm1, dword [ebp - 0xc]
add eax, 3
movss xmm2, dword [ebp - 8]
subss xmm1, dword [ebp - 0x18]
subss xmm2, dword [ebp - 0x14]
movss xmm0, dword [ebp - 0x10]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0xb8]
subss xmm0, dword [ebp - 0x1c]
mulss xmm6, xmm1
mulss xmm2, xmm5
addss xmm6, dword [ebp - 0xc4]
mulss xmm0, xmm4
addss xmm2, xmm7
addss xmm0, dword [ebp - 0xc0]
movss dword [eax + ecx*8], xmm0
movss dword [eax + ecx*8 + 4], xmm6
movss dword [eax + ecx*8 + 8], xmm2
xorps xmm2, xmm2
add dword [edi + 0x18], 4
movss xmm3, dword [0x707808]
movss xmm4, dword [0x70174c]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc8]
inc eax
add ecx, 0x74
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xbc], ecx
cmp eax, dword [edi + 4]
jl 0x5c5fc0
mov eax, dword [edi + 0xbc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.006dfb52
mov esp, ebp
pop ebp
ret 4