Function at 0x101aa300
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov ebp, dword [esp + 0x38]
cmp byte [edx + 0x20], 0
mov edi, edx
lea ebx, [edx + 0xc]
mov dword [esp], ecx
je 0x101aa32b
mov ah, byte [edi + 0x21]
mov cl, ah
add cl, 0xd0
cmp cl, 0xa
jb 0x101aa38f
jmp 0x101aa40b
lea esi, [esp + 4]
push ebx
push esi
call fcn.10015a50
add esp, 8
movzx eax, byte [esp + 4]
cmp eax, 4
je 0x101aa366
cmp eax, 5
je 0x101aa358
mov eax, dword [esp + 4]
cmp al, 4
je 0x101aa37e
movzx ecx, al
cmp ecx, 5
jne 0x101aa3c2
cmp byte [edi + 0x20], 0
je 0x101aa395
mov ah, byte [edi + 0x21]
jmp 0x101aa40b
mov ecx, dword [edi + 0x18]
mov ah, byte [esp + 5]
inc ecx
cmp ah, 0xa
jne 0x101aa37b
add dword [edi + 0x1c], ecx
inc dword [edi + 0x14]
xor ecx, ecx
mov dword [edi + 0x18], ecx
mov byte [edi + 0x20], 1
mov byte [edi + 0x21], ah
mov cl, ah
add cl, 0xd0
cmp cl, 0xa
jae 0x101aa40b
mov byte [edi + 0x20], 0
jmp 0x101aa32b
push ebx
push esi
call fcn.10015a50
add esp, 8
movzx eax, byte [esp + 4]
cmp eax, 4
je 0x101aa3ec
cmp eax, 5
je 0x101aa437
mov eax, dword [esp + 4]
cmp al, 4
je 0x101aa404
movzx ecx, al
cmp ecx, 5
je 0x101aa437
mov ecx, dword [esp + 8]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x14], ecx
push eax
call fcn.101ac7d0
add esp, 4
mov ecx, dword [esp]
mov dword [ecx + 4], eax
mov dword [ecx], 1
jmp 0x101aa4ee
mov ecx, dword [edi + 0x18]
mov ah, byte [esp + 5]
inc ecx
cmp ah, 0xa
jne 0x101aa401
add dword [edi + 0x1c], ecx
inc dword [edi + 0x14]
xor ecx, ecx
mov dword [edi + 0x18], ecx
mov byte [edi + 0x20], 1
mov byte [edi + 0x21], ah
movzx eax, ah
or eax, 0x20
cmp eax, 0x65
jne 0x101aa437
movzx eax, byte [esp + 0x2c]
mov ecx, dword [esp]
mov edx, edi
push ebp
push dword [esp + 0x38]
push dword [esp + 0x38]
push eax
call fcn.10043690
add esp, 0x28
jmp 0x101aa4f1
movss xmm1, dword [esp + 0x30]
movss xmm0, dword [esp + 0x34]
mov eax, ebp
neg eax
cmovs eax, ebp
cmp eax, 0x135
unpcklps xmm1, xmm0
unpcklps xmm1, xmmword [0x101b28b0]
subpd xmm1, xmmword [0x101b28c0]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
jb 0x101aa4a8
movsd xmm2, qword [0x101b28d0]
xorpd xmm1, xmm1
nop dword [eax + eax]
ucomisd xmm0, xmm1
jne 0x101aa488
jnp 0x101aa4fa
test ebp, ebp
jns 0x101aa52f
divsd xmm0, xmm2
add ebp, 0x134
mov eax, ebp
neg eax
cmovs eax, ebp
cmp eax, 0x134
ja 0x101aa480
mov ecx, dword [0x10262064]
test ebp, ebp
movsd xmm1, qword [ecx + eax*8]
js 0x101aa4f6
mulsd xmm0, xmm1
mov esi, dword [esp]
ucomisd xmm0, qword [0x101b28d8]
jae 0x101aa506
movsd xmm1, qword [0x101b28e0]
ucomisd xmm1, xmm0
jae 0x101aa506
cmp byte [esp + 0x2c], 0
jne 0x101aa4e5
xorpd xmm0, xmmword [0x101b28f0]
xor eax, eax
movsd qword [esi + 8], xmm0
mov dword [esi], eax
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
divsd xmm0, xmm1
mov esi, dword [esp]
cmp byte [esp + 0x2c], 0
je 0x101aa4dd
jmp 0x101aa4e5
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x14]
mov dword [esp + 4], 0xd
lea edx, [esp + 4]
push ecx
push eax
push edx
call fcn.101ac710
add esp, 0xc
mov ecx, 1
mov dword [esi + 4], eax
mov dword [esi], ecx
jmp 0x101aa4ee
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x14]
mov dword [esp + 4], 0xd
lea edx, [esp + 4]
push ecx
push eax
push edx
call fcn.101ac710
add esp, 0xc
mov ecx, dword [esp]
mov edx, 1
mov dword [ecx + 4], eax
mov dword [ecx], edx
jmp 0x101aa4ee