Function at 0x44e500
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x2c
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x28], edi
mov al, byte [edi + 0x141]
mov cx, word [edi + 0x142]
mov dl, byte [edi + 0x34]
mov byte [esp + 0x18], al
mov ax, word [edi + 0x144]
mov word [esp + 0x38], cx
mov cx, word [edi + 0x146]
mov word [esp + 0x34], ax
mov eax, dword [edi + 8]
mov word [esp + 0x2c], cx
xor cl, cl
mov byte [esp + 0x14], dl
mov al, byte [eax + 0x3f7]
mov byte [esp + 0x10], cl
test al, al
jne 0x44e573
mov al, byte [edi + 0x3484]
cmp al, 1
je 0x44e563
cmp al, 2
jne 0x44e569
mov byte [esp + 0x10], al
mov cl, al
cmp al, 4
je 0x44e57b
cmp al, 8
jne 0x44e581
jmp 0x44e57b
cmp al, 1
je 0x44e57b
cmp al, 2
jne 0x44e581
mov byte [esp + 0x10], al
mov cl, al
mov ebx, dword [edi + 0x16c]
cmp cl, 1
mov dword [esp + 0x30], ebx
je 0x44e595
cmp cl, 2
jne 0x44e5d3
test dl, dl
jbe 0x44e5cc
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
and esi, 1
and edx, 0xff
mov eax, esi
cmp eax, ebx
jae 0x44e5bf
mov byte [ecx + eax], 0xf1
add eax, 2
cmp eax, ebx
jb 0x44e5b4
add ecx, ebx
dec edx
jne 0x44e5ae
mov dl, byte [esp + 0x14]
mov cl, byte [esp + 0x10]
mov byte [edi + 0xef], 0x81
cmp cl, 4
je 0x44e5e1
cmp cl, 8
jne 0x44e68d
test dl, dl
jbe 0x44e68d
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
and eax, 0xff
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x18]
test al, al
jbe 0x44e674
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
and edx, 0xffff
mov dword [esp + 0x1c], 0
and esi, 0xff
mov eax, dword [esp + 0x1c]
and eax, 0x80000001
jns 0x44e632
dec eax
or eax, 0xfffffffe
inc eax
jne 0x44e639
cmp cl, 4
je 0x44e643
cmp eax, 1
jne 0x44e666
cmp cl, 8
jne 0x44e666
mov ecx, edx
mov eax, 0xf1f1f1f1
mov ebx, ecx
mov edi, ebp
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebx
mov ebx, dword [esp + 0x30]
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x28]
mov cl, byte [esp + 0x10]
mov eax, dword [esp + 0x1c]
add ebp, edx
inc eax
dec esi
mov dword [esp + 0x1c], eax
jne 0x44e622
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
add ebp, ebx
dec eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], eax
jne 0x44e5fe
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
and ebp, 0xffff
and ecx, 0xffff
mov eax, ebp
mov dword [esp + 0x38], ecx
cdq
idiv ecx
test edx, edx
je 0x44e72c
mov al, byte [esp + 0x14]
test al, al
jbe 0x44e72c
mov eax, dword [esp + 0x14]
xor edx, edx
and eax, 0xff
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
mov al, byte [esp + 0x18]
test al, al
jbe 0x44e717
mov eax, dword [esp + 0x18]
mov esi, ebp
and eax, 0xff
sub esi, ecx
imul edx, eax
add edx, ecx
mov ecx, dword [esp + 0x40]
add edx, ecx
mov dword [esp + 0x24], eax
mov ecx, esi
or eax, 0xffffffff
mov ebx, ecx
mov edi, edx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebx
add edx, ebp
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x24], eax
jne 0x44e6ed
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
add edx, ebp
dec eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
jne 0x44e6c9
mov eax, dword [edi + 0x158]
test eax, eax
je 0x44e77d
mov al, byte [esp + 0x14]
test al, al
jbe 0x44e77d
mov esi, dword [esp + 0x14]
xor edx, edx
and esi, 0xff
mov al, byte [esp + 0x18]
test al, al
jbe 0x44e779
mov ecx, dword [esp + 0x18]
mov eax, edx
and ecx, 0xff
imul eax, ecx
xor ebx, ebx
mov ebp, dword [esp + 0x40]
mov bx, word [edi + 0x146]
imul ebx, eax
inc eax
dec ecx
mov byte [ebx + ebp], 0xff
jne 0x44e761
inc edx
dec esi
jne 0x44e74a
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x2c
ret 4