Function at 0x1401e3aab
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xc0
vmovdqa xmmword [rsp + 0xb0], xmm6
mov rdi, r8
mov rsi, rcx
mov rax, qword [0x140346038]
xor rax, rsp
mov qword [rsp + 0xa8], rax
vpbroadcastb ymm0, byte [0x140305aa4]
lea rbx, [rsp + 0x20]
vmovdqu ymmword [rbx + 0x20], ymm0
vmovdqu ymmword [rbx], ymm0
vmovups ymm0, ymmword [rdx]
vmovups ymm1, ymmword [rdx + 0x20]
vmovups ymmword [rsp + 0x60], ymm0
vmovups ymmword [rsp + 0x80], ymm1
xor r14d, r14d
lea r8, [rsp + r14]
add r8, 0x60
lea rdx, [rbx + 0x20]
mov rcx, rbx
vzeroupper
call fcn.1401e3523
add r14, 0x10
add rbx, 8
cmp r14, 0x40
jne 0x1401e3b10
lea rbx, [rsp + 0x20]
mov rcx, rbx
call fcn.1401e35d1
mov rax, qword [rdi]
xor qword [rbx], rax
mov rax, qword [rdi + 8]
xor qword [rbx + 8], rax
mov rax, qword [rdi + 0x10]
xor qword [rbx + 0x10], rax
mov rax, qword [rdi + 0x18]
xor qword [rbx + 0x18], rax
mov rax, qword [rdi + 0x20]
xor qword [rbx + 0x20], rax
mov rax, qword [rdi + 0x28]
xor qword [rbx + 0x28], rax
mov rax, qword [rdi + 0x30]
xor qword [rbx + 0x30], rax
mov rax, qword [rdi + 0x38]
xor qword [rbx + 0x38], rax
mov r14d, pe_nt_image_headers64
mov rcx, rbx
call fcn.1401e37d4
mov rcx, rbx
call fcn.1401e3e7e
mov r15, qword [rsp + 0x20]
mov r11, qword [rsp + 0x28]
mov r10, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
mov r13, r15
rol r13, 0x30
mov rax, qword [rsp + 0x58]
mov r9, rax
rol r9, 0x30
xor r15, r13
mov r12, r15
rol r12, 0x20
xor rax, r9
xor r12, qword [rdi + r14 - 0x38]
xor r13, rax
xor r13, r12
mov r12, qword [rsp + 0x50]
mov qword [rsp + 0x20], r13
mov r13, r11
rol r13, 0x30
xor r11, r13
xor r15, rax
xor r15, r13
mov r13, r11
rol r13, 0x20
xor r13, qword [rdi + r14 - 0x30]
xor r15, r13
mov qword [rsp + 0x28], r15
mov r15, r10
rol r15, 0x30
xor r10, r15
xor r11, r15
mov r15, r10
rol r15, 0x20
xor r15, qword [rdi + r14 - 0x28]
xor r11, r15
mov r15, r8
rol r15, 0x30
xor r8, r15
mov qword [rsp + 0x30], r11
mov r11, r8
rol r11, 0x20
xor r10, rax
xor r10, r15
xor r11, qword [rdi + r14 - 0x20]
xor r10, r11
mov qword [rsp + 0x38], r10
mov r10, rdx
rol r10, 0x30
xor rdx, r10
xor r8, rax
xor r8, r10
mov r10, rdx
rol r10, 0x20
xor r10, qword [rdi + r14 - 0x18]
xor r8, r10
mov r10, rcx
rol r10, 0x30
mov qword [rsp + 0x40], r8
xor rcx, r10
xor rdx, r10
mov r8, rcx
rol r8, 0x20
xor r8, qword [rdi + r14 - 0x10]
xor rdx, r8
mov r8, r12
rol r8, 0x30
mov qword [rsp + 0x48], rdx
xor r12, r8
xor rcx, r8
mov rdx, r12
rol rdx, 0x20
xor rdx, qword [rdi + r14 - 8]
xor rcx, rdx
mov qword [rsp + 0x50], rcx
xor r12, r9
rol rax, 0x20
xor rax, qword [rdi + r14]
xor r12, rax
mov qword [rsp + 0x58], r12
add r14, 0x40
cmp r14, 0x3b8
jne 0x1401e3b86
lea rbx, [rsp + 0x20]
mov rcx, rbx
call fcn.1401e37d4
mov rcx, rbx
call fcn.1401e3e7e
mov rax, qword [rdi + 0x380]
xor qword [rbx], rax
mov rax, qword [rdi + 0x388]
xor qword [rbx + 8], rax
mov rax, qword [rdi + 0x390]
xor qword [rbx + 0x10], rax
mov rax, qword [rdi + 0x398]
xor qword [rbx + 0x18], rax
mov rax, qword [rdi + 0x3a0]
xor qword [rbx + 0x20], rax
mov rax, qword [rdi + 0x3a8]
xor qword [rbx + 0x28], rax
mov rax, qword [rdi + 0x3b0]
xor qword [rbx + 0x30], rax
mov rax, qword [rdi + 0x3b8]
xor qword [rbx + 0x38], rax
mov rcx, rbx
call fcn.1401e35d1
vmovdqu ymm0, ymmword [rbx]
vmovdqu ymm1, ymmword [rbx + 0x20]
vpbroadcastw ymm2, word [0x140305aa6]
vpand ymm3, ymm0, ymm2
vpand ymm2, ymm1, ymm2
vpsrlq ymm4, ymm3, 8
vpor ymm3, ymm4, ymm3
vpsrlq ymm4, ymm2, 8
vpor ymm2, ymm4, ymm2
vmovdqa ymm4, ymmword [0x140305ac0]
vpshufb ymm0, ymm0, ymm4
vpsrlq ymm5, ymm0, 8
vpshufb ymm1, ymm1, ymm4
vpsrlq ymm4, ymm1, 8
vpxor xmm6, xmm6, xmm6
vpblendw ymm3, ymm3, ymm6, 0xaa
vpblendw ymm2, ymm2, ymm6, 0xaa
vpsrlq ymm6, ymm3, 0x10
vpor ymm3, ymm6, ymm3
vpsrlq ymm6, ymm2, 0x10
vpor ymm2, ymm6, ymm2
vpsrlq ymm0, ymm0, 0x18
vpor ymm0, ymm5, ymm0
vpsrlq ymm1, ymm1, 0x18
vpor ymm1, ymm4, ymm1
vperm2i128 ymm4, ymm3, ymm2, 0x31
vinserti128 ymm2, ymm3, xmm2, 1
vshufps ymm2, ymm2, ymm4, 0x88
vperm2i128 ymm3, ymm0, ymm1, 0x31
vinserti128 ymm0, ymm0, xmm1, 1
vshufps ymm0, ymm0, ymm3, 0x88
vmovaps ymm1, ymmword [0x140305ae0]
vpermps ymm1, ymm1, ymm2
vmovaps ymm3, ymmword [0x140305b00]
vpermps ymm3, ymm3, ymm0
vblendps ymm1, ymm1, ymm3, 0xcc
vmovaps ymm3, ymmword [0x140305b20]
vpermps ymm2, ymm3, ymm2
vmovaps ymm3, ymmword [0x140305b40]
vpermps ymm0, ymm3, ymm0
vblendps ymm0, ymm2, ymm0, 0xcc
vmovups ymmword [rsp + 0x80], ymm0
vmovups ymmword [rsp + 0x60], ymm1
xor eax, eax
mov ecx, dword [rsp + rax*4 + 0x60]
mov dword [rsi + rax*4], ecx
inc rax
cmp rax, 0x10
jne 0x1401e3e3f
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
vzeroupper
call fcn.140156fe0
vmovaps xmm6, xmmword [rsp + 0xb0]
add rsp, 0xc0
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret