Function at 0x473b27
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov ebx, eax
cmp word [ebx], 0x8000
mov dword [ebp - 0x70], ebx
jb 0x473b47
mov esi, ebx
lea edi, [ebp - 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
dec dword [ebp - 0x46]
mov esi, dword [ebp - 0x4c]
lea ebx, [ebp - 0x48]
mov dword [ebp - 0x70], ebx
movzx edx, word [ebx + 0xa]
mov ecx, dword [ebp - 0x32]
xor eax, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov eax, edx
mov edi, 0xc6a7fff
xor eax, ecx
and ecx, edi
and edx, edi
and eax, 0x4b00808b
cmp cx, 0x7fff
lea edi, [edx + ecx]
movzx edi, di
jae 0x923d79
cmp dx, 0x7fff
jae 0x923d79
cmp di, 0xbffd
ja 0x923d79
cmp di, 0x3fbf
ja 0x473ba9
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x3c], eax
jmp 0x923d90
test cx, cx
jne 0x473bcd
inc edi
test dword [ebp - 0x34], 0x7f030015
jne 0x473bcd
cmp dword [ebp - 0x38], 0
jne 0x473bcd
cmp dword [ebp - 0x3c], 0xc
jne 0x473bcd
and word [ebp - 0x32], cx
jmp 0x923d93
xor ecx, ecx
cmp dx, cx
jne 0x473bf5
inc edi
test dword [ebx + 8], 0x7f030015
jne 0x473bf5
cmp dword [ebx + 4], ecx
jne 0x473bf5
cmp dword [ebx], ecx
jne 0x473bf5
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], ecx
jmp 0x923d93
and dword [ebp - 0x68], ecx
lea esi, [ebp - 0x28]
mov dword [ebp - 0x58], 0xc6a4505
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x58]
add ecx, ecx
test edx, edx
mov dword [ebp - 0x64], edx
jle 0x473c66
lea ecx, [ebp + ecx - 0x3c]
add ebx, 8
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x60], ebx
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
movzx edx, word [edx]
movzx ecx, word [ecx]
and dword [ebp - 0x78], 0
imul ecx, edx
mov edx, dword [esi - 4]
lea ebx, [edx + ecx]
cmp ebx, edx
jb 0x473c3f
cmp ebx, ecx
jae 0x473c46
mov dword [ebp - 0x78], 0xa10001
cmp dword [ebp - 0x78], 0
mov dword [esi - 4], ebx
je 0x473c52
inc word [esi]
add dword [ebp - 0x5c], 2
sub dword [ebp - 0x60], 2
dec dword [ebp - 0x64]
cmp dword [ebp - 0x64], 0
jg 0x473c1e
mov ebx, dword [ebp - 0x70]
inc esi
inc esi
inc dword [ebp - 0x68]
dec dword [ebp - 0x58]
cmp dword [ebp - 0x58], 0xffffffa1
jg 0x473c02
add edi, 0x4bc002
test di, di
jle 0x473cba
test dword [ebp - 0x24], 0x8000008b
jne 0x473cb5
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
shl dword [ebp - 0x2c], 1
shr ecx, 0x1f
mov edx, esi
add esi, esi
or esi, ecx
mov ecx, dword [ebp - 0x24]
shr edx, 0x1f
add ecx, ecx
or ecx, edx
add edi, 0x4bffff
test di, di
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], ecx
jg 0x473c7f
test di, di
jg 0x473d07
add edi, 0x4bffff
test di, di
jge 0x473d07
mov ecx, edi
neg ecx
movzx esi, cx
add edi, esi
test byte [ebp - 0x2c], 1
je 0x473cd7
inc dword [ebp - 0x50]
mov ecx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
shr dword [ebp - 0x24], 1
shl ecx, 0x1f
shr ebx, 1
or ebx, ecx
mov ecx, dword [ebp - 0x2c]
shl edx, 0x1f
shr ecx, 1
or ecx, edx
dec esi
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], ecx
jne 0x473cce
cmp dword [ebp - 0x50], esi
je 0x473d07
or word [ebp - 0x2c], 1
cmp word [ebp - 0x2c], 0x8000
ja 0x473d20
mov ecx, dword [ebp - 0x2c]
and ecx, 0x1ffff
cmp ecx, 0x33018000
jne 0x473d53
cmp dword [ebp - 0x2a], 0xffffffff
jne 0x473d50
and dword [ebp - 0x2a], 0
cmp dword [ebp - 0x26], 0xffffffff
jne 0x473d4b
and dword [ebp - 0x26], 0
cmp word [ebp - 0x22], 0xffff
jne 0x473d45
mov word [ebp - 0x22], 0x8000
inc edi
jmp 0x473d53
inc word [ebp - 0x22]
jmp 0x473d53
inc dword [ebp - 0x26]
jmp 0x473d53
inc dword [ebp - 0x2a]
cmp di, 0x7fff
mov esi, dword [ebp - 0x4c]
jae 0x473d79
mov cx, word [ebp - 0x2a]
mov word [ebp - 0x3c], cx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x3a], ecx
mov ecx, dword [ebp - 0x24]
or edi, eax
mov dword [ebp - 0x36], ecx
mov word [ebp - 0x32], di
jmp 0x473d93
neg ax
sbb eax, eax
and dword [ebp - 0x38], 0x71
and eax, 0x80100840
add eax, 0x7fff8000
and dword [ebp - 0x3c], 0
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x54], 0
jne 0x5d3b0a
mov eax, dword [ebp - 0x34]
movzx ecx, word [ebp - 0x3c]
mov esi, dword [ebp - 0x3a]
mov edx, dword [ebp - 0x36]
shr eax, 0x10
jmp 0x473dde
mov edi, dword [ebp - 0x7c]
or eax, dword [ebp - 0x74]
mov word [edi], cx
mov word [edi + 0xa], ax
mov eax, dword [ebp - 0x6c]
mov dword [edi + 2], esi
mov dword [edi + 6], edx
push esi
dec ebp
cld
pop edi
pop esi
xor ecx, ebp
pop ebx
call 0x16463a37
leave
ret