Function at 0x44e5d0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x34
push ebx
push ebp
mov ebp, dword [esp + 0x40]
push esi
mov eax, ebp
mov ebx, ebp
sar eax, 7
mov dword [esp + 0x3c], eax
mov eax, dword [0x57fc44]
and ebx, 0x7f
push edi
mov ecx, dword [eax + ebx*4 + 0x504]
mov edi, dword [eax + ebx*4 + 0x104]
push ecx
push 0xe
mov dword [esp + 0x20], edi
call fcn.00496ff0
mov ecx, dword [0x4e14e4]
add esp, 8
mov dword [ecx + ebp*4], eax
mov edx, dword [0x4e14e4]
mov ecx, dword [0x57fc44]
mov eax, dword [edx + ebp*4]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + ebx*4 + 0x504]
mov ecx, dword [ecx + ebx*4 + 0x104]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebx*4 + 0x4e4480]
test ecx, ecx
jne 0x44e7cf
push eax
push 0xe
call fcn.00496ff0
mov dword [ebx*4 + 0x4e4480], eax
mov dword [esp + 0x28], eax
mov eax, 0x400000
add esp, 8
cdq
idiv ebx
mov dword [esp + 0x10], eax
cdq
sub eax, edx
sar eax, 1
mov esi, eax
mov dword [esp + 0x3c], eax
mov ecx, esi
mov ebp, esi
shr ecx, 0x10
and ebp, 0xffff
mov dword [esp + 0x24], esi
test ebx, ebx
jle 0x44e7cb
mov dword [esp + 0x28], ebx
mov edi, dword [esp + 0x14]
xor edx, edx
shl ecx, 8
mov dl, byte [edi + 1]
mov dword [esp + 0x1c], edx
xor edx, edx
mov dl, byte [edi]
mov edi, edx
mov edx, dword [0x57fc44]
imul edi, dword [esp + 0x10]
add ecx, dword [edx]
add edi, eax
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x44e796
mov eax, ebp
cdq
and edx, 0xff
add eax, edx
sar eax, 8
mov dword [esp + 0x38], eax
mov eax, ecx
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x30]
mov ecx, edi
mov eax, edi
shr ecx, 0x10
and eax, 0xffff
lea esi, [edx + ecx*4]
cdq
mov ecx, dword [esi]
and edx, 0xff
add eax, edx
mov ebp, eax
mov eax, dword [esi + 4]
sub eax, ecx
cdq
and edx, 0xff
add eax, edx
mov edx, dword [esi + 0x100]
mov ecx, eax
mov eax, dword [esi]
sar ebp, 8
sar ecx, 8
imul ecx, ebp
add ecx, eax
mov eax, dword [esi + 0x104]
sub eax, edx
mov dword [esp + 0x34], edx
cdq
and edx, 0xff
add eax, edx
mov edx, dword [esp + 0x34]
sar eax, 8
imul eax, ebp
sub eax, ecx
add eax, edx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
imul eax, dword [esp + 0x38]
add eax, ecx
imul eax, ebx
shl eax, 2
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x20]
sar ecx, 1
add ecx, 0x8000
sar ecx, 0x10
mov byte [eax], cl
mov ecx, dword [esp + 0x10]
inc eax
add edi, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x1c], eax
jne 0x44e6df
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
add esi, ebp
mov ecx, esi
mov ebp, esi
shr ecx, 0x10
and ebp, 0xffff
add edi, 2
dec edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x28], edx
jne 0x44e692
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x48]
mov eax, 0x400000
cdq
idiv ebx
mov dword [esp + 0x14], eax
cdq
sub eax, edx
sar eax, 1
mov esi, eax
mov dword [esp + 0x3c], eax
mov ecx, esi
mov edx, esi
shr ecx, 0x10
and edx, 0xffff
mov dword [esp + 0x24], esi
test ebx, ebx
jle 0x44e912
mov dword [esp + 0x20], ebx
jmp 0x44e809
mov eax, dword [esp + 0x3c]
xor ebx, ebx
mov bl, byte [edi + 1]
mov dword [esp + 0x38], ebx
xor ebx, ebx
mov bl, byte [edi]
mov ebp, ebx
mov ebx, dword [esp + 0x40]
imul ebp, dword [esp + 0x14]
add ebp, eax
mov eax, dword [0x57fc44]
shl ecx, 6
mov ebx, dword [eax + ebx*4 + 4]
add ebx, ecx
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x44e8d0
mov eax, edx
mov dword [esp + 0x28], ecx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
mov dword [esp + 0x38], eax
mov eax, ebp
xor edx, edx
shr eax, 0x10
add eax, ebx
xor ecx, ecx
mov esi, ebp
mov dl, byte [eax]
mov cl, byte [eax + 1]
and esi, 0xffff
sub ecx, edx
imul ecx, esi
shl edx, 0x10
add ecx, edx
xor edx, edx
mov dl, byte [eax + 0x40]
mov edi, edx
xor edx, edx
mov dl, byte [eax + 0x41]
mov eax, edx
sub eax, edi
imul eax, esi
shl edi, 0x10
add eax, edi
sub eax, ecx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, eax
shl ecx, 5
sub ecx, eax
mov eax, dword [esp + 0x2c]
sar ecx, 0x18
mov byte [eax], cl
mov ecx, dword [esp + 0x14]
inc eax
add ebp, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
dec eax
mov dword [esp + 0x28], eax
jne 0x44e853
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
add esi, ecx
add edi, 2
mov ecx, esi
mov edx, esi
shr ecx, 0x10
and edx, 0xffff
dec eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], eax
jne 0x44e805
mov edx, dword [0x4e14e4]
mov eax, dword [esp + 0x48]
pop edi
pop esi
mov eax, dword [edx + eax*4]
pop ebp
pop ebx
add esp, 0x34
ret
mov ecx, dword [0x4e14e4]
pop edi
pop esi
mov eax, dword [ecx + ebp*4]
pop ebp
pop ebx
add esp, 0x34
ret