Function at 0x419250
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x50
call 0x41925e
pop eax
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x34], edx
mov dl, 0x81
mov byte [ebp - 0x5c], 0x81
mov byte [ebp - 0x50], 0x81
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 8]
add ecx, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x40], ecx
jmp 0x4192b8
mov dword [ebp - 0x14], eax
xor eax, eax
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x2c], edi
shld esi, ebx, 0x10
shl ebx, 0x10
movzx edi, ax
or edi, ebx
cmp dl, 0x81
je 0x4192d7
movzx eax, dl
cmp eax, 0x80
je 0x4194be
mov eax, dword [ebp - 0x24]
cmp byte [ebp - 0x10], al
jb 0x4194f0
mov edi, dword [ebp - 0x2c]
test edi, edi
je 0x419530
cmp edi, dword [ebp - 0x3c]
je 0x419530
movzx edx, byte [edi]
movzx eax, dl
test dl, dl
js 0x419300
inc edi
mov ebx, eax
jmp 0x419360
movzx esi, byte [edi + 1]
and eax, 0x1f
and esi, 0x3f
cmp dl, 0xdf
jbe 0x419345
movzx ecx, byte [edi + 2]
shl esi, 6
and ecx, 0x3f
or ecx, esi
cmp dl, 0xf0
jb 0x419351
movzx ebx, byte [edi + 3]
and eax, 7
shl ecx, 6
shl eax, 0x12
and ebx, 0x3f
or ebx, ecx
or ebx, eax
cmp ebx, 0x110000
je 0x419530
add edi, 4
jmp 0x419360
shl eax, 6
add edi, 2
or eax, esi
mov ebx, eax
jmp 0x419360
shl eax, 0xc
add edi, 3
or ecx, eax
mov ebx, ecx
nop dword [eax + eax]
mov al, 2
cmp ebx, 0x27
mov dword [ebp - 0x24], eax
ja 0x419396
mov ecx, dword [ebx*4 + 0x41953c]
mov al, 0x30
mov dl, 0x5c
mov dword [ebp - 0x10], 0
xor esi, esi
mov dword [ebp - 0x14], eax
xor eax, eax
add ecx, dword [ebp - 0x38]
jmp ecx
cmp ebx, 0x5c
jne 0x4193ab
mov dword [ebp - 0x10], 0
mov dl, 0x5c
mov al, 0x5c
jmp 0x4192a0
cmp ebx, 0x2ff
jbe 0x4193be
mov ecx, ebx
call fcn.004045a0
test al, al
jne 0x419403
mov ecx, ebx
call fcn.004044a0
test al, al
je 0x419403
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], eax
mov dl, 0x80
jmp 0x4192a9
mov eax, ebx
mov byte [ebp - 0x1c], 0
mov word [ebp - 0x1e], 0
or eax, 1
bsr eax, eax
xor eax, 0x1c
shr eax, 2
lea ecx, [eax - 2]
mov dword [ebp - 0x10], ecx
mov ecx, ebx
shr ecx, 0x14
movzx ecx, byte [ecx + str.0123456789abcdef]
mov byte [ebp - 0x1b], cl
mov ecx, ebx
shr ecx, 0x10
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdef]
mov byte [ebp - 0x1a], cl
mov ecx, ebx
shr ecx, 0xc
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdef]
mov byte [ebp - 0x19], cl
mov ecx, ebx
shr ecx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdef]
mov byte [ebp - 0x18], cl
mov ecx, ebx
and ebx, 0xf
shr ecx, 4
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdef]
mov byte [ebp - 0x17], cl
movzx ecx, byte [ebx + str.0123456789abcdef]
mov byte [ebp - 0x16], cl
mov byte [ebp - 0x15], 0x7d
mov word [ebp + eax - 0x20], 0x755c
mov byte [ebp + eax - 0x1e], 0x7b
mov eax, dword [ebp - 0x1c]
movzx edx, byte [ebp - 0x1e]
mov esi, dword [ebp - 0x18]
movzx ecx, byte [ebp - 0x1d]
mov ebx, eax
mov dword [ebp - 0x14], ecx
shrd ebx, esi, 0x10
shr esi, 0x10
cmp dl, 0x81
je 0x419530
mov cl, 0xa
mov dword [ebp - 0x24], ecx
jmp 0x4192a9
mov eax, esi
xorps xmm0, xmm0
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
shld eax, edi, 0x10
xor edi, edi
movsd qword [ebp - 0x5c], xmm0
jmp 0x419511
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x10]
mov byte [ebp - 0x5c], dl
mov dword [ebp - 0x28], edx
mov byte [ebp - 0x5b], al
movzx eax, bl
mov dword [ebp - 0x5a], edi
mov dword [ebp - 0x56], esi
inc bl
movzx eax, byte [ebp + eax - 0x5c]
mov ecx, ebx
mov dword [ebp - 0x10], ecx
push eax
push dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
call dword [eax + 0x10]
add esp, 8
mov edx, dword [ebp - 0x28]
test al, al
je 0x4192b8
mov al, 1
jmp 0x419532
xor eax, eax
add esp, 0x50
pop esi
pop edi
pop ebx
pop ebp
ret