Function at 0x60ef40
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x30
mov edi, dword [eax + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [eax + 0x40]
mov dword [esp + 0x14], edx
mov dword [esp + 0x2c], eax
cmp edi, edx
jae 0x60f25d
mov eax, dword [esp + 0x10]
mov esi, edi
mov edx, dword [eax + 0x18]
cmp dword [esp + 0x14], edx
jae 0x60f213
mov esi, dword [esp + 0x2c]
jmp 0x60ef89
mov eax, dword [eax + 0x40]
mov dword [esp + 0x2c], eax
mov esi, eax
add edi, 1
mov eax, edi
shl eax, 4
lea ebx, [esi + eax - 0x10]
mov dword [esp + 0x1c], eax
movzx ecx, byte [ebx]
movzx eax, byte [ebx + 0xf]
movzx edx, byte [ebx + 0xb]
mov byte [esp + 0x2b], cl
movzx ecx, byte [ebx + 0xe]
mov byte [esp + 0x2a], al
movzx eax, byte [ebx + 0xd]
mov byte [esp + 0x27], dl
movzx edx, byte [ebx + 9]
mov byte [esp + 0x29], cl
movzx ecx, byte [ebx + 0xc]
mov byte [esp + 0x28], al
movzx eax, byte [ebx + 0xa]
mov byte [esp + 0x26], dl
movzx edx, byte [ebx + 7]
mov byte [esp + 0x22], cl
movzx ecx, byte [ebx + 8]
mov byte [esp + 0x21], al
movzx eax, byte [ebx + 6]
mov byte [esp + 0x25], dl
movzx edx, byte [ebx + 5]
mov byte [esp + 0x20], cl
movzx ecx, byte [ebx + 2]
mov byte [esp + 0x1b], al
movzx eax, byte [ebx + 4]
mov byte [esp + 0x24], dl
movzx edx, byte [ebx + 3]
movzx ebx, byte [ebx + 1]
movzx esi, byte [esp + 0x2b]
mov byte [esp + 0x23], al
mov eax, ebx
add esi, esi
add ebx, ebx
shr al, 7
or eax, esi
mov byte [esp + 0x1a], al
mov eax, ecx
add ecx, ecx
shr al, 7
mov esi, eax
movzx eax, byte [esp + 0x23]
or esi, ebx
mov ebx, edx
add edx, edx
shr al, 7
shr bl, 7
or ebx, ecx
mov ecx, eax
movzx eax, byte [esp + 0x23]
or ecx, edx
movzx edx, byte [esp + 0x24]
movzx ebx, bl
add eax, eax
mov byte [esp + 0x19], cl
movzx ecx, byte [esp + 0x1b]
shr dl, 7
or edx, eax
mov eax, ecx
mov byte [esp + 0x23], dl
movzx edx, byte [esp + 0x24]
shr al, 7
add edx, edx
or eax, edx
mov edx, ecx
movzx ecx, byte [esp + 0x20]
mov byte [esp + 0x24], al
movzx eax, byte [esp + 0x25]
add edx, edx
shr al, 7
or eax, edx
movzx edx, byte [esp + 0x25]
mov byte [esp + 0x1b], al
mov eax, ecx
add edx, edx
shr al, 7
or eax, edx
mov edx, ecx
mov byte [esp + 0x25], al
movzx eax, byte [esp + 0x26]
add edx, edx
shr al, 7
mov ecx, eax
or ecx, edx
movzx edx, byte [esp + 0x26]
mov byte [esp + 0x20], cl
movzx ecx, byte [esp + 0x21]
add edx, edx
mov eax, ecx
shr al, 7
or eax, edx
mov edx, ecx
movzx ecx, byte [esp + 0x22]
mov byte [esp + 0x26], al
movzx eax, byte [esp + 0x27]
shr al, 7
add edx, edx
or eax, edx
movzx edx, byte [esp + 0x27]
mov byte [esp + 0x21], al
mov eax, ecx
add ecx, ecx
add edx, edx
shr al, 7
or eax, edx
movzx edx, byte [esp + 0x28]
movzx eax, al
shr dl, 7
shl eax, 8
or edx, ecx
movzx ecx, byte [esp + 0x28]
mov byte [esp + 0x27], dl
movzx edx, byte [esp + 0x29]
add ecx, ecx
shr dl, 7
or edx, ecx
movzx ecx, byte [esp + 0x29]
mov byte [esp + 0x28], dl
movzx edx, byte [esp + 0x2a]
add ecx, ecx
shr dl, 7
or edx, ecx
movzx ecx, byte [esp + 0x2b]
mov byte [esp + 0x29], dl
sar cl, 7
mov edx, ecx
movzx ecx, byte [esp + 0x2a]
and edx, 0xffffff87
add ecx, ecx
xor edx, ecx
movzx ecx, byte [esp + 0x19]
movzx edx, dl
shl ecx, 8
or ecx, ebx
mov ebx, esi
movzx ebx, bl
shl ecx, 8
or ecx, ebx
movzx ebx, byte [esp + 0x1a]
shl ecx, 8
mov esi, ecx
or esi, ebx
movzx ebx, byte [esp + 0x25]
movd xmm0, esi
movzx esi, byte [esp + 0x1b]
shl ebx, 8
or ebx, esi
movzx esi, byte [esp + 0x24]
shl ebx, 8
or ebx, esi
movzx esi, byte [esp + 0x23]
shl ebx, 8
or ebx, esi
movzx esi, byte [esp + 0x21]
movd xmm3, ebx
or eax, esi
movzx esi, byte [esp + 0x26]
shl edx, 8
punpckldq xmm0, xmm3
shl eax, 8
or eax, esi
movzx esi, byte [esp + 0x20]
shl eax, 8
or eax, esi
movzx esi, byte [esp + 0x29]
movd xmm1, eax
mov eax, dword [esp + 0x1c]
or edx, esi
movzx esi, byte [esp + 0x28]
shl edx, 8
or edx, esi
movzx esi, byte [esp + 0x27]
shl edx, 8
or edx, esi
mov esi, dword [esp + 0x2c]
movd xmm2, edx
punpckldq xmm1, xmm2
punpcklqdq xmm0, xmm1
movups xmmword [esi + eax], xmm0
mov eax, dword [esp + 0x14]
cmp edi, eax
mov eax, dword [esp + 0x10]
jne 0x60ef80
mov dword [eax + 0x14], edi
mov edi, dword [esp + 0x1c]
add edi, dword [eax + 0x40]
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x2c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, eax
mov eax, dword [esp + 0x14]
add eax, 4
sub eax, edx
and eax, 0xfffffffc
add eax, edx
mov dword [edi + 0x18], eax
shl eax, 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], 0x71
mov dword [esp + 8], str..._crypto_modes_ocb128.c
mov dword [esp], eax
call fcn.004ce390
mov dword [esp + 0x2c], eax
test eax, eax
je 0x60f207
mov dword [edi + 0x40], eax
mov edi, esi
mov esi, eax
jmp 0x60ef89
mov eax, edx
shl eax, 4
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret