Function at 0x10003e29
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
mov edx, dword [0x1003bc54]
mov eax, ecx
push ebx
push esi
mov dword [ebp - 8], eax
xor edx, 0xa5bd1cf8
mov cl, byte [eax]
mov ebx, edx
xor eax, eax
mov byte [ebp - 1], cl
mov esi, eax
push edi
mov edi, dword [0x1003bc70]
test cl, cl
je 0x10003e69
mov ecx, dword [ebp - 8]
lea edx, [edi - 0x58eafa63]
inc esi
cmp byte [esi + ecx], al
jne 0x10003e61
mov ebx, edx
mov ecx, dword [ebp - 0xc]
cmp ecx, esi
jae 0x10003e8b
cmp ecx, 0x1ba6
jne 0x10003e7e
imul edi, ebx, 0x6f47877b
imul edx, edi, 0x4bae5dee
inc ecx
mov ebx, edx
cmp ecx, esi
jb 0x10003e70
mov ecx, dword [0x1003bc54]
lea edi, [ebp - 0x58]
add ecx, 0xeb6d0f89
mov esi, str.._AVFFLAuthGenerateKeyRequest_proto_auth_ffl_avast_com__
mov dword [ebp - 0xc], ecx
or ebx, 0x32ba816b
push 0xe
pop ecx
rep movsd dword es:[edi], dword [esi]
mov dword [0x1003bc70], ebx
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x58], 0x61
jne 0x10003ed4
mov cl, 0x61
test cl, cl
je 0x10003ed4
cmp byte [ebp + eax - 0x58], 0
je 0x10003ed4
mov cl, byte [eax + 0x1002ebb1]
inc eax
cmp cl, byte [ebp + eax - 0x58]
je 0x10003ebc
movzx ecx, byte [eax + str.app.pam.DeletePendingBrowserPasswords]
movzx eax, byte [ebp + eax - 0x58]
sub ecx, eax
mov eax, dword [0x1003bc54]
cmp ecx, 0x2692
jae 0x10003ef7
or edx, 0xaafb49b4
jmp 0x10003efd
imul edx, eax, 0x1320235a
cmp byte [ebp - 1], 0
mov dword [0x1003bc88], edx
je 0x10003f15
lea ebx, [eax + 0x5351af8d]
mov dword [0x1003bc70], ebx
push 9
pop ecx
mov esi, str.HTTP_1.0_connection_set_to_keep_alive
lea edi, [ebp - 0x48]
rep movsd dword es:[edi], dword [esi]
mov cl, byte [ebp - 1]
xor eax, eax
movsw word es:[edi], word [esi]
cmp cl, byte [ebp - 0x48]
jne 0x10003f4c
mov ebx, dword [ebp - 8]
test cl, cl
je 0x10003f46
cmp byte [ebp + eax - 0x48], 0
je 0x10003f46
inc eax
mov cl, byte [ebx + eax]
cmp cl, byte [ebp + eax - 0x48]
je 0x10003f31
mov ebx, dword [0x1003bc70]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
movzx ecx, byte [eax + esi]
movzx eax, byte [ebp + eax - 0x48]
sub ecx, eax
cmp ecx, 0x14af
jne 0x10003f75
mov edx, edi
and edx, 0x7753c2dd
mov dword [0x1003bc88], edx
jmp 0x10003f80
imul eax, ebx, 0x678c506f
mov dword [0x1003bc54], eax
xor ecx, ecx
mov eax, ecx
cmp byte [ebp - 1], al
je 0x10003fb2
mov edx, ebx
and edx, 0x2192fa86
mov dword [0x1003bc88], edx
inc eax
cmp byte [eax + esi], cl
jne 0x10003f97
cmp eax, 0x2581
jbe 0x10003fb2
mov edx, edi
xor edx, 0xb876ee1d
mov dword [0x1003bc88], edx
mov esi, str.doesVaultExist
imul eax, edx, 0x55c0c754
lea edi, [ebp - 0x1c]
movsd dword es:[edi], dword [esi]
mov dword [0x1003bba0], eax
mov al, byte [ebp - 1]
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 al, byte [ebp - 0x1c]
jne 0x10004016
mov ebx, dword [ebp - 8]
test al, al
je 0x10003feb
cmp byte [ebp + ecx - 0x1c], 0
je 0x10003feb
inc ecx
mov al, byte [ebx + ecx]
cmp al, byte [ebp + ecx - 0x1c]
je 0x10003fd6
mov eax, dword [ebp - 0xc]
mov ebx, dword [0x1003bc70]
cmp eax, ecx
jae 0x10004016
cmp eax, 0x157e
jne 0x10004005
lea ebx, [edx - 0x674b8918]
and ebx, 0x36c3c920
inc eax
cmp eax, ecx
jb 0x10003ff8
mov dword [0x1003bc70], ebx
pop edi
pop esi
pop ebx
leave
ret