Function at 0x479a82
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov eax, dword [ebp - 0x8ec]
add eax, 1
mov dword [ebp - 0x8ec], eax
mov ecx, dword [ebp - 0x8e8]
mov edx, dword [ebp - 0x8ec]
cmp edx, dword [ecx + 0x18]
jae 0x479788
mov eax, dword [ebp - 0x8ec]
mov ecx, dword [ebp - 0x242c]
mov edx, dword [ebp - 0x3ec]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x8f0], edx
mov eax, dword [ebp - 0x8ec]
mov ecx, dword [ebp - 0x2430]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x2434]
mov ecx, dword [ebp - 0x3ec]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x2438], ecx
mov dword [ebp - 0x200], 0
jmp 0x4795ec
mov edx, dword [ebp - 0x200]
add edx, 1
mov dword [ebp - 0x200], edx
mov eax, dword [ebp - 0x8f0]
add eax, dword [ebp - 0x200]
movsx ecx, byte [eax]
test ecx, ecx
je 0x47969e
mov edx, dword [ebp - 0x200]
movsx eax, byte [ebp + edx - 0xb4c]
test eax, eax
je 0x47969e
push ebx
xor ebx, 0x673e
and ebx, 0x10d37
xor ebx, 0x381f
and ebx, 0x4e83
pop ebx
push ecx
push ecx
add esp, 4
xor ecx, 0x764a
sub ecx, 0x1004c
add ecx, 0xae64
pop ecx
mov ecx, dword [ebp - 0x8f0]
add ecx, dword [ebp - 0x200]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x200]
movsx ecx, byte [ebp + eax - 0xb4c]
cmp edx, ecx
je 0x479690
mov edx, dword [ebp - 0x8f0]
add edx, dword [ebp - 0x200]
movsx eax, byte [edx]
xor eax, 0x20
mov ecx, dword [ebp - 0x200]
movsx edx, byte [ebp + ecx - 0xb4c]
cmp eax, edx
jne 0x479697
jmp 0x4795dd
jmp 0x47969e
push edi
xor edi, 0x121b9
add edi, 0x2a7a
xor edi, 0x2cd3
or edi, 0xd567
pop edi
push edx
push eax
add esp, 4
or edx, 0x15815
and edx, 0x16e2
or edx, 0x164be
pop edx
mov eax, dword [ebp - 0x8f0]
add eax, dword [ebp - 0x200]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x200]
movsx eax, byte [ebp + edx - 0xb4c]
cmp ecx, eax
jne 0x4796fd
mov dword [ebp - 0xf2c], 0
jmp 0x47976c
push eax
push edx
add esp, 4
add eax, 0x1834
or eax, 0x12023
pop eax
push eax
push eax
add esp, 4
call 0x479722
add byte [esi], dh
dec esp
dec eax
dec esp
inc edx
dec esp
xor al, 0x39
add esp, 4
jmp 0x47972e
pop eax
mov ecx, dword [ebp - 0x8f0]
add ecx, dword [ebp - 0x200]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x200]
movsx ecx, byte [ebp + eax - 0xb4c]
or ecx, 0x20
cmp edx, ecx
jge 0x479762
mov dword [ebp - 0xf2c], 0xffffffff
jmp 0x47976c
mov dword [ebp - 0xf2c], 1
cmp dword [ebp - 0xf2c], 0
jne 0x479783
mov edx, dword [ebp - 0x2438]
mov dword [ebp - 0x4a4], edx
jmp 0x479794
jmp 0x47956d
mov eax, dword [ebp - 0x8f4]
mov dword [ebp - 0x4a4], eax
cmp dword [ebp - 0x4a4], 0
je 0x47986f
push edi
jmp 0x4797a8
and edi, 0xf653
and edi, 0x10cf4
pop edi
push eax
push edi
add esp, 4
sub eax, 0x14f7
sub eax, 0x861f
xor eax, 0x3eb9
jmp 0x4797d2
pop eax
mov ecx, dword [ebp - 0x4a4]
mov dword [ebp - 0x243c], ecx
push esi
sub esi, 0xd133
and esi, 0x6e36
call 0x4797fb
add byte [eax], al
inc edx
push eax
dec esi
inc ebx
dec esp
dec edx
aaa
cmp dword [esi - 0x7d], ecx
les eax, [ecx + eax*4]
div byte [eax]
dec edx
add dword [eax], eax
pop esi
push ecx
push ebx
add esp, 4
or ecx, 0x10af0
pop ecx
mov edx, dword [ebp - 0x243c]
mov dword [ebp - 0x2440], edx
lea eax, [ebp - 0x14bc]
push eax
call dword [ebp - 0x2440]
test eax, eax
jne 0x47986f
push ecx
push edi
add esp, 4
and ecx, 0x1521
and ecx, 0x9f78
jmp 0x479845
xor ecx, 0x14931
pop ecx
push edx
add edx, 0x72c9
add edx, 0x964d
and edx, 0x972
pop edx
mov dword [ebp - 0xc64], 0
jmp 0x479f5a
push ebx
push esi
add esp, 4
add ebx, 0x77c9
pop ebx
push ecx
sub ecx, 0xad6c
or ecx, 0x6eec
or ecx, 0xfbc9
pop ecx
push edx
push ecx
add esp, 4
sub edx, 0xa64f
xor edx, 0x91f9
pop edx
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x2444], ecx
mov edx, dword [ebp - 0x2444]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x2448], eax
mov ecx, dword [ebp - 0x2448]
mov dword [ebp - 0x1a20], ecx
push edi
push eax
add esp, 4
sub edi, 0x5587
pop edi
push edi
and edi, 0x3f88
pop edi
push esi
push eax
add esp, 4
jmp 0x4798e8
add esi, 0x14790
sub esi, 0x98cd
or esi, 0x8977
pop esi
cmp dword [ebp - 0x1a20], 0
jne 0x479913
mov dword [ebp - 0x3b4], 0
jmp 0x479bba
mov edx, dword [ebp - 0x1a20]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xf38], ecx
push edi
push esi
add esp, 4
and edi, 0x1413c
pop edi
push edi
push ecx
add esp, 4
add edi, 0x14f81
or edi, 0x6ea1
pop edi
push eax
or eax, 0xd79d
or eax, 0x2937
or eax, 0x13dd6
pop eax
cmp dword [ebp - 0xf38], 0
jne 0x47996f
mov dword [ebp - 0x3b4], 0
jmp 0x479bba
mov edx, dword [ebp - 0xf38]
mov dword [ebp - 0x600], edx
push edi
sub edi, 0x10366
add edi, 0xc2fa
xor edi, 0x5c89
call 0x47999d
add byte [0x40425033], dh
xor dh, byte [edx]
inc edx
dec edi
add esp, 4
pop edi
push ecx
push edi
add esp, 4
sub ecx, 0x1191d
pop ecx
lea eax, [ebp - 0x14bc]
mov dword [ebp - 0xf34], eax
mov ecx, dword [ebp - 0x600]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xf30], edx
xor eax, eax
mov word [ebp - 0x284], ax
xor ecx, ecx
mov word [ebp - 0x40], cx
push edx
push edx
add esp, 4
add edx, 0xa05f
xor edx, 0xfe2d
add edx, 0x204b
add edx, 0x2626
pop edx
push edx
add edx, 0xa91
jmp 0x479a02
or edx, 0x17c2f
pop edx
mov edx, dword [ebp - 0xf30]
mov ax, word [edx]
mov word [ebp - 0x136a], ax
mov ecx, dword [ebp - 0xf30]
add ecx, 2
mov dword [ebp - 0xf30], ecx
mov dx, word [ebp - 0x136a]
mov word [ebp - 0x284], dx
mov eax, dword [ebp - 0xf34]
mov cx, word [eax]
mov word [ebp - 0x136c], cx
mov edx, dword [ebp - 0xf34]
add edx, 2
mov dword [ebp - 0xf34], edx
mov ax, word [ebp - 0x136c]
mov word [ebp - 0x40], ax
push ecx
push esi
add esp, 4
sub ecx, 0xe936
pop ecx
push ecx
and ecx, 0x3f57
call 0x479a82
add byte [esi], bh
cmp al, byte [edx + 0x4c]
dec ecx
dec edi
xor al, 0x33
add esp, 4
sub ecx, 0xac7a
and ecx, 0x3458
pop ecx
movzx ecx, word [ebp - 0x40]
test ecx, ecx
jne 0x479aaf
movzx edx, word [ebp - 0x284]
movzx eax, word [ebp - 0x40]
sub edx, eax
mov dword [ebp - 0x1a28], edx
jmp 0x479b09
movzx ecx, word [ebp - 0x284]
movzx edx, word [ebp - 0x40]
cmp ecx, edx
je 0x4799d7
movzx eax, word [ebp - 0x284]
xor eax, 0x20
movzx ecx, word [ebp - 0x40]
cmp eax, ecx
je 0x4799d7
movzx edx, word [ebp - 0x284]
movzx eax, word [ebp - 0x40]
cmp edx, eax
jge 0x479af3
mov dword [ebp - 0x1a24], 0xffffffff
mov dword [ebp - 0x1a24], 1
mov ecx, dword [ebp - 0x1a24]
mov dword [ebp - 0x1a28], ecx
cmp dword [ebp - 0x1a28], 0
jne 0x479b52
push edx
call 0x479b22
add byte [ebp + 0x32], al
cmp al, 0x3b
dec eax
cmp eax, 0xc4834c39
add al, 0x81
ret 0x8c1d
push ecx
call 0x479b5f
add byte [ebx + 0x4c], cl
xor eax, 0x834d323c
les eax, [ebx + ebp*8]
push es
cmp dh, byte [esi]
aas
inc ebx
aaa
xor eax, 0xbe8
add byte [eax], al
cmp eax, 0x36374c37
dec ecx
inc ebx
cmp al, 0x49
xor eax, 0x8104c483
int1
fst qword [edx + 1]
add byte [ecx - 0x75], bl
test dword [eax], eax
cli
invalid
push edx
sub edx, 0x6d87
and edx, 0xc657
call 0x479bd3
add byte [ebx], dh
dec edx
inc eax
inc esi
dec edi
add esp, 4
pop edx
push esi
call 0x479be8
add byte [edi + 0x41], cl
inc ebp
cmp byte [ebp + 0x42], cl
cmp eax, dword ss:[eax + 0x3e]
add esp, 4
pop esi
mov ecx, dword [ebp - 0x3b4]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x3e8], edx
push esi
xor esi, 0x9f4d
pop esi
push eax
push esi
add esp, 4
add eax, 0x14bd
pop eax
push edx
push edx
add esp, 4
or edx, 0xc029
add edx, 0x2caa
pop edx
push edx
push edx
add esp, 4
xor edx, 0xedcd
pop edx
mov dword [ebp - 0x904], 0
mov eax, dword [ebp - 0x3e8]
mov dword [ebp - 0x1a2c], eax
cmp dword [ebp - 0x1a2c], 0
jne 0x479c5d
mov ecx, dword [ebp - 0x904]
mov dword [ebp - 0x604], ecx
jmp 0x479f4e
mov edx, dword [ebp - 0x1a2c]
mov eax, dword [ebp - 0x3e8]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1a30], eax
jne 0x479c85
mov ecx, dword [ebp - 0x904]
mov dword [ebp - 0x604], ecx
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x1a30]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1a34], edx
cmp dword [ebp - 0x1a34], 0
jne 0x479cb7
mov eax, dword [ebp - 0x904]
mov dword [ebp - 0x604], eax
jmp 0x479f4e
mov ecx, dword [ebp - 0x3e8]
add ecx, dword [ebp - 0x1a34]
mov dword [ebp - 0x8f8], ecx
jne 0x479cdc
mov edx, dword [ebp - 0x904]
mov dword [ebp - 0x604], edx
jmp 0x479f4e
mov eax, dword [ebp - 0x8f8]
mov ecx, dword [ebp - 0x3e8]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x244c], ecx
mov edx, dword [ebp - 0x8f8]
mov eax, dword [ebp - 0x3e8]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x2450], eax
mov ecx, dword [ebp - 0x8f8]
mov edx, dword [ebp - 0x3e8]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x2454], edx
mov dword [ebp - 0x8fc], 0
jmp 0x479d36