Function at 0x402675
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov eax, 0x41a8ff
call fcn.004174d8
sub esp, 0x370
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov edi, edx
mov dword [ebp - 0x40], edi
mov ebx, ecx
mov dword [ebp - 0x30], ebx
mov esi, dword [0x428838]
mov word [ebp - 0x278], si
push 0x206
push 0
lea eax, [ebp - 0x276]
push eax
call fcn.00407de0
add esp, 0xc
lea eax, [esi + 4]
mov dword [ebp - 0x2c], eax
push 3
pop eax
sub eax, esi
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], edi
xor edi, edi
mov dword [ebp - 0x24], edi
xor edx, edx
mov dword [ebp - 0x20], edx
xor esi, esi
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x48], esi
cmp esi, dword [ebp - 0x40]
jge 0x4028db
mov al, byte [esi + ebx]
mov byte [ebp - 0x11], al
mov ebx, edx
imul ebx, dword [ebp + 8]
sub ebx, 0x49
mov dword [ebp - 0x38], ebx
cmp dword [0x428834], 0
jne 0x402726
lea ecx, [esi + 5]
mov eax, edx
cdq
idiv ecx
imul eax, ebx
imul eax, dword [ebp + 8]
imul eax, dword [ebp + 8]
imul eax, eax, 3
add edi, eax
mov dword [ebp - 0x24], edi
mov ecx, dword [ebp - 0x1c]
xor edx, edx
test cx, cx
jne 0x402747
mov eax, ecx
push 0x50
pop ecx
div ecx
mov ecx, dword [ebp + 8]
movzx ecx, cx
sub ecx, eax
add dword [0x42883c], ecx
jmp 0x40275c
mov eax, dword [ebp + 8]
mov dword [ebp - 0x34], 0x4e
div dword [ebp - 0x34]
sub ecx, eax
sub ecx, dword [ebp - 0x64]
add dword [ebp - 0x18], ecx
xor byte [ebp - 0x11], bl
movzx eax, byte [ebp - 0x60]
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x2c]
cmp ax, cx
jb 0x40277b
mov eax, dword [ebp - 0x1c]
movzx eax, ax
sub ecx, eax
add ecx, edx
add dword [ebp - 0x68], ecx
mov eax, dword [ebp - 0x3c]
movzx ecx, ax
lea eax, [ebp - 0x378]
add eax, ecx
sub edx, eax
movzx eax, dx
imul eax, dword [ebp + 8]
xor edx, edx
mov dword [ebp - 0x34], 0x61
div dword [ebp - 0x34]
sub eax, dword [0x42883c]
add eax, ecx
mov ecx, dword [ebp - 0x18]
add ecx, eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x58], ecx
and dword [ebp - 4], 0
or dword [ebp - 4], 0xffffffff
jmp 0x4027ec
mov eax, dword [ebp - 0x68]
cdq
push 9
pop ecx
idiv ecx
mov ecx, dword [0x428844]
movzx ecx, cx
sub ecx, eax
cmp ecx, dword [0x428840]
jge 0x402820
mov eax, dword [ebp - 0x20]
movzx edx, ax
mov eax, dword [0x428840]
movzx eax, al
add edx, eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x44], edx
jmp 0x402823
mov edx, dword [ebp - 0x1c]
movzx ecx, byte [ebp - 0x27]
movzx eax, byte [ebp - 0x11]
cmp dword [ebp + 8], 0
cmovne ecx, eax
mov eax, dword [ebp - 0x30]
mov byte [esi + eax], cl
cmp dword [0x428838], 0
jne 0x402858
mov eax, ebx
imul eax, esi
imul eax, dword [ebp + 8]
add eax, 4
imul eax, esi
imul eax, esi
add edi, eax
mov dword [ebp - 0x24], edi
cmp byte [ebp + 8], 0
je 0x40287a
mov eax, dword [ebp - 0x68]
movzx ecx, ax
lea eax, [ebp - 0x278]
imul ecx, eax
movzx eax, dx
add ecx, eax
mov dword [0x428848], ecx
jmp 0x402880
mov ecx, dword [0x428848]
cmp dword [0x428844], 0
je 0x4028a2
mov eax, ebx
imul eax, edi
imul eax, edi
add eax, 0x20
cdq
and edx, 3
add eax, edx
sar eax, 2
neg eax
add dword [ebp - 0x20], eax
movzx eax, byte [ebp - 0x58]
xor edx, edx
mov dword [ebp - 0x38], 6
div dword [ebp - 0x38]
add eax, ecx
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x20]
cmp dword [0x428840], 0
je 0x4028d2
cmp edx, esi
jge 0x4028d2
imul ebx, edx
imul eax, ebx, 0x15
add edi, eax
mov dword [ebp - 0x24], edi
inc esi
mov ebx, dword [ebp - 0x30]
jmp 0x4026e4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4