Function at 0x464c1e
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0x1c]
push esi
mov ecx, eax
mov esi, 0x7fff
and ecx, 0x8000
and eax, esi
test cx, cx
push edi
mov byte [ebp - 0x1c], 0xcc
mov byte [ebp - 0x1b], 0xcc
mov byte [ebp - 0x1a], 0xcc
mov byte [ebp - 0x19], 0xcc
mov byte [ebp - 0x18], 0xcc
mov byte [ebp - 0x17], 0xcc
mov byte [ebp - 0x16], 0xcc
mov byte [ebp - 0x15], 0xcc
mov byte [ebp - 0x14], 0xcc
mov byte [ebp - 0x13], 0xcc
mov byte [ebp - 0x12], 0xfb
mov byte [ebp - 0x11], 0x3f
mov dword [ebp - 4], 1
mov edx, eax
je 0x464b11
mov byte [ebx + 2], 0x2d
jmp 0x464b15
mov byte [ebx + 2], 0x20
mov edi, dword [ebp + 0xc]
test dx, dx
jne 0x464b3b
test edi, edi
jne 0x464b3b
cmp dword [ebp + 8], edi
jne 0x464b3b
and word [ebx], 0
mov byte [ebx + 2], 0x20
mov byte [ebx + 3], 1
mov byte [ebx + 4], 0x30
jmp 0x464d39
cmp dx, si
jne 0x464bba
mov eax, 0x80000000
mov word [ebx], 1
cmp edi, eax
jne 0x464b54
cmp dword [ebp + 8], 0
je 0x464b63
test edi, 0x40000000
jne 0x464b63
push 0x85b4c8
jmp 0x464ba9
test cx, cx
je 0x464b7d
cmp edi, 0xc0000000
jne 0x464b7d
cmp dword [ebp + 8], 0
jne 0x464ba4
push 0x85b4c0
jmp 0x464b8c
cmp edi, eax
jne 0x464ba4
cmp dword [ebp + 8], 0
jne 0x464ba4
push 0x85b4b8
lea eax, [ebx + 4]
push eax
call fcn.0045e7f0
pop ecx
mov byte [ebx + 3], 5
pop ecx
and dword [ebp - 4], 0
jmp 0x464d12
push 0x85b4b0
lea eax, [ebx + 4]
push eax
call fcn.0045e7f0
pop ecx
mov byte [ebx + 3], 6
pop ecx
jmp 0x464b9b
movzx eax, dx
mov ecx, edi
mov esi, eax
shr ecx, 0x18
imul eax, eax, 0x4d10
shr esi, 8
and word [ebp - 0x10], 0
push 1
lea ecx, [esi + ecx*2]
mov word [ebp - 6], dx
imul ecx, ecx, 0x4d
mov dword [ebp - 0xa], edi
lea esi, [ecx + eax - 0x134312f4]
mov eax, dword [ebp + 8]
sar esi, 0x10
mov dword [ebp - 0xe], eax
movsx eax, si
neg eax
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00464f62
add esp, 0xc
cmp word [ebp - 6], 0x3fff
jb 0x464c1b
lea eax, [ebp - 0x1c]
inc esi
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00464d42
pop ecx
pop ecx
test byte [ebp + 0x18], 1
mov word [ebx], si
je 0x464c35
mov edi, dword [ebp + 0x14]
movsx eax, si
add edi, eax
test edi, edi
jg 0x464c38
jmp 0x464b26
mov edi, dword [ebp + 0x14]
cmp edi, 0x15
jle 0x464c40
push 0x15
pop edi
movzx esi, word [ebp - 6]
sub esi, 0x3ffe
and word [ebp - 6], 0
mov dword [ebp + 0x1c], 8
lea eax, [ebp - 0x10]
push eax
call fcn.0046498d
dec dword [ebp + 0x1c]
pop ecx
jne 0x464c56
test esi, esi
jge 0x464c80
neg esi
and esi, 0xff
jle 0x464c80
lea eax, [ebp - 0x10]
push eax
call fcn.004649bb
dec esi
pop ecx
jne 0x464c73
lea ecx, [edi + 1]
lea eax, [ebx + 4]
test ecx, ecx
mov dword [ebp + 0x1c], eax
jle 0x464cdd
mov dword [ebp + 0x14], ecx
lea esi, [ebp - 0x10]
lea edi, [ebp + 8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x10]
push eax
movsd dword es:[edi], dword [esi]
call fcn.0046498d
lea eax, [ebp - 0x10]
push eax
call fcn.0046498d
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0046492f
lea eax, [ebp - 0x10]
push eax
call fcn.0046498d
mov al, byte [ebp - 5]
mov ecx, dword [ebp + 0x1c]
and byte [ebp - 5], 0
add esp, 0x14
add al, 0x30
inc dword [ebp + 0x1c]
dec dword [ebp + 0x14]
mov byte [ecx], al
jne 0x464c90
mov eax, dword [ebp + 0x1c]
mov cl, byte [eax - 1]
dec eax
dec eax
cmp cl, 0x35
lea ecx, [ebx + 4]
jl 0x464d1a
cmp eax, ecx
jb 0x464cfd
cmp byte [eax], 0x39
jne 0x464cf9
mov byte [eax], 0x30
dec eax
jmp 0x464cea
cmp eax, ecx
jae 0x464d01
inc eax
inc word [ebx]
inc byte [eax]
sub al, bl
sub al, 3
mov byte [ebx + 3], al
movsx eax, al
and byte [eax + ebx + 4], 0
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret
cmp eax, ecx
jb 0x464d2a
cmp byte [eax], 0x30
jne 0x464d26
dec eax
jmp 0x464d1a
cmp eax, ecx
jae 0x464d03
and word [ebx], 0
mov byte [ebx + 2], 0x20
mov byte [ebx + 3], 1
mov byte [ecx], 0x30
and byte [ebx + 5], 0
push 1
pop eax
jmp 0x464d15