Function at 0x547d78
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff9c
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 4], edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x5481f9
push dword fs:[eax]
mov dword fs:[eax], esp
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx]
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
call fcn.0054d454
mov esi, eax
mov eax, dword [ebp - 0x20]
call fcn.0054c140
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 8]
sar eax, 1
jns 0x547dd9
adc eax, 0
mov dword [ebp - 0x48], eax
mov eax, dword [ebx + 0xc]
sar eax, 1
jns 0x547de6
adc eax, 0
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x48]
add eax, eax
inc eax
mov edx, dword [ebp - 0x4c]
add edx, edx
inc edx
imul edx
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x18], 0
jge 0x547e05
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x44]
dec eax
cmp eax, dword [ebp - 0x18]
jge 0x547e15
mov eax, dword [ebp - 0x44]
dec eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x1c], 0
jge 0x547e20
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x44]
dec eax
cmp eax, dword [ebp - 0x1c]
jge 0x547e30
mov eax, dword [ebp - 0x44]
dec eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jg 0x5481d8
push esi
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x547d4c]
call fcn.00408e48
add esp, 4
push esi
lea eax, [ebp - 8]
mov ecx, 1
mov edx, dword [0x547d4c]
call fcn.00408e48
add esp, 4
push esi
lea eax, [ebp - 0xc]
mov ecx, 1
mov edx, dword [0x547d4c]
call fcn.00408e48
add esp, 4
push esi
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, dword [0x547d4c]
call fcn.00408e48
add esp, 4
mov eax, esi
dec eax
test eax, eax
jl 0x547ede
inc eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x54], 0
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x54]
xor ecx, ecx
mov dword [eax + edx*4], ecx
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x54]
xor ecx, ecx
mov dword [eax + edx*4], ecx
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x54]
xor ecx, ecx
mov dword [eax + edx*4], ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x54]
xor ecx, ecx
mov dword [eax + edx*4], ecx
inc dword [ebp - 0x54]
dec dword [ebp - 0x64]
jne 0x547eaa
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x18]
add edx, dword [ebp - 0x4c]
sub edx, eax
jl 0x547f8e
inc edx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
jge 0x547f0c
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x24]
mov eax, dword [eax]
jmp 0x547f36
mov eax, dword [ebp - 0x44]
dec eax
cmp eax, dword [ebp - 0x54]
jge 0x547f27
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x24]
mov edx, dword [ebp - 0x44]
mov eax, dword [eax + edx*4 - 4]
jmp 0x547f36
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x24]
mov edx, dword [ebp - 0x54]
mov eax, dword [eax + edx*4]
mov ebx, esi
dec ebx
test ebx, ebx
jl 0x547f82
inc ebx
xor ecx, ecx
mov edx, dword [eax]
shr edx, 0x18
mov edi, dword [ebp - 4]
add dword [edi + ecx*4], edx
mov edx, dword [eax]
shr edx, 0x10
and edx, 0xff
mov edi, dword [ebp - 8]
add dword [edi + ecx*4], edx
mov edx, dword [eax]
shr edx, 8
and edx, 0xff
mov edi, dword [ebp - 0xc]
add dword [edi + ecx*4], edx
mov edx, dword [eax]
and edx, 0xff
mov edi, dword [ebp - 0x10]
add dword [edi + ecx*4], edx
add eax, 4
inc ecx
dec ebx
jne 0x547f40
inc dword [ebp - 0x54]
dec dword [ebp - 0x64]
jne 0x547ef9
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
sub edx, eax
jl 0x5481d8
inc edx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x54], eax
xor eax, eax
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
xor eax, eax
mov dword [ebp - 0x30], eax
xor eax, eax
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x48]
neg ecx
mov ebx, dword [ebp - 0x48]
sub ebx, ecx
jl 0x547ffd
inc ebx
mov eax, ecx
test eax, eax
jge 0x547fcc
xor eax, eax
mov edx, esi
dec edx
cmp eax, edx
jle 0x547fd5
mov eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + eax*4]
add dword [ebp - 0x28], edx
mov edx, dword [ebp - 8]
mov edx, dword [edx + eax*4]
add dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + eax*4]
add dword [ebp - 0x30], edx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + eax*4]
add dword [ebp - 0x34], eax
inc ecx
dec ebx
jne 0x547fc4
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x24]
mov edx, dword [ebp - 0x54]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x60], eax
mov ebx, esi
dec ebx
test ebx, ebx
jl 0x5480cd
inc ebx
xor ecx, ecx
mov eax, dword [ebp - 0x28]
cdq
idiv dword [ebp - 0x50]
mov edi, eax
mov eax, dword [ebp - 0x2c]
cdq
idiv dword [ebp - 0x50]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x30]
cdq
idiv dword [ebp - 0x50]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x34]
cdq
idiv dword [ebp - 0x50]
mov dword [ebp - 0x40], eax
shl edi, 0x18
mov eax, dword [ebp - 0x38]
shl eax, 0x10
or edi, eax
mov eax, dword [ebp - 0x3c]
shl eax, 8
or edi, eax
or edi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x60]
mov dword [eax], edi
add dword [ebp - 0x60], 4
mov eax, ecx
sub eax, dword [ebp - 0x48]
test eax, eax
jge 0x54806e
xor eax, eax
mov edx, dword [ebp - 4]
mov edx, dword [edx + eax*4]
sub dword [ebp - 0x28], edx
mov edx, dword [ebp - 8]
mov edx, dword [edx + eax*4]
sub dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + eax*4]
sub dword [ebp - 0x30], edx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + eax*4]
sub dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x48]
add eax, ecx
inc eax
mov edx, esi
dec edx
cmp eax, edx
jle 0x5480a1
mov eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + eax*4]
add dword [ebp - 0x28], edx
mov edx, dword [ebp - 8]
mov edx, dword [edx + eax*4]
add dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + eax*4]
add dword [ebp - 0x30], edx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + eax*4]
add dword [ebp - 0x34], eax
inc ecx
dec ebx
jne 0x54801d
mov eax, dword [ebp - 0x44]
dec eax
cmp eax, dword [ebp - 0x54]
je 0x5481d8
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x4c]
test eax, eax
jge 0x5480f1
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x24]
mov eax, dword [eax]
jmp 0x548103
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x20]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 0x24]
mov eax, dword [edx + eax*4]
mov ebx, esi
dec ebx
test ebx, ebx
jl 0x54814f
inc ebx
xor ecx, ecx
mov edx, dword [eax]
shr edx, 0x18
mov edi, dword [ebp - 4]
sub dword [edi + ecx*4], edx
mov edx, dword [eax]
shr edx, 0x10
and edx, 0xff
mov edi, dword [ebp - 8]
sub dword [edi + ecx*4], edx
mov edx, dword [eax]
shr edx, 8
and edx, 0xff
mov edi, dword [ebp - 0xc]
sub dword [edi + ecx*4], edx
mov edx, dword [eax]
and edx, 0xff
mov edi, dword [ebp - 0x10]
sub dword [edi + ecx*4], edx
add eax, 4
inc ecx
dec ebx
jne 0x54810d
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x4c]
inc eax
cmp eax, dword [ebp - 0x44]
jge 0x548170
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x20]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 0x24]
mov eax, dword [edx + eax*4 + 4]
jmp 0x548180
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x24]
mov edx, dword [ebp - 0x44]
mov eax, dword [eax + edx*4 - 4]
mov ebx, esi
dec ebx
test ebx, ebx
jl 0x5481cc
inc ebx
xor ecx, ecx
mov edx, dword [eax]
shr edx, 0x18
mov edi, dword [ebp - 4]
add dword [edi + ecx*4], edx
mov edx, dword [eax]
shr edx, 0x10
and edx, 0xff
mov edi, dword [ebp - 8]
add dword [edi + ecx*4], edx
mov edx, dword [eax]
shr edx, 8
and edx, 0xff
mov edi, dword [ebp - 0xc]
add dword [edi + ecx*4], edx
mov edx, dword [eax]
and edx, 0xff
mov edi, dword [ebp - 0x10]
add dword [edi + ecx*4], edx
add eax, 4
inc ecx
dec ebx
jne 0x54818a
inc dword [ebp - 0x54]
dec dword [ebp - 0x64]
jne 0x547fa3
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x548200
lea eax, [ebp - 0x10]
mov edx, dword [0x547d4c]
mov ecx, 4
call fcn.004082ec
ret