Function at 0x412ebf
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
mov esi, ecx
lea eax, [ebp + 0xc]
lea ecx, [ebp + 0xc]
lea edx, [ebp + 0xc]
add eax, ecx
lea ecx, [ebp + 0xc]
sub ecx, edx
push edi
cmp ecx, eax
mov dword [ebp - 0xc], esi
jne 0x412ff7
xor edx, edx
xor eax, eax
xor ecx, ecx
cmp byte [eax], 0
je 0x412ef4
inc eax
inc ecx
jmp 0x412eeb
push 0xa
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], edx
pop eax
dec eax
mov dword [ebp - 0x14], 1
jne 0x412f00
push 1
lea edi, [ebp - 0x1c]
pop edx
lea eax, [edx + 1]
mov ecx, edx
cmp eax, 0xa
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], eax
jge 0x412f4a
mov esi, dword [ebp - 8]
mov eax, dword [ebp + ecx*4 - 0x20]
cmp eax, dword [ebp + esi*4 - 0x20]
jle 0x412f2f
mov ecx, esi
cmp ecx, edx
je 0x412f41
mov ebx, dword [ebp + ecx*4 - 0x20]
mov esi, dword [edi]
lea eax, [ebp + ecx*4 - 0x20]
mov dword [edi], ebx
mov dword [eax], esi
inc dword [ebp - 8]
cmp dword [ebp - 8], 0xa
jl 0x412f20
mov edx, dword [ebp - 0x10]
add edi, 4
cmp edx, 0xa
jl 0x412f10
push 2
xor eax, eax
mov dword [ebp - 0x18], 0x1c
lea ecx, [ebp - 0x1c]
pop edx
add eax, dword [ecx]
add ecx, 4
dec edx
jne 0x412f64
mov ebx, dword [ebp + 0xc]
push 1
pop esi
and dword [ebp - 8], 0
push 1
pop ecx
cmp esi, ecx
jle 0x412f98
lea edi, [ebp + ebx*4 - 0x1c]
mov eax, esi
cdq
idiv ecx
test edx, edx
jne 0x412f93
add dword [ebp - 8], ecx
mov dword [edi], ecx
inc ebx
add edi, 4
inc ecx
cmp ecx, esi
jl 0x412f81
xor ebx, ebx
inc esi
cmp esi, 0x3e8
jle 0x412f72
push 1
pop ebx
mov ecx, ebx
mov eax, ebx
cmp eax, 5
jg 0x412fca
test eax, eax
je 0x412fc3
mov dl, byte [ebp + ecx + 0xb]
cmp dl, byte [ebp + eax + 0xd]
je 0x412fc3
mov eax, dword [ebp + eax*4 - 0x20]
jmp 0x412fc5
inc ecx
inc eax
cmp ecx, 3
jle 0x412faa
lea eax, [ebp - 0x20]
push 0xa
pop edx
cmp ebx, edx
jge 0x412feb
lea ecx, [eax + 4]
sub edx, ebx
mov esi, dword [eax]
mov edi, dword [ecx]
cmp esi, edi
jle 0x412fe5
mov dword [ecx], esi
mov dword [eax], edi
add ecx, 4
dec edx
jne 0x412fd9
inc ebx
add eax, 4
cmp ebx, 0xb
jl 0x412fcd
mov esi, dword [ebp - 0xc]
and dword [ebp - 8], 0
cmp dword [ebp + 0xc], 0
mov al, byte [esi + 0x104]
mov cl, byte [esi + 0x105]
jbe 0x413094
movzx ebx, cl
movzx edi, al
mov ecx, 0x100
jmp 0x413024
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
lea eax, [edi + 1]
mov edi, ecx
cdq
idiv edi
movzx edi, dl
mov al, byte [edi + esi + 4]
mov byte [ebp - 3], dl
lea esi, [edi + esi + 4]
mov byte [ebp - 1], al
movzx eax, al
add eax, ebx
mov ebx, ecx
cdq
idiv ebx
mov ebx, dword [ebp - 8]
movzx eax, dl
mov byte [ebp - 2], dl
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
lea eax, [eax + edx + 4]
mov dl, byte [eax]
mov byte [esi], dl
mov dl, byte [ebp - 1]
mov byte [eax], dl
mov eax, dword [ebp + 8]
add ebx, eax
movzx eax, dl
movzx edx, byte [esi]
add eax, edx
mov esi, ecx
cdq
idiv esi
movzx eax, dl
mov edx, dword [ebp - 0xc]
mov al, byte [eax + edx + 4]
xor byte [ebx], al
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [ebp + 0xc]
jb 0x41301e
mov cl, byte [ebp - 2]
mov al, byte [ebp - 3]
mov esi, edx
push 1
mov byte [esi + 0x104], al
pop eax
mov byte [esi + 0x105], cl
pop edi
pop esi
pop ebx
leave
ret 8