Function at 0x44b690
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x28
mov esi, dword [ebp + 8]
mov eax, dword [0x4e2024]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp byte [edx + 0xb], 0
mov dword [ebp - 0x34], edx
js 0x44b8a3
mov word [edx], 0
mov byte [edx + 0xb], 0
cmp byte [esi + 0xb], 0
js 0x44b8b6
mov word [esi], 0
mov byte [esi + 0xb], 0
movzx eax, byte [ecx + 0xb]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], eax
test al, al
jns 0x44b6e8
mov eax, dword [ecx]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x2c], eax
movzx eax, byte [0x4e7790]
and eax, 1
neg eax
xor edx, edx
cmp eax, 0xfffffffd
je 0x44b885
xor eax, eax
dec eax
lea edi, [ebp - 0x1c]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov ebx, dword [edx*8 + 0x4d3914]
mov dword [ebp - 0x24], edx
mov eax, dword [edx*8 + 0x4d3910]
mov byte [ebp - 0x11], bl
lea ecx, [ebx + ebx]
push ecx
push eax
push edi
call fcn.0046e010
add esp, 0xc
mov word [ebp + ebx*2 - 0x1c], 0
movzx eax, byte [ebp - 0x11]
mov ecx, eax
test al, al
jns 0x44b747
mov ecx, dword [ebp - 0x18]
mov edx, ecx
mov esi, dword [ebp - 0x2c]
cmp esi, ecx
cmovb edx, esi
jb 0x44b7b3
mov bl, 1
test edx, edx
je 0x44b889
mov esi, edi
test al, al
jns 0x44b766
mov esi, dword [ebp - 0x1c]
xor edi, edi
mov ebx, dword [ebp - 0x30]
movzx ebx, word [ebx + edi*2]
cmp bx, word [esi + edi*2]
jne 0x44b7b3
inc edi
cmp edx, edi
jne 0x44b768
mov edi, ecx
mov bl, 1
test al, al
mov esi, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
js 0x44b890
test bl, bl
jne 0x44b7ba
mov dword [ebp - 0x20], edi
inc edx
movzx eax, byte [0x4e7790]
xor eax, 3
cmp edx, eax
mov eax, 0xffffffff
lea edi, [ebp - 0x1c]
jb 0x44b708
jmp 0x44b885
xor ebx, ebx
mov edi, dword [ebp - 0x20]
jmp 0x44b77e
test edi, edi
je 0x44b885
movzx edx, byte [esi + 0xb]
mov ecx, edx
test dl, dl
jns 0x44b7cf
mov ecx, dword [esi + 4]
cmp edi, ecx
je 0x44b885
mov eax, esi
test dl, dl
jns 0x44b7df
mov eax, dword [esi]
lea edx, [eax + ecx*2]
mov ebx, edx
test ecx, ecx
jle 0x44b804
and ecx, 0x7fffffff
mov ebx, eax
cmp word [ebx], 0x3d
je 0x44b800
add ebx, 2
dec ecx
jne 0x44b7f0
mov ebx, edx
jmp 0x44b804
test ebx, ebx
je 0x44b7fc
mov edi, ebx
sub edi, eax
sar edi, 1
cmp ebx, edx
mov eax, 0xffffffff
cmove edi, eax
mov eax, esi
add esi, 0xc
lea ecx, [ebp - 0x1c]
push esi
push edi
push 0
push eax
call fcn.0041c0e0
mov ecx, dword [ebp - 0x34]
cmp byte [ecx + 0xb], 0
js 0x44b8c9
mov eax, dword [ebp - 0x14]
mov dword [ecx + 8], eax
movsd xmm0, qword [ebp - 0x1c]
movsd qword [ecx], xmm0
mov bl, 1
cmp edi, 0xffffffff
je 0x44b871
inc edi
lea ecx, [ebp - 0x1c]
push esi
push 0xffffffffffffffff
push edi
push dword [ebp - 0x28]
call fcn.0041c0e0
mov esi, dword [ebp + 8]
cmp byte [esi + 0xb], 0
js 0x44b8dc
mov eax, dword [ebp - 0x14]
mov dword [esi + 8], eax
movsd xmm0, qword [ebp - 0x1c]
movsd qword [esi], xmm0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046b8b5
mov eax, ebx
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret
xor ebx, ebx
jmp 0x44b871
mov edi, ecx
jmp 0x44b77e
push dword [ebp - 0x1c]
call fcn.0046acdd
mov edx, dword [ebp - 0x24]
add esp, 4
jmp 0x44b78c
mov eax, dword [edx]
mov word [eax], 0
mov dword [edx + 4], 0
jmp 0x44b6bc
mov eax, dword [esi]
mov word [eax], 0
mov dword [esi + 4], 0
jmp 0x44b6cf
push dword [ecx]
mov ebx, ecx
call fcn.0046acdd
mov ecx, ebx
add esp, 4
jmp 0x44b833
push dword [esi]
call fcn.0046acdd
add esp, 4
jmp 0x44b862