Function at 0x6905fbf0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x60
test byte [0x6907a108], 8
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
jne 0x6905fd70
test ebx, ebx
je 0x6905fd60
pxor xmm0, xmm0
cvtss2sd xmm0, dword [ebp + 0xc]
mulsd xmm0, qword [0x69084180]
divsd xmm0, qword [0x69084188]
cvtsd2ss xmm0, xmm0
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
movsd qword [esp + 0x28], xmm0
call dword [sym.imp.ucrtbase.dll_cos]
movsd xmm0, qword [esp + 0x28]
pxor xmm1, xmm1
movsd qword [esp], xmm0
fstp qword [esp + 0x38]
cvtsd2ss xmm1, qword [esp + 0x38]
movss dword [esp + 0x34], xmm1
call dword [sym.imp.ucrtbase.dll_sin]
pxor xmm0, xmm0
cmp esi, 1
movss xmm1, dword [esp + 0x34]
fstp qword [esp + 0x38]
cvtsd2ss xmm0, qword [esp + 0x38]
movups xmm4, xmm0
xorps xmm4, xmmword [0x69084170]
je 0x6905fde0
test esi, esi
jne 0x6905fd60
unpcklps xmm1, xmm1
movq xmm2, qword [ebx]
movhps xmm2, qword [ebx + 8]
unpcklps xmm4, xmm4
test bl, 1
movups xmm3, xmm2
unpcklps xmm0, xmm0
movups xmm6, xmm1
shufps xmm3, xmm3, 0xee
movlhps xmm0, xmm1
mov esi, 0x18
movlhps xmm2, xmm2
movlhps xmm6, xmm4
movss xmm1, dword [ebx]
mulps xmm0, xmm3
mulps xmm2, xmm6
lea edx, [esp + 0x40]
addps xmm2, xmm0
pxor xmm0, xmm0
mulss xmm1, xmm0
movups xmmword [esp + 0x40], xmm2
movss xmm2, dword [ebx + 8]
mulss xmm2, xmm0
addss xmm1, xmm2
addss xmm1, dword [ebx + 0x10]
movss dword [esp + 0x50], xmm1
movss xmm1, dword [ebx + 4]
mulss xmm1, xmm0
mulss xmm0, dword [ebx + 0xc]
addss xmm0, xmm1
addss xmm0, dword [ebx + 0x14]
movss dword [esp + 0x54], xmm0
jne 0x6905feb8
test bl, 2
jne 0x6905fed0
mov edi, esi
xor eax, eax
and edi, 0xfffffffc
mov ecx, dword [edx + eax]
mov dword [ebx + eax], ecx
add eax, 4
cmp eax, edi
jb 0x6905fd32
add ebx, eax
add edx, eax
xor eax, eax
test esi, 2
jne 0x6905fdc8
and esi, 1
jne 0x6905fdb8
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
lea esp, [ebp - 0xc]
mov eax, 2
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov edx, str.GdipRotateMatrix
mov ecx, 0x6907a108
pxor xmm0, xmm0
mov dword [esp + 0x1c], esi
mov eax, str.__p___.2f___d__n
cvtss2sd xmm0, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
movsd qword [esp + 0x14], xmm0
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_8
jmp 0x6905fc0f
movzx ecx, byte [edx + eax]
mov byte [ebx + eax], cl
xor eax, eax
jmp 0x6905fd54
movzx eax, word [edx]
and esi, 1
mov word [ebx], ax
mov eax, 2
je 0x6905fd52
jmp 0x6905fdb8
movups xmm5, xmm4
movq xmm2, qword [ebx]
movhps xmm2, qword [ebx + 8]
unpcklps xmm5, xmm1
movups xmm3, xmm2
test bl, 1
shufps xmm3, xmm2, 0xf5
movlhps xmm5, xmm5
shufps xmm2, xmm2, 0xa0
mov edi, 0x18
mulps xmm3, xmm5
movups xmm5, xmm1
unpcklps xmm5, xmm0
lea ecx, [esp + 0x40]
movlhps xmm5, xmm5
mulps xmm2, xmm5
movups xmm5, xmm1
addps xmm2, xmm3
movss xmm3, dword [ebx + 0x14]
movups xmmword [esp + 0x40], xmm2
movss xmm2, dword [ebx + 0x10]
mulss xmm4, xmm3
mulss xmm1, xmm3
mulss xmm5, xmm2
mulss xmm0, xmm2
addss xmm4, xmm5
pxor xmm5, xmm5
addss xmm0, xmm1
addss xmm4, xmm5
addss xmm0, xmm5
movss dword [esp + 0x50], xmm4
movss dword [esp + 0x54], xmm0
jne 0x6905ff00
test bl, 2
jne 0x6905fee8
mov esi, edi
xor eax, eax
and esi, 0xfffffffc
mov edx, dword [ecx + eax]
mov dword [ebx + eax], edx
add eax, 4
cmp eax, esi
jb 0x6905fe72
add ebx, eax
add ecx, eax
xor eax, eax
test edi, 2
jne 0x6905fea8
and edi, 1
je 0x6905fd52
movzx edx, byte [ecx + eax]
mov byte [ebx + eax], dl
xor eax, eax
jmp 0x6905fd54
movzx eax, word [ecx]
mov word [ebx], ax
mov eax, 2
jmp 0x6905fe8d
movzx eax, byte [esp + 0x40]
inc ebx
mov esi, 0x17
lea edx, [esp + 0x41]
mov byte [ebx - 1], al
jmp 0x6905fd22
movzx eax, word [edx]
add ebx, 2
add edx, 2
sub esi, 2
mov word [ebx - 2], ax
jmp 0x6905fd2b
movzx eax, word [ecx]
add ebx, 2
add ecx, 2
sub edi, 2
mov word [ebx - 2], ax
jmp 0x6905fe6b
movzx eax, byte [esp + 0x40]
inc ebx
mov edi, 0x17
lea ecx, [esp + 0x41]
mov byte [ebx - 1], al
jmp 0x6905fe62