Function at 0x44b210
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb8
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, edx
mov dword [ebp - 0x9c], ecx
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x38]
sar esi, 1
push edi
mov dword [ebp - 0xb8], ecx
lea ecx, [ebp - 0x6c]
push esi
mov dword [ebp - 0xb4], ecx
push ecx
mov ecx, eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x80], esi
call fcn.0044af80
lea edi, [ebp - 0x38]
mov dword [ebp - 0x84], 0x2000
push esi
mov edx, 0x2000
mov dword [ebp - 0x74], edi
mov ecx, edi
call fcn.0044ae30
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0x78], ebx
test ebx, ebx
jns 0x44b2b5
mov eax, dword [ebp - 0x9c]
lea edi, [ebp - 0x6c]
xor ecx, ecx
mov dword [ebp - 0x74], edi
push esi
mov edx, 0x2000
mov word [eax], cx
mov ecx, edi
call fcn.0044ae30
mov ebx, eax
mov dword [ebp - 0x88], 1
add esp, 4
mov dword [ebp - 0x78], ebx
jmp 0x44b2bd
xor eax, eax
mov dword [ebp - 0x88], eax
xor ecx, ecx
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0x98], ecx
mov eax, 1
mov dword [ebp - 0x8c], eax
nop word [eax + eax]
movsx ecx, word [eax*2 + 0x5b4840]
mov eax, dword [edi + esi*4]
mov edx, eax
mov dword [ebp - 0xac], eax
mov eax, ecx
shl eax, 4
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x70], edx
cmp esi, 8
jne 0x44b41c
movsx esi, ax
sar eax, 0xf
inc eax
movzx ecx, dx
sar eax, 1
mov dword [ebp - 0x70], eax
mov eax, edx
sar eax, 0x10
imul eax, esi
imul ecx, esi
sar ecx, 0x10
add ecx, eax
mov eax, dword [ebp - 0x70]
imul eax, edx
add ecx, eax
add ecx, dword [edi + 0x1c]
movzx edx, cx
mov eax, ecx
sar eax, 0x10
imul eax, esi
imul edx, esi
sar edx, 0x10
add edx, eax
mov eax, dword [ebp - 0x70]
imul eax, ecx
add edx, eax
add edx, dword [edi + 0x18]
movzx ecx, dx
mov eax, edx
sar eax, 0x10
imul eax, esi
imul ecx, esi
sar ecx, 0x10
add ecx, eax
mov eax, dword [ebp - 0x70]
imul eax, edx
add ecx, eax
add ecx, dword [edi + 0x14]
movzx edx, cx
mov eax, ecx
sar eax, 0x10
imul eax, esi
imul edx, esi
sar edx, 0x10
add edx, eax
mov eax, dword [ebp - 0x70]
imul eax, ecx
add edx, eax
add edx, dword [edi + 0x10]
movzx ecx, dx
mov eax, edx
sar eax, 0x10
imul eax, esi
imul ecx, esi
sar ecx, 0x10
add ecx, eax
mov eax, dword [ebp - 0x70]
imul eax, edx
add ecx, eax
add ecx, dword [edi + 0xc]
movzx edx, cx
mov eax, ecx
sar eax, 0x10
imul eax, esi
imul edx, esi
sar edx, 0x10
add edx, eax
mov eax, dword [ebp - 0x70]
imul eax, ecx
add edx, eax
add edx, dword [edi + 8]
movzx ecx, dx
mov eax, edx
sar eax, 0x10
imul ecx, esi
imul eax, esi
sar ecx, 0x10
add ecx, eax
mov eax, dword [ebp - 0x70]
imul eax, edx
add ecx, eax
add ecx, dword [edi + 4]
movzx edx, cx
mov eax, ecx
imul edx, esi
sar eax, 0x10
imul eax, esi
mov esi, dword [ebp - 0x80]
sar edx, 0x10
add edx, eax
mov eax, dword [ebp - 0x70]
imul eax, ecx
mov ecx, dword [ebp - 0x94]
add edx, eax
lea eax, [esi - 1]
add edx, dword [edi]
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x90], eax
jmp 0x44b47d
add esi, 0xffffffff
mov dword [ebp - 0x90], esi
js 0x44b47a
movsx ecx, ax
sar eax, 0xf
inc eax
mov dword [ebp - 0x7c], ecx
sar eax, 1
mov dword [ebp - 0x70], eax
mov ebx, eax
nop dword [eax + eax]
movzx ecx, dx
mov eax, edx
imul ecx, dword [ebp - 0x7c]
sar eax, 0x10
imul eax, dword [ebp - 0x7c]
imul edx, ebx
sar ecx, 0x10
add ecx, eax
add ecx, dword [edi + esi*4]
add edx, ecx
sub esi, 1
jns 0x44b440
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x90], eax
mov esi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x98]
test ebx, ebx
jg 0x44b48d
cmp edx, eax
jge 0x44b49d
test ebx, ebx
js 0x44b738
neg eax
cmp edx, eax
jg 0x44b738
xor eax, eax
mov dword [ebp - 0xa0], 0xffffff00
test edx, edx
mov dword [ebp - 0x7c], 0
sete al
mov dword [ebp - 0x98], eax
nop dword [eax + eax]
mov eax, dword [ebp - 0x84]
add eax, ecx
mov ecx, eax
and eax, 1
sar ecx, 1
add ecx, eax
mov eax, dword [ebp - 0xac]
mov edi, ecx
mov dword [ebp - 0xa4], ecx
shl edi, 4
cmp esi, 8
jne 0x44b5f3
movzx edx, ax
mov ecx, eax
sar ecx, 0x10
movsx esi, di
imul edx, esi
imul ecx, esi
sar edi, 0xf
inc edi
sar edi, 1
sar edx, 0x10
add edx, ecx
mov ecx, edi
imul ecx, eax
mov eax, dword [ebp - 0x74]
add edx, ecx
add edx, dword [eax + 0x1c]
movzx ecx, dx
mov eax, edx
sar eax, 0x10
imul eax, esi
imul ecx, esi
sar ecx, 0x10
add ecx, eax
mov eax, edi
imul eax, edx
add ecx, eax
mov eax, dword [ebp - 0x74]
add ecx, dword [eax + 0x18]
movzx edx, cx
mov eax, ecx
sar eax, 0x10
imul eax, esi
imul edx, esi
sar edx, 0x10
add edx, eax
mov eax, edi
imul eax, ecx
add edx, eax
mov eax, dword [ebp - 0x74]
add edx, dword [eax + 0x14]
movzx ecx, dx
mov eax, edx
sar eax, 0x10
imul eax, esi
imul ecx, esi
sar ecx, 0x10
add ecx, eax
mov eax, edi
imul eax, edx
add ecx, eax
mov eax, dword [ebp - 0x74]
add ecx, dword [eax + 0x10]
movzx edx, cx
mov eax, ecx
sar eax, 0x10
imul eax, esi
imul edx, esi
sar edx, 0x10
add edx, eax
mov eax, edi
imul eax, ecx
add edx, eax
mov eax, dword [ebp - 0x74]
add edx, dword [eax + 0xc]
movzx ecx, dx
mov eax, edx
sar eax, 0x10
imul ecx, esi
imul eax, esi
sar ecx, 0x10
add ecx, eax
mov eax, edi
imul eax, edx
add ecx, eax
mov eax, dword [ebp - 0x74]
add ecx, dword [eax + 8]
movzx edx, cx
mov eax, ecx
imul edx, esi
sar edx, 0x10
sar eax, 0x10
imul eax, esi
add edx, eax
mov eax, edi
imul eax, ecx
add edx, eax
mov eax, dword [ebp - 0x74]
add edx, dword [eax + 4]
movzx eax, dx
mov ecx, edx
imul eax, esi
sar ecx, 0x10
imul ecx, esi
imul edi, edx
sar eax, 0x10
add eax, ecx
mov ecx, dword [ebp - 0x74]
add eax, edi
add eax, dword [ecx]
jmp 0x44b62c
mov esi, dword [ebp - 0x90]
test esi, esi
js 0x44b635
movsx ebx, di
sar edi, 0xf
inc edi
sar edi, 1
movzx edx, ax
mov ecx, eax
imul edx, ebx
sar ecx, 0x10
imul ecx, ebx
imul eax, edi
sar edx, 0x10
add edx, ecx
mov ecx, dword [ebp - 0x74]
add edx, dword [ecx + esi*4]
add eax, edx
sub esi, 1
jns 0x44b606
mov ebx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0x70]
test ebx, ebx
jg 0x44b63f
test eax, eax
jns 0x44b645
test ebx, ebx
js 0x44b65b
test eax, eax
jg 0x44b65b
mov esi, dword [ebp - 0x7c]
mov edx, eax
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x70], edx
jmp 0x44b686
mov esi, dword [ebp - 0x7c]
mov ebx, eax
mov edi, dword [ebp - 0xa0]
mov eax, 0x80
mov dword [ebp - 0x84], ecx
mov ecx, esi
sar eax, cl
mov ecx, dword [ebp - 0x94]
add edi, eax
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0xa0], edi
inc esi
mov dword [ebp - 0x7c], esi
cmp esi, 3
mov esi, dword [ebp - 0x80]
jl 0x44b4c0
mov ecx, ebx
mov eax, ebx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x10000
jge 0x44b6b7
test ecx, ecx
je 0x44b6c1
mov eax, ecx
shl ebx, 5
sar eax, 1
add eax, ebx
jmp 0x44b6bc
sar ecx, 5
mov eax, ebx
cdq
idiv ecx
add edi, eax
mov esi, dword [ebp - 0x8c]
mov ecx, 0x7fff
mov edx, esi
shl edx, 8
add edx, edi
cmp edx, ecx
movzx eax, dx
mov edx, dword [ebp - 0x88]
cmovl ecx, eax
mov eax, dword [ebp - 0x9c]
mov word [eax + edx*2], cx
inc edx
mov dword [ebp - 0x88], edx
cmp edx, dword [ebp + 8]
jge 0x44b851
mov eax, edx
mov ebx, 0x1000
and eax, 1
mov edi, dword [ebp + eax*4 - 0xb8]
movsx eax, word [esi*2 + 0x5b483e]
mov esi, dword [ebp - 0x80]
mov dword [ebp - 0x84], eax
mov eax, edx
and eax, 2
mov dword [ebp - 0x74], edi
shl eax, 0xc
sub ebx, eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x78], ebx
jmp 0x44b2e0
mov eax, dword [ebp - 0x8c]
mov ebx, edx
inc eax
mov dword [ebp - 0x84], ecx
xor ecx, ecx
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x98], ecx
cmp eax, 0x80
jle 0x44b2e0
mov eax, dword [ebp - 0xa8]
inc eax
mov dword [ebp - 0xa8], eax
cmp eax, 0x10
jg 0x44b816
mov ecx, eax
mov edx, 1
shl edx, cl
mov eax, 0x10000
mov ecx, dword [ebp - 0xb0]
sub eax, edx
mov edx, dword [ebp + 8]
push eax
call fcn.0044dcc0
mov ecx, dword [ebp - 0xb0]
lea eax, [ebp - 0x6c]
push esi
push eax
lea edx, [ebp - 0x38]
call fcn.0044af80
lea edi, [ebp - 0x38]
mov dword [ebp - 0x84], 0x2000
push esi
mov edx, 0x2000
mov dword [ebp - 0x74], edi
mov ecx, edi
call fcn.0044ae30
mov ebx, eax
add esp, 0x10
mov dword [ebp - 0x78], ebx
test ebx, ebx
jns 0x44b809
mov eax, dword [ebp - 0x9c]
lea edi, [ebp - 0x6c]
xor ecx, ecx
mov dword [ebp - 0x74], edi
push esi
mov edx, 0x2000
mov word [eax], cx
mov ecx, edi
call fcn.0044ae30
mov ebx, eax
mov dword [ebp - 0x88], 1
add esp, 4
mov dword [ebp - 0x78], ebx
jmp 0x44b2cf
xor eax, eax
mov dword [ebp - 0x88], eax
jmp 0x44b2cf
mov ebx, dword [ebp + 8]
mov eax, 0x8000
cdq
lea ecx, [ebx + 1]
idiv ecx
mov edx, dword [ebp - 0x9c]
mov ecx, 1
mov word [edx], ax
cmp ebx, ecx
jle 0x44b851
nop word [eax + eax]
mov ax, word [edx + ecx*2 - 2]
add ax, word [edx]
mov word [edx + ecx*2], ax
inc ecx
cmp ecx, ebx
jl 0x44b840
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00457d6e
mov esp, ebp
pop ebp
ret