Function at 0x49a2d7
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov bh, 0x4d
adc al, 0xf
mov bh, 0x45
adc cl, al
loope 0x499f9e
or ecx, eax
push ecx
push dword [ebp + 0xc]
invalid
jne 0x499fe8
add byte [eax], dl
jne 0x499f84
mov dword [ebp - 0x7d], esi
in al, dx
adc al, 0xa3
clc
call 0xb9b49825
mov al, 0x18
dec ebp
add al, ch
add eax, 0xbaf0f7fc
or eax, 0x4d1910
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax]
mov dword [ebp - 0xc], esi
cmp byte [esi + 0x3a], 0
je 0x499fed
cmp dword [esi - 0x778fe64], 0xffffffff
mov dword [esi + 0x44], edi
mov dword [esi + 0x48], ebx
je 0x499fed
push 0xf
call dword [0x8bf0c54c]
add dword [esi + 0x48], eax
invalid
cmp dword [esi - 0x778fe64], 0xffffffff
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x48]
mov dword [ebp - 8], eax
mov dword [ebp - 4], ecx
je 0x49a015
push 0xf
call dword [0x8bf0c54c]
mov ecx, dword [ebp - 4]
sub ecx, eax
mov eax, dword [ebp - 8]
mov dword [ebp - 4], ecx
test eax, eax
jle 0x49a2d3
dec ebp
test al, 0xf
mov gs, word [esi + 0x4d000002]
dec dword [edi]
mov fs, word [esi + 0x4d000002]
fisttp dword [edi]
mov ds, word [esi - 0x7cdbabfe]
jge 0x49a044
add bh, al
test byte [edx + eax + 0x36a2454], dl
pop ebx
mov dword [ebp - 0x14], ebx
in al, dx
cmp dword [0x4d1934], ebx
jl 0x49a2be
mov eax, dword [0x4d1924]
mov eax, dword [eax + ebx*4]
mov ebx, dword [eax]
test ebx, ebx
je 0x75d4a2ab
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 4]
jne 0x249da2ab
cmp dword [ebx], 0x24
je 0x49a2ab
movsx eax, word [ebx - 0x17e88b40]
imul eax, edi
cdq
idiv dword [ebp - 8]
mov edi, eax
movsx eax, word [ebx + 0x4c71ac8a]
imul eax, dword [ebp + 0x14]
cdq
idiv ecx
mov ecx, eax
movsx eax, word [ebx + 0x4c71ac8c]
imul eax, dword [ebp + 0x10]
cdq
idiv dword [ebp - 8]
mov dword [ebp + 8], eax
movsx eax, word [ebx + 0x4c83078e]
imul eax, dword [ebp + 0x14]
cdq
idiv dword [ebp - 4]
movzx edx, word [ebx - 0x7787a]
mov eax, dword [ebp + 0xc]
test dx, dx
je 0x41a237
test edx, 0x24540113
je 0x49a134
movsx esi, word [ebx + 0x2474008c]
mov dword [ebp + 8], esi
mov esi, dword [ebp - 0xc]
test dl, 6
jne 0x49a134
mov eax, dword [ebp + 0x10]
test dl, 8
je 0x49a103
sub eax, dword [ebp - 8]
cdq
sub eax, edx
mov edi, eax
movsx eax, word [ebx - 0x17e88b40]
sar edi, 1
add edi, eax
jmp 0x49a12a
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
jle 0x49a12a
movsx edx, word [ebx + 0x88]
rol byte [ebp - 8], 0x8b
jge 0x49a129
sub eax, edx
sub eax, dword [ebp + 8]
imul eax, edi
cdq
idiv dword [ebp - 8]
sub edi, eax
sub edi, dword [ebp - 0x30]
rol al, 1
inc ebp
or al, 0xf
rol byte [ebp + 0xc], 0xf
mov bh, 0x93
xchg byte [edi - 0x3d080008], al
adc eax, dword [edx]
push esp
and al, 0x74
xor ecx, dword [edi]
mov edi, 0x83078e83
dec esp
test edx, 0x24540213
je 0x49a16f
movsx eax, word [ebx + 0x4c83078e]
mov eax, dword [ebp + 0xc]
test dl, 0x60
jne 0x49a16f
mov eax, dword [ebp + 0x14]
test dl, dl
jns 0x49a1ab
sub eax, dword [ebp - 4]
cdq
sub eax, edx
mov ecx, eax
movsx eax, word [ebx + 0x4c71ac8a]
sar ecx, 1
add ecx, eax
rol byte [ebp + 0xc], 0xf
mov bh, 0x93
xchg byte [edi + 0x5533fff8], al
lock and dword [ebp - 0x10], 2
movzx edx, word [ebx - 0x7787a]
xor edx, dword [ebp - 0x10]
and dword [ebp - 0x10], 2
je 0x49a17f
movsx edi, word [ebx + 0x88]
test dl, 4
je 0x49a1f2
cmp word [ebp - 0x10], 0
movsx esi, word [ebx + 0x88]
je 0x49a1d6
movsx edx, word [ebx + 0x448d108c]
and al, 0x45
or al, 3
salc
sub edx, edi
sub edx, dword [ebp - 8]
add edx, dword [ebp + 0x10]
mov dword [ebp + 8], edx
jmp 0x49a1e8
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jle 0x49a165
movsx ecx, word [ebx + 0x448d108a]
and al, 0x45
cld
sub eax, ecx
mov ecx, dword [ebp + 0x14]
sub eax, dword [ebp + 0xc]
imul eax, ecx
cdq
idiv dword [ebp - 4]
sub ecx, eax
mov eax, dword [ebp + 0xc]
sub ecx, eax
jmp 0x49a168
movsx edi, word [ebx + 0x448d108c]
add edi, esi
sub edi, dword [ebp - 0x30]
sub edi, dword [ebp - 8]
add edi, dword [ebp + 0x10]
movzx edx, word [ebx - 0x7787a]
mov esi, dword [ebp - 0xc]
mov dword [ebp + 0xc], edx
and dword [ebp + 0xc], 0x20
je 0x49a202
movsx ecx, word [ebx + 0x448d108a]
test dl, 0x40
je 0x49a237
movsx esi, word [ebx + 0x4c83078e]
movsx edx, word [ebx + 0x448d108a]
add edx, esi
cmp word [ebp + 0xc], 0
mov esi, dword [ebp - 0xc]
je 0x49a22d
mov eax, edx
sub eax, ecx
sub eax, dword [ebp - 4]
add eax, dword [ebp + 0x14]
jmp 0x49a237
mov ecx, edx
sub ecx, eax
sub ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x15]
push 0
push eax
jne 0x49a234
push 0x51
push edi
push dword [ebx]
call dword [0xfc7c70c]
mov al, byte [ebx + 0x4c830790]
test al, al
jne 0x49a267
push 0xdb00ffff
mov dword [eax], 0x548d4268
and al, 0xff
xor edi, edi
adc eax, 0xfc72b94
jmp 0x49a2a5
cmp al, 0x16
jne 0x49a2a5
test byte [ebx + 0x45000092], 0x20
jne 0x49a2a5
push 0x24
push dword [ebx + 0x34]
push 0x74080469
push dword [ebx]
call dword [0xfc72b94]
mov al, byte [ebx - 0x13baff6d]
cmp al, 0xff
je 0x49a2a5
movzx eax, al
cmp eax, dword [esi + 0x24540190]
je 0x49a2a5
push 0
invalid
or eax, 0x7d8bfc4d
adc byte [ebx - 0x76bc13a3], cl
mov ebx, dword [ebp - 0x14]
inc ebx
mov dword [ebp - 0x14], ebx
pop ebp
in al, dx
cmp ebx, dword [0x4d1934]
jle 0x49a051
push 1
push 0
invalid
movzx ecx, bx
shl ecx, 0x10
loope 0x49a2e9
retf
movzx eax, di
or ecx, eax
push ecx
push dword [ebp + 0xc]
push 5
push dword [ebp + 8]
call dword [0x8bf0c578]
leave
jne 0x49a32d
dec eax
add byte [eax], dl
jne 0x49a2d5
mov dword [ebp + 0x56], esi
pushal
call 0x18fa6106
dec ebp
add byte [ebx - 0x7481732], cl
div eax
mov edx, 0x4d19100d
add byte [ebx + 0x108b8104], cl
mov eax, dword [ebp + 0xc]
and eax, 0x4c83fff0
sub eax, 0x875f0e4
je 0x49a38c
sub eax, 0x20
je 0x49a36e
sub eax, 0x10
je 0x49a355
sub eax, 0x30
je 0x49a345
xor byte [ebp + edx + 0x2d], dh
rol byte [eax], 0x74
and al, 0x75
pop esp
sub eax, 0x247400c0
jne 0x49a393
push eax
push eax
push edx
push 0xfffffffffffffffb
mov ecx, esi
call int.00492cb0
jmp 0x49a381
xor ebx, ebx
push 0xf
push edx
push 0xfffffffffffffffd
mov ecx, esi
call int.00492cb0
jmp 0x49a3b2
xor ebx, ebx
push 0xf
push edx
push 0xfffffffffffffffa
mov ecx, esi
call int.00492cb0
test byte [0x4d18c0], 1
je 0x49a393
jmp 0x49a3b2
xor ebx, ebx
push 0xf
push edx
push 0xfffffffffffffffc
mov ecx, esi
call int.00492cb0
call fcn.00497820
test byte [0x4d18c0], 1
jne 0x49a3b2
jmp 0x49a393
mov byte [edx - 0x7789f7c], 1
movzx ecx, word [ebp + 0x14]
movzx eax, word [ebp + 0x10]
adc cl, al
loope 0x49a3ae
or ecx, eax
push ecx
push dword [ebp + 0xc]
push 0x112
outsb dx, byte [esi]
jns 0x49a3b4
call dword [0x8bf0c578]
pop esi
leave
inc esi
adc byte [ebp - 0x20], dh
mov dword [ebp + 0x51], esi
push ecx
push ebx
push esi
movzx esi, word [ecx]
push edi
mov edi, edx
test si, si
je 0x49a4f5
mov ebx, 0x67e85795
mov dword [ebp - 4], 0xfff88710
dec ebp
inc ebp
clc
ja 0x83b0a3da
invalid
invalid