Function at 0x409620
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x78
mov eax, dword [ebp + 8]
add eax, dword [ecx + 0x60]
mov word [esp + 0x18], 0x1b19
mov byte [esp + 0x1a], 0xa
mov dword [esp + 0x1f], 0
mov dword [esp + 0x1b], 0
mov dword [esp + 8], 0
mov edx, dword [esp + 8]
cmp edx, 0xa
ja 0x4096a7
nop
mov edx, dword [esp + 8]
mov esi, dword [esp + 8]
movzx esi, byte [esp + esi + 0x18]
lea edi, [edx + 0x82]
mov ebx, esi
not ebx
or ebx, edi
and edi, esi
add edi, ebx
neg edi
add edx, edi
add edx, 0x29306c81
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x28]
add dl, 0x72
mov esi, dword [esp + 8]
mov byte [esp + esi + 0x18], dl
inc dword [esp + 8]
mov edx, dword [esp + 8]
cmp edx, 0xb
jb 0x409660
mov dword [esp + 8], 0xced0ccfa
mov word [esp + 0xc], 0xe5ee
mov dword [esp + 0xe], 0
mov dword [esp + 0x11], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 0xc
ja 0x40971a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 8]
lea edi, [edx + 0xfeca9c]
add edx, 0x9c
and edx, esi
or edi, esi
sub edi, edx
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x28]
add dl, 0xbc
mov esi, dword [esp]
mov byte [esp + esi + 8], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 0xd
jb 0x4096e0
mov dword [esp + 0x28], 0xfcf2a6a1
mov dword [esp + 0x2c], 0xf0f0a2aa
mov dword [esp + 0x30], 0xf7e8f2a1
mov dword [esp + 0x34], 0x888f88eb
mov dword [esp + 0x38], 0xd08f9394
mov dword [esp + 0x3c], 0x9ee12735
mov dword [esp + 0x40], 0x9d879598
mov dword [esp + 0x44], 0x9cf8c296
mov dword [esp + 0x48], 0x8e81818b
mov dword [esp + 0x4c], 0x8e978199
mov dword [esp + 0x50], 0x95d8c388
mov dword [esp + 0x54], 0xf0b3b78b
mov dword [esp + 0x58], 0xa0bca2aa
mov dword [esp + 0x5c], 0xacbaedc7
mov dword [esp + 0x60], 0xe9cfa6b9
mov byte [esp + 0x64], 0xa
mov dword [esp + 0x65], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0x40
ja 0x4097fa
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x28]
lea edi, [edx + esi]
add edi, 0x9f75b233
add edx, 0x9f75b233
and edx, esi
add edx, edx
mov esi, edx
xor esi, edi
not edx
and edx, edi
add edx, edx
sub edx, esi
mov dword [esp], edx
mov edx, dword [esp]
add dl, 0x9b
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x28], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x41
jb 0x4097b0
mov esi, dword [ebp + 0xc]
movzx ebx, byte [esp + 0x28]
mov edx, eax
test bl, bl
je 0x40981b
lea edi, [esp + 0x29]
mov edx, eax
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409810
mov byte [edx], 0
movzx ebx, byte [esi]
test bl, bl
je 0x40983b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409830
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
movzx ebx, byte [esp + 8]
test bl, bl
je 0x40985b
lea edi, [esp + 9]
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409850
mov byte [edx], 0
movzx ebx, byte [esi]
test bl, bl
je 0x40987b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409870
mov byte [edx], 0
movzx ebx, byte [esp + 0x18]
test bl, bl
je 0x40989b
lea esi, [esp + 0x19]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409890
mov byte [edx], 0
sub edx, eax
add dword [ecx + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc