Function at 0x140031070
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xf8
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0x60], xmm15
movdqa xmmword [rbp + 0x50], xmm14
movdqa xmmword [rbp + 0x40], xmm13
movdqa xmmword [rbp + 0x30], xmm12
movdqa xmmword [rbp + 0x20], xmm11
movdqa xmmword [rbp + 0x10], xmm10
movdqa xmmword [rbp], xmm9
movdqa xmmword [rbp - 0x10], xmm8
movdqa xmmword [rbp - 0x20], xmm7
movdqa xmmword [rbp - 0x30], xmm6
mov qword [rbp - 0x38], 0xfffffffffffffffe
mov rsi, r8
mov rbx, rdx
mov rdi, rcx
test r8, r8
je 0x1400313cc
js 0x140031568
movzx eax, byte [0x140106181]
mov r14d, 1
mov edx, 1
mov rcx, rsi
call fcn.140005380
test rax, rax
je 0x14003156b
xor r13d, r13d
cmp rsi, 0x10
jb 0x1400313d4
movabs rcx, 0x8080808080808080
movapd xmm0, xmmword [0x1400f8020]
pxor xmm1, xmm1
movdqa xmm4, xmmword [0x1400f8050]
movdqa xmm5, xmmword [0x1400f8060]
movdqa xmm6, xmmword [0x1400f8070]
movdqa xmm7, xmmword [0x1400f8080]
movdqa xmm8, xmmword [0x1400f8090]
movdqa xmm9, xmmword [0x1400f80a0]
movdqa xmm10, xmmword [0x1400f80b0]
movdqa xmm11, xmmword [0x1400f80c0]
movdqa xmm15, xmmword [0x140039f70]
movdqa xmm2, xmmword [0x140039f80]
mov r11, qword [rbx + r13]
movdqu xmm3, xmmword [rbx + r13]
pshufd xmm12, xmm3, 0xee
movq rdx, xmm12
mov r8, rdx
or r8, r11
test r8, rcx
jne 0x1400313d4
mov r8, r11
mov r9, r11
mov r10, r11
mov r14, r11
shr r11d, 8
movd xmm12, r11d
shr r14, 0x20
pshufd xmm13, xmm3, 0x44
movdqa xmm14, xmm3
psrlq xmm14, 0x10
psrlq xmm13, 0x18
movsd xmm13, xmm14
movd xmm14, r14d
shr r10, 0x28
punpcklqdq xmm3, xmm12
movd xmm12, r10d
andpd xmm13, xmm0
pand xmm3, xmm0
packuswb xmm3, xmm13
pshufd xmm13, xmm14, 0x50
movdqa xmm14, xmmword [0x1400f8030]
pandn xmm14, xmm13
psllq xmm12, 0x28
movdqa xmm13, xmmword [0x1400f8040]
pandn xmm13, xmm12
shr r9, 0x30
por xmm13, xmm14
movd xmm12, r9d
shr r8, 0x38
packuswb xmm3, xmm1
packuswb xmm3, xmm1
por xmm13, xmm3
psllq xmm12, 0x30
movdqa xmm3, xmm4
pandn xmm3, xmm12
movd xmm12, r8d
mov r8d, edx
shr r8d, 8
pand xmm13, xmm4
por xmm3, xmm13
pand xmm3, xmm5
psllq xmm12, 0x38
movdqa xmm13, xmm5
pandn xmm13, xmm12
por xmm13, xmm3
movd xmm3, edx
pshufd xmm3, xmm3, 0x44
movdqa xmm12, xmm6
pandn xmm12, xmm3
movd xmm3, r8d
mov r8d, edx
shr r8d, 0x10
pand xmm13, xmm6
por xmm12, xmm13
pslldq xmm3, 9
movdqa xmm13, xmm7
pandn xmm13, xmm3
movd xmm3, r8d
mov r8d, edx
shr r8d, 0x18
pand xmm12, xmm7
por xmm13, xmm12
pslldq xmm3, 0xa
movdqa xmm12, xmm8
pandn xmm12, xmm3
movd xmm3, r8d
mov r8, rdx
shr r8, 0x20
pand xmm13, xmm8
por xmm12, xmm13
pslldq xmm3, 0xb
movdqa xmm13, xmm9
pandn xmm13, xmm3
movd xmm3, r8d
mov r8, rdx
shr r8, 0x28
pand xmm12, xmm9
por xmm13, xmm12
pshufd xmm3, xmm3, 0
movdqa xmm12, xmm10
pandn xmm12, xmm3
movd xmm3, r8d
shr rdx, 0x30
pand xmm13, xmm10
por xmm12, xmm13
pand xmm12, xmm11
pslldq xmm3, 0xd
movdqa xmm13, xmm11
pandn xmm13, xmm3
por xmm13, xmm12
pand xmm13, xmmword [0x1400f80d0]
movd xmm3, edx
pslldq xmm3, 0xe
por xmm3, xmm13
pand xmm3, xmmword [0x1400f80e0]
movzx edx, byte [rbx + r13 + 0xf]
movd xmm12, edx
pslldq xmm12, 0xf
por xmm12, xmm3
movdqa xmm3, xmm12
paddb xmm3, xmmword [0x140039f60]
movdqa xmm13, xmm3
pminub xmm13, xmm15
pcmpeqb xmm13, xmm3
pand xmm13, xmm2
pxor xmm13, xmm12
movdqu xmmword [rax + r13], xmm13
lea rdx, [r13 + 0x10]
add r13, 0x20
cmp r13, rsi
mov r13, rdx
jbe 0x140031180
mov r13, rdx
jmp 0x1400313d4
mov eax, 1
xor r13d, r13d
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], r13
cmp r13, rsi
jne 0x140031443
mov rax, qword [rbp - 0x50]
mov qword [rdi + 0x10], rax
mov rax, qword [rbp - 0x60]
mov qword [rdi], rax
mov rax, qword [rbp - 0x58]
mov qword [rdi + 8], rax
mov rax, rdi
movaps xmm6, xmmword [rbp - 0x30]
movaps xmm7, xmmword [rbp - 0x20]
movaps xmm8, xmmword [rbp - 0x10]
movaps xmm9, xmmword [rbp]
movaps xmm10, xmmword [rbp + 0x10]
movaps xmm11, xmmword [rbp + 0x20]
movaps xmm12, xmmword [rbp + 0x30]
movaps xmm13, xmmword [rbp + 0x40]
movaps xmm14, xmmword [rbp + 0x50]
movaps xmm15, xmmword [rbp + 0x60]
add rsp, 0xf8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
add rsi, rbx
add r13, rbx
lea rbx, [rbp - 0x44]
lea r14, [rbp - 0x60]
jmp 0x140031474
mov edx, dword [rbp - 0x44]
mov rcx, r14
call fcn.140031800
cmp r13, rsi
je 0x1400313e5
movzx r8d, byte [r13]
movzx edx, r8b
test dl, dl
js 0x140031490
inc r13
jmp 0x140031500
mov eax, edx
and eax, 0x1f
movzx r9d, byte [r13 + 1]
and r9d, 0x3f
cmp dl, 0xdf
jbe 0x1400314df
movzx ecx, byte [r13 + 2]
shl r9d, 6
and ecx, 0x3f
or ecx, r9d
cmp r8b, 0xef
jbe 0x1400314ed
movzx edx, byte [r13 + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and edx, 0x3f
or edx, ecx
or edx, eax
cmp edx, 0x110000
je 0x1400313e5
add r13, 4
jmp 0x140031500
add r13, 2
shl eax, 6
or eax, r9d
mov edx, eax
jmp 0x140031500
add r13, 3
shl eax, 0xc
or ecx, eax
mov edx, ecx
nop dword [rax + rax]
mov rcx, rbx
call fcn.140036050
mov r15d, dword [rbp - 0x40]
test r15d, r15d
je 0x140031460
mov edx, dword [rbp - 0x44]
mov r12d, dword [rbp - 0x3c]
test r12d, r12d
je 0x140031550
mov rcx, r14
call fcn.140031800
mov rcx, r14
mov edx, r15d
call fcn.140031800
mov rcx, r14
mov edx, r12d
call fcn.140031800
jmp 0x14003146b
mov rcx, r14
call fcn.140031800
mov rcx, r14
mov edx, r15d
call fcn.140031800
jmp 0x14003146b
xor r14d, r14d
mov rcx, r14
mov rdx, rsi
call fcn.140038260
int3