Function at 0x1400dfb40
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, 0x1ff8
lea rbp, [rsp + 0x80]
vmovups xmmword [rbp + 0x1f60], xmm8
vmovups xmmword [rbp + 0x1f50], xmm7
vmovups xmmword [rbp + 0x1f40], xmm6
and rsp, 0xffffffffffffffc0
mov r15d, r9d
mov rsi, rdx
mov rdi, rcx
test r8, r8
je 0x1400e048f
mov r14, r8
vxorps xmm0, xmm0, xmm0
vmovups ymmword [rsp + 0x1c0], ymm0
vmovups ymmword [rsp + 0x1a0], ymm0
vmovups ymmword [rsp + 0x180], ymm0
vmovups ymmword [rsp + 0x160], ymm0
vmovups ymmword [rsp + 0x140], ymm0
vmovups ymmword [rsp + 0x120], ymm0
vmovups ymmword [rsp + 0x100], ymm0
vmovups ymmword [rsp + 0xe0], ymm0
vmovups ymmword [rsp + 0xc0], ymm0
vmovups ymmword [rsp + 0xa0], ymm0
vmovups ymmword [rsp + 0x80], ymm0
vmovups ymmword [rsp + 0x60], ymm0
vmovups ymmword [rsp + 0x40], ymm0
vzeroupper
call fcn.14008e530
test r15d, r15d
jle 0x1400e04b5
mov r12, rax
vmovss xmm0, dword [rbp + 0x1ff8]
vmovss xmm1, dword [rbp + 0x1ff0]
mov rcx, qword [rbp + 0x1fe8]
mov dword [rsp + 0x28], 0xffffffff
xor r9d, r9d
vxorps xmm2, xmm2, xmm2
xor r11d, r11d
xor r13d, r13d
xor eax, eax
mov dword [rsp + 0x3c], r15d
mov qword [rsp + 0x1f8], r12
mov qword [rsp + 0x1f0], rsi
jmp 0x1400dfcb0
test edx, edx
jle 0x1400dfda0
mov r8d, dword [rsp + 0x28]
movsxd rax, r8d
mov word [rsp + rax*8 + 0x20c], dx
vmulss xmm4, xmm3, xmm1
vmovss dword [rsp + rax*8 + 0x208], xmm4
inc r8d
mov dword [rsp + 0x28], r8d
mov edx, dword [rsp + 0x2c]
mov word [rsp + rax*8 + 0x20e], dx
vsubss xmm2, xmm2, xmm3
xor r13d, r13d
mov eax, dword [rsp + 0x30]
inc r9
cmp eax, r15d
jge 0x1400dfe83
mov ebx, eax
mov rax, qword [rbp + 0x1fe0]
movsx edx, word [rax + r9*2]
mov eax, edx
add eax, ebx
movzx r8d, word [r12 + r9*2]
test r8d, r8d
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x2c], edx
je 0x1400dfda0
cmp dx, 0x11
jge 0x1400dfdc0
movsxd rax, r11d
lea r13, [rsp + rax*4]
add r13, 0xec0
lea rax, [rsp + rax*2]
add rax, 0x640
vxorps xmm3, xmm3, xmm3
mov esi, 1
xor edx, edx
nop word cs:[rax + rax]
xor r12d, r12d
tzcnt r12d, r8d
lea r10d, [r12 + rbx]
movsxd r10, r10d
movzx r15d, word [rcx + r10*2]
vmovss xmm4, dword [r14 + r10*4]
movzx r10d, r15b
vmovss xmm5, dword [rsp + r10*8 + 0x40]
vsubss xmm5, xmm5, xmm4
vmovss dword [rsp + r10*8 + 0x40], xmm5
mov r10d, r15d
shr r10d, 8
vmovss xmm5, dword [rsp + r10*8 + 0x40]
vsubss xmm5, xmm5, xmm4
vmovss dword [rsp + r10*8 + 0x40], xmm5
mov word [rax + rdx*2], r15w
vmulss xmm5, xmm4, xmm1
vmovss dword [r13 + rdx*4], xmm5
vaddss xmm3, xmm4, xmm3
shlx r10d, esi, r12d
inc rdx
xor r8d, r10d
jne 0x1400dfd10
add r11d, edx
mov r15d, dword [rsp + 0x3c]
mov r12, qword [rsp + 0x1f8]
mov rsi, qword [rsp + 0x1f0]
jmp 0x1400dfc68
test r13d, r13d
je 0x1400dfe4a
movsxd rax, dword [rsp + 0x28]
mov edx, dword [rsp + 0x2c]
add word [rsp + rax*8 + 0x206], dx
jmp 0x1400dfe78
movsxd rbx, ebx
movsxd r8, eax
xor edx, edx
vxorps xmm4, xmm4, xmm4
vxorps xmm3, xmm3, xmm3
jmp 0x1400dfdec
inc rbx
cmp rbx, r8
jge 0x1400dfc60
vmovss xmm5, dword [r14 + rbx*4]
vucomiss xmm4, xmm5
jae 0x1400dfde0
movzx eax, word [rcx + rbx*2]
movzx r10d, al
vmovss xmm6, dword [rsp + r10*8 + 0x40]
vsubss xmm6, xmm6, xmm5
vmovss dword [rsp + r10*8 + 0x40], xmm6
movsxd r11, r11d
mov word [rsp + r11*2 + 0x640], ax
shr eax, 8
vmovss xmm6, dword [rsp + rax*8 + 0x40]
vsubss xmm6, xmm6, xmm5
vmovss dword [rsp + rax*8 + 0x40], xmm6
vaddss xmm3, xmm5, xmm3
vmulss xmm5, xmm5, xmm1
vmovss dword [rsp + r11*4 + 0xec0], xmm5
inc r11d
inc edx
jmp 0x1400dfde0
mov edx, dword [rsp + 0x28]
movsxd rax, edx
inc edx
mov dword [rsp + 0x28], edx
mov word [rsp + rax*8 + 0x20c], 0
mov dword [rsp + rax*8 + 0x208], 0
mov edx, dword [rsp + 0x2c]
mov word [rsp + rax*8 + 0x20e], dx
mov r13d, 1
jmp 0x1400dfca0
vbroadcastss xmm3, dword [0x140224060]
vandps xmm3, xmm2, xmm3
vucomiss xmm3, dword [0x14022406c]
jbe 0x1400e0494
vmovups xmm3, xmmword [rsp + 0x40]
vmovups xmm6, xmmword [rsp + 0x60]
vmovups xmm7, xmmword [rsp + 0x80]
vinsertps xmm3, xmm3, dword [rsp + 0x48], 0x10
vinsertps xmm3, xmm3, dword [rsp + 0x50], 0x20
vinsertps xmm3, xmm3, dword [rsp + 0x58], 0x30
vmovups xmm8, xmmword [rsp + 0xa0]
vmovups ymm4, ymmword [0x140225660]
vpermps ymm3, ymm4, ymm3
vinsertps xmm5, xmm1, xmm0, 0x10
vbroadcastsd ymm5, xmm5
vmulps ymm3, ymm3, ymm5
vmovups ymmword [rsp + 0x40], ymm3
vinsertps xmm3, xmm6, dword [rsp + 0x68], 0x10
vinsertps xmm3, xmm3, dword [rsp + 0x70], 0x20
vinsertps xmm3, xmm3, dword [rsp + 0x78], 0x30
vpermps ymm3, ymm4, ymm3
vmulps ymm3, ymm3, ymm5
vmovups ymmword [rsp + 0x60], ymm3
vinsertps xmm3, xmm7, dword [rsp + 0x88], 0x10
vinsertps xmm3, xmm3, dword [rsp + 0x90], 0x20
vinsertps xmm3, xmm3, dword [rsp + 0x98], 0x30
vpermps ymm3, ymm4, ymm3
vmulps ymm3, ymm3, ymm5
vmovups ymmword [rsp + 0x80], ymm3
vinsertps xmm3, xmm8, dword [rsp + 0xa8], 0x10
vinsertps xmm3, xmm3, dword [rsp + 0xb0], 0x20
vinsertps xmm3, xmm3, dword [rsp + 0xb8], 0x30
vpermps ymm3, ymm4, ymm3
vmulps ymm3, ymm3, ymm5
vmovups ymmword [rsp + 0xa0], ymm3
vmovups xmm3, xmmword [rsp + 0xc0]
vinsertps xmm3, xmm3, dword [rsp + 0xc8], 0x10
vinsertps xmm3, xmm3, dword [rsp + 0xd0], 0x20
vinsertps xmm3, xmm3, dword [rsp + 0xd8], 0x30
vpermps ymm3, ymm4, ymm3
vmulps ymm3, ymm3, ymm5
vmovups ymmword [rsp + 0xc0], ymm3
vmovups xmm3, xmmword [rsp + 0xe0]
vinsertps xmm3, xmm3, dword [rsp + 0xe8], 0x10
vinsertps xmm3, xmm3, dword [rsp + 0xf0], 0x20
vinsertps xmm3, xmm3, dword [rsp + 0xf8], 0x30
vpermps ymm3, ymm4, ymm3
vmulps ymm3, ymm3, ymm5
vmovups ymmword [rsp + 0xe0], ymm3
vmovups xmm3, xmmword [rsp + 0x100]
vinsertps xmm3, xmm3, dword [rsp + 0x108], 0x10
vinsertps xmm3, xmm3, dword [rsp + 0x110], 0x20
vinsertps xmm3, xmm3, dword [rsp + 0x118], 0x30
vpermps ymm3, ymm4, ymm3
vmulps ymm3, ymm3, ymm5
vmovups ymmword [rsp + 0x100], ymm3
vmovups xmm3, xmmword [rsp + 0x120]
vinsertps xmm3, xmm3, dword [rsp + 0x128], 0x10
vinsertps xmm3, xmm3, dword [rsp + 0x130], 0x20
vinsertps xmm3, xmm3, dword [rsp + 0x138], 0x30
vpermps ymm3, ymm4, ymm3
vmulps ymm3, ymm3, ymm5
vmovups ymmword [rsp + 0x120], ymm3
vmovups xmm3, xmmword [rsp + 0x140]
vinsertps xmm3, xmm3, dword [rsp + 0x148], 0x10
vinsertps xmm3, xmm3, dword [rsp + 0x150], 0x20
vinsertps xmm3, xmm3, dword [rsp + 0x158], 0x30
vpermps ymm3, ymm4, ymm3
vmulps ymm3, ymm3, ymm5
vmovups ymmword [rsp + 0x140], ymm3
vmovups xmm3, xmmword [rsp + 0x160]
vinsertps xmm3, xmm3, dword [rsp + 0x168], 0x10
vinsertps xmm3, xmm3, dword [rsp + 0x170], 0x20
vbroadcastss xmm6, dword [0x140221d98]
vinsertps xmm3, xmm3, dword [rsp + 0x178], 0x30
vpermps ymm3, ymm4, ymm3
vmulps ymm3, ymm3, ymm5
vmovups ymmword [rsp + 0x160], ymm3
vmovups xmm3, xmmword [rsp + 0x180]
vinsertps xmm3, xmm3, dword [rsp + 0x188], 0x10
vinsertps xmm3, xmm3, dword [rsp + 0x190], 0x20
vxorps xmm6, xmm0, xmm6
vinsertps xmm3, xmm3, dword [rsp + 0x198], 0x30
vpermps ymm3, ymm4, ymm3
vmulps ymm3, ymm3, ymm5
vmovups ymmword [rsp + 0x180], ymm3
vmovups xmm3, xmmword [rsp + 0x1a0]
vinsertps xmm3, xmm3, dword [rsp + 0x1a8], 0x10
vinsertps xmm7, xmm3, dword [rsp + 0x1b0], 0x20
vmulss xmm3, xmm2, xmm6
vinsertps xmm6, xmm7, dword [rsp + 0x1b8], 0x30
vpermps ymm6, ymm4, ymm6
vmulps ymm6, ymm6, ymm5
vmovups ymmword [rsp + 0x1a0], ymm6
vmovups xmm6, xmmword [rsp + 0x1c0]
vinsertps xmm6, xmm6, dword [rsp + 0x1c8], 0x10
vinsertps xmm6, xmm6, dword [rsp + 0x1d0], 0x20
vinsertps xmm6, xmm6, dword [rsp + 0x1d8], 0x30
vpermps ymm4, ymm4, ymm6
vmulps ymm4, ymm4, ymm5
vmovups ymmword [rsp + 0x1c0], ymm4
vmulss xmm1, xmm2, xmm1
xor r8d, r8d
xor ebx, ebx
xor edx, edx
jmp 0x1400e01df
vaddss xmm1, xmm1, xmm2
mov ebx, dword [rsp + 0x2c]
add ebx, r11d
mov r15d, dword [rsp + 0x3c]
inc r8
mov edx, r10d
cmp r10d, r15d
jge 0x1400e04b5
movsx r10, word [rsp + r8*8 + 0x206]
movsxd rax, edx
add r10, rax
movsx r11d, word [rsp + r8*8 + 0x204]
test r11d, r11d
je 0x1400e0440
mov dword [rsp + 0x2c], ebx
movsxd rdx, ebx
mov qword [rsp + 0x30], rdx
cmp r11d, 2
mov edx, 1
cmovge edx, r11d
mov r13d, edx
shr r13d, 1
cmp edx, 2
jb 0x1400e02b4
lea r9, [rsp + 0xec4]
mov r15, qword [rsp + 0x30]
lea rbx, [r9 + r15*4]
lea r9, [rsp + 0x643]
lea r12, [r9 + r15*2]
xor r9d, r9d
nop dword [rax + rax]
vmovss xmm2, dword [rbx + r9*8 - 4]
movzx r15d, byte [r12 + r9*4 - 3]
vaddss xmm4, xmm2, dword [rsp + r15*8 + 0x40]
vmovss dword [rsp + r15*8 + 0x40], xmm4
movzx r15d, byte [r12 + r9*4 - 2]
vaddss xmm2, xmm2, dword [rsp + r15*8 + 0x40]
vmovss dword [rsp + r15*8 + 0x40], xmm2
vmovss xmm2, dword [rbx + r9*8]
movzx r15d, byte [r12 + r9*4 - 1]
vaddss xmm4, xmm2, dword [rsp + r15*8 + 0x40]
vmovss dword [rsp + r15*8 + 0x40], xmm4
movzx r15d, byte [r12 + r9*4]
vaddss xmm2, xmm2, dword [rsp + r15*8 + 0x40]
vmovss dword [rsp + r15*8 + 0x40], xmm2
inc r9
cmp r13, r9
jne 0x1400e0250
mov r12d, edx
and r12d, 0x7ffffffe
cmp r12, rdx
jae 0x1400e0301
mov r9, qword [rsp + 0x30]
add r9, r12
vmovss xmm2, dword [rsp + r9*4 + 0xec0]
movzx ebx, byte [rsp + r9*2 + 0x640]
vaddss xmm4, xmm2, dword [rsp + rbx*8 + 0x40]
vmovss dword [rsp + rbx*8 + 0x40], xmm4
movzx r9d, byte [rsp + r9*2 + 0x641]
vaddss xmm2, xmm2, dword [rsp + r9*8 + 0x40]
vmovss dword [rsp + r9*8 + 0x40], xmm2
vmovss xmm2, dword [rsp + r8*8 + 0x200]
vaddss xmm1, xmm2, xmm1
movsxd r9, r10d
nop word cs:[rax + rax]
movzx ebx, byte [rcx + rax*2]
vmovss xmm4, dword [rsp + rbx*8 + 0x40]
movzx r15d, byte [rcx + rax*2 + 1]
vaddss xmm4, xmm4, dword [rsp + r15*8 + 0x40]
vsubss xmm4, xmm1, xmm4
vmovss dword [rdi + rax*4], xmm4
vaddss xmm4, xmm3, dword [rsp + rbx*8 + 0x44]
vmovss xmm5, dword [rsp + r15*8 + 0x44]
vfmadd231ss xmm5, xmm0, dword [r14 + rax*4]
vaddss xmm4, xmm5, xmm4
vmovss dword [rsi + rax*4], xmm4
inc rax
cmp rax, r9
jl 0x1400e0320
cmp edx, 2
jb 0x1400e03f4
lea rax, [rsp + 0xec4]
mov rbx, qword [rsp + 0x30]
lea rax, [rax + rbx*4]
lea r9, [rsp + 0x643]
lea rbx, [r9 + rbx*2]
xor r9d, r9d
nop dword [rax]
vmovss xmm4, dword [rax + r9*8 - 4]
movzx r15d, byte [rbx + r9*4 - 3]
vaddss xmm5, xmm4, dword [rsp + r15*8 + 0x40]
vmovss dword [rsp + r15*8 + 0x40], xmm5
movzx r15d, byte [rbx + r9*4 - 2]
vaddss xmm4, xmm4, dword [rsp + r15*8 + 0x40]
vmovss dword [rsp + r15*8 + 0x40], xmm4
vmovss xmm4, dword [rax + r9*8]
movzx r15d, byte [rbx + r9*4 - 1]
vaddss xmm5, xmm4, dword [rsp + r15*8 + 0x40]
vmovss dword [rsp + r15*8 + 0x40], xmm5
movzx r15d, byte [rbx + r9*4]
vaddss xmm4, xmm4, dword [rsp + r15*8 + 0x40]
vmovss dword [rsp + r15*8 + 0x40], xmm4
inc r9
cmp r13, r9
jne 0x1400e0390
cmp r12, rdx
jae 0x1400e01c0
add r12, qword [rsp + 0x30]
vmovss xmm4, dword [rsp + r12*4 + 0xec0]
movzx eax, byte [rsp + r12*2 + 0x640]
vaddss xmm5, xmm4, dword [rsp + rax*8 + 0x40]
vmovss dword [rsp + rax*8 + 0x40], xmm5
movzx eax, byte [rsp + r12*2 + 0x641]
vaddss xmm4, xmm4, dword [rsp + rax*8 + 0x40]
vmovss dword [rsp + rax*8 + 0x40], xmm4
jmp 0x1400e01c0
movsxd rax, edx
nop word cs:[rax + rax]
movzx edx, byte [rcx + rax*2]
vmovss xmm2, dword [rsp + rdx*8 + 0x40]
movzx r9d, byte [rcx + rax*2 + 1]
vaddss xmm2, xmm2, dword [rsp + r9*8 + 0x40]
vsubss xmm2, xmm1, xmm2
vmovss dword [rdi + rax*4], xmm2
vaddss xmm2, xmm3, dword [rsp + rdx*8 + 0x44]
vaddss xmm2, xmm2, dword [rsp + r9*8 + 0x44]
vmovss dword [rsi + rax*4], xmm2
inc rax
cmp rax, r10
jl 0x1400e0450
jmp 0x1400e01d0
test r15d, r15d
jle 0x1400e04b5
mov ebx, r15d
shl rbx, 2
mov rcx, rdi
xor edx, edx
mov r8, rbx
call fcn.1401bb600
mov rcx, rsi
xor edx, edx
mov r8, rbx
call fcn.1401bb600
vmovups xmm6, xmmword [rbp + 0x1f40]
vmovups xmm7, xmmword [rbp + 0x1f50]
vmovups xmm8, xmmword [rbp + 0x1f60]
lea rsp, [rbp + 0x1f78]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
vzeroupper
ret