Function at 0x100aac00
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x50
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp + 0xc]
mov edi, dword [ecx + 0x30]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ecx + 0x4bb64]
mov eax, edx
mov esi, edi
mov dword [ebp - 0x50], ecx
xor eax, 1
xor esi, 1
or esi, eax
sete byte [ebp - 0x20]
test edx, edx
mov edx, dword [ebx + 0x5c]
je 0x100aac8c
test edi, edi
je 0x100aac8c
xor ebx, ebx
test edx, edx
mov edx, 0x1033fd7c
mov esi, 0x1033fd3c
mov eax, 0x1033fd8c
mov ecx, 0xc
mov edi, 0xffffffe8
cmovne esi, edx
mov edx, 0x1033fd4c
setne bl
cmovne edx, eax
mov eax, 0x18
cmovne eax, ecx
mov ecx, 0xfffffff4
cmovne edi, ecx
mov ecx, 6
mov dword [ebp - 0x40], eax
sub ecx, ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x48], ecx
jmp 0x100aacd3
xor eax, eax
test edx, edx
mov edx, 0x1033fd5c
mov esi, 0x1033fd1c
mov ecx, 0x1033fd6c
mov edi, 0x3c
cmovne esi, edx
mov edx, 0x1033fd2c
setne al
cmovne edx, ecx
mov ecx, 0x1f
cmovne edi, ecx
mov ecx, 0xffffffe1
mov dword [ebp - 0x40], edi
mov edi, 0xffffffc4
cmovne edi, ecx
xor eax, 7
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x48], eax
cmp dword [ebx + 8], 0
mov edi, 0
je 0x100ab276
mov cl, byte [ebp - 0x20]
xor eax, eax
mov edi, dword [ebp - 0x50]
mov edx, dword [edx]
mov al, cl
mov ecx, dword [esi]
and edi, 1
xor esi, esi
mov dword [ebp - 0x54], edx
inc eax
mov dword [ebp - 0x50], edi
neg edi
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x48]
neg cl
mov byte [ebp - 0x31], cl
lea ecx, [ebx + 0x151c0]
mov dword [ebp - 0x44], ecx
cmp byte [ebx + esi + 0x18], 0
je 0x100aae58
lea eax, [esi + 1]
mov dword [ebp - 0x20], eax
movzx eax, byte [ebx + esi + 0xd]
cmp al, byte [ebx + esi + 0xc]
jne 0x100aafe2
mov ecx, dword [ebp - 0x30]
cmp dword [ecx + eax*4 + 0x4bb60], 0
je 0x100ab268
lea edx, [esi + esi*2]
xor edi, edi
shl edx, 4
add edx, dword [ebp - 0x44]
mov dword [ebp - 0x24], edx
mov al, byte [edx + edi - 0x30]
mov byte [ebp - 0x10], al
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax + 8]
mov ecx, dword [eax]
mov esi, dword [eax + 0x10]
mov eax, ebx
mov dword [ebp - 0x18], ecx
shr eax, 3
push dword [ecx + eax]
call fcn.101eaef1
add esp, 4
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [ebp - 0x28]
shr eax, 0xf7
movsx edx, word [ecx + eax*4]
movsx ecx, word [ecx + eax*4 + 2]
test ecx, ecx
jns 0x100aae12
add ebx, 9
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x18]
cmp esi, ebx
cmovbe ebx, esi
mov eax, ebx
shr eax, 3
push dword [ecx + eax]
mov dword [ebp - 0x1c], edx
call fcn.101eaef1
add esp, 4
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [ebp - 0x14]
shr eax, cl
mov ecx, dword [ebp - 0x28]
add eax, dword [ebp - 0x1c]
movsx edx, word [ecx + eax*4]
movsx ecx, word [ecx + eax*4 + 2]
test ecx, ecx
jns 0x100aae12
sub ebx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x18]
cmp esi, ebx
cmovbe ebx, esi
mov eax, ebx
shr eax, 3
push dword [ecx + eax]
mov dword [ebp - 0x1c], edx
call fcn.101eaef1
add esp, 4
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [ebp - 0x14]
shr eax, cl
mov ecx, dword [ebp - 0x28]
add eax, dword [ebp - 0x1c]
movsx edx, word [ecx + eax*4]
movsx ecx, word [ecx + eax*4 + 2]
add ebx, ecx
mov eax, dword [ebp - 0x2c]
cmp esi, ebx
cmovbe ebx, esi
sub edx, dword [ebp - 0x40]
mov dword [eax + 8], ebx
mov al, byte [ebp - 0x10]
imul edx, dword [ebp - 0x3c]
add al, dl
mov edx, dword [ebp - 0x24]
mov byte [edx + edi], al
js 0x100ab2ad
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
inc edi
movzx eax, byte [ebx + eax + 0xc]
cmp edi, dword [ecx + eax*4 + 0x4bb60]
jb 0x100aad57
jmp 0x100ab268
mov edi, dword [ebp - 0x2c]
mov ecx, dword [edi + 0x10]
mov ebx, dword [edi + 8]
mov eax, dword [edi]
mov dword [ebp - 0x20], ecx
mov ecx, ebx
shr ecx, 3
push dword [eax + ecx]
call fcn.101eaef1
add esp, 4
mov ecx, ebx
add ebx, dword [ebp - 0x48]
and cl, 7
shl eax, cl
mov cl, byte [ebp - 0x31]
shr eax, cl
mov ecx, dword [ebp - 0x20]
cmp ecx, ebx
cmovbe ebx, ecx
imul eax, dword [ebp - 0x3c]
lea ecx, [esi + 1]
mov dword [edi + 8], ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x20], ecx
lea ecx, [ecx + ecx*2]
shl ecx, 4
mov byte [ebx + ecx + 0x15190], al
mov ecx, dword [ebp - 0x30]
movzx edx, byte [ebx + esi + 0xd]
cmp dword [ecx + edx*4 + 0x4bb60], 2
jb 0x100ab268
lea ecx, [esi + esi*2]
mov dword [ebp - 0x10], eax
mov esi, 0x151c1
shl ecx, 4
add ecx, ebx
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax + 8]
mov ecx, dword [eax]
mov edi, dword [eax + 0x10]
mov eax, ebx
mov dword [ebp - 0x18], ecx
shr eax, 3
push dword [ecx + eax]
call fcn.101eaef1
add esp, 4
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [ebp - 0x54]
shr eax, 0xf7
movsx edx, word [ecx + eax*4]
movsx eax, word [ecx + eax*4 + 2]
test eax, eax
jns 0x100aaf8f
add ebx, 9
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
cmp edi, ebx
cmovbe ebx, edi
mov eax, ebx
shr eax, 3
push dword [ecx + eax]
mov dword [ebp - 0x1c], edx
call fcn.101eaef1
add esp, 4
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [ebp - 0x14]
shr eax, cl
mov ecx, dword [ebp - 0x54]
add eax, dword [ebp - 0x1c]
movsx edx, word [ecx + eax*4]
movsx ecx, word [ecx + eax*4 + 2]
test ecx, ecx
js 0x100aaf53
mov eax, ecx
jmp 0x100aaf8f
sub ebx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x18]
cmp edi, ebx
cmovbe ebx, edi
mov eax, ebx
shr eax, 3
push dword [ecx + eax]
mov dword [ebp - 0x1c], edx
call fcn.101eaef1
add esp, 4
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [ebp - 0x14]
shr eax, cl
mov ecx, dword [ebp - 0x54]
add eax, dword [ebp - 0x1c]
movsx edx, word [ecx + eax*4]
movsx eax, word [ecx + eax*4 + 2]
add ebx, eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x10]
cmp edi, ebx
cmovbe ebx, edi
add edx, dword [ebp - 0x58]
mov dword [eax + 8], ebx
mov eax, dword [ebp - 0x24]
imul edx, dword [ebp - 0x3c]
add cl, dl
mov byte [eax + esi], cl
js 0x100ab2ad
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x10], ecx
lea ecx, [esi + 1]
add esi, 0xfffeae41
movzx eax, byte [ebx + eax + 0xc]
cmp esi, dword [edx + eax*4 + 0x4bb60]
mov esi, ecx
jb 0x100aaed3
jmp 0x100ab268
mov ecx, dword [ebp - 0x30]
test al, al
mov eax, dword [ecx + eax*4 + 0x4bb60]
je 0x100ab127
test eax, eax
je 0x100ab268
mov eax, dword [ebp - 0x44]
lea ecx, [esi + esi*2]
xor esi, esi
shl ecx, 4
mov dword [ebp - 0x24], ecx
add eax, ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x24]
add eax, esi
add ecx, ebx
shr eax, 1
mov al, byte [eax + ecx + 0x15190]
mov byte [ebp - 0x10], al
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax + 8]
mov ecx, dword [eax]
mov edi, dword [eax + 0x10]
mov eax, ebx
mov dword [ebp - 0x18], ecx
shr eax, 3
push dword [ecx + eax]
call fcn.101eaef1
add esp, 4
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [ebp - 0x28]
shr eax, 0xf7
movsx edx, word [ecx + eax*4]
movsx eax, word [ecx + eax*4 + 2]
test eax, eax
jns 0x100ab0e1
add ebx, 9
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x38], eax
cmp edi, ebx
cmovbe ebx, edi
mov eax, ebx
shr eax, 3
push dword [ecx + eax]
mov dword [ebp - 0x14], edx
call fcn.101eaef1
add esp, 4
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [ebp - 0x38]
shr eax, cl
mov ecx, dword [ebp - 0x28]
add eax, dword [ebp - 0x14]
movsx edx, word [ecx + eax*4]
movsx ecx, word [ecx + eax*4 + 2]
test ecx, ecx
js 0x100ab0a5
mov eax, ecx
jmp 0x100ab0e1
sub ebx, dword [ebp - 0x38]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x18]
cmp edi, ebx
cmovbe ebx, edi
mov eax, ebx
shr eax, 3
push dword [ecx + eax]
mov dword [ebp - 0x14], edx
call fcn.101eaef1
add esp, 4
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [ebp - 0x38]
shr eax, cl
mov ecx, dword [ebp - 0x28]
add eax, dword [ebp - 0x14]
movsx edx, word [ecx + eax*4]
movsx eax, word [ecx + eax*4 + 2]
add ebx, eax
mov eax, dword [ebp - 0x2c]
mov cl, byte [ebp - 0x10]
cmp edi, ebx
cmovbe ebx, edi
sub edx, dword [ebp - 0x40]
mov dword [eax + 8], ebx
mov eax, dword [ebp - 0x1c]
imul edx, dword [ebp - 0x3c]
add cl, dl
mov byte [eax + esi], cl
js 0x100ab2ad
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
inc esi
movzx eax, byte [ebx + eax + 0xc]
cmp esi, dword [ecx + eax*4 + 0x4bb60]
jb 0x100ab00f
jmp 0x100ab268
test eax, eax
je 0x100ab268
mov eax, dword [ebp - 0x44]
lea ecx, [esi + esi*2]
mov esi, dword [ebp - 0x5c]
xor edi, edi
shl ecx, 4
mov dword [ebp - 0x14], ecx
add eax, ecx
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x14]
test edi, edi
mov eax, esi
cmove eax, edi
add ecx, ebx
mov al, byte [eax + ecx + 0x15190]
mov byte [ebp - 0x24], al
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x18], eax
mov eax, ebx
mov dword [ebp - 0x1c], ecx
shr eax, 3
push dword [ecx + eax]
call fcn.101eaef1
add esp, 4
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [ebp - 0x28]
shr eax, 0xf7
movsx edx, word [ecx + eax*4]
movsx eax, word [ecx + eax*4 + 2]
test eax, eax
mov dword [ebp - 0x10], eax
jns 0x100ab224
mov eax, dword [ebp - 0x18]
add ebx, 9
mov ecx, dword [ebp - 0x1c]
cmp eax, ebx
cmovbe ebx, eax
mov eax, ebx
shr eax, 3
push dword [ecx + eax]
mov dword [ebp - 0x4c], edx
call fcn.101eaef1
add esp, 4
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [ebp - 0x10]
shr eax, cl
mov ecx, dword [ebp - 0x28]
add eax, dword [ebp - 0x4c]
movsx edx, word [ecx + eax*4]
movsx ecx, word [ecx + eax*4 + 2]
test ecx, ecx
js 0x100ab1e2
mov dword [ebp - 0x10], ecx
jmp 0x100ab224
sub ebx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x1c]
cmp eax, ebx
cmovbe ebx, eax
mov eax, ebx
shr eax, 3
push dword [ecx + eax]
mov dword [ebp - 0x4c], edx
call fcn.101eaef1
add esp, 4
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [ebp - 0x10]
shr eax, cl
mov ecx, dword [ebp - 0x28]
add eax, dword [ebp - 0x4c]
movsx edx, word [ecx + eax*4]
movsx eax, word [ecx + eax*4 + 2]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
add ebx, dword [ebp - 0x10]
mov cl, byte [ebp - 0x24]
cmp eax, ebx
cmovbe ebx, eax
sub edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x2c]
imul edx, dword [ebp - 0x3c]
mov dword [eax + 8], ebx
mov eax, dword [ebp - 0x38]
add cl, dl
mov byte [eax + edi], cl
js 0x100ab2ad
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
inc edi
add esi, 2
movzx eax, byte [ebx + eax + 0xc]
cmp edi, dword [ecx + eax*4 + 0x4bb60]
jb 0x100ab145
mov edi, dword [ebx + 8]
mov esi, dword [ebp - 0x20]
cmp esi, edi
jb 0x100aad18
lea eax, [edi + edi*2]
shl eax, 4
movaps xmm0, xmmword [ebx + eax + 0x151b0]
movaps xmmword [ebx + 0x151b0], xmm0
movaps xmm0, xmmword [ebx + eax + 0x15190]
movaps xmm1, xmmword [ebx + eax + 0x151a0]
xor eax, eax
movaps xmmword [ebx + 0x151a0], xmm1
movaps xmmword [ebx + 0x15190], xmm0
jmp 0x100ab2b2
mov eax, 0xbebbb1b7
add esp, 0x50
pop esi
pop edi
pop ebx
pop ebp
ret