Function at 0x4e320b
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x60
push ebx
push ebp
mov ebp, dword [esp + 0x70]
push esi
push edi
push ebp
call fcn.004662da
mov ebx, dword [esp + 0x7c]
mov byte [esp + 0x78], al
test al, al
je 0x4e332e
push ebx
call fcn.004662da
test al, al
je 0x4e3322
push ebx
mov ecx, ebp
call fcn.004d71a5
mov esi, dword [sym.imp.WS2_32.dll_ntohl]
test al, al
je 0x4e3251
push dword [ebp + 0xc]
jmp 0x4e3254
push dword [ebx + 0xc]
call esi
push ebx
mov ecx, ebp
mov dword [esp + 0x14], eax
call fcn.004d71a5
test al, al
je 0x4e326b
push dword [ebx + 0xc]
jmp 0x4e326e
push dword [ebp + 0xc]
call esi
mov edx, dword [esp + 0x10]
mov ecx, edx
xor ecx, eax
mov dword [esp + 0x14], eax
not ecx
cmp ecx, 0xffffffff
jne 0x4e32ba
movzx ecx, word [ebp + 0x10]
movzx edx, word [ebx + 0x10]
mov esi, dword [sym.imp.WS2_32.dll_htons]
cmp cx, dx
jae 0x4e329b
push ecx
mov ebx, edx
jmp 0x4e329e
push edx
mov ebx, ecx
call esi
movzx edi, ax
push ebx
shl edi, 0x10
call esi
movzx eax, ax
or eax, edi
mov dword [esp + 0x78], eax
lea eax, [esp + 0x78]
push 4
jmp 0x4e3315
mov esi, 0xffffff00
mov eax, ecx
and eax, esi
cmp eax, esi
mov esi, dword [sym.imp.WS2_32.dll_htonl]
jne 0x4e32e4
push edx
call esi
push dword [esp + 0x14]
mov dword [esp + 0x14], eax
call esi
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10]
jmp 0x4e3313
mov eax, 0xffff0000
mov edi, 0xffffff55
and ecx, eax
cmp ecx, eax
je 0x4e32f9
mov edi, 0xffff5555
and edx, edi
push edx
call esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
and eax, edi
push eax
call esi
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
push 8
push eax
call fcn.00537696
push 5
jmp 0x4e344a
mov al, byte [esp + 0x78]
test al, al
jne 0x4e3465
push ebx
call fcn.004662da
test al, al
jne 0x4e3465
push ebx
mov ecx, ebp
call fcn.004d71a5
lea edi, [esp + 0x20]
test al, al
mov eax, edi
mov esi, ebp
mov dword [esp + 0x78], eax
jne 0x4e3356
mov esi, ebx
movsd dword es:[edi], dword [esi]
mov ecx, ebp
push ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, eax
lea edi, [esp + 0x54]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004d71a5
lea edi, [esp + 0x10]
mov esi, ebx
mov edx, edi
test al, al
jne 0x4e337a
mov esi, ebp
movsd dword es:[edi], dword [esi]
xor ecx, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, edx
lea edi, [esp + 0x60]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x50]
lea edi, [esp + 0x60]
mov eax, dword [esi + ecx*4]
cmp eax, dword [edi + ecx*4]
jne 0x4e33d7
inc ecx
cmp ecx, 4
jne 0x4e3392
movzx ecx, word [ebp + 0x10]
movzx edx, word [ebx + 0x10]
mov esi, dword [sym.imp.WS2_32.dll_htons]
cmp cx, dx
jae 0x4e33b8
push ecx
mov ebx, edx
jmp 0x4e33bb
push edx
mov ebx, ecx
call esi
movzx edi, ax
push ebx
shl edi, 0x10
call esi
movzx eax, ax
or eax, edi
mov dword [esp + 0x78], eax
lea eax, [esp + 0x78]
push 4
jmp 0x4e3442
mov esi, dword [esp + 0x78]
lea edi, [esp + 0x30]
push 0x30
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, edx
lea edi, [esp + 0x44]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.006342b2
add esp, 0xc
test eax, eax
jne 0x4e341f
add esi, 8
cmp esi, 0x80
jle 0x4e33f0
jmp 0x4e343c
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
jmp 0x4e3437
and byte [esp + eax + 0x30], 0x55
and byte [esp + eax + 0x40], 0x55
inc eax
cmp eax, 0x10
jl 0x4e342c
push 0x20
lea eax, [esp + 0x34]
push eax
call fcn.00537696
push 0xa
cmp byte [esp + 0x84], 0
mov ecx, eax
pop edx
je 0x4e345a
add edx, 0xa
mov eax, dword [esp + 0x74]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x4e3470
mov eax, dword [esp + 0x74]
or dword [eax], 0xffffffff
and dword [eax + 4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 0x10