Function at 0x44de80
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov edi, dword [0x4cf280]
mov esi, dword [ebp]
mov ebx, dword [ebp + 4]
mov esi, dword [edi + esi*4]
cmp ebx, dword [esi + 4]
jae 0x44df90
mov esi, dword [esi + ebx*4 + 8]
or esi, esi
je 0x44df90
cmp dword [esi], 0
je 0x44df90
mov edi, dword [0x4cf284]
mov ebx, dword [ebp + 0x14]
sub ebx, dword [0x4cf2a4]
mov eax, dword [esi + 4]
add ebx, dword [esi + 0xc]
lea ecx, [eax + ebx]
cmp ebx, 0
jge 0x44dee7
cmp ecx, 0
jle 0x44df90
neg ebx
sub eax, ebx
lea ebx, [esi + ebx*4 + 0x14]
sub ecx, dword [0x4cf28c]
jle 0x44df0b
sub eax, ecx
jmp 0x44df0b
cmp ebx, dword [0x4cf28c]
jge 0x44df90
push eax
mov eax, dword [0x4cf290]
imul ebx
add edi, eax
pop eax
lea ebx, [esi + 0x14]
sub ecx, dword [0x4cf28c]
jle 0x44df0b
sub eax, ecx
mov edx, dword [esi]
mov ebp, dword [ebp + 0x10]
sub ebp, dword [0x4cf2a0]
xchg ebp, eax
add eax, dword [esi + 8]
lea ecx, [edx + eax - 1]
mov esi, dword [0x4cf290]
cmp eax, 0
jge 0x44df60
cmp ecx, 0
jl 0x44df90
neg eax
mov dword [0x4cf29c], eax
cmp ecx, dword [0x4cf288]
jge 0x44df50
sub edx, eax
mov eax, dword [0x4cf294]
jmp 0x44dfa0
mov edx, dword [0x4cf288]
jmp 0x44dfa0
mov dword [0x4cf29c], 0
cmp eax, dword [0x4cf288]
jge 0x44df90
shl eax, 2
add edi, eax
cmp ecx, dword [0x4cf288]
jl 0x44dfa0
add edx, dword [0x4cf288]
sub edx, ecx
dec edx
jmp 0x44dfa0
ret
mov dword [0x4cf298], edx
mov dword [0x4cf294], esi
push edi
mov esi, dword [ebx]
push ebx
push ebp
movzx ecx, word [esi]
add esi, 2
shr ecx, 6
mov ebp, esi
je 0x44dfd1
sbb ebx, ebx
and ebx, 0x20
add ebp, ebx
mov al, byte [ebp]
mov dl, byte [ebp + 0x20]
add ebp, 0x40
dec ecx
jne 0x44dfc5
mov eax, dword [0x4cf29c]
or eax, eax
je 0x44e100
inc esi
and esi, 0xfffffffe
movzx ecx, word [esi]
add esi, 2
mov ebp, ecx
mov ebx, ecx
shr ebp, 0xd
and ebx, 0x1800
shr ebx, 0xb
and ecx, 0x7ff
add esi, ebx
or ecx, ecx
je 0x44e050
cmp ebp, 2
jb 0x44e060
je 0x44e080
cmp ebp, 4
jb 0x44e0b0
je 0x44e0e0
mov ebx, dword [esi]
add esi, 4
sub eax, ecx
ja 0x44dfde
je 0x44e100
xor ecx, ecx
mov ebp, dword [0x4cf298]
sub ecx, eax
sub ebp, ecx
sbb eax, eax
and eax, ebp
add ecx, eax
sub ebp, eax
mov eax, ebx
jmp 0x44e15d
mov ecx, dword [esi]
add esi, 4
jmp 0x44e004
sub eax, ecx
ja 0x44dfde
je 0x44e100
xor ecx, ecx
mov ebp, dword [0x4cf298]
sub ecx, eax
jmp 0x44e280
add esi, ecx
add esi, ecx
add esi, ecx
sub eax, ecx
ja 0x44dfde
je 0x44e100
lea esi, [esi + eax*2]
xor ecx, ecx
add esi, eax
sub ecx, eax
mov ebp, dword [0x4cf298]
jmp 0x44e290
mov ebx, dword [esi]
add esi, 3
sub eax, ecx
ja 0x44dfde
je 0x44e100
xor ecx, ecx
mov ebp, dword [0x4cf298]
sub ecx, eax
sub ebp, ecx
sbb eax, eax
and eax, ebp
add ecx, eax
sub ebp, eax
mov eax, ebx
jmp 0x44e2cf
lea esi, [esi + ecx*4]
sub eax, ecx
ja 0x44dfde
je 0x44e100
xor ecx, ecx
mov ebp, dword [0x4cf298]
sub ecx, eax
lea esi, [esi + eax*4]
jmp 0x44e2f0
mov ebp, dword [0x4cf298]
inc esi
and esi, 0xfffffffe
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
mov ebx, ecx
shr eax, 0xd
and ebx, 0x1800
shr ebx, 0xb
and ecx, 0x7ff
add esi, ebx
or ecx, ecx
je 0x44e270
cmp eax, 2
jb 0x44e280
je 0x44e290
cmp eax, 4
jb 0x44e2c0
je 0x44e2f0
sub ebp, ecx
sbb eax, eax
and eax, ebp
add ecx, eax
sub ebp, eax
mov eax, dword [esi]
add esi, 4
push esi
mov esi, eax
and eax, 0xff
jne 0x44e171
lea edi, [edi + ecx*4]
xor ecx, ecx
jmp 0x44e262
cmp eax, 0xff
jne 0x44e181
mov eax, esi
rep stosd dword es:[edi], eax
jmp 0x44e262
push ebp
mov ebp, eax
movzx ebx, byte [edi]
or ebx, ebx
jne 0x44e192
mov dword [edi], esi
jmp 0x44e257
push ecx
mov edx, 0xff
sub edx, ebp
mov eax, 0xff
sub eax, ebx
mul edx
sub eax, 0xfe01
neg eax
mov edx, 0x10203
mul edx
shr eax, 0x18
mov byte [edi], al
or eax, eax
je 0x44e256
mov ecx, eax
xor edx, edx
mov eax, 0x1000000
div ecx
mov dword [0x4cf2a8], eax
mov eax, esi
shr eax, 8
and eax, 0xff
mul ebp
mov ecx, 0xff
mul ecx
mov ecx, eax
mov eax, 0xff
sub eax, ebp
mul ebx
movzx edx, byte [edi + 1]
mul edx
add eax, ecx
mul dword [0x4cf2a8]
mov byte [edi + 1], dl
mov eax, esi
shr eax, 0x10
and eax, 0xff
mul ebp
mov ecx, 0xff
mul ecx
mov ecx, eax
mov eax, 0xff
sub eax, ebp
mul ebx
movzx edx, byte [edi + 2]
mul edx
add eax, ecx
mul dword [0x4cf2a8]
mov byte [edi + 2], dl
mov eax, esi
shr eax, 0x18
mul ebp
mov ecx, 0xff
mul ecx
mov ecx, eax
mov eax, 0xff
sub eax, ebp
mul ebx
movzx edx, byte [edi + 3]
mul edx
add eax, ecx
mul dword [0x4cf2a8]
mov byte [edi + 3], dl
pop ecx
add edi, 4
dec ecx
jne 0x44e184
pop ebp
pop esi
or ebp, ebp
jne 0x44e106
jmp 0x44e3ec
mov ecx, dword [esi]
add esi, 4
jmp 0x44e130
lea edi, [edi + ecx*4]
sub ebp, ecx
ja 0x44e106
jmp 0x44e3ec
sub ebp, ecx
sbb eax, eax
and eax, ebp
add ecx, eax
sub ebp, eax
mov eax, dword [esi]
add edi, 4
shl eax, 8
add esi, 3
or eax, 0xff
dec ecx
mov dword [edi - 4], eax
jne 0x44e29a
or ebp, ebp
jne 0x44e106
jmp 0x44e3ec
sub ebp, ecx
sbb eax, eax
and eax, ebp
add ecx, eax
sub ebp, eax
mov eax, dword [esi]
add esi, 3
shl eax, 8
or eax, 0xff
rep stosd dword es:[edi], eax
or ebp, ebp
jne 0x44e106
jmp 0x44e3ec
sub ebp, ecx
sbb eax, eax
and eax, ebp
add ecx, eax
sub ebp, eax
push ebp
movzx ebp, byte [esi]
or ebp, ebp
je 0x44e3d6
cmp ebp, 0xff
je 0x44e315
movzx ebx, byte [edi]
or ebx, ebx
jne 0x44e31e
mov eax, dword [esi]
mov dword [edi], eax
jmp 0x44e3d6
push ecx
mov edx, 0xff
sub edx, ebp
mov eax, 0xff
sub eax, ebx
mul edx
sub eax, 0xfe01
neg eax
mov edx, 0x10203
mul edx
shr eax, 0x18
mov byte [edi], al
or eax, eax
je 0x44e3d5
mov ecx, eax
xor edx, edx
mov eax, 0x1000000
div ecx
mov dword [0x4cf2a8], eax
movzx eax, byte [esi + 1]
mul ebp
mov ecx, 0xff
mul ecx
mov ecx, eax
mov eax, 0xff
sub eax, ebp
mul ebx
movzx edx, byte [edi + 1]
mul edx
add eax, ecx
mul dword [0x4cf2a8]
mov byte [edi + 1], dl
movzx eax, byte [esi + 2]
mul ebp
mov ecx, 0xff
mul ecx
mov ecx, eax
mov eax, 0xff
sub eax, ebp
mul ebx
movzx edx, byte [edi + 2]
mul edx
add eax, ecx
mul dword [0x4cf2a8]
mov byte [edi + 2], dl
movzx eax, byte [esi + 3]
mul ebp
mov ecx, 0xff
mul ecx
mov ecx, eax
mov eax, 0xff
sub eax, ebp
mul ebx
movzx edx, byte [edi + 3]
mul edx
add eax, ecx
mul dword [0x4cf2a8]
mov byte [edi + 3], dl
pop ecx
add esi, 4
add edi, 4
dec ecx
jne 0x44e2fb
pop ebp
or ebp, ebp
jne 0x44e106
pop ebp
pop ebx
mov eax, dword [0x4cf294]
pop edi
add ebx, 4
add edi, eax
dec ebp
jne 0x44dfac
ret