Function at 0x42b4aa
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
movzx eax, word [edi + 4]
mov word [ebp - 0x14], ax
movzx eax, word [edi + 6]
mov word [ebp - 0x12], ax
test edx, edx
jne 0x42b51d
mov ebx, 0
cmp dword [edi + 8], 0
je 0x42b505
mov ecx, 0
cmp dword [edi + 0xc], 0
je 0x42b4ff
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x10]
mov edx, dword [eax + ebx*4]
mov eax, dword [edi + 0x10]
mov eax, dword [eax + ebx*4]
movzx eax, byte [ecx + eax]
mov byte [ecx + edx], al
inc ecx
cmp dword [edi + 0xc], ecx
ja 0x42b4e3
inc ebx
cmp dword [edi + 8], ebx
ja 0x42b4d8
movzx edx, word [ebp - 0x12]
movzx eax, word [ebp - 0x14]
mov ecx, dword [ebp + 0x10]
mov word [ecx + 4], ax
mov word [ecx + 6], dx
jmp 0x42b735
cmp edx, 1
jne 0x42b584
mov dword [ebp - 0x20], 0
cmp dword [edi + 8], 0
je 0x42b568
mov esi, 0
mov ebx, dword [edi + 0xc]
dec ebx
js 0x42b55d
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0x20]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x54], esi
inc esi
mov eax, dword [edi + 0x10]
mov eax, dword [eax + edx*4]
movzx eax, byte [ebx + eax]
mov edx, dword [ebp - 0x54]
mov byte [edx + ecx], al
dec ebx
jns 0x42b53a
inc dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
cmp dword [edi + 8], ecx
ja 0x42b52f
movzx edx, word [ebp - 0x12]
mov eax, dword [ebp - 0x14]
not eax
add eax, dword [edi + 8]
mov ecx, dword [ebp + 0x10]
mov word [ecx + 4], ax
mov word [ecx + 6], dx
jmp 0x42b735
cmp edx, 2
jne 0x42b5e1
mov esi, 0
cmp dword [edi + 0xc], 0
je 0x42b5c4
mov ebx, 0
mov ecx, dword [edi + 8]
dec ecx
js 0x42b5be
mov edx, ebx
inc ebx
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x5c], eax
mov edx, dword [eax + edx*4]
mov eax, dword [edi + 0x10]
mov eax, dword [eax + ecx*4]
movzx eax, byte [esi + eax]
mov byte [esi + edx], al
dec ecx
jns 0x42b59f
inc esi
cmp dword [edi + 0xc], esi
ja 0x42b594
movzx eax, word [ebp - 0x12]
not eax
add eax, dword [edi + 0xc]
movzx edx, word [ebp - 0x14]
mov ecx, dword [ebp + 0x10]
mov word [ecx + 4], dx
mov word [ecx + 6], ax
jmp 0x42b735
movzx eax, word [edi + 4]
mov word [ebp - 0x16], ax
movzx eax, word [edi + 6]
mov word [ebp - 0x18], ax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0xc]
shr eax, 1
dec eax
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 8]
shr eax, 1
dec eax
mov dword [ebp - 0x28], eax
mov eax, 0xb4
cmp edx, 4
je 0x42b630
cmp edx, 4
jg 0x42b621
mov eax, 0x5a
cmp edx, 3
je 0x42b630
jmp 0x42b62b
mov eax, 0x10e
cmp edx, 5
je 0x42b630
mov eax, 0
push eax
fild dword [esp]
lea esp, [esp + 4]
fmul qword [0x9aeec8]
fdiv dword [0x9aeed0]
fst qword [ebp - 0x30]
fstp qword [esp]
call sub.msvcrt.dll_cos
fstp dword [ebp - 0x34]
fld qword [ebp - 0x30]
fstp qword [esp]
call sub.msvcrt.dll_sin
fstp dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
xor eax, 0x80000000
mov dword [ebp - 0x38], eax
fld qword [ebp - 0x30]
fstp qword [esp]
call sub.msvcrt.dll_sin
fstp dword [ebp - 0x3c]
fld qword [ebp - 0x30]
fstp qword [esp]
call sub.msvcrt.dll_cos
fstp dword [ebp - 0x40]
mov dword [ebp - 0x44], 0
cmp dword [edi + 0xc], 0
jle 0x42b724
mov esi, 0
cmp dword [edi + 8], 0
jle 0x42b715
movzx eax, word [ebp - 0x16]
mov edx, dword [ebp - 0x44]
sub edx, eax
movzx eax, word [ebp - 0x18]
mov ecx, esi
sub ecx, eax
push edx
fild dword [esp]
fst dword [ebp - 0x48]
fmul dword [ebp - 0x34]
mov dword [esp], ecx
fild dword [esp]
lea esp, [esp + 4]
fst dword [ebp - 0x4c]
fmul dword [ebp - 0x38]
faddp st(1)
fstp dword [esp]
call fcn.0074f12c
mov ebx, eax
fld dword [ebp - 0x48]
fmul dword [ebp - 0x3c]
fld dword [ebp - 0x4c]
fmul dword [ebp - 0x40]
faddp st(1)
fstp dword [esp]
call fcn.0074f12c
add eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x10]
add ebx, dword [edx + eax*4]
mov eax, dword [edi + 0x10]
mov eax, dword [eax + esi*4]
mov edx, dword [ebp - 0x44]
movzx eax, byte [edx + eax]
mov ecx, dword [ebp - 0x24]
mov byte [ebx + ecx], al
inc esi
cmp dword [edi + 8], esi
jg 0x42b6a3
inc dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
cmp dword [edi + 0xc], eax
jg 0x42b698
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp + 0x10]
mov word [edx + 4], cx
mov eax, dword [ebp - 0x28]
mov word [edx + 6], ax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret