Function at 0x41c633
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
movzx eax, word [ecx]
push ebx
push esi
push edi
movzx eax, byte [eax + 0x4c2140]
mov edi, edx
xor edx, edx
mov dword [ebp - 4], edi
inc edx
lea ecx, [ecx + eax*2]
call fcn.0041c935
mov esi, eax
cmp esi, edi
jae case.0x41c74a.119
push 0x77
pop ebx
movzx edi, word [esi]
mov edx, esi
push 0x10
pop ecx
cmp edi, 0x7d
je 0x45ba49
aad 0xf3
add eax, dword [eax]
cmp edi, 0x75
je 0x45ba5f
mov eax, 0x92
cmp di, ax
je 0x45bc54
inc eax
cmp di, ax
je 0x45bc54
mov eax, 0xa1
cmp di, ax
je 0x45bc54
add eax, 0xfffffff3
cmp di, ax
je 0x45bc54
lea eax, [ecx + 0x78]
cmp di, ax
je 0x45bc40
inc eax
cmp di, ax
je 0x45bc40
lea eax, [ecx + 0x7a]
cmp di, ax
clc
je 0x45bc40
inc eax
cmp di, ax
je 0x45bc40
lea eax, [ecx + 0x73]
cmp di, ax
je 0x45bbd9
inc eax
cmp di, ax
je 0x45bbd9
lea eax, [ecx + 0x75]
cmp di, ax
je 0x45bbd9
inc eax
cmp di, ax
je 0x45bbd9
lea eax, [ecx + 0x71]
cmp di, ax
je 0x45bbd9
inc eax
cmp di, ax
je 0x45bbd9
lea eax, [ecx + 0x77]
cmp di, ax
je 0x45bbd9
add eax, 5
cmp di, ax
je 0x45bbd9
lea eax, [edi - 6]
cmp eax, 0x95
ja case.0x41c74a.23
movzx eax, byte [eax + 0x41c79b]
jmp dword [eax*4 + 0x41c773]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
push 0x22
pop ecx
movzx eax, word [edx + ecx]
add eax, 0xffffff9e
cmp eax, 0xb
ja case.0x41c74a.6
jmp 0x45bb2c
xor eax, eax
inc eax
jmp 0x41c753
cld
std
mov eax, ebx
mov edi, esi
sub eax, esi
inc eax
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
movzx edx, byte [eax + edi]
mov eax, dword [ebp - 8]
mov ecx, edx
shr ecx, 3
and edx, 7
movzx eax, byte [ecx + eax]
bts eax, edx
push dword [eax + edi*8 + 0x11048847]
cmp edi, ebx
jbe 0x45b9fb
mov edi, dword [ebp + 0x14]
sbb al, 0xe9
push ds
cmpsd dword [esi], dword es:[edi]
dec ebp
cld
jmp 0xe41c60f
hlt
stosd dword es:[edi], eax
inc dword [ebx]
jns 0x45b9ef
iretd
movzx eax, word [ecx]
mov bh, 1
cmp eax, edx
je 0x43cac7d3
mov eax, dword [ebp + 0xc]
add ecx, 2
cmp ecx, dword [eax + 0x20]
jb 0x45baf1
push dword [eax + edi*8 + 0x3966c033]
inc ebx
add cl, byte [edi]
test byte [ebp + 0x6afdfc0c], bh
ja 0x45bb72
movzx eax, word [edx + 2]
lea edx, [edx + eax*2]
inc edx
inc edx
cmp word [edx], cx
je 0x45bb19
cmp esi, ebx
jb 0x45bb31
cmp esi, edx
jbe 0xfc1bcd9
xchg byte [eax - 0x74f083ff], ch
dec ebp
adc byte [ebx - 0x6aef033f], cl
adc edi, dword [ecx]
pop eax
add al, 0x74
push es
mov ecx, dword [ebp + 0x10]
mov eax, ecx
cld
adc byte [ebp + 0x4583913], dl
cmp dword [eax + 4], ebx
je 0x45bb45
sub eax, 0xffffff8b
dec esp
jne 0x45bb3a
test eax, eax
lea ecx, [esp + ecx*4 + 1]
jl 0x45bb5c
invalid
jns 0x4dd2bb54
mov dword [edx], eax
add byte [ebp + 0x558bf44d], cl
cld
hlt
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0xc]
mov ecx, ebx
mov eax, 0x33fffcf2
or eax, dword [esi]
mov ebx, 0x6a0c0130
ja 0x45baf2
or al, 0x8b
retf
ror byte [ebp + 0x7c01674c], 0xf
add dword [edi + ecx + 0xf], edi
mov bh, 0x43
add cl, byte [ebp + 0x6658431c]
cmp dword [ebx], eax
jl 0x45bb83
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
pop eax
cmp word [ebx], ax
je 0x45bb53
jmp 0x1041c7b8
or al, 0xfc
invalid
shr ebx, 6
push 0xf
pop edx
cmp ax, dx
jne 0xcbf3f96
invalid
jns 0x45bbdc
cmp dword [ecx + 0xc], 0xffffffe8
mov byte [ecx + ebp*8], 4
call 0x52ec09b
add dword [edi + ecx + 0xf], edi
mov bh, 0x46
add al, 0x6a
adc byte [edx + 0x66], bl
cmp eax, edx
je 0x45bbd0
jmp 0x45bbc4
movzx eax, word [esi + 2]
lea cx, [edi + ecx - 0x7c]
xchg byte [ebx], cl
push es
mov ebx, 0x83202fb9
jge 0x45bcb9
cmp edi, ecx
stc
jne 0x45bc68
lea ecx, [esi + eax*2]
movzx eax, word [ecx]
mov edx, eax
cmp ax, bx
je 0x45bc68
mov esi, ecx
jmp 0x45bca2
xor eax, eax
mov edi, eax
test edi, edi
jne 0x45bc8b
push dword [ebp + 0x10]
mov edx, dword [ebp - 4]
cld
cld
ror dh, 1
cmpsb byte [esi], byte es:[edi]
sti
invalid
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
movzx eax, word [esi]
cmp ax, bx
je 0x45bc6c
call 0x17417431
or edi, esp
pmulhrw mm6, qword [edi + 0xf35ebf8]
inc esi
add cl, byte [ebp - 0x48f0b9cc]
push es
movzx edi, ax
jmp 0x45bcdc
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
movzx eax, word [esi]
cmp ax, bx
je 0x45bca7
or eax, 0x87b60f69
inc eax
and dword [eax + eax - 0x73], ecx
xor al, 0x46
movzx eax, di
xor edx, edx
inc edx
movzx eax, byte [eax + 0x4c2140]
lea ecx, [esi + eax*2]
call 0x43cac99c
mov esi, eax
cmp esi, dword [ebp - 4]
jae 0x43cac7d3
jmp 0x41c6ca