Function at 0x44ce10
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov edi, dword [0x4cfdd0]
mov esi, dword [ebp]
mov ebx, dword [ebp + 4]
mov esi, dword [edi + esi*4]
cmp ebx, dword [esi + 4]
jae 0x44cf20
mov esi, dword [esi + ebx*4 + 8]
or esi, esi
je 0x44cf20
cmp dword [esi], 0
je 0x44cf20
mov edi, dword [0x4cfdd4]
mov ebx, dword [ebp + 0x14]
sub ebx, dword [0x4cfdf4]
mov eax, dword [esi + 4]
add ebx, dword [esi + 0xc]
lea ecx, [eax + ebx]
cmp ebx, 0
jge 0x44ce77
cmp ecx, 0
jle 0x44cf20
neg ebx
sub eax, ebx
lea ebx, [esi + ebx*4 + 0x14]
sub ecx, dword [0x4cfddc]
jle 0x44ce9b
sub eax, ecx
jmp 0x44ce9b
cmp ebx, dword [0x4cfddc]
jge 0x44cf20
push eax
mov eax, dword [0x4cfde0]
imul ebx
add edi, eax
pop eax
lea ebx, [esi + 0x14]
sub ecx, dword [0x4cfddc]
jle 0x44ce9b
sub eax, ecx
mov edx, dword [esi]
mov ebp, dword [ebp + 0x10]
sub ebp, dword [0x4cfdf0]
xchg ebp, eax
add eax, dword [esi + 8]
lea ecx, [edx + eax - 1]
mov esi, dword [0x4cfde0]
cmp eax, 0
jge 0x44cef0
cmp ecx, 0
jl 0x44cf20
neg eax
mov dword [0x4cfdec], eax
cmp ecx, dword [0x4cfdd8]
jge 0x44cee0
sub edx, eax
mov eax, dword [0x4cfde4]
jmp 0x44cf30
mov edx, dword [0x4cfdd8]
jmp 0x44cf30
mov dword [0x4cfdec], 0
cmp eax, dword [0x4cfdd8]
jge 0x44cf20
shl eax, 2
add edi, eax
cmp ecx, dword [0x4cfdd8]
jl 0x44cf30
add edx, dword [0x4cfdd8]
sub edx, ecx
dec edx
jmp 0x44cf30
ret
mov dword [0x4cfde8], edx
mov dword [0x4cfde4], 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 0x44cf61
sbb ebx, ebx
and ebx, 0x20
add ebp, ebx
mov al, byte [ebp]
mov dl, byte [ebp + 0x20]
add ebp, 0x40
dec ecx
jne 0x44cf55
mov eax, dword [0x4cfdec]
or eax, eax
je 0x44d090
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 0x44cfe0
cmp ebp, 2
jb 0x44cff0
je 0x44d010
cmp ebp, 4
jb 0x44d040
je 0x44d070
mov ebx, dword [esi]
add esi, 4
sub eax, ecx
ja 0x44cf6e
je 0x44d090
xor ecx, ecx
mov ebp, dword [0x4cfde8]
sub ecx, eax
sub ebp, ecx
sbb eax, eax
and eax, ebp
add ecx, eax
sub ebp, eax
mov eax, ebx
jmp 0x44d0ed
mov ecx, dword [esi]
add esi, 4
jmp 0x44cf94
sub eax, ecx
ja 0x44cf6e
je 0x44d090
xor ecx, ecx
mov ebp, dword [0x4cfde8]
sub ecx, eax
jmp 0x44d210
add esi, ecx
add esi, ecx
add esi, ecx
sub eax, ecx
ja 0x44cf6e
je 0x44d090
lea esi, [esi + eax*2]
xor ecx, ecx
add esi, eax
sub ecx, eax
mov ebp, dword [0x4cfde8]
jmp 0x44d220
mov ebx, dword [esi]
add esi, 3
sub eax, ecx
ja 0x44cf6e
je 0x44d090
xor ecx, ecx
mov ebp, dword [0x4cfde8]
sub ecx, eax
sub ebp, ecx
sbb eax, eax
and eax, ebp
add ecx, eax
sub ebp, eax
mov eax, ebx
jmp 0x44d25f
lea esi, [esi + ecx*4]
sub eax, ecx
ja 0x44cf6e
je 0x44d090
xor ecx, ecx
mov ebp, dword [0x4cfde8]
sub ecx, eax
lea esi, [esi + eax*4]
jmp 0x44d280
mov ebp, dword [0x4cfde8]
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 0x44d200
cmp eax, 2
jb 0x44d210
je 0x44d220
cmp eax, 4
jb 0x44d250
je 0x44d280
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 0x44d101
lea edi, [edi + ecx*4]
xor ecx, ecx
jmp 0x44d1f2
cmp eax, 0xff
jne 0x44d111
mov eax, esi
rep stosd dword es:[edi], eax
jmp 0x44d1f2
push ebp
mov ebp, eax
movzx ebx, byte [edi]
or ebx, ebx
jne 0x44d122
mov dword [edi], esi
jmp 0x44d1e7
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 0x44d1e6
mov ecx, eax
xor edx, edx
mov eax, 0x1000000
div ecx
mov dword [0x4cfdf8], 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 [0x4cfdf8]
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 [0x4cfdf8]
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 [0x4cfdf8]
mov byte [edi + 3], dl
pop ecx
add edi, 4
dec ecx
jne 0x44d114
pop ebp
pop esi
or ebp, ebp
jne 0x44d096
jmp 0x44d37c
mov ecx, dword [esi]
add esi, 4
jmp 0x44d0c0
lea edi, [edi + ecx*4]
sub ebp, ecx
ja 0x44d096
jmp 0x44d37c
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 0x44d22a
or ebp, ebp
jne 0x44d096
jmp 0x44d37c
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 0x44d096
jmp 0x44d37c
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 0x44d366
cmp ebp, 0xff
je 0x44d2a5
movzx ebx, byte [edi]
or ebx, ebx
jne 0x44d2ae
mov eax, dword [esi]
mov dword [edi], eax
jmp 0x44d366
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 0x44d365
mov ecx, eax
xor edx, edx
mov eax, 0x1000000
div ecx
mov dword [0x4cfdf8], 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 [0x4cfdf8]
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 [0x4cfdf8]
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 [0x4cfdf8]
mov byte [edi + 3], dl
pop ecx
add esi, 4
add edi, 4
dec ecx
jne 0x44d28b
pop ebp
or ebp, ebp
jne 0x44d096
pop ebp
pop ebx
mov eax, dword [0x4cfde4]
pop edi
add ebx, 4
add edi, eax
dec ebp
jne 0x44cf3c
ret