Function at 0x1000a450
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push esi
mov esi, ecx
test esi, esi
jne 0x1000a45c
or eax, 0xffffffff
pop esi
ret
cmp edx, 0xffffffff
je 0x1000a47d
mov eax, dword [esi + 0x260]
mov dword [esi + 0x290], eax
mov dword [esi + 0x7c0], 0
mov dword [esi + 0x28c], edx
cmp dword [esi + 0x278], 0
push ebx
push edi
je 0x1000a4b1
mov edi, dword [esi + 0x298]
test edi, edi
je 0x1000a4a7
push dword [esi + 0x278]
mov eax, dword [edi + 0x4c]
push edi
call eax
mov edi, dword [edi]
add esp, 8
test edi, edi
jne 0x1000a492
mov dword [esi + 0x278], 0
mov dword [esi + 0x288], 0
nop dword [eax + eax]
cmp dword [esi + 0x7dc], 0
je 0x1000a5ce
mov eax, dword [esi + 0x280]
test eax, eax
je 0x1000a4e8
push dword [esi + 0x284]
push 0x120
push esi
call eax
add esp, 0xc
mov ecx, dword [esi + 0x288]
test ecx, ecx
jne 0x1000a6cc
mov edi, dword [esi + 0x268]
and edi, dword [esi + 0x954]
mov eax, dword [esi + 0x7dc]
movzx edx, byte [eax + edi]
shr edx, 3
dec edx
cmp edx, 0x1f
jae 0x1000a56a
lea eax, [edx + edx*2]
lea ecx, [esi + eax*4]
mov eax, dword [ecx + 0x7e4]
test eax, eax
je 0x1000a56a
add eax, 0xffffffff
mov dword [ecx + 0x7e4], eax
jne 0x1000a56a
mov eax, dword [ecx + 0x7e8]
mov dword [ecx + 0x7e4], eax
test eax, eax
jne 0x1000a54a
mov eax, dword [esi + 0x7dc]
and byte [eax + edi], 7
push 0xffffffffffffffff
add edx, 0x100
mov ecx, esi
call fcn.10033a30
mov ecx, dword [esi + 0x288]
add esp, 4
test ecx, ecx
jne 0x1000a6cc
mov edx, dword [esi + 0x954]
and edx, dword [esi + 0x268]
mov edi, dword [esi + 0x7dc]
add edi, edx
movzx ecx, byte [edi]
mov ebx, ecx
or ebx, 4
xor ecx, ebx
je 0x1000a5ce
mov eax, dword [esi + 0x270]
mov dword [esi + 0x7d4], edx
mov edx, dword [esi + 0x7c0]
mov dword [esi + 0x7d0], eax
mov dword [esi + 0x7d8], ecx
test edx, edx
jne 0x1000a5c4
movq xmm0, qword [esi + 0x7d0]
mov eax, ecx
movq qword [esi + 0x7c4], xmm0
mov dword [esi + 0x7cc], eax
or edx, ecx
mov dword [esi + 0x7c0], edx
mov byte [edi], bl
mov eax, dword [esi + 0x268]
mov dword [esi + 0x270], eax
mov eax, dword [esi + 0x26c]
mov dword [esi + 0x274], eax
test eax, 0x8000
je 0x1000a608
push 0xffffffffffffffff
mov edx, 9
mov ecx, esi
call fcn.10033a30
mov ecx, dword [esi + 0x288]
add esp, 4
test ecx, ecx
jne 0x1000a672
mov ecx, dword [esi + 0x268]
mov edx, dword [esi + 0x954]
and edx, ecx
and edx, 0xfffffffe
lea eax, [ecx + 2]
mov dword [esi + 0x268], eax
movzx edi, byte [edx + esi + 0x95c]
movzx eax, byte [edx + esi + 0x95d]
shl edi, 8
or edi, eax
mov ecx, edi
and ecx, 0xf000
sub edi, ecx
mov eax, edi
shr edi, 9
and eax, 0xfffff1ff
and edi, 7
lea edx, [eax*8]
and eax, 7
or edx, ecx
push eax
sar edx, 6
push edi
push esi
mov eax, dword [edx*4 + 0x10040ab0]
call eax
mov ecx, dword [esi + 0x288]
add esp, 0xc
mov eax, dword [esi + 0x28c]
test eax, eax
je 0x1000a6b0
add eax, 0xffffffff
mov dword [esi + 0x28c], eax
jne 0x1000a6b0
test ecx, ecx
jne 0x1000a6b0
mov eax, dword [esi + 0x280]
mov dword [esi + 0x288], 0x13
test eax, eax
je 0x1000a6b0
push dword [esi + 0x284]
push 0x125
push esi
call eax
add esp, 0xc
mov ecx, dword [esi + 0x288]
test ecx, ecx
jne 0x1000a6cc
mov eax, dword [esi + 0x290]
cmp eax, dword [esi + 0x260]
jge 0x1000a4c0
pop edi
pop ebx
mov eax, ecx
pop esi
ret