Function at 0x557e80
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x9c
mov eax, dword [0x61f138]
xor eax, esp
mov dword [esp + 0x98], eax
push ebx
push ebp
mov ebp, dword [esp + 0xa8]
mov eax, edx
push esi
mov esi, ecx
sar ebp, 1
lea ecx, [esp + 0x5c]
mov dword [esp + 0x50], eax
push edi
mov dword [esp + 0x58], ecx
lea edx, [esp + 0x60]
lea ecx, [esp + 0x84]
mov dword [esp + 0x40], esi
push ebp
mov dword [esp + 0x60], ecx
push ecx
mov ecx, eax
mov dword [esp + 0x40], ebp
call fcn.00557d90
lea ebx, [esp + 0x68]
mov edi, 0x2000
push ebp
mov edx, edi
mov dword [esp + 0x24], ebx
mov ecx, ebx
mov dword [esp + 0x20], edi
call fcn.00557d40
mov ebp, eax
add esp, 0xc
xor eax, eax
mov dword [esp + 0x10], ebp
test ebp, ebp
jns 0x557f2a
mov word [esi], ax
lea ebx, [esp + 0x84]
mov esi, dword [esp + 0x38]
mov edx, edi
push esi
mov ecx, ebx
mov dword [esp + 0x1c], ebx
call fcn.00557d40
mov ebp, eax
mov dword [esp + 0x20], 1
add esp, 4
mov dword [esp + 0x10], ebp
jmp 0x557f32
mov esi, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
xor ecx, ecx
mov dword [esp + 0x48], 0
lea edx, [esi*4]
mov dword [esp + 0x24], ecx
dec esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], esi
mov eax, 1
mov dword [esp + 0x20], eax
lea esp, [esp]
mov edx, dword [edx + ebx]
mov ebx, edx
movsx ecx, word [eax*2 + 0x5ec680]
mov dword [esp + 0x4c], edx
mov edx, ecx
shl edx, 4
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], ebx
test esi, esi
js 0x557fc5
mov ebp, dword [esp + 0x18]
movsx edi, dx
sar edx, 0xf
inc edx
sar edx, 1
nop
movzx ecx, bx
mov eax, ebx
imul ecx, edi
sar eax, 0x10
imul eax, edi
imul ebx, edx
sar ecx, 0x10
add ecx, eax
add ecx, dword [ebp + esi*4]
add ebx, ecx
sub esi, 1
jns 0x557f90
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], ebx
mov edx, dword [esp + 0x24]
test ebp, ebp
jg 0x557fd3
cmp ebx, edx
jge 0x557fe3
test ebp, ebp
js 0x558158
neg edx
cmp ebx, edx
jg 0x558158
xor eax, eax
mov dword [esp + 0x30], 0xffffff00
test ebx, ebx
sete al
xor edx, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x44], edx
lea esp, [esp]
lea eax, [ecx + edi]
mov edi, dword [esp + 0x28]
mov ecx, eax
and eax, 1
sar ecx, 1
add ecx, eax
mov eax, dword [esp + 0x4c]
mov esi, ecx
mov dword [esp + 0x50], ecx
shl esi, 4
test edi, edi
js 0x558061
mov ebp, dword [esp + 0x18]
movsx ebx, si
sar esi, 0xf
inc esi
sar esi, 1
mov edi, edi
movzx edx, ax
mov ecx, eax
imul edx, ebx
sar ecx, 0x10
imul ecx, ebx
imul eax, esi
sar edx, 0x10
add edx, ecx
add edx, dword [ebp + edi*4]
add eax, edx
sub edi, 1
jns 0x558030
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
test ebp, ebp
jg 0x55806b
test eax, eax
jns 0x558071
test ebp, ebp
js 0x558085
test eax, eax
jg 0x558085
mov esi, dword [esp + 0x30]
mov ebx, eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], ebx
jmp 0x5580a8
mov esi, dword [esp + 0x30]
mov edi, ecx
mov ebp, eax
mov dword [esp + 0x14], edi
mov ecx, edx
mov dword [esp + 0x10], ebp
mov eax, 0x80
sar eax, cl
mov ecx, dword [esp + 0x34]
add esi, eax
mov dword [esp + 0x30], esi
inc edx
mov dword [esp + 0x44], edx
cmp edx, 3
jl 0x558000
mov eax, ebp
mov ecx, ebp
cdq
sub ecx, ebx
xor eax, edx
sub eax, edx
cmp eax, 0x10000
jge 0x5580d7
test ecx, ecx
je 0x5580e1
mov eax, ecx
shl ebp, 5
sar eax, 1
add eax, ebp
jmp 0x5580dc
sar ecx, 5
mov eax, ebp
cdq
idiv ecx
add esi, eax
mov ebp, dword [esp + 0x20]
mov ecx, 0x7fff
mov edi, dword [esp + 0x1c]
mov edx, ebp
shl edx, 8
add edx, esi
cmp edx, ecx
movzx eax, dx
cmovl ecx, eax
mov eax, dword [esp + 0x40]
mov word [eax + edi*2], cx
inc edi
mov dword [esp + 0x1c], edi
cmp edi, dword [esp + 0xb0]
jge 0x558285
mov esi, dword [esp + 0x28]
mov eax, edi
mov edx, dword [esp + 0x3c]
and eax, 1
mov ebx, dword [esp + eax*4 + 0x58]
movsx eax, word [ebp*2 + 0x5ec67e]
mov ebp, 0x1000
mov dword [esp + 0x14], eax
mov eax, edi
mov edi, dword [esp + 0x14]
and eax, 2
shl eax, 0xc
sub ebp, eax
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], ebp
jmp 0x557f60
mov esi, dword [esp + 0x28]
inc eax
mov edx, dword [esp + 0x3c]
mov edi, ecx
mov ebp, ebx
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x24], ecx
cmp eax, 0x80
jle 0x557f60
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x48], eax
cmp eax, 0x1e
jg 0x558250
movzx ecx, ax
lea eax, [ecx + 0xa]
movsx edx, ax
movsx eax, cx
mov ecx, dword [esp + 0x54]
imul edx, eax
mov eax, 0x10000
sub eax, edx
mov edx, dword [esp + 0xb0]
push eax
call fcn.0055a4b0
mov esi, dword [esp + 0x3c]
lea eax, [esp + 0x88]
mov ecx, dword [esp + 0x58]
lea edx, [esp + 0x64]
push esi
push eax
call fcn.00557d90
lea ebx, [esp + 0x6c]
mov edi, 0x2000
push esi
mov edx, edi
mov dword [esp + 0x28], ebx
mov ecx, ebx
mov dword [esp + 0x24], edi
call fcn.00557d40
mov ebp, eax
add esp, 0x10
mov dword [esp + 0x10], ebp
test ebp, ebp
jns 0x55823d
mov eax, dword [esp + 0x40]
lea ebx, [esp + 0x84]
xor ecx, ecx
mov dword [esp + 0x18], ebx
push esi
mov edx, edi
mov word [eax], cx
mov ecx, ebx
call fcn.00557d40
mov esi, dword [esp + 0x2c]
mov ebp, eax
mov edx, dword [esp + 0x40]
add esp, 4
mov dword [esp + 0x10], ebp
mov dword [esp + 0x1c], 1
jmp 0x557f50
mov esi, dword [esp + 0x28]
xor eax, eax
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
jmp 0x557f50
mov ebp, dword [esp + 0xb0]
mov eax, 0x8000
cdq
mov ebx, dword [esp + 0x40]
lea ecx, [ebp + 1]
idiv ecx
mov edx, 1
mov word [ebx], ax
cmp ebp, edx
jle 0x558285
movsx ecx, word [ebx]
lea eax, [edx + 1]
cwde
imul eax, ecx
mov word [ebx + edx*2], ax
inc edx
cmp edx, ebp
jl 0x558272
mov ecx, dword [esp + 0xa8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0056eeb4
add esp, 0x9c
ret