Function at 0x1400e8dd0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x14078
lea rbp, [rsp + 0x80]
vmovups xmmword [rbp + 0x13fe0], xmm8
vmovups xmmword [rbp + 0x13fd0], xmm7
vmovups xmmword [rbp + 0x13fc0], xmm6
and rsp, 0xffffffffffffffc0
vmovups ymm0, ymmword [rcx]
vmovups ymmword [rsp + 0xa0], ymm0
mov rax, qword [rcx + 0x40]
mov qword [rsp + 0x58], rax
mov rax, qword [rcx + 0x48]
mov qword [rsp + 0x80], rax
mov rbx, qword [rcx + 0x50]
mov rax, qword [rcx + 0x58]
mov qword [rsp + 0x78], rax
movsxd r15, dword [rcx + 0x60]
xor r12d, r12d
lea rcx, [rsp + 0xc0]
mov r8d, 0x680
xor edx, edx
vzeroupper
call fcn.1401bb600
test r15, r15
jle 0x1400e93ad
vxorps xmm1, xmm1, xmm1
mov ecx, 0xffffffff
xor r8d, r8d
xor edx, edx
xor r9d, r9d
vxorps xmm0, xmm0, xmm0
mov qword [rsp + 0x68], r15
vmovups ymm6, ymmword [rsp + 0xa0]
jmp 0x1400e8eea
test r11d, r11d
mov r15, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x54]
mov r8, qword [rsp + 0x70]
mov r9d, dword [rsp + 0x50]
mov r10d, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x60]
jle 0x1400e9090
movsxd rax, ecx
shl rax, 6
lea rdx, [rsp + 0xfc0]
mov word [rax + rdx + 0x60], r11w
vmovups ymmword [rax + rdx + 0x40], ymm2
inc ecx
mov word [rax + rdx + 0x62], r10w
vsubps ymm0, ymm0, ymm2
xor edx, edx
inc r8
cmp r9d, r15d
jge 0x1400e91de
mov r11d, r9d
mov rax, qword [rsp + 0x80]
movsx r10d, word [rax + r8*2]
mov r9d, r10d
add r9d, r11d
mov rax, qword [rsp + 0x78]
movzx eax, word [rax + r8*2]
test eax, eax
je 0x1400e9090
cmp r10w, 0x11
mov dword [rsp + 0x54], ecx
mov qword [rsp + 0x70], r8
mov dword [rsp + 0x50], r9d
mov dword [rsp + 0x4c], r10d
jge 0x1400e90b0
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rcx]
mov qword [rsp + 0x60], rdx
mov rdx, qword [rcx + 8]
mov qword [rsp + 0x98], rdx
mov rdx, qword [rcx + 0x10]
mov qword [rsp + 0x90], rdx
mov rdx, qword [rcx + 0x18]
mov qword [rsp + 0x88], rdx
mov rdi, qword [rcx + 0x20]
mov r15, qword [rcx + 0x28]
mov r13, qword [rcx + 0x30]
movsxd r8, r12d
lea r9, [rsp + r8*2]
add r9, 0x740
shl r8, 5
add r8, rsp
add r8, 0xb900
vxorps xmm2, xmm2, xmm2
mov rsi, r11
xor r11d, r11d
nop word cs:[rax + rax]
mov r10d, 1
xor r14d, r14d
tzcnt r14d, eax
lea ecx, [r14 + rsi]
movsxd rcx, ecx
vmovss xmm3, dword [rdi + rcx*4]
vinsertps xmm3, xmm3, dword [r15 + rcx*4], 0x1c
vinsertps xmm3, xmm3, dword [r13 + rcx*4], 0x28
mov rdx, qword [rsp + 0x60]
vmovss xmm4, dword [rdx + rcx*4]
mov rdx, qword [rsp + 0x98]
vinsertps xmm4, xmm4, dword [rdx + rcx*4], 0x10
mov rdx, qword [rsp + 0x90]
vinsertps xmm4, xmm4, dword [rdx + rcx*4], 0x20
mov rdx, qword [rsp + 0x88]
vinsertps xmm4, xmm4, dword [rdx + rcx*4], 0x30
vinsertf128 ymm3, ymm4, xmm3, 1
movzx ecx, word [rbx + rcx*2]
vmulps ymm3, ymm6, ymm3
movzx edx, cl
shr edx, 2
shl rdx, 5
vmovups ymm4, ymmword [rsp + rdx + 0xc0]
vsubps ymm4, ymm4, ymm3
vmovups ymmword [rsp + rdx + 0xc0], ymm4
mov edx, ecx
shr edx, 0xa
shl rdx, 5
vmovups ymm4, ymmword [rsp + rdx + 0xc0]
vsubps ymm4, ymm4, ymm3
vmovups ymmword [rsp + rdx + 0xc0], ymm4
mov word [r9 + r11*2], cx
vmovups ymmword [r8], ymm3
shlx ecx, r10d, r14d
add r8, 0x20
inc r11
xor eax, ecx
vaddps ymm2, ymm2, ymm3
jne 0x1400e8fa0
add r12d, r11d
mov r15, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x54]
mov r8, qword [rsp + 0x70]
mov r9d, dword [rsp + 0x50]
mov r10d, dword [rsp + 0x4c]
jmp 0x1400e8eb5
movsxd rax, ecx
shl rax, 6
test edx, edx
je 0x1400e91b7
add word [rsp + rax + 0xfe2], r10w
jmp 0x1400e91d4
mov dword [rsp + 0x60], edx
mov rdx, qword [rsp + 0x58]
mov r15, qword [rdx]
mov rcx, qword [rdx + 8]
mov rsi, qword [rdx + 0x10]
mov rax, qword [rdx + 0x18]
mov rdi, qword [rdx + 0x20]
mov r13, qword [rdx + 0x28]
mov r10, qword [rdx + 0x30]
movsxd r14, r11d
movsxd rdx, r9d
vxorps xmm3, xmm3, xmm3
xor r11d, r11d
vxorps xmm2, xmm2, xmm2
jmp 0x1400e90fc
inc r14
cmp r14, rdx
jge 0x1400e8e90
vmovss xmm4, dword [rdi + r14*4]
vinsertps xmm4, xmm4, dword [r13 + r14*4], 0x1c
vinsertps xmm4, xmm4, dword [r10 + r14*4], 0x28
vmovss xmm5, dword [r15 + r14*4]
vinsertps xmm5, xmm5, dword [rcx + r14*4], 0x10
vinsertps xmm5, xmm5, dword [rsi + r14*4], 0x20
vinsertps xmm5, xmm5, dword [rax + r14*4], 0x30
vinsertf128 ymm4, ymm5, xmm4, 1
vcmpneqps ymm5, ymm4, ymm3
vtestps ymm5, ymm5
je 0x1400e90f0
movzx r8d, word [rbx + r14*2]
vmulps ymm4, ymm6, ymm4
movzx r9d, r8b
shr r9d, 2
shl r9, 5
vmovups ymm5, ymmword [rsp + r9 + 0xc0]
vsubps ymm5, ymm5, ymm4
vmovups ymmword [rsp + r9 + 0xc0], ymm5
movsxd r12, r12d
mov word [rsp + r12*2 + 0x740], r8w
shr r8d, 0xa
shl r8, 5
vmovups ymm5, ymmword [rsp + r8 + 0xc0]
vsubps ymm5, ymm5, ymm4
vmovups ymmword [rsp + r8 + 0xc0], ymm5
vaddps ymm2, ymm2, ymm4
mov r8, r12
shl r8, 5
vmovups ymmword [rsp + r8 + 0xb900], ymm4
inc r12d
inc r11d
jmp 0x1400e90f0
lea rdx, [rsp + 0xfc0]
vmovups ymmword [rax + rdx + 0x40], ymm1
inc ecx
mov word [rax + rdx + 0x60], 0
mov word [rax + rdx + 0x62], r10w
mov edx, 1
jmp 0x1400e8ede
xor eax, eax
xor ecx, ecx
xor r8d, r8d
jmp 0x1400e91ff
inc rax
mov r8d, edx
cmp edx, r15d
jge 0x1400e93ad
mov r10, rax
shl r10, 6
movsx edx, word [rsp + r10 + 0xfe2]
add edx, r8d
movsx r9d, word [rsp + r10 + 0xfe0]
test r9d, r9d
je 0x1400e9360
add r9d, ecx
mov r11d, ecx
nop word [rax + rax]
mov esi, r11d
movzx edi, byte [rsp + rsi*2 + 0x740]
movzx r14d, byte [rsp + rsi*2 + 0x741]
shr edi, 2
shl rdi, 5
shl rsi, 5
vmovups ymm1, ymmword [rsp + rsi + 0xb900]
vaddps ymm2, ymm1, ymmword [rsp + rdi + 0xc0]
vmovups ymmword [rsp + rdi + 0xc0], ymm2
shr r14d, 2
shl r14, 5
vaddps ymm1, ymm1, ymmword [rsp + r14 + 0xc0]
vmovups ymmword [rsp + r14 + 0xc0], ymm1
inc r11d
cmp r11d, r9d
jb 0x1400e9230
vmovups ymm1, ymmword [rsp + r10 + 0xfc0]
vaddps ymm0, ymm0, ymm1
nop dword [rax]
mov r10d, r8d
movzx r11d, byte [rbx + r10*2]
movzx esi, byte [rbx + r10*2 + 1]
shr esi, 2
shr r11d, 2
shl r11, 5
vsubps ymm2, ymm0, ymmword [rsp + r11 + 0xc0]
shl rsi, 5
vsubps ymm2, ymm2, ymmword [rsp + rsi + 0xc0]
shl r10, 5
vmovups ymmword [rsp + r10 + 0x31c0], ymm2
inc r8d
cmp r8d, edx
jb 0x1400e92a0
nop word cs:[rax + rax]
mov r8d, ecx
movzx r10d, byte [rsp + r8*2 + 0x740]
movzx r11d, byte [rsp + r8*2 + 0x741]
shr r10d, 2
shl r10, 5
shl r8, 5
vmovups ymm2, ymmword [rsp + r8 + 0xb900]
vaddps ymm3, ymm2, ymmword [rsp + r10 + 0xc0]
vmovups ymmword [rsp + r10 + 0xc0], ymm3
shr r11d, 2
shl r11, 5
vaddps ymm2, ymm2, ymmword [rsp + r11 + 0xc0]
vmovups ymmword [rsp + r11 + 0xc0], ymm2
inc ecx
cmp ecx, r9d
jb 0x1400e92f0
vaddps ymm0, ymm1, ymm0
mov ecx, r9d
jmp 0x1400e91f0
mov r9d, r8d
movzx r10d, byte [rbx + r9*2]
movzx r11d, byte [rbx + r9*2 + 1]
shr r11d, 2
shr r10d, 2
shl r10, 5
vsubps ymm1, ymm0, ymmword [rsp + r10 + 0xc0]
shl r11, 5
vsubps ymm1, ymm1, ymmword [rsp + r11 + 0xc0]
shl r9, 5
vmovups ymmword [rsp + r9 + 0x31c0], ymm1
inc r8d
cmp r8d, edx
jb 0x1400e9360
jmp 0x1400e91f0
lea eax, [r15 + 7]
test r15d, r15d
cmovns eax, r15d
sar eax, 3
cmp r15d, 8
jl 0x1400e94d9
mov rsi, qword [rsp + 0x58]
mov rcx, qword [rsi]
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
mov r9, qword [rsi + 0x18]
mov r10, qword [rsi + 0x20]
mov r11, qword [rsi + 0x28]
mov rsi, qword [rsi + 0x30]
mov edi, eax
xor ebx, ebx
nop dword [rax]
vmovups ymm0, ymmword [rsp + rbx*8 + 0x31c0]
vmovups ymm1, ymmword [rsp + rbx*8 + 0x31e0]
vmovups ymm2, ymmword [rsp + rbx*8 + 0x3200]
vmovups ymm3, ymmword [rsp + rbx*8 + 0x3220]
vunpcklps ymm4, ymm0, ymm1
vunpckhps ymm0, ymm0, ymm1
vunpcklps ymm1, ymm2, ymm3
vunpckhps ymm2, ymm2, ymm3
vmovups ymm3, ymmword [rsp + rbx*8 + 0x3260]
vmovups ymm5, ymmword [rsp + rbx*8 + 0x3240]
vunpcklps ymm6, ymm5, ymm3
vunpckhps ymm3, ymm5, ymm3
vmovups ymm5, ymmword [rsp + rbx*8 + 0x32a0]
vmovups ymm7, ymmword [rsp + rbx*8 + 0x3280]
vunpcklps ymm8, ymm7, ymm5
vunpckhps ymm5, ymm7, ymm5
vunpcklpd ymm7, ymm4, ymm1
vunpckhpd ymm1, ymm4, ymm1
vunpcklpd ymm4, ymm0, ymm2
vunpckhpd xmm0, xmm0, xmm2
vunpcklpd ymm2, ymm6, ymm8
vunpckhpd ymm6, ymm6, ymm8
vinsertf128 ymm8, ymm7, xmm2, 1
vmovups ymmword [rcx + rbx], ymm8
vinsertf128 ymm8, ymm1, xmm6, 1
vmovups ymmword [rdx + rbx], ymm8
vunpcklpd ymm8, ymm3, ymm5
vunpckhpd xmm3, xmm3, xmm5
vinsertf128 ymm5, ymm4, xmm8, 1
vmovups ymmword [r8 + rbx], ymm5
vmovups xmmword [r9 + rbx + 0x10], xmm3
vmovups xmmword [r9 + rbx], xmm0
vperm2f128 ymm0, ymm7, ymm2, 0x31
vmovups ymmword [r10 + rbx], ymm0
vperm2f128 ymm0, ymm1, ymm6, 0x31
vmovups ymmword [r11 + rbx], ymm0
vperm2f128 ymm0, ymm4, ymm8, 0x31
vmovups ymmword [rsi + rbx], ymm0
add rbx, 0x20
dec rdi
jne 0x1400e93f0
shl eax, 3
cmp eax, r15d
jge 0x1400e96a2
mov r11, qword [rsp + 0x58]
mov rcx, qword [r11]
mov rdx, qword [r11 + 8]
mov r8, qword [r11 + 0x10]
mov r9, qword [r11 + 0x18]
mov r10, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
movsxd r11, eax
mov rax, r11
not rax
test r15b, 1
je 0x1400e9588
mov rbx, r11
shl rbx, 5
vmovss xmm0, dword [rsp + rbx + 0x31c0]
vmovss dword [rcx + r11*4], xmm0
vmovss xmm0, dword [rsp + rbx + 0x31c4]
vmovss dword [rdx + r11*4], xmm0
vmovss xmm0, dword [rsp + rbx + 0x31c8]
vmovss dword [r8 + r11*4], xmm0
vmovss xmm0, dword [rsp + rbx + 0x31cc]
vmovss dword [r9 + r11*4], xmm0
vmovss xmm0, dword [rsp + rbx + 0x31d0]
vmovss dword [r10 + r11*4], xmm0
vmovss xmm0, dword [rsp + rbx + 0x31d4]
vmovss dword [rsi + r11*4], xmm0
vmovss xmm0, dword [rsp + rbx + 0x31d8]
vmovss dword [rdi + r11*4], xmm0
or r11, 1
add rax, r15
je 0x1400e96a2
sub r15, r11
lea rax, [rcx + r11*4]
add rax, 4
lea rcx, [rdx + r11*4 + 4]
lea rdx, [r8 + r11*4 + 4]
lea r8, [r9 + r11*4 + 4]
lea r9, [r10 + r11*4]
add r9, 4
lea r10, [rsi + r11*4]
add r10, 4
lea rsi, [rdi + r11*4]
add rsi, 4
shl r11, 5
lea rdi, [rsp + 0x31c0]
add r11, rdi
add r11, 0x38
xor edi, edi
nop dword [rax + rax]
vmovss xmm0, dword [r11 + rdi*8 - 0x38]
vmovss dword [rax + rdi - 4], xmm0
vmovss xmm0, dword [r11 + rdi*8 - 0x34]
vmovss dword [rcx + rdi - 4], xmm0
vmovss xmm0, dword [r11 + rdi*8 - 0x30]
vmovss dword [rdx + rdi - 4], xmm0
vmovss xmm0, dword [r11 + rdi*8 - 0x2c]
vmovss dword [r8 + rdi - 4], xmm0
vmovss xmm0, dword [r11 + rdi*8 - 0x28]
vmovss dword [r9 + rdi - 4], xmm0
vmovss xmm0, dword [r11 + rdi*8 - 0x24]
vmovss dword [r10 + rdi - 4], xmm0
vmovss xmm0, dword [r11 + rdi*8 - 0x20]
vmovss dword [rsi + rdi - 4], xmm0
vmovss xmm0, dword [r11 + rdi*8 - 0x18]
vmovss dword [rax + rdi], xmm0
vmovss xmm0, dword [r11 + rdi*8 - 0x14]
vmovss dword [rcx + rdi], xmm0
vmovss xmm0, dword [r11 + rdi*8 - 0x10]
vmovss dword [rdx + rdi], xmm0
vmovss xmm0, dword [r11 + rdi*8 - 0xc]
vmovss dword [r8 + rdi], xmm0
vmovss xmm0, dword [r11 + rdi*8 - 8]
vmovss dword [r9 + rdi], xmm0
vmovss xmm0, dword [r11 + rdi*8 - 4]
vmovss dword [r10 + rdi], xmm0
vmovss xmm0, dword [r11 + rdi*8]
vmovss dword [rsi + rdi], xmm0
add rdi, 8
add r15, 0xfffffffffffffffe
jne 0x1400e95e0
vmovups xmm6, xmmword [rbp + 0x13fc0]
vmovups xmm7, xmmword [rbp + 0x13fd0]
vmovups xmm8, xmmword [rbp + 0x13fe0]
lea rsp, [rbp + 0x13ff8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
vzeroupper
ret