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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
and dword [ebp - 8], 0
xor eax, eax
push ebx
push esi
push edi
mov esi, 0x4312dc
mov dword [ebp - 0x50], ecx
lea edi, [ebp - 0x60]
mov dword [ebp - 0x4c], edx
push 0xb
pop ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x48], 0x8b60b13f
mov dword [ebp - 0x44], 0xd570df83
mov dword [ebp - 0x40], 0x960c8fd
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x3c], 0x6af74a67
mov dword [ebp - 0x38], 0x452a6cd4
mov dword [ebp - 0x34], 0xdafabddf
mov dword [ebp - 0x30], 0xb8e42c9c
mov dword [ebp - 0x2c], 0x963450d1
mov dword [ebp - 0x28], 0x674b7361
mov dword [ebp - 0x24], 0x6b7040f0
mov word [ebp - 0x20], 0x8b32
mov byte [ebp - 0x1e], cl
mov dword [ebp - 0x1d], 0x70e8273f
mov dword [ebp - 0x19], 0xa5f44bcb
mov dword [ebp - 0x15], 0xbe338677
mov dword [ebp - 0x11], 0xf35fa89b
mov dword [ebp - 0xd], 0x7c4c4251
mov byte [ebp - 9], 0xe6
movsd dword es:[edi], dword [esi]
mov byte [ebp + eax - 0x1a4], al
inc eax
cmp eax, 0x100
jb 0x41b435
mov edi, dword [0x4358ac]
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1a4]
mov eax, esi
sub edi, 0x58b8d5c6
div ecx
movzx ecx, bl
push 0xb
movzx eax, byte [ebp + edx - 0x60]
add eax, dword [ebp - 8]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 8], ecx
mov al, byte [ebp + ecx - 0x1a4]
mov byte [ebp + esi - 0x1a4], al
inc esi
mov byte [ebp + ecx - 0x1a4], bl
pop ecx
cmp esi, 0x100
jb 0x41b44c
mov dword [0x4358ac], edi
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1a4]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1a4]
mov byte [ebp + edi - 0x1a4], al
mov byte [ebp + ebx - 0x1a4], cl
movzx eax, byte [ebp + edi - 0x1a4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1a4]
xor al, byte [ebp + esi - 0x48]
mov byte [ebp + esi - 0xa4], al
inc esi
cmp esi, 0x40
jb 0x41b49f
mov ecx, 0x104
mov byte [ebp - 0x64], 0
mov byte [ebp - 1], 0
call fcn.0040a2a8
mov edi, eax
lea edx, [ebp - 0xa4]
mov ecx, edi
call fcn.0040b905
xor eax, eax
xor esi, esi
mov dword [ebp - 0x54], eax
cmp dword [ebp + 8], eax
jbe 0x41b5e9
mov edx, dword [ebp - 0x50]
mov cl, al
mov al, byte [eax + edx]
mov ebx, dword [ebp - 0x4c]
movzx ecx, cl
mov byte [ebp + ecx - 8], al
mov cl, byte [ebp - 1]
inc cl
mov byte [ebp - 1], cl
cmp cl, 3
jne 0x41b58f
movzx ecx, byte [ebp - 8]
movzx edx, byte [ebp - 7]
mov eax, ecx
shr eax, 2
and ecx, 3
add ecx, ecx
mov al, byte [eax + edi]
mov byte [esi + ebx], al
mov eax, edx
shr eax, 4
and edx, 0xf
add eax, edi
mov al, byte [eax + ecx*8]
movzx ecx, byte [ebp - 6]
mov byte [esi + ebx + 1], al
mov eax, ecx
shr eax, 6
and ecx, 0x3f
add eax, edi
mov al, byte [eax + edx*4]
mov edx, dword [ebp - 0x50]
mov byte [esi + ebx + 2], al
mov al, byte [ecx + edi]
mov byte [esi + ebx + 3], al
add esi, 4
xor cl, cl
mov byte [ebp - 1], cl
mov eax, dword [ebp - 0x54]
inc eax
mov dword [ebp - 0x54], eax
cmp eax, dword [ebp + 8]
jb 0x41b525
test cl, cl
je 0x41b5e9
movzx edx, byte [ebp - 8]
mov eax, edx
and edx, 3
shr eax, 2
shl edx, 4
mov al, byte [eax + edi]
mov byte [esi + ebx], al
cmp cl, 1
jne 0x41b5c5
mov al, byte [edx + edi]
add cl, 0x5e
mov byte [esi + ebx + 1], al
jmp 0x41b5dd
movzx ecx, byte [ebp - 7]
mov eax, ecx
shr eax, 4
add eax, edx
and ecx, 0xf
mov al, byte [eax + edi]
mov byte [esi + ebx + 1], al
mov cl, byte [edi + ecx*4]
mov byte [esi + ebx + 2], cl
mov byte [esi + ebx + 3], 0x5f
add esi, 4
mov eax, dword [ebp - 0x4c]
mov ecx, edi
mov byte [esi + eax], 0
call fcn.0040a2d2
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret