Function at 0x46fab0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x10
mov ecx, dword [esp + 0x1c]
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
push esi
mov esi, dword [esp + 0x20]
mov eax, dword [esi]
xor ebp, ebp
add esi, 0xbc
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebp
cmp ebx, dword [ecx + 0x1c]
je 0x46fb36
push 0x4b0294
push 0x4b02a4
push 0x113
push 0x4b02b4
push 0x4b02bc
push 0xdeaddead
call fcn.00466710
add esp, 0x18
push str.evmap_io_add_
push 0x4b02f0
push 0x113
push 0x4b0300
push 0x4b0308
call fcn.004768a8
add eax, 0x40
push eax
call fcn.00476b83
add esp, 0x18
call fcn.00445392
cmp ebx, ebp
jge 0x46fb43
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret
cmp dword [esi], ebp
je 0x46fb4f
mov edx, dword [esi + 8]
cmp edx, dword [esi + 0xc]
jb 0x46fb5d
mov eax, dword [esi + 8]
inc eax
push eax
push esi
call fcn.0046f580
add esp, 8
mov ecx, dword [esi]
push edi
cmp ecx, ebp
jne 0x46fb68
xor edi, edi
jmp 0x46fb8f
mov eax, ebx
ror eax, 2
add eax, ebx
xor edx, edx
div dword [esi + 4]
mov eax, dword [ecx + edx*4]
lea ecx, [ecx + edx*4]
cmp eax, ebp
je 0x46fb8d
mov edi, edi
cmp dword [eax + 4], ebx
je 0x46fb8d
mov ecx, eax
mov eax, dword [ecx]
cmp eax, ebp
jne 0x46fb80
mov edi, ecx
mov eax, dword [edi]
cmp eax, ebp
jne 0x46fbcf
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x20]
add edx, 0x14
push edx
push 1
call fcn.0045bf20
add esp, 8
cmp eax, ebp
je 0x46fd12
mov dword [eax + 4], ebx
xor ecx, ecx
xor edx, edx
mov dword [eax + 8], ebp
mov word [eax + 0xc], cx
mov word [eax + 0xe], dx
mov word [eax + 0x10], cx
mov dword [eax], ebp
mov dword [edi], eax
inc dword [esi + 8]
movzx edi, word [eax + 0xc]
movzx ebp, word [eax + 0xe]
movzx ebx, word [eax + 0x10]
lea esi, [eax + 8]
test edi, edi
je 0x46fbea
mov dword [esp + 0x14], 2
test ebp, ebp
je 0x46fbf3
or dword [esp + 0x14], 4
test ebx, ebx
je 0x46fbff
or dword [esp + 0x14], 0x80
mov edx, dword [esp + 0x2c]
movzx eax, word [edx + 0x34]
test al, 2
je 0x46fc19
inc edi
cmp edi, 1
jne 0x46fc19
mov dword [esp + 0x10], 2
test al, 4
je 0x46fc28
inc ebp
cmp ebp, 1
jne 0x46fc28
or dword [esp + 0x10], 4
test al, al
jns 0x46fc3a
inc ebx
cmp ebx, 1
jne 0x46fc3a
or dword [esp + 0x10], 0x80
cmp edi, 0xffff
jg 0x46fd00
cmp ebp, 0xffff
jg 0x46fd00
cmp ebx, 0xffff
jg 0x46fd00
cmp dword [0x4b6c70], 0
je 0x46fc94
mov ecx, dword [esi]
test ecx, ecx
je 0x46fc94
mov cl, byte [ecx + 0x34]
xor cl, al
test cl, 0x20
je 0x46fc94
mov edx, dword [esp + 0x28]
push edx
push str.Tried_to_mix_edge_triggered_and_non_edge_triggered_events_on_fd__d
call fcn.00466760
add esp, 8
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x10
ret
cmp word [esp + 0x10], 0
je 0x46fcd3
and eax, 0x20
or eax, dword [esp + 0x10]
lea ecx, [esi + 0xc]
push ecx
mov ecx, dword [edx + 0x1c]
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [eax + 8]
push edx
call ecx
add esp, 0x14
cmp eax, 0xffffffff
je 0x46fd12
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], 1
mov eax, dword [esi]
lea ecx, [edx + 0x24]
mov word [esi + 4], di
mov word [esi + 6], bp
mov word [esi + 8], bx
mov dword [ecx], eax
test eax, eax
je 0x46fcef
mov eax, dword [esi]
mov dword [eax + 0x28], ecx
mov eax, dword [esp + 0x1c]
pop edi
mov dword [esi], edx
mov dword [edx + 0x28], esi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov ecx, dword [esp + 0x28]
push ecx
push str.Too_many_events_reading_or_writing_on_fd__d
call fcn.00466760
add esp, 8
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x10
ret