Function at 0x49bdf0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
invalid
mov eax, dword [ecx + 0xe934]
inc dword [ecx + 0xe92c]
inc eax
imul eax, dword [ecx + 0xe93c]
push ebx
push esi
push edi
add eax, dword [ecx + 0xe938]
cmp dword [ecx + 0xe92c], eax
jb 0x49c036
mov eax, dword [ecx + 0xe954]
mov edx, dword [ecx + 0xe944]
mov dword [ecx + 0xe934], 0
mov dword [ecx + 0xe938], 0
mov dword [ecx + 0xe92c], 0
mov dword [ecx + 0xe948], edx
cmp dword [ecx + 0xe950], eax
je 0x49be57
mov dword [ecx + 0xe950], eax
mov ebx, dword [ecx + 0xe90c]
and ebx, 0x20
jne 0x49bf25
mov eax, dword [ecx + 0xe950]
cmp eax, 0x100
jae 0x49be7d
movzx eax, byte [eax + ecx + 0xd060]
jmp 0x49be82
mov eax, 0xff
mov dword [ecx + 0xe94c], eax
cmp eax, 0xf0
jae 0x49bea3
cmp dword [ecx + eax*4 + 0xcac0], 0
jne 0x49bea3
mov dword [ecx + 0xe94c], 0xfe
mov eax, dword [ecx + 0xe94c]
cmp eax, 0xf0
jb 0x49bf19
cmp eax, 0xff
je 0x49c0a8
mov eax, dword [ecx + 0xe950]
cmp eax, 0x100
jae 0x49c0a8
inc eax
mov dword [ecx + 0xe950], eax
cmp eax, 0x100
jae 0x49bee4
movzx eax, byte [eax + ecx + 0xd060]
jmp 0x49bee9
mov eax, 0xff
mov dword [ecx + 0xe94c], eax
cmp eax, 0xf0
jae 0x49beb0
cmp dword [ecx + eax*4 + 0xcac0], 0
jne 0x49bf12
mov dword [ecx + 0xe94c], 0xfe
mov eax, dword [ecx + 0xe94c]
jmp 0x49beb0
cmp eax, 0xf0
jae 0x49beb0
mov eax, dword [ecx + 0xe950]
mov dword [ecx + 0xe954], eax
mov eax, dword [ecx + 0xe94c]
cmp eax, 0xf0
jae 0x49c0a8
cmp dword [ecx + eax*4 + 0xcac0], 0
lea edi, [ecx + eax*4]
je 0x49c0a8
lea esi, [ecx + eax*2]
movzx eax, word [esi + 0xce80]
cmp edx, eax
jb 0x49bf5f
mov dword [ecx + 0xe948], 0
mov edx, dword [ecx + 0xe948]
inc edx
mov dword [ecx + 0xe944], edx
movzx eax, word [esi + 0xce80]
cmp edx, eax
jb 0x49bf92
test ebx, ebx
jne 0x49bf88
mov eax, dword [ecx + 0xe950]
inc eax
mov dword [ecx + 0xe954], eax
mov dword [ecx + 0xe944], 0
mov esi, dword [ecx + 0xe910]
xor ebx, ebx
mov eax, dword [ecx + 0xe948]
imul eax, esi
lea edx, [eax + eax*2]
mov eax, dword [edi + 0xcac0]
lea edi, [eax + edx*2]
test esi, esi
je 0x49c036
lea edx, [ecx + 0xf7]
lea ecx, [ecx]
movzx eax, byte [edi]
lea edx, [edx + 0x100]
mov byte [edx - 0x101], al
lea edi, [edi + 6]
movzx eax, byte [edi - 5]
inc ebx
mov byte [edx - 0x100], al
movzx eax, byte [edi - 4]
mov byte [edx - 0xff], al
movzx eax, byte [edi - 2]
mov byte [edx - 0xfe], al
movzx eax, byte [edi - 3]
mov byte [edx - 0xfd], al
movzx eax, byte [edi - 1]
and dword [edx - 0x1d3], 0xfff0ffff
mov byte [edx - 0xfc], al
mov eax, dword [edx - 0x18f]
mov dword [edx - 0x1e3], eax
mov eax, dword [edx - 0x193]
mov dword [edx - 0x1e7], eax
mov byte [edx - 0x11f], 0
cmp ebx, dword [ecx + 0xe910]
jb 0x49bfc0
cmp dword [ecx + 0xe93c], 0
jne 0x49c049
mov dword [ecx + 0xe93c], 1
or dword [ecx + 0xe90c], 0x1000
mov eax, dword [ecx + 0xe92c]
mov esi, dword [ecx + 0xe90c]
test eax, eax
je 0x49c0a0
and esi, 0xffffefff
test byte [ecx + 0xe920], 4
mov dword [ecx + 0xe90c], esi
jne 0x49c0a0
mov edx, dword [ecx + 0xe934]
mov edi, dword [ecx + 0xe93c]
inc edx
imul edx, edi
cmp eax, edx
jae 0x49c0a0
xor edx, edx
div edi
test edx, edx
jne 0x49c0a0
or esi, 0x1000
mov dword [ecx + 0xe90c], esi
pop edi
pop esi
pop ebx
jmp 0x499c90
pop edi
pop esi
xor eax, eax
pop ebx
ret