Function at 0x624777
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov ebx, dword [ebp + 0xc]
pushal
pop word [esp + 0x19]
push edi
mov word [esp + 0xb], cx
jmp 0x62479d
push edx
mov dword [esp], ecx
pop word [esp]
lea esp, [esp + 2]
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
jmp 0x624735
lea esp, [esp + 4]
jmp 0x624753
pop word [esp]
push word [esp + 9]
push dword [esp + 7]
lea esp, [esp + 2]
mov dword [esp + 0x20], esi
pushfd
mov dword [esp], ebp
pop word [esp]
mov word [esp], si
pushal
push word [esp + 0xc]
jmp 0x660987
push bx
lea esp, [esp + 0x25]
lea esp, [esp + 1]
lea esp, [esp + 0x20]
push esi
push ebx
push esp
jmp 0x660c9a
lea esp, [esp + 5]
mov dword [esp], ebx
lea esp, [esp + 3]
mov dword [esp], edi
mov edi, dword [eax]
mov eax, dword [eax + 4]
pushfd
jmp 0x660f6e
shr ebx, 0x10
push ax
mov byte [esp], dl
mov byte [esp], dl
lea esp, [esp + 1]
lea esp, [esp]
mov byte [esp], al
jmp 0x661125
shr ecx, 0x10
add ecx, dword [ebp - 8]
sub dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], ebx
ja 0x660fcb
jne 0x66101c
jmp 0x6611bd
mov eax, esi
shl eax, 0x10
or ecx, 0xffffffff
sub edi, eax
cmc
sub ecx, eax
push bx
mov word [esp], cx
jmp 0x661197
lea esp, [esp + 2]
lea esp, [esp + 8]
popal
shl eax, 0x10
or edx, 0xffffffff
sub edi, eax
sub edx, eax
cmp edi, edx
jbe 0x660fab
dec dword [ebp - 0x10]
jmp 0x660fab
mov eax, 0xffff
cmp word [ebp - 0xc], ax
jne 0x66120b
movzx edx, word [ebp - 0x10]
jmp 0x661254
mov dword [esp + 0x18], esi
pushfd
pop word [esp]
pushfd
push word [esp]
pop word [esp]
pop word [esp + 1]
push dword [esp + 1]
lea esp, [esp + 4]
mov word [esp + 1], si
lea esp, [esp + 4]
popal
imul ecx, eax
imul eax, ebx
mov dword [ebp - 8], eax
pushal
mov bl, cl
push bp
xchg si, ax
mov dh, 0x5d
xchg ebx, edx
lea esp, [esp]
mov byte [esp], bh
push word [esp + 1]
mov dword [esp + 0x20], ecx
pushal
push dword [esp + 7]
mov dword [esp + 0x1e], esp
mov byte [esp + 4], ch
pop dword [esp + 0xe]
pop word [esp + 0xe]
pop word [esp + 7]
pop dword [esp + 0xc]
lea esp, [esp + 0x12]
jmp 0x660fec
movzx esi, word [ebp + 0xc]
movzx eax, ax
movzx ebx, bx
pushal
mov di, bx
jmp 0x661043
movzx ecx, bx
inc ecx
cmc
sub esp, 9
sub esp, 0xd
lea esp, [esp + 2]
xor edx, edx
push edx
pop word [esp]
lea esp, [esp]
mov word [esp], dx
lea esp, [esp + 2]
lea esp, [esp + 0x14]
div ecx
movzx eax, ax
mov dword [ebp - 4], eax
jmp 0x6610c5
lea esp, [esp]
lea esp, [esp]
lea esp, [esp]
lea esp, [esp + 1]
lea esp, [esp + 4]
mov ecx, 0xffff
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], eax
cmp bx, cx
jne 0x6610e2
shr eax, 0x10
mov dword [ebp - 4], eax
jmp 0x6610c5
mov word [esp], bp
lea esp, [esp + 2]
cmp edi, ecx
jbe 0x66122b
dec dword [ebp - 0x10]
jmp 0x66122b
mov eax, esi
pushal
shl eax, 0x10
push bx
lea esp, [esp + 1]
mov byte [esp], dh
mov byte [esp], bl
lea esp, [esp + 1]
lea esp, [esp + 0x20]
sub esp, 0x16
pop dword [esp + 4]
mov word [esp + 2], si
pop word [esp + 6]
cmp edi, eax
pushfd
mov dword [esp], ebp
mov word [esp], dx
lea esp, [esp + 0x14]
jb 0x66101c
jae 0x660fcb
imul ebp, edi, 0x7f
sbb ch, cl
inc ebx
test byte [ebp - 0xfb27469], bl
mov ecx, dword [ebp - 0x10]
mov eax, edi
push si
lea esp, [esp + 2]
shl ecx, 0x10
push ax
jmp 0x661237
sub dword [ebp - 0x10], ebx
inc dword [ebp - 4]
jmp 0x660fb4
mov word [esp], bp
push word [esp + 1]
push dword [esp]
jmp 0x661449
movzx eax, dx
imul esi, eax
imul eax, ebx
or ecx, 0xffffffff
sub edi, esi
sub ecx, esi
clc
pushfd
pushfd
cmp edi, ecx
push ax
lea esp, [esp + 2]
lea esp, [esp + 8]
jbe 0x66139c
dec dword [ebp - 0x10]
jmp 0x66139c
sub edi, dword [ebp + 0xc]
or eax, 0xffffffff
sub eax, dword [ebp + 0xc]
cmp edi, eax
jbe 0x661355
dec ecx
jmp 0x661355
movzx eax, word [ebp - 4]
movzx ecx, dx
pushal
push dword [esp + 7]
pop word [esp + 0x19]
jmp 0x66137f
mov ecx, dword [ebp - 0x10]
shr eax, 0x10
sub ecx, eax
test ecx, ecx
ja 0x6612f0
jne 0x661317
cmp edi, dword [ebp + 0xc]
jb 0x661317
jae 0x6612f0
or byte [edx + ebx - 0x1fb57383], al
scasd eax, dword es:[edi]
fiadd dword [edx - 0x15]
out 0x89, eax
add al, 0x9a
std
or al, 0xc8
xor byte [ebx - 0x7099c610], dl
inc esp
and al, 0x17
inc edx
jmp 0x66133f
pop word [esp + 0x17]
lea esp, [esp + 0x40]
pop edi
clc
sub esp, 0xf
pushal
pushfd
jmp 0x66140e
lea esp, [esp + 2]
shl eax, 0x10
pushal
push word [esp + 8]
jmp 0x661362
mov ecx, eax
shl ecx, 0x10
or esi, 0xffffffff
sub edi, ecx
sub esp, 0x17
lea esp, [esp + 3]
sub esi, ecx
pushal
push edx
mov word [esp + 0x17], di
pop dword [esp]
mov word [esp + 0x17], ax
lea esp, [esp + 0x34]
sub esp, 6
push dword [esp + 2]
lea esp, [esp + 9]
stc
lea esp, [esp]
add esp, 0
lea esp, [esp + 1]
cmp edi, esi
jbe 0x661337
dec dword [ebp - 0x10]
jmp 0x661337
push word [esp + 0x26]
mov word [esp + 0xc], si
pop word [esp + 0x11]
push bp
add esp, 6
lea esp, [esp + 3]
add eax, ecx
lea esp, [esp + 0x2c]
mov ecx, dword [ebp + 8]
pop esi
mov dword [ecx], eax
pop ebx
leave
ret
mov byte [esp + 6], dl
pop word [esp + 3]
push word [esp + 5]
mov dword [esp + 2], eax
mov byte [esp + 3], cl
lea esp, [esp + 8]
shr eax, 0x10
add eax, ecx
xor edx, edx
lea ecx, [ebx + 1]
div ecx
movzx edx, ax
jmp 0x661254