Function at 0x42a348
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x46c
mov esi, ecx
xor ebp, ebp
movzx eax, byte [esi + 0x12]
test eax, eax
mov ebx, 0
movzx edx, byte [esi + 0x22]
mov eax, 0
sete bl
test edx, edx
sete al
cmp ebx, eax
mov ebx, 0
setne bl
movzx eax, word [esi + 0x24]
mov dword [esp + 0x48], eax
movzx eax, word [esi + 0x26]
mov dword [esp + 0x4c], eax
movzx eax, word [esi + 0x28]
mov dword [esp + 0x50], eax
movzx eax, byte [esi + 0x2a]
mov dword [esp + 0x54], eax
movzx eax, byte [esi + 0x2b]
mov dword [esp + 0x58], eax
movzx eax, byte [esi + 0x2c]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x60]
push 0x400
push 0
push eax
call fcn.0046e690
add esp, 0xc
xor ecx, ecx
xor eax, eax
mov edx, dword [esp + 0x484]
test edx, edx
jle 0x42a5fe
mov dword [esp + 0xc], ebx
mov edi, dword [esp + 0x480]
mov dword [esp], ebp
mov dword [esp + 8], esi
mov esi, dword [esp + 0x484]
cmp eax, edi
jge 0x42a75e
xor ebx, ebx
mov edx, esi
sub edx, ecx
mov dword [esp + 4], edx
test edx, edx
jle 0x42a5e5
mov ebp, edi
sub ebp, eax
add ebp, 0xfffffff9
mov edx, edi
imul edx, ecx
add edx, eax
mov dword [esp + 0x10], edx
mov edx, ebx
imul edx, edi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x20]
cmp ebx, eax
jge 0x42a743
lea esi, [ebx + edx]
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
add esi, dword [esp + 0x10]
add esi, esi
add esi, esi
add esi, dword [ecx + 0x197c]
mov ebp, dword [esi]
test eax, eax
je 0x42a47d
mov edi, ebp
and edi, 0xff000000
shr edi, 0x18
mov eax, ebp
and eax, 0xff0000
shr eax, 8
or edi, eax
mov ecx, ebp
and ecx, 0xff00
shl ecx, 8
or edi, ecx
shl ebp, 0x18
or ebp, edi
mov ecx, dword [esp + 0x54]
mov edi, ebp
mov eax, dword [esp + 0x48]
mov dword [esp + 0x3c], ecx
shr edi, cl
and edi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x58]
mov ecx, eax
mov dword [esp + 0x460], edi
mov edi, ebp
shr edi, cl
mov ecx, dword [esp + 0x4c]
and edi, ecx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x464], edi
mov edi, dword [esp + 0x50]
shr ebp, cl
and ebp, edi
mov dword [esp + 0x468], ebp
mov ebp, 1
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x34]
mov ebx, dword [ebx + ebp*4]
mov eax, dword [esp + 0xc]
test eax, eax
je 0x42a51d
mov ecx, ebx
and ecx, 0xff000000
shr ecx, 0x18
mov eax, ebx
and eax, 0xff0000
shr eax, 8
or ecx, eax
mov edx, ebx
and edx, 0xff00
shl edx, 8
or ecx, edx
shl ebx, 0x18
or ebx, ecx
mov ecx, dword [esp + 0x3c]
mov edi, ebx
shr edi, cl
mov esi, dword [esp + 0x460]
neg esi
and edi, dword [esp + 0x38]
add esi, edi
mov eax, esi
cdq
xor esi, edx
sub esi, edx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x460], edi
mov edx, ebx
mov edi, dword [esp + 0x464]
shr edx, cl
neg edi
mov ecx, dword [esp + 0x2c]
and edx, dword [esp + 0x40]
add edi, edx
mov eax, edi
mov dword [esp + 0x44], edx
inc ebp
cdq
xor edi, edx
sub edi, edx
add edi, esi
mov edx, dword [esp + 0x44]
mov dword [esp + 0x464], edx
mov eax, dword [esp + 0x468]
neg eax
shr ebx, cl
and ebx, dword [esp + 0x28]
add eax, ebx
cdq
xor eax, edx
sub eax, edx
add eax, edi
cmp eax, 0xff
mov dword [esp + 0x468], ebx
mov ebx, 0xff
jle 0x42a5a3
mov eax, ebx
inc dword [esp + eax*4 + 0x60]
inc dword [esp]
cmp ebp, 7
jle 0x42a4e5
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
inc ebx
add edx, dword [esp + 0x480]
mov eax, dword [esp + 4]
cmp ebx, eax
jl 0x42a429
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x484]
mov edi, dword [esp + 0x480]
cmp edi, esi
jle 0x42a5ef
add eax, esi
xor ecx, ecx
jmp 0x42a5f3
xor eax, eax
add ecx, edi
cmp ecx, esi
jl 0x42a3ec
mov ebp, dword [esp]
mov ecx, dword [esp + 0x60]
lea ebx, [ecx + ecx]
add ebx, ebx
sub ebx, ecx
lea eax, [ecx + ebx*8]
add eax, eax
add eax, eax
mov esi, dword [esp + 0x64]
lea edi, [esi + esi]
add edi, edi
sub edi, esi
lea edx, [esi + edi*8]
add edx, edx
add edx, edx
add eax, edx
cdq
idiv ebp
cmp eax, 0x5a
jl 0x42a63b
xor eax, eax
add esp, 0x46c
pop ebx
pop ebp
pop esi
pop edi
ret 8
xor eax, eax
mov edi, 1
mov ebx, dword [esp + edi*4 + 0x60]
mov edx, edi
imul edx, ebx
imul edx, edi
add eax, edx
test ebx, ebx
je 0x42a734
mov edx, dword [esp + edi*4 + 0x5c]
add edx, edx
cmp ebx, edx
jg 0x42a734
inc edi
cmp edi, 8
jl 0x42a642
cmp edi, 0x100
jge 0x42a721
mov edx, edi
neg edx
add edx, 0x100
cmp edx, 6
jl 0x42a70c
lea esi, [edi + 1]
lea ebx, [edi + 2]
lea edx, [edi + 3]
mov dword [esp + 0xc], edx
lea edx, [edi + 4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 4], ecx
mov dword [esp], ebp
mov ecx, dword [esp + edi*4 + 0x60]
imul ecx, edi
imul ecx, edi
add ecx, dword [esp + 8]
mov ebp, dword [esp + edi*4 + 0x64]
imul ebp, esi
imul ebp, esi
add ebp, ecx
mov ecx, dword [esp + edi*4 + 0x68]
imul ecx, ebx
imul ecx, ebx
add ecx, ebp
mov ebp, dword [esp + edi*4 + 0x6c]
imul ebp, eax
imul ebp, eax
add ebp, ecx
mov ecx, dword [esp + edi*4 + 0x70]
imul ecx, edx
imul ecx, edx
add ecx, ebp
add esi, 5
mov dword [esp + 8], ecx
add ebx, 5
add eax, 5
add edx, 5
add edi, 5
cmp edi, 0xfa
jl 0x42a6aa
mov eax, ecx
mov ecx, dword [esp + 4]
mov ebp, dword [esp]
mov edx, dword [esp + edi*4 + 0x60]
imul edx, edi
imul edx, edi
add eax, edx
inc edi
cmp edi, 0x100
jl 0x42a70c
sub ebp, ecx
xor edx, edx
div ebp
add esp, 0x46c
pop ebx
pop ebp
pop esi
pop edi
ret 8
xor eax, eax
add esp, 0x46c
pop ebx
pop ebp
pop esi
pop edi
ret 8
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x484]
mov edi, dword [esp + 0x480]
jmp 0x42a5e5
mov ebp, dword [esp]
jmp 0x42a5fe