Function at 0x544e00
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb8
mov eax, dword [0x62aabc]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x38]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
mov dword [ebp - 0xb8], ecx
lea ecx, [ebp - 0x6c]
sar ebx, 1
push ebx
push ecx
mov dword [ebp - 0xb4], ecx
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp + 0xc]
push ecx
push eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x78], ebx
call fcn.005455a0
movsx esi, word [0x618b60]
lea edi, [ebp - 0x38]
push ebx
mov eax, edi
mov dword [ebp - 0x74], edi
push esi
push eax
mov dword [ebp - 0x84], esi
call fcn.00545450
mov ebx, eax
add esp, 0x1c
mov dword [ebp - 0x7c], ebx
test ebx, ebx
jns 0x544ea8
mov eax, dword [ebp - 0x9c]
lea edi, [ebp - 0x6c]
push dword [ebp - 0x78]
xor ecx, ecx
mov dword [ebp - 0x74], edi
push esi
mov word [eax], cx
mov eax, edi
push eax
call fcn.00545450
mov ebx, eax
mov dword [ebp - 0x88], 1
add esp, 0xc
mov dword [ebp - 0x7c], ebx
jmp 0x544eb0
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
mov esi, dword [ebp - 0x78]
movsx ecx, word [eax*2 + 0x618b60]
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 0x54500c
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 - 0x78]
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 0x54506d
add esi, 0xffffffff
mov dword [ebp - 0x90], esi
js 0x54506a
movsx ecx, ax
sar eax, 0xf
inc eax
mov dword [ebp - 0x80], 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 - 0x80]
sar eax, 0x10
imul eax, dword [ebp - 0x80]
imul edx, ebx
sar ecx, 0x10
add ecx, eax
add ecx, dword [edi + esi*4]
add edx, ecx
sub esi, 1
jns 0x545030
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x90], eax
mov esi, dword [ebp - 0x78]
mov eax, dword [ebp - 0x98]
test ebx, ebx
jg 0x54507d
cmp edx, eax
jge 0x54508d
test ebx, ebx
js 0x545321
neg eax
cmp edx, eax
jg 0x545321
xor eax, eax
mov dword [ebp - 0xa0], 0xffffff00
test edx, edx
mov dword [ebp - 0x80], 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 0x5451e3
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 0x54521c
mov esi, dword [ebp - 0x90]
test esi, esi
js 0x545225
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 0x5451f6
mov ebx, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0x70]
test ebx, ebx
jg 0x54522f
test eax, eax
jns 0x545235
test ebx, ebx
js 0x54524b
test eax, eax
jg 0x54524b
mov esi, dword [ebp - 0x80]
mov edx, eax
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x70], edx
jmp 0x545276
mov esi, dword [ebp - 0x80]
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 - 0x7c], ebx
mov dword [ebp - 0xa0], edi
inc esi
mov dword [ebp - 0x80], esi
cmp esi, 3
mov esi, dword [ebp - 0x78]
jl 0x5450b0
mov ecx, ebx
mov eax, ebx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x10000
jge 0x5452a7
test ecx, ecx
je 0x5452b1
mov eax, ecx
shl ebx, 5
sar eax, 1
add eax, ebx
jmp 0x5452ac
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 + 0x10]
jge 0x545431
movsx ecx, word [esi*2 + 0x618b5e]
mov eax, edx
and eax, 1
mov dword [ebp - 0x84], ecx
mov ebx, 0x1000
mov edi, dword [ebp + eax*4 - 0xb8]
mov eax, edx
and eax, 2
mov dword [ebp - 0x74], edi
shl eax, 0xc
sub ebx, eax
mov eax, esi
mov dword [ebp - 0x7c], ebx
jmp 0x544ecd
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 - 0x7c], ebx
mov dword [ebp - 0x98], ecx
cmp eax, 0x80
jle 0x544ed0
mov eax, dword [ebp - 0xa8]
inc eax
mov dword [ebp - 0xa8], eax
cmp eax, 0x10
jg 0x5453fd
mov ebx, dword [ebp - 0xb0]
mov ecx, eax
mov edx, 1
mov eax, 0x10000
shl edx, cl
sub eax, edx
push eax
push dword [ebp + 0x10]
push ebx
call fcn.0054db10
push esi
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x38]
push eax
push ebx
call fcn.005455a0
push dword [ebp - 0x78]
movsx esi, word [0x618b60]
lea edi, [ebp - 0x38]
mov eax, edi
mov dword [ebp - 0x74], edi
push esi
push eax
mov dword [ebp - 0x84], esi
call fcn.00545450
mov ebx, eax
add esp, 0x28
mov dword [ebp - 0x7c], ebx
test ebx, ebx
jns 0x5453f0
mov eax, dword [ebp - 0x9c]
lea edi, [ebp - 0x6c]
push dword [ebp - 0x78]
xor ecx, ecx
mov dword [ebp - 0x74], edi
push esi
mov word [eax], cx
mov eax, edi
push eax
call fcn.00545450
mov ebx, eax
mov dword [ebp - 0x88], 1
add esp, 0xc
mov dword [ebp - 0x7c], ebx
jmp 0x544ec2
xor eax, eax
mov dword [ebp - 0x88], eax
jmp 0x544ec2
mov ebx, dword [ebp + 0x10]
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 0x545431
nop dword [eax]
mov ax, word [edx + ecx*2 - 2]
add ax, word [edx]
mov word [edx + ecx*2], ax
inc ecx
cmp ecx, ebx
jl 0x545420
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0054f742
mov esp, ebp
pop ebp
ret