Function at 0x1401a3f90
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xb0
mov rdi, r8
mov rsi, rcx
mov rax, qword [0x140327038]
xor rax, rsp
mov qword [rsp + 0xa8], rax
vpbroadcastb ymm0, byte [0x1402e8040]
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.1401a3a08
add r14, 0x10
add rbx, 8
cmp r14, 0x40
jne 0x1401a3fec
lea rbx, [rsp + 0x20]
mov rcx, rbx
call fcn.1401a3ab6
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.1401a3cb9
mov rcx, rbx
call fcn.1401a435e
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 0x1401a4062
lea rbx, [rsp + 0x20]
mov rcx, rbx
call fcn.1401a3cb9
mov rcx, rbx
call fcn.1401a435e
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.1401a3ab6
vmovdqu ymm0, ymmword [rbx]
vmovdqu ymm1, ymmword [rbx + 0x20]
vpbroadcastw ymm2, word [0x1402e8042]
vpand ymm3, ymm0, ymm2
vpand ymm2, ymm1, ymm2
vpsrlw ymm0, ymm0, 8
vpsrlw ymm1, ymm1, 8
vpsrlq ymm4, ymm3, 8
vpor ymm3, ymm4, ymm3
vpsrlq ymm4, ymm2, 8
vpor ymm2, ymm4, ymm2
vpsrlq ymm4, ymm0, 8
vpor ymm0, ymm4, ymm0
vpsrlq ymm4, ymm1, 8
vpor ymm1, ymm4, ymm1
vpxor xmm4, xmm4, xmm4
vpblendw ymm3, ymm3, ymm4, 0xaa
vpblendw ymm2, ymm2, ymm4, 0xaa
vpblendw ymm0, ymm0, ymm4, 0xaa
vpblendw ymm1, ymm1, ymm4, 0xaa
vpsrlq ymm4, ymm3, 0x10
vpor ymm3, ymm4, ymm3
vpsrlq ymm4, ymm2, 0x10
vpor ymm2, ymm4, ymm2
vpsrlq ymm4, ymm0, 0x10
vpor ymm0, ymm4, ymm0
vpsrlq ymm4, ymm1, 0x10
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 [0x1402e8060]
vpermps ymm1, ymm1, ymm2
vmovaps ymm3, ymmword [0x1402e8080]
vpermps ymm3, ymm3, ymm0
vblendps ymm1, ymm1, ymm3, 0xcc
vmovaps ymm3, ymmword [0x1402e80a0]
vpermps ymm2, ymm3, ymm2
vmovaps ymm3, ymmword [0x1402e80c0]
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 0x1401a4327
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
vzeroupper
call fcn.14013d520
nop
add rsp, 0xb0
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret