Function at 0x48d469
Capabilities:
Encrypt data using rc4 prga

Disassembly:
jne 0x48d448
push esi
push edx
call 0xc0cdb38e
je 0x48d44b
mov dword [0xff14458b], ebp
dec dword [edi + ecx]
mov bh, 0xc8
shl ecx, 0x10
movzx eax, si
or ecx, eax
cmp dword [ebp + 0x18], 0
push ecx
je 0x48d467
mov eax, dword [ebp + 0x14]
invalid
push 0x4708b14
mov dword [0x6011568], 0x844c7ff
add dword [esi], eax
inc edi
inc esp
or byte [ebx + 0x31f5844b], dl
push esi
pop edi
push 0xff060115
mov dword [eax + ecx - 0x6d], 0x31f5844b
add dword [esi], eax
inc edi
inc esp
or byte [ebx + 0x31f5844b], dl
push esi
pop edi
add byte [ecx + 0x57c93385], cl
mov ebx, dword [ebx - 0x7d]
in al, dx
je 0x48d43b
mov al, 0x57
dec esp
add byte [esi - 8], al
jne 0x48d489
invalid
push dword [esi - 0x18]
mov esi, 0x8bfff751
or eax, 0xd44c5810
mov ebp, ebx
adc byte [esi], bl
pop ebp
adc al, 0x8b
add al, 0x81
mov edi, dword [eax]
cmp byte [edi + 0x3a], 0
je 0x48d4c2
cmp dword [edi - 0x3dfdfe64], 0xfffffff8
mov dword [edi + 0x44], esi
mov dword [edi + 0x48], ebx
je 0x48d4c2
push 0xf
call dword [0xff33f558]
add dword [edi + 0x48], eax
cmp dword [edi - 0x3dfdfe64], 0xfffffff8
mov eax, dword [edi + 0x44]
mov ecx, dword [edi + 0x48]
mov dword [eax - 8], ebp
mov dword [ebp - 4], ecx
je 0x48d4ea
push 0xf
call dword [0xff33f558]
mov ecx, dword [ebp - 4]
sub ecx, eax
mov ebp, dword [eax - 8]
mov dword [ebp - 4], ecx
pushal
bnd jle 0xf909d7a6
test ecx, ecx
jle 0xf909d7a6
test esi, esi
jle 0xf909d7a6
test ebx, ebx
jle 0x52dd78a6
cmp dword [ebp + 0xc], 1
je 0xff4ed7a6
push 3
pop ebx
mov dword [ebp - 0x10], ebx
cmp dword [0xd44c5834], ebx
jl 0x4881d791
mov eax, dword [0xd44c5824]
mov eax, dword [eax + ebx*4]
mov ebx, dword [eax]
test ebx, ebx
je 0xf909d77e
mov eax, dword [ebx + 4]
cmp eax, dword [edi + 4]
jne 0x52dd787e
sar byte [ebx], 0xff
je 0x52dd787e
movsx eax, word [ebx - 0x3fccfb78]
mov dword [ebp - 0xc], eax
imul eax, esi
cdq
idiv dword [ebp - 8]
mov esi, eax
movsx eax, word [ebx + 0x1800008a]
imul eax, dword [ebp + 0x14]
cdq
idiv ecx
mov ecx, eax
movsx eax, word [ebx + 0x1800008c]
imul eax, dword [ebp + 0x10]
cdq
idiv dword [ebp - 8]
mov dword [ebp + 8], eax
movsx eax, word [ebx - 0x1237a72]
imul eax, dword [ebp + 0x14]
cdq
idiv dword [ebp - 4]
movzx edx, word [ebx - 0x3fccfb7a]
mov dword [ebp + 0xc], eax
test dx, dx
je 0xc24ad70a
test edx, 0xfff8da00
je 0x48d610
movsx edx, word [ebx + 0xb8b3b8c]
mov dword [ebp + 8], edx
movzx edx, word [ebx - 0x3fccfb7a]
test dl, 6
jne 0x48d610
mov eax, dword [ebp + 0x10]
test dl, 8
je 0x48d5df
sub eax, dword [ebp - 8]
cdq
sub eax, edx
mov esi, eax
movsx eax, word [ebx - 0x3fccfb78]
sar esi, 1
add esi, eax
jmp 0x48d606
cdq
sub eax, edx
sar eax, 1
cmp esi, eax
jle 0x48d606
movsx edx, word [ebx - 0x3fccfb78]
mov eax, dword [ebp - 8]
push ds
mov edx, dword [eax]
sub eax, edx
sub eax, dword [ebp + 8]
imul eax, esi
cdq
idiv dword [ebp - 8]
sub esi, eax
sub esi, dword [ebp + 0x43]
add dword [ebp + 0xc], 0xf
mov bh, 0x93
xchg byte [ebx + esi], al
sal bh, 0xc2
add byte [ebx + 0x33745294], ah
test edx, 0x5294a300
je 0x48d64b
movsx eax, word [ebx - 0x1237a72]
mov dword [ebp + 0xc], eax
test dl, 0x60
jne 0x48d64b
mov eax, dword [ebp + 0x14]
test dl, dl
jns 0x48d685
sub eax, dword [ebp - 4]
cdq
sub eax, edx
mov ecx, eax
movsx eax, word [ebx + 0x1800008a]
sar ecx, 1
add ecx, eax
add dword [ebp + 0xc], 0xf
mov bh, 0x93
xchg byte [ebx + esi], al
ror byte [ecx + 0x65830c55], 0xc
add dh, byte [edi + eax + 0xf]
mov edi, 0x330488b3
sal dh, 0xc2
add al, 0x74
arpl word [esi - 0x7d], sp
jge 0x48d670
movzx edx, word [ebx - 0x3fccfb7a]
mov dword [ebp + 0xc], edx
and dword [ebp + 0xc], 2
je 0x48d65b
movsx esi, word [ebx - 0x3fccfb78]
test dl, 4
je 0x48d6c3
cmp word [ebp + 0xc], 0
je 0x48d6b0
add byte [ecx + ecx*2 + 0xf], dh
mov edi, 0x8b3b8c93
or ebp, dword [ebx]
salc
movsx edx, word [ebx + 0xb8b3b8c]
sub edx, esi
sub edx, dword [ebp - 8]
add edx, dword [ebp - 0xc]
add edx, dword [ebp + 0x10]
mov dword [ebp + 8], edx
movzx edx, word [ebx - 0x3fccfb7a]
jmp 0x48d6c3
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jle 0x48d641
movsx ecx, word [ebx + 0x440008a]
sub esp, 0xfffffffc
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 ebp, dword [eax + 0xc]
sub ecx, eax
jmp 0x48d644
movsx esi, word [ebx + 0xb8b3b8c]
sub esi, dword [ebp + 8]
sub esi, dword [ebp - 8]
add esi, dword [ebp - 0xc]
add esi, dword [ebp + 0x10]
mov dword [ebp + 0xc], edx
and dword [ebp + 0xc], 0x20
je 0x48d6d3
movsx ecx, word [ebx + 0x440008a]
test dl, 0x40
je 0x48d70a
cmp word [ebp + 0xc], 0
movsx edx, word [ebx + 0x440008a]
je 0x48d6f9
movsx eax, word [ebx - 0x1237a72]
sub eax, ecx
sub eax, dword [ebp - 4]
add eax, edx
add eax, dword [ebp + 0x14]
jmp 0x48d70a
movsx ecx, word [ebx - 0x1237a72]
sub ecx, eax
sub ecx, dword [ebp - 4]
add ecx, edx
add ecx, dword [ebp + 0x14]
push 0x24
push eax
sbb byte [ebx + edi*8 + 0x33585651], al
call dword [0xfffdf700]
mov al, byte [ebx + 0xb8b3b90]
je 0x48d727
mov dword [esi], edx
push 0xc000ffff
add al, al
je 0x48d72b
push 0xff060142
push dword [ebx]
xchg ebx, eax
dec ebx
mov dh, dh
std
invalid