Function at 0x44b5f0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0xc]
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
test ecx, ecx
jne 0x44b615
push edi
call fcn.0044bf10
mov ecx, eax
add esp, 4
add ecx, dword [edi]
add ecx, edi
mov dword [ebp + 0xc], ecx
mov ebx, dword [ebp + 0x10]
cmp word [ebx + 0x16], 0x10
je 0x44b632
cmp dword [edi + 8], 0
jl 0x44b632
mov eax, dword [ebx + 4]
dec eax
imul eax, dword [ebx + 8]
add eax, dword [ebx + 0x28]
jmp 0x44b635
mov eax, dword [ebx + 0x28]
cmp dword [edi + 0x10], 3
mov dword [ebp + 8], eax
mov dword [ebp - 0xc], ecx
jne 0x44b647
add ecx, 0xc
mov dword [ebp + 0xc], ecx
mov eax, dword [edi + 8]
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 8], eax
test eax, eax
jle 0x44ba25
mov edx, dword [ebp + 8]
lea ecx, [ecx]
movzx eax, word [edi + 0xe]
mov esi, edx
cmp eax, 1
jne 0x44b67f
push dword [ebx + 8]
push dword [ebp + 0xc]
push edx
call fcn.00592150
add esp, 0xc
jmp 0x44b9e1
cmp eax, 4
jne 0x44b6b1
xor edx, edx
cmp dword [edi + 4], edx
jle 0x44b9e1
nop
mov al, byte [ecx]
inc edx
shr al, 4
mov byte [esi], al
inc esi
cmp edx, dword [edi + 4]
je 0x44b6a6
mov al, byte [ecx]
and al, 0xf
mov byte [esi], al
inc esi
inc ecx
inc edx
cmp edx, dword [edi + 4]
jl 0x44b690
jmp 0x44b9e1
cmp eax, 8
jne 0x44b6ca
push dword [edi + 4]
push dword [ebp + 0xc]
push edx
call fcn.00592150
add esp, 0xc
jmp 0x44b9e1
cmp eax, 0x10
jne 0x44b7ff
mov eax, dword [ebp - 0xc]
mov dword [ebp - 4], 0
cmp dword [eax], 0xf800
jne 0x44b76f
cmp dword [edi + 4], 0
jle 0x44b9e1
movzx eax, word [ecx]
lea esi, [esi + 3]
shr eax, 0xb
lea ecx, [ecx + 2]
imul ebx, eax, 0xff
mov eax, 0x8421085
mul ebx
sub ebx, edx
shr ebx, 1
add ebx, edx
shr ebx, 4
mov byte [esi - 3], bl
movzx eax, word [ecx - 2]
shr eax, 6
and eax, 0x1f
imul ebx, eax, 0xff
mov eax, 0x8421085
mul ebx
sub ebx, edx
shr ebx, 1
add ebx, edx
shr ebx, 4
mov byte [esi - 2], bl
movzx eax, word [ecx - 2]
and eax, 0x1f
imul ebx, eax, 0xff
mov eax, 0x8421085
mul ebx
mov eax, dword [ebp - 4]
sub ebx, edx
inc eax
shr ebx, 1
add ebx, edx
mov dword [ebp - 4], eax
shr ebx, 4
mov byte [esi - 1], bl
cmp eax, dword [edi + 4]
jl 0x44b6f3
mov ebx, dword [ebp + 0x10]
jmp 0x44b9e1
cmp dword [edi + 4], 0
jle 0x44b9e1
lea esp, [esp]
movzx eax, word [ecx]
lea esi, [esi + 3]
shr eax, 0xa
lea ecx, [ecx + 2]
and eax, 0x1f
imul ebx, eax, 0xff
mov eax, 0x8421085
mul ebx
sub ebx, edx
shr ebx, 1
add ebx, edx
shr ebx, 4
mov byte [esi - 3], bl
movzx eax, word [ecx - 2]
shr eax, 5
and eax, 0x1f
imul ebx, eax, 0xff
mov eax, 0x8421085
mul ebx
sub ebx, edx
shr ebx, 1
add ebx, edx
shr ebx, 4
mov byte [esi - 2], bl
movzx eax, word [ecx - 2]
and eax, 0x1f
imul ebx, eax, 0xff
mov eax, 0x8421085
mul ebx
mov eax, dword [ebp - 4]
sub ebx, edx
inc eax
shr ebx, 1
add ebx, edx
mov dword [ebp - 4], eax
shr ebx, 4
mov byte [esi - 1], bl
cmp eax, dword [edi + 4]
jl 0x44b780
mov ebx, dword [ebp + 0x10]
jmp 0x44b9e1
test byte [ebx + 0xc], 0x40
je 0x44b8b5
cmp eax, 0x18
jne 0x44b836
xor edx, edx
cmp dword [edi + 4], edx
jle 0x44b876
movzx eax, byte [ecx]
inc edx
mov byte [esi], al
movzx eax, byte [ecx + 1]
mov byte [esi + 1], al
movzx eax, byte [ecx + 2]
add ecx, 3
mov byte [esi + 2], al
add esi, 3
cmp edx, dword [edi + 4]
jl 0x44b815
jmp 0x44b876
cmp word [ebx + 0x12], 4
jne 0x44b876
cmp eax, 0x20
jne 0x44b9e1
xor edx, edx
cmp dword [edi + 4], edx
jle 0x44b876
lea ecx, [ecx]
movzx eax, byte [ecx]
inc edx
mov byte [esi], al
movzx eax, byte [ecx + 1]
mov byte [esi + 1], al
movzx eax, byte [ecx + 2]
mov byte [esi + 2], al
movzx eax, byte [ecx + 3]
add ecx, 4
mov byte [esi + 3], al
add esi, 4
cmp edx, dword [edi + 4]
jl 0x44b850
cmp word [edi + 0xe], 0x20
jne 0x44b9e1
xor edx, edx
cmp dword [edi + 4], edx
jle 0x44b9e1
add esi, 2
nop
movzx eax, byte [ecx]
lea ecx, [ecx + 4]
mov byte [esi - 2], al
lea esi, [esi + 3]
movzx eax, byte [ecx - 3]
inc edx
mov byte [esi - 4], al
movzx eax, byte [ecx - 2]
mov byte [esi - 3], al
cmp edx, dword [edi + 4]
jl 0x44b890
jmp 0x44b9e1
cmp eax, 0x18
jne 0x44b8eb
xor esi, esi
cmp dword [edi + 4], esi
jle 0x44b9e1
inc edx
movzx eax, byte [ecx]
lea ecx, [ecx + 3]
mov byte [edx + 1], al
lea edx, [edx + 3]
movzx eax, byte [ecx - 2]
inc esi
mov byte [edx - 3], al
movzx eax, byte [ecx - 1]
mov byte [edx - 4], al
cmp esi, dword [edi + 4]
jl 0x44b8c6
jmp 0x44b9e1
cmp eax, 0x20
jne 0x44b9e1
cmp word [ebx + 0x12], 4
jne 0x44b9b9
cmp dword [ebp + 0x14], 0
je 0x44b988
xor edx, edx
mov dword [ebp - 4], edx
cmp dword [edi + 4], edx
jle 0x44b9e1
mov ebx, dword [ebp + 8]
add ebx, 3
lea ecx, [ecx]
movzx eax, byte [ecx]
lea ecx, [ecx + 4]
mov byte [ebx - 1], al
movzx eax, byte [ecx - 3]
mov byte [ebx - 2], al
movzx eax, byte [ecx - 2]
mov byte [ebx - 3], al
movzx eax, byte [ecx - 1]
mov byte [ebx], al
test al, al
je 0x44b977
movzx esi, al
movzx eax, byte [ebx - 3]
imul eax, eax, 0xff
cdq
idiv esi
mov byte [ebx - 3], al
movzx eax, byte [ebx - 2]
imul eax, eax, 0xff
cdq
idiv esi
mov byte [ebx - 2], al
movzx eax, byte [ebx - 1]
imul eax, eax, 0xff
cdq
idiv esi
mov edx, dword [ebp - 4]
mov byte [ebx - 1], al
inc edx
add ebx, 4
mov dword [ebp - 4], edx
cmp edx, dword [edi + 4]
jl 0x44b920
mov ebx, dword [ebp + 0x10]
jmp 0x44b9e1
xor esi, esi
cmp dword [edi + 4], esi
jle 0x44b9e1
inc edx
movzx eax, byte [ecx]
lea ecx, [ecx + 4]
mov byte [edx + 1], al
lea edx, [edx + 4]
movzx eax, byte [ecx - 3]
inc esi
mov byte [edx - 4], al
movzx eax, byte [ecx - 2]
mov byte [edx - 5], al
movzx eax, byte [ecx - 1]
mov byte [edx - 2], al
cmp esi, dword [edi + 4]
jl 0x44b990
jmp 0x44b9e1
xor esi, esi
cmp dword [edi + 4], esi
jle 0x44b9e1
inc edx
movzx eax, byte [ecx]
lea ecx, [ecx + 4]
mov byte [edx + 1], al
lea edx, [edx + 3]
movzx eax, byte [ecx - 3]
inc esi
mov byte [edx - 3], al
movzx eax, byte [ecx - 2]
mov byte [edx - 4], al
cmp esi, dword [edi + 4]
jl 0x44b9c1
movzx eax, word [edi + 0xe]
imul eax, dword [edi + 4]
mov ecx, dword [ebp + 0xc]
add eax, 0x1f
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
cmp word [ebx + 0x16], 0x10
lea ecx, [ecx + eax*4]
mov dword [ebp + 0xc], ecx
je 0x44ba13
cmp dword [edi + 8], 0
jl 0x44ba13
mov edx, dword [ebp + 8]
sub edx, dword [ebx + 8]
jmp 0x44ba19
mov edx, dword [ebp + 8]
add edx, dword [ebx + 8]
dec dword [ebp - 8]
mov dword [ebp + 8], edx
jne 0x44b660
movzx eax, word [edi + 0xe]
cmp eax, 1
jne 0x44ba39
pop edi
pop esi
mov word [ebx + 0xc], ax
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 8
ja 0x44bb2d
push edi
call fcn.0044bec0
add esp, 4
test eax, eax
jle 0x44bb2d
mov eax, dword [edi]
add eax, edi
push 4
mov dword [ebp + 0xc], eax
call fcn.00459fc0
mov dword [ebx + 0x24], eax
xor esi, esi
mov eax, 4
mov word [ebx + 0xc], ax
mov eax, 1
mov cl, byte [edi + 0xe]
shl ax, cl
push edi
mov word [ebx + 0x20], ax
call fcn.0044bec0
add esp, 8
test eax, eax
jle 0x44bacd
mov ebx, dword [ebp + 0xc]
inc ebx
nop
mov edx, dword [ebp + 0x10]
lea ebx, [ebx + 4]
movzx eax, byte [ebx - 3]
push edi
mov ecx, dword [edx + 0x24]
mov byte [esi + ecx], al
mov ecx, dword [edx + 0x24]
movzx eax, byte [ebx - 4]
mov byte [esi + ecx + 0x100], al
mov ecx, dword [edx + 0x24]
movzx eax, byte [ebx - 5]
mov byte [esi + ecx + 0x200], al
inc esi
call fcn.0044bec0
add esp, 4
cmp esi, eax
jl 0x44ba90
mov ebx, dword [ebp + 0x10]
movsx esi, word [ebx + 0x20]
xor ecx, ecx
test esi, esi
jle 0x44bb05
mov edx, dword [ebx + 0x24]
lea ebx, [ebx]
movzx eax, byte [edx + ecx]
cmp eax, ecx
je 0x44bb00
movzx eax, byte [edx + ecx + 0x100]
cmp eax, ecx
je 0x44bb00
movzx eax, byte [edx + ecx + 0x200]
cmp eax, ecx
jne 0x44bb05
inc ecx
cmp ecx, esi
jl 0x44bae0
cmp ecx, esi
jne 0x44bb2d
push dword [ebx + 0x24]
mov eax, 2
mov word [ebx + 0xc], ax
mov eax, 0x100
mov word [ebx + 0x20], ax
call fcn.00592c4b
add esp, 4
mov dword [ebx + 0x24], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret