Function at 0x10113990
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x6c
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x10113ce0
mov ecx, dword [ebp + 8]
lea edx, [ebp - 0x18]
mov eax, dword [ebp + 0xc]
mov esi, dword fs:[0]
mov dword [ebp - 0x18], esi
mov dword fs:[0], edx
movsd xmm0, qword [ecx + 4]
movsd xmm1, qword [ecx + 0xc]
mov edi, dword [ecx]
movsd qword [ebp - 0x34], xmm1
movsd qword [ebp - 0x3c], xmm0
mov esi, dword [edi + 0x28]
cmp esi, 0x7fff
mov dword [ebp - 0x24], esi
jbe 0x10113a2e
mov ecx, dword [eax]
mov esi, dword [eax + 8]
mov edx, dword [eax + 4]
add eax, 0xc
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x10], 0
push esi
push edx
push eax
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x10113a27
mov esi, dword [ebp - 0x34]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x38]
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x10], 0xffffffff
push esi
push edx
push ecx
call eax
add esp, 0xc
xor eax, eax
jmp 0x10113b9f
lea edx, [ecx + 4]
movsd xmm2, qword [eax]
movzx ebx, byte [ecx + 0x1a]
mov dword [ebp - 0x28], edi
movsd xmm1, qword [edx + 8]
movsd xmm0, qword [edx]
movzx edx, word [ecx + 0x18]
mov ecx, dword [ecx + 0x14]
mov byte [ebp - 0x1f], bl
movsd qword [ebp - 0x50], xmm1
movsd xmm1, qword [eax + 8]
mov eax, dword [eax + 0x10]
movsd qword [ebp - 0x58], xmm0
movsd qword [ebp - 0x6c], xmm2
mov dword [ebp - 0x44], ecx
mov word [ebp - 0x1e], dx
mov dword [ebp - 0x5c], eax
movsd qword [ebp - 0x64], xmm1
mov word [ebp - 0x48], dx
mov dword [ebp - 0x78], 0
cmp esi, dword [edi + 0x20]
jne 0x10113a9b
lea eax, [edi + 0x20]
mov dword [ebp - 0x10], 1
push eax
call fcn.1007a200
mov edi, dword [ebp - 0x28]
add esp, 4
mov eax, dword [edi + 0x24]
mov edx, edi
mov edi, dword [ebp - 0x24]
movsd xmm0, qword [ebp - 0x78]
movsd xmm1, qword [ebp - 0x70]
movsd xmm2, qword [ebp - 0x68]
movsd xmm3, qword [ebp - 0x60]
movsd xmm4, qword [ebp - 0x58]
movsd xmm5, qword [ebp - 0x50]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x2c], 0
imul esi, edi, 0x34
mov dword [eax + esi + 0x30], ecx
movsd qword [eax + esi + 0x28], xmm5
movsd qword [eax + esi + 0x20], xmm4
movsd qword [eax + esi + 0x18], xmm3
movsd qword [eax + esi + 0x10], xmm2
movsd qword [eax + esi + 8], xmm1
movsd qword [eax + esi], xmm0
lea eax, [edi + 1]
mov dword [ebp - 0x40], esi
mov dword [edx + 0x28], eax
mov eax, edi
mov ecx, dword [edx + 0x18]
mov esi, dword [edx + 0x1c]
mov edx, dword [ebp - 0x44]
nop dword [eax]
cmp edx, esi
mov edi, 0
cmovae edx, edi
test esi, esi
je 0x10113b50
movzx ebx, word [ecx + edx*4]
cmp bx, 0xffff
je 0x10113b52
movzx edi, word [ecx + edx*4 + 2]
mov word [ecx + edx*4], ax
movzx eax, word [ebp - 0x1e]
inc dword [ebp - 0x2c]
mov word [ecx + edx*4 + 2], ax
inc edx
mov word [ebp - 0x1e], di
mov eax, ebx
jmp 0x10113b10
jmp 0x10113b50
mov word [ecx + edx*4], ax
movzx eax, word [ebp - 0x1e]
mov word [ecx + edx*4 + 2], ax
movzx edx, byte [ebp - 0x1f]
xor dl, 1
cmp dword [ebp - 0x2c], 0x80
setb al
test al, dl
mov edx, dword [ebp - 0x28]
jne 0x10113b8b
mov eax, dword [edx + 4]
or eax, dword [edx]
jne 0x10113b8b
mov dword [edx + 4], 0
mov dword [edx], 1
mov eax, dword [edx + 0x28]
mov ecx, dword [ebp - 0x24]
cmp ecx, eax
jae 0x10113bb1
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x40]
lea eax, [eax + ecx + 0xc]
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x6c
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x10], 0xffffffff
push 0x101ed940
push eax
push ecx
call fcn.101cc9d4
nop word cs:[eax + eax]
nop
push ebp
sub esp, 0xc
add ebp, 0xc
lea ecx, [ebp - 0x78]
call fcn.1000c020
add esp, 0xc
pop ebp
ret