Function at 0x420b8e
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
push ebx
push esi
push edi
push 0x17
pop ecx
mov esi, str.O:SYD:_A__0xC0100000___SY__A__0xC0100000___BA_
lea edi, [ebp - 0x7c]
rep movsd dword es:[edi], dword [esi]
push 0x49
xor edx, edx
mov eax, edx
movsw word es:[edi], word [esi]
pop esi
cmp si, word [ebp - 0x7c]
jne 0x420bd3
mov ecx, edx
test si, si
je 0x420bd3
cmp word [ebp + ecx - 0x7c], dx
je 0x420bd3
inc eax
lea ecx, [eax + eax]
movzx esi, word [ecx + str.InstallDirectory]
cmp si, word [ebp + ecx - 0x7c]
je 0x420bb5
movzx ecx, byte [eax*2 + str.InstallDirectory]
movzx eax, byte [ebp + eax*2 - 0x7c]
mov ebx, dword [0x435a28]
sub ecx, eax
cmp ecx, 0xc6a
jne 0x420bf9
mov eax, ebx
and eax, 0x51eb3f78
jmp 0x420c03
mov eax, dword [0x435a54]
add eax, 0x59bbf804
mov ecx, edx
and eax, 0xb6647c47
inc ecx
cmp byte [ecx + 0x43226c], dl
jne 0x420c05
mov dword [0x435a54], eax
cmp dword [ebp - 4], ecx
jae 0x420c28
sub ecx, dword [ebp - 4]
imul eax, ecx, 0x4a170dd1
add ebx, eax
mov esi, 0x42e844
lea edi, [ebp - 0x14]
mov eax, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x14], 0x48
jne 0x420c7a
mov cl, 0x48
test cl, cl
je 0x420c54
cmp byte [ebp + eax - 0x14], dl
je 0x420c54
mov cl, byte [eax + 0x432491]
inc eax
cmp cl, byte [ebp + eax - 0x14]
je 0x420c3d
mov ecx, dword [ebp - 4]
cmp ecx, eax
jae 0x420c7a
imul esi, dword [0x435a44], 0x19e68020
cmp ecx, 0xa6a
jne 0x420c73
add ebx, 0x1a73acc
inc ecx
cmp ecx, eax
jb 0x420c65
jmp 0x420c80
mov esi, dword [0x435aa0]
imul eax, esi, 0x7207dc0e
lea edi, [ebp - 0x1c]
push 5
pop ecx
mov esi, 0x42cd0c
add ebx, 0x2e5e9296
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], eax
mov eax, edx
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x1c], 0x74
jne 0x420cbe
mov cl, 0x74
test cl, cl
je 0x420cbe
cmp byte [ebp + eax - 0x1c], dl
je 0x420cbe
mov cl, byte [eax + 0x432391]
inc eax
cmp cl, byte [ebp + eax - 0x1c]
je 0x420ca7
movzx ecx, byte [eax + 0x432390]
movzx eax, byte [ebp + eax - 0x1c]
sub ecx, eax
cmp ecx, 0x162
je 0x420cdd
mov ebx, dword [ebp - 4]
add ebx, 0x4ed403c2
lea eax, [ebx - 0x1f5839d]
mov ecx, edx
mov dword [0x435a44], eax
inc ecx
cmp word [ecx*2 + 0x432300], dx
jne 0x420cea
cmp dword [ebp - 4], ecx
jae 0x420d06
mov eax, ebx
xor eax, 0xb6ed8f4f
mov dword [0x435a44], eax
lea ecx, [ebx + 0x627ee5c5]
mov eax, edx
mov dword [0x435a54], ecx
inc eax
cmp byte [eax + str.HKEY_CURRENT_USER], dl
jne 0x420d14
cmp eax, 0x1289
ja 0x420d30
lea ecx, [ebx - 0x7e9612bd]
mov dword [0x435a54], ecx
mov esi, str.no_protocol_option
lea edi, [ebp - 0x1c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x1c], 0x6f
jne 0x420d72
mov al, 0x6f
test al, al
je 0x420d5f
cmp byte [ebp + edx - 0x1c], 0
je 0x420d5f
mov al, byte [edx + 0x4322e1]
inc edx
cmp al, byte [ebp + edx - 0x1c]
je 0x420d47
cmp dword [ebp - 4], edx
jae 0x420d72
sub edx, dword [ebp - 4]
and ebx, 0xf6253434
sub edx, 1
jne 0x420d67
mov eax, ecx
and ecx, 0xe88fd9f4
or eax, 0xa5d4be89
pop edi
add eax, 0x62c4a926
xor ecx, 0xb4103edd
pop esi
mov dword [0x435aa0], eax
mov dword [0x435a28], ecx
pop ebx
leave
ret