Function at 0x54a78f
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
cmp byte [edi], 0xa
mov esi, eax
jne 0x54a7b1
mov eax, dword [edi + 0x4c]
and al, 0x3f
cmp al, 1
je 0x606804
xor ebx, ebx
cmp esi, ebx
je 0x54a7dd
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov edx, dword [esi + 8]
cmp edx, ebx
je 0x54a7d1
cmp byte [edx], 3
jne 0x5daed2
push 7
mov ecx, eax
mov eax, dword [eax]
push edx
mov edx, dword [eax + 0x44]
call edx
mov eax, dword [edi]
and eax, 0xff
mov dword [ebp - 0x14], eax
cmp eax, 0xc
jne 0x54a810
mov ecx, dword [edi + 0x24]
shr ecx, 0x14
test cl, 1
je 0x54a810
mov byte [ebp - 1], 1
cmp eax, 0xa
jne 0x54a802
jmp 0x54a81d
cmp eax, eax
je 0x54a81d
cmp eax, 0xb
je 0x54a81d
call 0x627dbf
mov byte [ebp - 1], bl
cmp eax, 0xa
je 0x54a81d
mov dword [ebp - 0x18], ebx
jmp 0x54a823
mov edx, dword [edi + 0x40]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], esi
mov byte [ebp - 2], bl
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov byte [ebp - 3], bl
cmp eax, 3
je 0x5daec4
jmp 0x54a893
cmp eax, 0xa
jne 0x5dae99
mov eax, dword [edi + 0x58]
mov ecx, dword [eax + 8]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp + 0x10]
mov eax, dword [edi + 4]
mov ebx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x20]
push edx
push eax
xor eax, eax
call fcn.0054a85f
mov esi, eax
test esi, esi
jne 0x54a8fe
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x24]
mov eax, edx
test ecx, ecx
jne 0x54a8cf
xor eax, eax
mov esi, dword [ebp + 0x14]
mov dword [esi], ecx
mov ecx, dword [ebp + 0x18]
mov dword [esi + 4], eax
test ecx, ecx
jne 0x5db053
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x54a8ee
mov dl, byte [ebp - 3]
mov byte [eax], dl
xor eax, eax
cmp dword [esi], eax
pop edi
pop esi
setne al
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x20]
test eax, eax
jne 0x54aa41
mov ecx, dword [esi]
mov eax, dword [ebp - 0x14]
and ecx, 0xff
cmp eax, ecx
jne 0x60680f
sub eax, 3
je 0x6068dc
sub eax, 7
jne 0x5dca1c
cmp ecx, 0xa
jne 0x5daed2
mov edx, dword [esi + 0x4c]
and dl, 0x3f
cmp dl, 1
je 0x54aa19
mov eax, dword [ebp + 0xc]
cmp byte [eax], cl
jne 0x5daed2
mov ecx, dword [esi + 0x24]
mov edx, dword [eax + 0x24]
shr ecx, 0x14
shr edx, 0x14
not ecx
not edx
xor ecx, edx
test cl, 1
jne 0x54aa19
mov eax, dword [esi + 0x58]
mov ecx, dword [ebp - 8]
cmp dword [eax + 8], ecx
jne 0x54aa19
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov edi, dword [ebx + 0x2c]
call eax
mov eax, dword [eax + 8]
mov ecx, dword [esi + 0x40]
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0x58]
push 0
push edi
mov edi, dword [ebp - 0x18]
push ecx
add eax, 0x3c
push eax
call fcn.0052eecd
test al, al
je 0x54bcef
cmp dword [ebp + 0x1c], 0
je 0x54a9ee
cmp byte [esi], 0xa
jne 0x5daed2
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0xa
jne 0x5daed2
mov eax, esi
call 0x5daea1
xor edx, edx
test al, al
mov eax, ecx
sete dl
call 0x5daea1
xor ecx, ecx
test al, al
sete cl
cmp edx, ecx
jne 0x6068d3
mov eax, dword [esi]
and eax, 0xff
cmp eax, 0xa
jne 0x5dca78
mov ecx, dword [ebp - 0xc]
test ecx, ecx
jne 0x606907
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x1c], ebx
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push ecx
mov ecx, dword [eax + 4]
lea edx, [ebp - 0x20]
push edx
push ecx
mov eax, esi
call fcn.0054a85f
mov esi, eax
test esi, esi
je 0x54a8c1
jmp 0x54a8fe
cmp eax, ebx
jne 0x54a8c1
jmp 0x54a90c
mov byte [ebp - 2], 1
jmp 0x54aa19
mov dword [ebp - 8], ebx
jmp 0x54a8a5
mov edx, dword [edi + 0x48]
mov eax, dword [edx + 8]
mov dword [ebp - 8], eax
jmp 0x54a8a5
call 0x627dbf
int3
mov eax, edx
mov edx, dword [ebp - 0x10]
test edx, edx
jne 0x5db05e
xor eax, eax
mov dword [ecx], edx
mov dword [ecx + 4], eax
jmp 0x54a8e2
sub eax, 2
jne 0x54a9ee
cmp byte [ebp - 1], al
je 0x54a9ee
cmp ecx, 0xc
jne 0x5daed2
mov ecx, dword [esi + 0x24]
shr ecx, 0x14
test cl, 1
je 0x54aa19
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov edi, dword [ebx + 0x2c]
call eax
mov eax, dword [eax + 8]
mov ecx, dword [esi + 0x40]
push 0
push edi
mov edi, dword [ebp - 0x18]
push ecx
add eax, 0x3c
push eax
xor edx, edx
call fcn.0052eecd
test al, al
jne 0x54a9ee
jmp 0x54aa19
cmp eax, 0xc
je 0x54a9fe
jmp 0x6068f9