Function at 0x4eb28b
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x60
push ebx
mov ebx, dword [esp + 0x70]
push ebp
push esi
push edi
push ebx
call fcn.004652a0
mov ebp, dword [esp + 0x78]
push ebp
mov byte [esp + 0x80], al
call fcn.004652a0
test al, al
je 0x4eb3a7
cmp byte [esp + 0x7c], 0
je 0x4eb4ce
push ebx
mov ecx, ebp
call fcn.004e0881
mov esi, dword [sym.imp.WS2_32.dll_ntohl]
test al, al
je 0x4eb2d7
push dword [ebp + 0xc]
jmp 0x4eb2da
push dword [ebx + 0xc]
call esi
push ebx
mov ecx, ebp
mov dword [esp + 0x14], eax
call fcn.004e0881
test al, al
je 0x4eb2f1
push dword [ebx + 0xc]
jmp 0x4eb2f4
push dword [ebp + 0xc]
call esi
mov edx, dword [esp + 0x10]
mov ecx, eax
mov dword [esp + 0x14], ecx
xor ecx, edx
not ecx
cmp ecx, 0xffffffff
jne 0x4eb33f
movzx ebp, word [ebp + 0x10]
movzx ebx, word [ebx + 0x10]
mov esi, dword [sym.imp.WS2_32.dll_htons]
cmp bp, bx
jae 0x4eb322
push ebp
call esi
push ebx
jmp 0x4eb326
push ebx
call esi
push ebp
movzx edi, ax
shl edi, 0x10
call esi
movzx eax, ax
or eax, edi
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x7c]
push 4
jmp 0x4eb39a
mov esi, 0xffffff00
mov eax, ecx
and eax, esi
cmp eax, esi
mov esi, dword [sym.imp.WS2_32.dll_htonl]
jne 0x4eb369
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 0x4eb398
mov eax, 0xffff0000
mov edi, 0xffffff55
and ecx, eax
cmp ecx, eax
je 0x4eb37e
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.005421cc
push 5
jmp 0x4eb4b3
cmp byte [esp + 0x7c], 0
jne 0x4eb4ce
push ebx
mov ecx, ebp
call fcn.004e0881
lea edi, [esp + 0x20]
test al, al
mov eax, edi
mov esi, ebp
mov dword [esp + 0x7c], eax
jne 0x4eb3cc
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.004e0881
lea edi, [esp + 0x10]
mov esi, ebx
mov edx, edi
test al, al
jne 0x4eb3f0
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 0x4eb44c
inc ecx
cmp ecx, 4
jne 0x4eb408
movzx ebp, word [ebp + 0x10]
movzx ebx, word [ebx + 0x10]
mov esi, dword [sym.imp.WS2_32.dll_htons]
cmp bp, bx
jae 0x4eb42f
push ebp
call esi
push ebx
jmp 0x4eb433
push ebx
call esi
push ebp
movzx edi, ax
shl edi, 0x10
call esi
movzx eax, ax
or eax, edi
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x7c]
push 4
jmp 0x4eb4ab
mov esi, dword [esp + 0x7c]
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 edi
mov eax, edi
cdq
and edx, 7
lea esi, [edx + eax]
sar esi, 3
lea eax, [esp + 0x60]
push esi
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0066e15e
add esp, 0xc
test eax, eax
jne 0x4eb4a0
add edi, 8
cmp edi, 0x80
jle 0x4eb465
jmp 0x4eb4a5
and byte [esp + esi + 0x30], 0x55
and byte [esp + esi + 0x40], 0x55
inc esi
cmp esi, 0x10
jl 0x4eb495
push 0x20
lea eax, [esp + 0x34]
push eax
call fcn.005421cc
push 0xa
cmp byte [esp + 0x84], 0
mov ecx, eax
pop edx
je 0x4eb4c3
add edx, 0xa
mov eax, dword [esp + 0x74]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x4eb4d9
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