Function at 0x42b6c0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x314
mov eax, dword [0x4a1824]
xor eax, esp
mov dword [esp + 0x310], eax
cmp dword [ecx], 0
mov dword [esp + 0xc], ecx
je 0x42ba71
fld qword [0x4853e8]
push ebx
push ebp
mov ebp, dword [esp + 8]
push esi
xor ebx, ebx
push edi
mov eax, ebx
sub eax, 0
je 0x42b71f
sub eax, 1
je 0x42b70f
sub eax, 1
jne 0x42b731
fld dword [esp + 0x330]
lea ebp, [esp + 0x20]
jmp 0x42b72d
fld dword [esp + 0x32c]
lea ebp, [esp + 0x120]
jmp 0x42b72d
fld dword [esp + 0x328]
lea ebp, [esp + 0x220]
fstp dword [esp + 0x18]
fldz
xor esi, esi
fld dword [esp + 0x18]
mov dword [esp + 0x14], esi
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x42b7b4
fchs
lea edi, [ebp + 0xff]
fstp dword [esp + 0x18]
fidivr dword [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld dword [esp + 0x18]
call fcn.00453220
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
or eax, 0xc00
fld qword [0x4853e8]
mov dword [esp + 0x10], eax
fmul st(1), st(0)
add esi, 1
fldcw word [esp + 0x10]
sub edi, 1
cmp esi, 0x100
fxch st(1)
fistp dword [esp + 0x10]
mov al, byte [esp + 0x10]
mov byte [edi + 1], al
fldcw word [esp + 0x14]
mov dword [esp + 0x14], esi
jl 0x42b754
jmp 0x42b812
fstp st(0)
fidivr dword [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld dword [esp + 0x18]
call fcn.00453220
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
or eax, 0xc00
fld qword [0x4853e8]
mov dword [esp + 0x10], eax
fmul st(1), st(0)
add esi, 1
cmp esi, 0x100
fldcw word [esp + 0x10]
fxch st(1)
fistp dword [esp + 0x10]
mov cl, byte [esp + 0x10]
mov byte [esi + ebp - 1], cl
fldcw word [esp + 0x14]
mov dword [esp + 0x14], esi
jl 0x42b7b6
add ebx, 1
cmp ebx, 3
jl 0x42b6f1
mov edi, dword [esp + 0x1c]
fstp st(0)
xor eax, eax
cmp dword [edi], eax
mov dword [esp + 0x18], eax
jle 0x42ba6d
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x18]
push edx
mov ecx, edi
call fcn.0042a240
mov ebp, dword [edi + 4]
add ebp, dword [esp + 0x14]
cmp dword [ebp + 0x1c], 0
je 0x42b91d
xor ebx, ebx
cmp dword [ebp + 0x10], ebx
jle 0x42b91d
mov edi, edi
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x24]
mov ecx, eax
imul ecx, ebx
xor edi, edi
test eax, eax
lea ecx, [edx + ecx*4]
jle 0x42b90d
jmp 0x42b880
movzx ax, byte [ecx + 3]
mov dx, 0xff
sub dx, ax
movzx eax, dx
test ax, ax
je 0x42b8fe
cmp ax, 0xff
je 0x42b8fe
movzx esi, ax
movzx eax, byte [ecx]
imul eax, eax, 0xff
cdq
idiv esi
movzx eax, ax
cmp ax, 0x100
movzx eax, ax
jb 0x42b8ba
mov eax, 0xff
mov byte [ecx], al
movzx eax, byte [ecx + 1]
imul eax, eax, 0xff
cdq
idiv esi
movzx eax, ax
cmp ax, 0x100
movzx eax, ax
jb 0x42b8da
mov eax, 0xff
mov byte [ecx + 1], al
movzx eax, byte [ecx + 2]
imul eax, eax, 0xff
cdq
idiv esi
movzx eax, ax
cmp ax, 0x100
movzx eax, ax
jb 0x42b8fb
mov eax, 0xff
mov byte [ecx + 2], al
add edi, 1
add ecx, 4
cmp edi, dword [ebp + 0xc]
jl 0x42b880
add ebx, 1
cmp ebx, dword [ebp + 0x10]
jl 0x42b860
mov edi, dword [esp + 0x1c]
xor esi, esi
cmp dword [ebp + 0x10], esi
jle 0x42b981
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x24]
mov eax, ecx
imul eax, esi
lea eax, [edx + eax*4]
xor edx, edx
test ecx, ecx
jle 0x42b979
jmp 0x42b940
movzx ecx, byte [eax]
movzx ecx, byte [esp + ecx + 0x20]
mov byte [eax], cl
movzx ecx, byte [eax + 1]
movzx ecx, byte [esp + ecx + 0x120]
add eax, 1
mov byte [eax], cl
movzx ecx, byte [eax + 1]
movzx ecx, byte [esp + ecx + 0x220]
add eax, 1
mov byte [eax], cl
mov ecx, dword [ebp + 0xc]
add edx, 1
add eax, 2
cmp edx, ecx
jl 0x42b940
add esi, 1
cmp esi, dword [ebp + 0x10]
jl 0x42b927
cmp dword [ebp + 0x1c], 0
je 0x42ba55
xor edx, edx
cmp dword [ebp + 0x10], edx
mov dword [esp + 0x10], edx
jle 0x42ba55
lea ebx, [ebx]
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x24]
mov ecx, eax
imul ecx, edx
xor ebx, ebx
test eax, eax
lea ecx, [esi + ecx*4]
jle 0x42ba41
jmp 0x42b9c0
movzx dx, byte [ecx + 3]
mov ax, 0xff
sub ax, dx
movzx eax, ax
test ax, ax
je 0x42ba32
cmp ax, 0xff
je 0x42ba32
movzx esi, byte [ecx]
movzx edi, ax
imul esi, edi
mov eax, 0x80808081
imul esi
add edx, esi
movzx esi, byte [ecx + 1]
sar edx, 7
imul esi, edi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx], al
mov eax, 0x80808081
imul esi
add edx, esi
movzx esi, byte [ecx + 2]
sar edx, 7
imul esi, edi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 1], al
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 2], al
add ebx, 1
add ecx, 4
cmp ebx, dword [ebp + 0xc]
jl 0x42b9c0
mov edx, dword [esp + 0x10]
add edx, 1
cmp edx, dword [ebp + 0x10]
mov dword [esp + 0x10], edx
jl 0x42b9a0
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add dword [esp + 0x14], 0x48
add eax, 1
cmp eax, dword [edi]
mov dword [esp + 0x18], eax
jl 0x42b836
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x310]
xor ecx, esp
call fcn.00452be3
add esp, 0x314
ret 0xc