Function at 0x447dc0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov ecx, ebp
add ecx, ebx
mov edx, edi
adc edx, 0
xor eax, eax
mov esi, 0xfffffffe
cmp esi, ecx
mov ecx, 0
sbb ecx, edx
mov esi, dword [esp + 0x2c]
jb 0x447e72
mov ecx, ebp
shr ecx, 2
mov edx, ebx
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebp
and edx, 0xfffffffc
add esi, edx
add edx, ebx
mov ecx, ebp
not ecx
or ecx, 3
lea ebx, [ecx + ebp]
inc ebx
mov ecx, ebx
shr ecx, 1
mov ebp, edx
mov edi, esi
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
mov edi, ebx
xor edi, 0xfffffffe
mov ebp, ebx
or ebp, 1
and ebp, edi
je 0x44803f
and ebx, 0xfffffffe
add edx, ebx
add esi, ebx
mov edi, ebp
and edi, 7
je 0x447fc1
xor ebx, ebx
nop
nop
movzx ecx, byte [edx + ebx]
mov byte [esi + ebx], cl
inc ebx
cmp edi, ebx
jne 0x447e50
add edx, ebx
add esi, ebx
mov edi, ebp
sub edi, ebx
cmp ebp, 8
jae 0x447fc8
jmp 0x44803f
mov dword [esp + 4], 0x60676665
mov dword [esp + 8], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x447ec6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 4]
push dword [esp]
push eax
call fcn.00448eb0
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 4], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x447ea0
mov eax, dword [esp + 4]
mov ecx, dword [0x4562e4]
test ecx, ecx
je 0x447f22
xor edx, edx
mov edi, dword [0x4562e8]
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x54ca534e
je 0x447ef4
inc edx
cmp ecx, edx
jne 0x447ee0
mov edi, dword [esp + 0x28]
jmp 0x447f22
mov ecx, dword [edi + edx*8 + 4]
cmp ecx, eax
mov edi, dword [esp + 0x28]
je 0x447f22
lea eax, [esp + 0xc]
push 2
push 0
push 0
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 7
push dword [0x4562ec]
push ecx
call fcn.00446770
add esp, 0x28
test eax, eax
js 0x44803f
push 0xc95dc39
push dword [0x45e2f8]
call fcn.00449500
add esp, 8
push 0
push 0
push ebp
push esi
push edi
push ebx
push dword [esp + 0x24]
call eax
mov esi, eax
mov edi, dword [esp + 0xc]
mov dword [esp + 4], 0x60676665
mov dword [esp + 8], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x447f96
mov eax, dword [esp]
movzx eax, byte [esp + eax + 4]
push dword [esp]
push eax
call fcn.00448eb0
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 4], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x447f70
mov ecx, dword [0x4562e4]
test ecx, ecx
je 0x44801f
mov edx, dword [esp + 4]
xor ebx, ebx
mov ebp, dword [0x4562e8]
mov eax, esi
nop
nop
cmp dword [ebp + ebx*8], 0x625b6034
je 0x448023
inc ebx
cmp ecx, ebx
jne 0x447fb0
jmp 0x44803f
mov edi, ebp
cmp ebp, 8
jb 0x44803f
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
movzx ebx, byte [edx + ecx]
mov byte [esi + ecx], bl
movzx ebx, byte [edx + ecx + 1]
mov byte [esi + ecx + 1], bl
movzx ebx, byte [edx + ecx + 2]
mov byte [esi + ecx + 2], bl
movzx ebx, byte [edx + ecx + 3]
mov byte [esi + ecx + 3], bl
movzx ebx, byte [edx + ecx + 4]
mov byte [esi + ecx + 4], bl
movzx ebx, byte [edx + ecx + 5]
mov byte [esi + ecx + 5], bl
movzx ebx, byte [edx + ecx + 6]
mov byte [esi + ecx + 6], bl
movzx ebx, byte [edx + ecx + 7]
mov byte [esi + ecx + 7], bl
add ecx, 8
cmp edi, ecx
jne 0x447fd0
jmp 0x44803f
mov eax, esi
jmp 0x44803f
mov ecx, dword [ebp + ebx*8 + 4]
cmp ecx, edx
je 0x44803f
push edi
push 1
push dword [0x4562ec]
push ecx
call fcn.00446770
mov eax, esi
add esp, 0x10
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret