Function at 0x49a314
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov bh, 0x4d
adc al, 0xf
mov bh, 0x45
adc cl, al
loope 0x499fdb
or ecx, eax
push ecx
push dword [ebp + 0xc]
invalid
jne 0x49a025
add byte [eax], dl
jne 0x499fc1
mov dword [ebp - 0x7d], esi
in al, dx
adc al, 0xa3
clc
call 0xb9b49862
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 0x49a02a
cmp dword [esi - 0x778fe64], 0xffffffff
mov dword [esi + 0x44], edi
mov dword [esi + 0x48], ebx
je 0x49a02a
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 0x49a052
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 0x49a310
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 0x49a081
add bh, al
test byte [edx + eax + 0x36a2454], dl
pop ebx
mov dword [ebp - 0x14], ebx
in al, dx
cmp dword [0x4d1934], ebx
jl 0x49a2fb
mov eax, dword [0x4d1924]
mov eax, dword [eax + ebx*4]
mov ebx, dword [eax]
test ebx, ebx
je 0x75d4a2e8
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 4]
jne 0x249da2e8
cmp dword [ebx], 0x24
je 0x49a2e8
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 0x41a274
test edx, 0x24540113
je 0x49a171
movsx esi, word [ebx + 0x2474008c]
mov dword [ebp + 8], esi
mov esi, dword [ebp - 0xc]
test dl, 6
jne 0x49a171
mov eax, dword [ebp + 0x10]
test dl, 8
je 0x49a140
sub eax, dword [ebp - 8]
cdq
sub eax, edx
mov edi, eax
movsx eax, word [ebx - 0x17e88b40]
sar edi, 1
add edi, eax
jmp 0x49a167
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
jle 0x49a167
movsx edx, word [ebx + 0x88]
rol byte [ebp - 8], 0x8b
jge 0x49a166
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 0x49a1ac
movsx eax, word [ebx + 0x4c83078e]
mov eax, dword [ebp + 0xc]
test dl, 0x60
jne 0x49a1ac
mov eax, dword [ebp + 0x14]
test dl, dl
jns 0x49a1e8
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 0x49a1bc
movsx edi, word [ebx + 0x88]
test dl, 4
je 0x49a22f
cmp word [ebp - 0x10], 0
movsx esi, word [ebx + 0x88]
je 0x49a213
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 0x49a225
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jle 0x49a1a2
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 0x49a1a5
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 0x49a23f
movsx ecx, word [ebx + 0x448d108a]
test dl, 0x40
je 0x49a274
movsx esi, word [ebx + 0x4c83078e]
movsx edx, word [ebx + 0x448d108a]
add edx, esi
cmp word [ebp + 0xc], 0
mov esi, dword [ebp - 0xc]
je 0x49a26a
mov eax, edx
sub eax, ecx
sub eax, dword [ebp - 4]
add eax, dword [ebp + 0x14]
jmp 0x49a274
mov ecx, edx
sub ecx, eax
sub ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x15]
push 0
push eax
jne 0x49a271
push 0x51
push edi
push dword [ebx]
call dword [0xfc7c70c]
mov al, byte [ebx + 0x4c830790]
test al, al
jne 0x49a2a4
push 0xdb00ffff
mov dword [eax], 0x548d4268
and al, 0xff
xor edi, edi
adc eax, 0xfc72b94
jmp 0x49a2e2
cmp al, 0x16
jne 0x49a2e2
test byte [ebx + 0x45000092], 0x20
jne 0x49a2e2
push 0x24
push dword [ebx + 0x34]
push 0x74080469
push dword [ebx]
call dword [0xfc72b94]
mov al, byte [ebx - 0x13baff6d]
cmp al, 0xff
je 0x49a2e2
movzx eax, al
cmp eax, dword [esi + 0x24540190]
je 0x49a2e2
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 0x49a08e
push 1
push 0
invalid
movzx ecx, bx
shl ecx, 0x10
loope 0x49a326
retf
movzx eax, di
or ecx, eax
push ecx
push dword [ebp + 0xc]
push 5
push dword [ebp + 8]
call dword [0x8bf0c578]
leave
jne 0x49a36a
dec eax
add byte [eax], dl
jne 0x49a312
mov dword [ebp + 0x56], esi
pushal
call 0x18fa6143
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 0x49a3c9
sub eax, 0x20
je 0x49a3ab
sub eax, 0x10
je 0x49a392
sub eax, 0x30
je 0x49a382
xor byte [ebp + edx + 0x2d], dh
rol byte [eax], 0x74
and al, 0x75
pop esp
sub eax, 0x247400c0
jne 0x49a3d0
push eax
push eax
push edx
push 0xfffffffffffffffb
mov ecx, esi
call int.00492ced
jmp 0x49a3be
xor ebx, ebx
push 0xf
push edx
push 0xfffffffffffffffd
mov ecx, esi
call int.00492ced
jmp 0x49a3ef
xor ebx, ebx
push 0xf
push edx
push 0xfffffffffffffffa
mov ecx, esi
call int.00492ced
test byte [0x4d18c0], 1
je 0x49a3d0
jmp 0x49a3ef
xor ebx, ebx
push 0xf
push edx
push 0xfffffffffffffffc
mov ecx, esi
call int.00492ced
call fcn.0049785d
test byte [0x4d18c0], 1
jne 0x49a3ef
jmp 0x49a3d0
mov byte [edx - 0x7789f7c], 1
movzx ecx, word [ebp + 0x14]
movzx eax, word [ebp + 0x10]
adc cl, al
loope 0x49a3eb
or ecx, eax
push ecx
push dword [ebp + 0xc]
push 0x112
outsb dx, byte [esi]
jns 0x49a3f1
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 0x49a532
mov ebx, 0x67e85795
mov dword [ebp - 4], 0xfff88710
dec ebp
inc ebp
clc
ja 0x83b0a417
invalid
invalid