Function at 0x4251ac
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov dword [ebp - 0x2c], edx
mov edx, dword [eax]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], ecx
cmp edx, 1
jg 0x42528c
mov eax, dword [ecx]
mov edx, dword [0x43c7e4]
mov ebx, dword [ebp - 0x30]
lea ecx, [eax + 1]
mov dword [ebx], ecx
mov bl, byte [edx + eax]
mov eax, dword [ebp - 0x38]
cmp dword [eax], 0
jne 0x425228
mov eax, ebx
and eax, 0x7f
cmp al, 0x20
ja 0x425206
movzx eax, al
mov dword [esp + 4], str._.3s
lea eax, [eax + eax*2]
add eax, str.nulsohstxetxeotenqackbel_bs_ht_nl_vt_ff_cr_so_sidledc1dc2dc3dc4naksynetbcan_emsubesc_fs_gs_rs_us_sp
mov dword [esp + 8], eax
jmp 0x425277
cmp al, 0x7f
jne 0x42521f
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], 0x455690
mov dword [esp], eax
call sub.cygwin1.dll_strcpy
jmp 0x425282
movzx eax, al
mov dword [esp + 8], eax
jmp 0x42526f
movzx esi, bl
mov dword [esp], str._b_f_n_r_t_a_v
mov dword [esp + 4], esi
call sub.cygwin1.dll_strchr
test eax, eax
je 0x425259
sub eax, str._b_f_n_r_t_a_v
mov dword [esp + 4], 0x45569f
movzx eax, byte [eax + str.bfnrtav0]
mov dword [esp + 8], eax
jmp 0x425277
sub ebx, 0x20
mov dword [esp + 8], esi
cmp bl, 0x5e
jbe 0x42526f
mov dword [esp + 4], 0x4556a3
jmp 0x425277
mov dword [esp + 4], 0x455694
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call sub.cygwin1.dll_sprintf
mov edi, 4
jmp 0x425493
mov eax, dword [ebp - 0x38]
cmp edx, 6
lea ebx, [ebp - 0x28]
mov eax, dword [eax + 4]
jne 0x42532a
mov edi, dword [ebp - 0x30]
mov esi, dword [0x43c7e4]
mov ecx, eax
mov edx, dword [edi]
mov edi, ebx
add esi, edx
add edx, eax
mov eax, dword [ebp - 0x30]
rep movsb byte es:[edi], byte [esi]
mov dword [eax], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 4]
cmp eax, 4
jne 0x4252d2
fld dword [ebp - 0x28]
mov edi, 0xf
mov eax, 8
jmp 0x42530a
cmp eax, 8
jne 0x4252e6
fld qword [ebp - 0x28]
mov edi, 0x19
mov eax, 0x11
jmp 0x42530a
cmp eax, 0xc
jne 0x4252fa
fld xword [ebp - 0x28]
mov edi, 0x1e
mov eax, 0x15
jmp 0x42530a
mov dword [esp + 4], eax
mov dword [esp], str.bad__tf__d
call fcn.0041909c
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2c]
fstp xword [esp + 0xc]
mov dword [esp + 4], str._.Le
mov dword [esp], eax
call sub.cygwin1.dll_sprintf
jmp 0x425493
mov edi, ebx
mov esi, 0x43a240
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov ebx, dword [ebp + edx*4 - 0x30]
mov dword [ebp - 0x40], ebx
cmp eax, 8
jne 0x425358
or esi, 0xffffffff
mov edi, esi
cmp edx, 2
jne 0x425376
or esi, 0xffffffff
mov edi, 0x7fffffff
jmp 0x425376
lea ecx, [eax*8]
mov edi, ecx
shr edi, 5
and edi, 1
mov esi, edi
shl edi, cl
xor esi, 1
shl esi, cl
add esi, 0xffffffff
adc edi, 0xffffffff
mov eax, dword [ebp - 0x40]
mov dword [esp + 0xc], esi
xor ebx, ebx
mov dword [esp + 0x10], edi
xor edi, edi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], 0
mov dword [esp], eax
call sub.cygwin1.dll_sprintf
mov dword [ebp - 0x3c], 0
mov esi, eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 4]
cmp eax, ebx
jbe 0x4253ea
mov eax, dword [0x43c7e4]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
lea ecx, [eax + 1]
mov dword [edx], ecx
mov edx, dword [ebp - 0x44]
lea ecx, [ebx*8]
movzx eax, byte [edx + eax]
xor edx, edx
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x4253e2
mov edx, eax
xor eax, eax
or dword [ebp - 0x3c], eax
or edi, edx
inc ebx
jmp 0x4253a5
lea ebx, [esi + 1]
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 0x38]
cmp dword [ebx], 2
jne 0x425466
mov esi, 8
mov dword [ebp - 0x34], 0
sub esi, eax
mov dword [ebp - 0x38], esi
je 0x425469
lea ebx, [eax*8]
mov eax, 1
lea ecx, [ebx - 1]
shl eax, cl
cdq
mov ecx, eax
and ecx, dword [ebp - 0x3c]
mov eax, edx
and eax, edi
or eax, ecx
je 0x425469
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
lea ecx, [esi*8]
xor esi, esi
shld edx, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, ebx
cmovne edx, eax
cmovne eax, esi
add eax, 0xffffffff
adc edx, 0xffffffff
xor ebx, ebx
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, ebx
or dword [ebp - 0x3c], eax
or edi, edx
jmp 0x425469
mov dword [ebp - 0x30], esi
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x30]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x40]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call sub.cygwin1.dll_sprintf
mov eax, dword [ebp - 0x30]
lea edi, [eax + 1]
add esp, 0x5c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret