Function at 0x7b5a10
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
test ecx, ecx
setne al
test esi, esi
je 0x7b5da2
mov ebp, dword [esp + 0x28]
test ebp, ebp
je 0x7b5da2
or al, byte [0xa570d8]
test al, 1
je 0x7b5da2
mov eax, dword [0xa280e0]
mov dword [esp + 0xc], eax
add dword [ecx + 8], esi
jae 0x7b5a57
inc dword [ecx + 4]
mov ebx, dword [ecx]
lea eax, [ebx - 0x40]
neg eax
cmp eax, esi
cmovae eax, esi
cmp ebx, 0x40
je 0x7b5b8a
lea edi, [ecx + ebx]
add edi, 0x2c
cmp eax, 1
mov edx, eax
adc edx, 0
mov dword [esp], 0
cmp eax, 8
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
jb 0x7b5b19
add ecx, ebx
sub ecx, ebp
add ecx, 0x2c
cmp ecx, 0x20
jb 0x7b5b19
mov dword [esp], 0
cmp eax, 0x20
jb 0x7b5af2
mov ebx, edx
and ebx, 0xffffffe0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
add ecx, edx
add ecx, 0x3c
xor edx, edx
nop
movdqu xmm0, xmmword [ebp + edx]
movdqu xmm1, xmmword [ebp + edx + 0x10]
movdqu xmmword [ecx + edx - 0x10], xmm0
movdqu xmmword [ecx + edx], xmm1
add edx, 0x20
cmp ebx, edx
jne 0x7b5ac0
mov edx, dword [esp + 4]
mov dword [esp], ebx
cmp edx, ebx
je 0x7b5b8a
test dl, 0x18
je 0x7b5b19
mov ecx, dword [esp]
mov ebx, edx
and ebx, 0xfffffff8
nop word [eax + eax]
movq xmm0, qword [ebp + ecx]
movq qword [edi + ecx], xmm0
add ecx, 8
cmp ebx, ecx
jne 0x7b5b00
mov dword [esp], ebx
cmp edx, ebx
je 0x7b5b8a
mov ecx, edx
mov edx, dword [esp]
and ecx, 3
je 0x7b5b3c
neg ecx
mov edx, dword [esp]
nop dword [eax + eax]
movzx ebx, byte [ebp + edx]
mov byte [edi + edx], bl
inc edx
inc ecx
jne 0x7b5b30
mov ecx, dword [esp]
sub ecx, dword [esp + 4]
cmp ecx, 0xfffffffc
mov edi, dword [esp + 8]
ja 0x7b5b8a
mov ecx, dword [esp + 0x24]
add ecx, edi
add ecx, 0x2f
nop word cs:[eax + eax]
movzx ebx, byte [ebp + edx]
mov byte [ecx + edx - 3], bl
movzx ebx, byte [ebp + edx + 1]
mov byte [ecx + edx - 2], bl
movzx ebx, byte [ebp + edx + 2]
mov byte [ecx + edx - 1], bl
movzx ebx, byte [ebp + edx + 3]
mov byte [ecx + edx], bl
add edx, 4
cmp eax, edx
jne 0x7b5b60
mov ebx, dword [esp + 0x24]
mov ecx, dword [ebx]
add ecx, eax
mov dword [ebx], ecx
cmp ecx, 0x40
jne 0x7b5da2
lea edi, [ebx + 0x2c]
add ebp, eax
sub esi, eax
xor dword [esp + 0xc], 0xa4fd9ea3
jmp 0x7b5bc6
mov dword [ebx], ecx
mov edx, dword [esp]
mov eax, edx
sub eax, ecx
add ebp, ecx
cmp edx, 0x3f
mov esi, eax
jbe 0x7b5da2
movdqu xmm1, xmmword [ebx + 0x2c]
movdqu xmm0, xmmword [ebx + 0x3c]
movdqa xmm2, xmm1
pxor xmm3, xmm3
punpckhbw xmm2, xmm3
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpcklbw xmm1, xmm3
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [ebx + 0x2c], xmm1
movdqa xmm1, xmm0
punpckhbw xmm1, xmm3
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm3
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [ebx + 0x3c], xmm0
movdqu xmm0, xmmword [ebx + 0x4c]
movdqa xmm1, xmm0
punpckhbw xmm1, xmm3
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm3
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [ebx + 0x4c], xmm0
movdqu xmm0, xmmword [ebx + 0x5c]
movdqa xmm1, xmm0
punpckhbw xmm1, xmm3
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm3
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [ebx + 0x5c], xmm0
mov ecx, ebx
mov edx, dword [esp + 0xc]
call fcn.007b6450
cmp esi, 0x40
mov ecx, 0x40
cmovb ecx, esi
test esi, esi
je 0x7b5da0
mov eax, esi
xor esi, esi
mov dword [esp], eax
cmp eax, 8
jb 0x7b5d40
mov eax, edi
sub eax, ebp
cmp eax, 0x10
jb 0x7b5d40
xor esi, esi
cmp dword [esp], 0x10
jae 0x7b5cf0
mov eax, esi
mov esi, ecx
and esi, 0x78
nop dword [eax]
movq xmm0, qword [ebp + eax]
movq qword [edi + eax], xmm0
add eax, 8
cmp esi, eax
jne 0x7b5cd0
cmp ecx, esi
je 0x7b5bb0
jmp 0x7b5d40
mov esi, ecx
and esi, 0x70
movdqu xmm0, xmmword [ebp]
movdqu xmmword [edi], xmm0
cmp esi, 0x10
je 0x7b5d30
movdqu xmm0, xmmword [ebp + 0x10]
movdqu xmmword [ebx + 0x3c], xmm0
cmp esi, 0x20
je 0x7b5d30
movdqu xmm0, xmmword [ebp + 0x20]
movdqu xmmword [ebx + 0x4c], xmm0
cmp esi, 0x30
je 0x7b5d30
movdqu xmm0, xmmword [ebp + 0x30]
movdqu xmmword [ebx + 0x5c], xmm0
nop dword [eax + eax]
cmp ecx, esi
je 0x7b5bb0
test cl, 8
jne 0x7b5cc5
nop dword [eax]
mov eax, ecx
mov edx, esi
and eax, 3
je 0x7b5d5c
mov edx, esi
nop dword [eax + eax]
movzx ebx, byte [ebp + edx]
mov byte [edi + edx], bl
inc edx
dec eax
jne 0x7b5d50
sub esi, ecx
cmp esi, 0xfffffffc
mov ebx, dword [esp + 0x24]
ja 0x7b5bb0
nop dword [eax + eax]
movzx eax, byte [ebp + edx]
mov byte [ebx + edx + 0x2c], al
movzx eax, byte [ebp + edx + 1]
mov byte [ebx + edx + 0x2d], al
movzx eax, byte [ebp + edx + 2]
mov byte [ebx + edx + 0x2e], al
movzx eax, byte [ebp + edx + 3]
mov byte [ebx + edx + 0x2f], al
add edx, 4
cmp ecx, edx
jne 0x7b5d70
jmp 0x7b5bb0
mov dword [ebx], ecx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret