Function at 0x417a20
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x5047d8
push 0x4893f0
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x510a50]
xor dword [ebp - 8], eax
xor eax, ebp
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov ebx, ecx
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
mov ecx, 0x86
mov esi, ebx
mov eax, dword [ebp + 8]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x1c], 0x218
mov cl, byte [ebx + 0x218]
mov byte [eax + 0x218], cl
mov esi, 0x219
mov dword [ebp - 0x1c], esi
test byte [ebx + 0x218], 1
je 0x417c3a
mov edx, dword [ebx + 0x219]
mov dword [eax + 0x219], edx
mov ecx, dword [ebx + 0x21d]
mov dword [eax + 0x21d], ecx
mov dword [ebp - 0x1c], 0x221
mov dl, byte [ebx + 0x221]
mov byte [eax + 0x221], dl
mov esi, 0x222
mov dword [ebp - 0x1c], esi
mov cl, byte [ebx + 0x221]
test cl, cl
je 0x417b01
movzx ecx, cl
add ecx, ecx
add ecx, ecx
push ecx
mov edx, dword [ebx + 0x222]
push edx
add eax, esi
push eax
call fcn.00488b10
add esp, 0xc
movzx esi, byte [ebx + 0x221]
lea esi, [esi*4 + 0x222]
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp + 8]
mov cl, byte [ebx + 0x226]
mov byte [esi + eax], cl
inc esi
mov dword [ebp - 0x1c], esi
cmp byte [ebx + 0x226], 0
je 0x417b7d
xor ecx, ecx
mov dword [ebp - 0x20], ecx
movzx edx, byte [ebx + 0x226]
cmp ecx, edx
jge 0x417b7d
lea edi, [ecx + ecx*2]
add edi, edi
mov edx, dword [ebx + 0x227]
mov dx, word [edi + edx]
mov word [esi + eax], dx
add esi, 2
mov dword [ebp - 0x1c], esi
mov edx, dword [ebx + 0x227]
cmp word [edi + edx], 0
je 0x417b7a
mov ecx, edx
movzx edx, word [ecx + edi]
push edx
mov ecx, dword [ecx + edi + 2]
push ecx
lea edx, [esi + eax]
push edx
call fcn.00488b10
add esp, 0xc
mov eax, dword [ebx + 0x227]
movzx ecx, word [edi + eax]
add esi, ecx
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
inc ecx
jmp 0x417b19
mov dl, byte [ebx + 0x22b]
mov byte [esi + eax], dl
inc esi
mov dword [ebp - 0x1c], esi
mov cl, byte [ebx + 0x22b]
test cl, cl
je 0x417bbe
movzx ecx, cl
add ecx, ecx
add ecx, ecx
push ecx
mov edx, dword [ebx + 0x22c]
push edx
add eax, esi
push eax
call fcn.00488b10
add esp, 0xc
movzx ecx, byte [ebx + 0x22b]
lea esi, [esi + ecx*4]
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp + 8]
mov dl, byte [ebx + 0x230]
mov byte [esi + eax], dl
inc esi
mov dword [ebp - 0x1c], esi
cmp byte [ebx + 0x230], 0
je 0x417c3a
xor ecx, ecx
mov dword [ebp - 0x20], ecx
movzx edx, byte [ebx + 0x230]
cmp ecx, edx
jge 0x417c3a
lea edi, [ecx + ecx*2]
add edi, edi
mov edx, dword [ebx + 0x231]
mov dx, word [edi + edx]
mov word [esi + eax], dx
add esi, 2
mov dword [ebp - 0x1c], esi
mov edx, dword [ebx + 0x231]
cmp word [edi + edx], 0
je 0x417c37
mov ecx, edx
movzx edx, word [ecx + edi]
push edx
mov ecx, dword [ecx + edi + 2]
push ecx
lea edx, [esi + eax]
push edx
call fcn.00488b10
add esp, 0xc
mov eax, dword [ebx + 0x231]
movzx ecx, word [edi + eax]
add esi, ecx
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
inc ecx
jmp 0x417bd6
test byte [ebx + 0x218], 4
je 0x417ca2
mov edx, dword [ebx + 0x235]
mov dword [esi + eax], edx
mov ecx, dword [ebx + 0x239]
mov dword [esi + eax + 4], ecx
add esi, 8
mov dword [ebp - 0x1c], esi
mov dx, word [ebx + 0x23d]
mov word [esi + eax], dx
add esi, 2
mov dword [ebp - 0x1c], esi
movzx ecx, word [ebx + 0x23d]
test cx, cx
je 0x417ca2
add ecx, ecx
add ecx, ecx
add ecx, ecx
push ecx
mov edx, dword [ebx + 0x23f]
push edx
add eax, esi
push eax
call fcn.00488b10
add esp, 0xc
movzx ecx, word [ebx + 0x23d]
lea esi, [esi + ecx*8]
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp + 8]
test byte [ebx + 0x218], 2
je 0x417d05
mov edx, dword [ebx + 0x243]
mov dword [esi + eax], edx
mov ecx, dword [ebx + 0x247]
mov dword [esi + eax + 4], ecx
add esi, 8
mov dword [ebp - 0x1c], esi
mov dx, word [ebx + 0x24b]
mov word [esi + eax], dx
add esi, 2
mov dword [ebp - 0x1c], esi
movzx ecx, word [ebx + 0x24b]
test cx, cx
je 0x417d05
add ecx, ecx
add ecx, ecx
push ecx
mov edx, dword [ebx + 0x24d]
push edx
add eax, esi
push eax
call fcn.00488b10
add esp, 0xc
movzx ecx, word [ebx + 0x24b]
lea edx, [esi + ecx*4]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 4], 0xfffffffe
mov eax, 1
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret