Function at 0x140032f50
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov eax, 0x1450
mov rbp, rsp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x70
and rsp, 0xfffffffffffffff0
call fcn.140040630
sub rsp, rax
movups xmmword [rsp + 0x1450], xmm6
movups xmmword [rsp + 0x1460], xmm7
movups xmmword [rsp + 0x1470], xmm8
movups xmmword [rsp + 0x1480], xmm9
movups xmmword [rsp + 0x1490], xmm10
movups xmmword [rsp + 0x14a0], xmm11
movups xmmword [rsp + 0x14b0], xmm12
mov r12, qword [rdx]
mov r15, qword [rdx + 8]
test rcx, rcx
je 0x140033a1f
mov rax, r12
mov edx, dword [rcx + 0x2c]
mov dword [rsp + 0x4c], r12d
mov rbx, rcx
shr rax, 0x20
mov byte [rsp + 0x4b], r15b
mov qword [rsp + 0x30], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0x38], rax
cmp edx, 2
je 0x140033af6
lea r13, [rsp + 0x50]
xor eax, eax
mov ecx, pe_nt_image_headers64
mov r9d, dword [rbx + 0x1c]
mov rdi, r13
lea r10, [rsp + 0x450]
lea r11, [rsp + 0xc50]
rep stosq qword [rdi], rax
mov ecx, pe_nt_image_headers64
mov rdi, r10
rep stosq qword [rdi], rax
mov eax, r12d
mov qword [rsp + 0x450], rax
mov eax, dword [rsp + 0x30]
mov qword [rsp + 0x458], rax
movzx eax, r15b
mov qword [rsp + 0x460], rax
mov eax, dword [rbx + 0x18]
mov qword [rsp + 0x468], rax
mov eax, dword [rbx + 0x10]
mov qword [rsp + 0x470], rax
mov eax, edx
mov qword [rsp + 0x478], rax
test r9d, r9d
je 0x1400330b9
lea rdi, [rsp + 0x1050]
xor esi, esi
lea r11, [rsp + 0xc50]
xor eax, eax
mov qword [rsp + 0x40], rdi
lea r14, [rsp + 0x850]
nop dword [rax]
mov edx, esi
and edx, 0x7f
je 0x140033a6d
mov edx, edx
mov rdi, qword [rsp + 0x38]
mov ecx, esi
add esi, 1
mov rdx, qword [rsp + rdx*8 + 0x50]
mov qword [rdi + rcx*8], rdx
mov r9d, dword [rbx + 0x1c]
cmp esi, r9d
jb 0x140033090
mov dword [rsp + 0x40], 1
xor r14d, r14d
test r12d, r12d
jne 0x1400330de
xor r14d, r14d
mov dword [rsp + 0x4c], 0
test r15b, r15b
sete r14b
add r14d, r14d
mov r8d, dword [rbx + 0x20]
mov r13d, dword [rsp + 0x30]
movzx eax, r15b
xor edx, edx
mov dword [rsp + 0x28], eax
imul eax, r9d
mov rdi, r11
imul r13d, r8d
add r13d, r14d
add r13d, eax
mov eax, r13d
lea ecx, [r13 - 1]
div r8d
lea eax, [r13 + r8 - 1]
test edx, edx
cmovne eax, ecx
mov ecx, pe_nt_image_headers64
mov esi, eax
mov rax, qword [rbx]
mov r12, rsi
shl rsi, 0xa
mov r10, qword [rax + 8]
add rsi, r10
rep movsq qword [rdi], qword [rsi]
cmp r14d, r9d
jae 0x140033a1f
mov ecx, dword [rsp + 0x4c]
cmp r15b, 3
movzx esi, byte [rsp + 0x4b]
setne dl
movdqu xmm7, xmmword [0x140058820]
movdqu xmm6, xmmword [0x140058830]
test ecx, ecx
mov edi, edx
mov dword [rsp + 0x24], esi
setne al
and edi, eax
mov eax, dword [rsp + 0x30]
mov byte [rsp + 0x30], dil
mov rdi, rax
nop dword [rax + rax]
mov eax, r13d
xor edx, edx
div r8d
mov eax, r12d
add r12d, 1
cmp edx, 1
jne 0x140033193
lea eax, [r13 - 1]
mov r12d, r13d
mov edx, dword [rsp + 0x40]
test edx, edx
je 0x1400339c0
mov rsi, qword [rsp + 0x38]
mov eax, r14d
mov rcx, qword [rsi + rax*8]
mov esi, dword [rbx + 0x24]
mov rax, rcx
xor edx, edx
shr rax, 0x20
div rsi
mov eax, dword [rsp + 0x4c]
mov r15, rdx
mov rsi, rdx
test eax, eax
jne 0x140033950
cmp byte [rsp + 0x4b], 0
jne 0x1400339cd
lea eax, [r14 - 1]
mov rsi, rdi
mov ecx, ecx
imul rsi, r8
mov edx, eax
sub eax, 1
imul rcx, rcx
shr rcx, 0x20
imul rcx, rdx
xor edx, edx
shr rcx, 0x20
sub rax, rcx
div r8
mov r8d, r13d
xor eax, eax
shl r8, 0xa
add r8, r10
add rdx, rsi
shl rdx, 0xa
lea rcx, [r10 + rdx]
lea rdx, [rsp + 0x1050]
movdqu xmm0, xmmword [rcx + rax]
pxor xmm0, xmmword [r11 + rax]
movups xmmword [r11 + rax], xmm0
movups xmmword [rdx + rax], xmm0
add rax, 0x10
cmp rax, 0x400
jne 0x140033220
mov rax, r11
mov rcx, r11
nop word cs:[rax + rax]
movdqu xmm0, xmmword [rcx + 0x20]
movdqu xmm1, xmmword [rcx]
sub rcx, 0xffffffffffffff80
movdqu xmm2, xmmword [rcx - 0x70]
movdqu xmm8, xmmword [rcx - 0x40]
paddq xmm1, xmm0
movdqu xmm5, xmm0
pmuludq xmm5, xmmword [rcx - 0x80]
paddq xmm5, xmm5
paddq xmm5, xmm1
movdqu xmm1, xmmword [rcx - 0x50]
movdqu xmm3, xmmword [rcx - 0x10]
movdqu xmm9, xmm5
paddq xmm2, xmm1
movdqu xmm4, xmm1
pmuludq xmm4, xmmword [rcx - 0x70]
paddq xmm4, xmm4
paddq xmm4, xmm2
movdqu xmm2, xmmword [rcx - 0x20]
pxor xmm3, xmm4
pxor xmm2, xmm5
pshufd xmm3, xmm3, 0xb1
pshufd xmm2, xmm2, 0xb1
movdqu xmm10, xmm3
pmuludq xmm10, xmmword [rcx - 0x30]
paddq xmm10, xmm10
paddq xmm8, xmm2
movdqu xmm11, xmm2
pmuludq xmm11, xmmword [rcx - 0x40]
paddq xmm11, xmm11
paddq xmm11, xmm8
movdqu xmm8, xmmword [rcx - 0x30]
pxor xmm0, xmm11
paddq xmm8, xmm3
pshufb xmm0, xmm7
paddq xmm10, xmm8
pmuludq xmm9, xmm0
movdqu xmm8, xmm4
pxor xmm1, xmm10
paddq xmm5, xmm0
pshufb xmm1, xmm7
pmuludq xmm8, xmm1
paddq xmm4, xmm1
paddq xmm9, xmm9
paddq xmm9, xmm5
movdqu xmm5, xmm10
pxor xmm2, xmm9
paddq xmm8, xmm8
pshufb xmm2, xmm6
paddq xmm8, xmm4
movdqu xmm4, xmm11
paddq xmm11, xmm2
pmuludq xmm4, xmm2
pxor xmm3, xmm8
pshufb xmm3, xmm6
pmuludq xmm5, xmm3
paddq xmm10, xmm3
paddq xmm4, xmm4
paddq xmm4, xmm11
pxor xmm0, xmm4
paddq xmm5, xmm5
paddq xmm5, xmm10
movdqu xmm10, xmm0
paddq xmm0, xmm0
pxor xmm1, xmm5
psrlq xmm10, 0x3f
pxor xmm0, xmm10
movdqu xmm10, xmm1
paddq xmm1, xmm1
psrlq xmm10, 0x3f
pxor xmm10, xmm1
movdqu xmm1, xmm10
palignr xmm1, xmm0, 8
palignr xmm0, xmm10, 8
movdqu xmm10, xmm3
palignr xmm10, xmm2, 8
palignr xmm2, xmm3, 8
movdqu xmm3, xmm9
pmuludq xmm3, xmm1
paddq xmm3, xmm3
movdqu xmm11, xmm3
movdqu xmm3, xmm9
paddq xmm3, xmm1
movdqu xmm9, xmm11
paddq xmm9, xmm3
movdqu xmm3, xmm8
pmuludq xmm3, xmm0
pxor xmm2, xmm9
paddq xmm3, xmm3
movdqu xmm11, xmm3
movdqu xmm3, xmm8
paddq xmm3, xmm0
paddq xmm11, xmm3
movdqu xmm8, xmm11
pshufd xmm11, xmm2, 0xb1
movdqu xmm2, xmm5
pmuludq xmm2, xmm11
paddq xmm5, xmm11
pxor xmm10, xmm8
pshufd xmm10, xmm10, 0xb1
movdqu xmm3, xmm2
paddq xmm3, xmm2
movdqu xmm2, xmm5
movdqu xmm5, xmm3
paddq xmm5, xmm2
movdqu xmm2, xmm4
paddq xmm4, xmm10
pmuludq xmm2, xmm10
pxor xmm1, xmm5
pshufb xmm1, xmm7
paddq xmm2, xmm2
movdqu xmm3, xmm2
movdqu xmm2, xmm4
movdqu xmm4, xmm3
movdqu xmm3, xmm9
paddq xmm9, xmm1
paddq xmm4, xmm2
pmuludq xmm3, xmm1
movdqu xmm2, xmm8
pxor xmm0, xmm4
pshufb xmm0, xmm7
pmuludq xmm2, xmm0
paddq xmm8, xmm0
paddq xmm3, xmm3
paddq xmm3, xmm9
movups xmmword [rcx - 0x80], xmm3
pxor xmm3, xmm11
paddq xmm2, xmm2
pshufb xmm3, xmm6
paddq xmm2, xmm8
movdqu xmm8, xmm5
paddq xmm5, xmm3
pmuludq xmm8, xmm3
movups xmmword [rcx - 0x70], xmm2
pxor xmm2, xmm10
pshufb xmm2, xmm6
movdqu xmm9, xmm8
paddq xmm9, xmm8
movdqu xmm8, xmm5
movdqu xmm5, xmm9
paddq xmm5, xmm8
movdqu xmm8, xmm4
paddq xmm4, xmm2
pmuludq xmm8, xmm2
pxor xmm1, xmm5
movups xmmword [rcx - 0x30], xmm5
movdqu xmm9, xmm8
paddq xmm9, xmm8
movdqu xmm8, xmm4
movdqu xmm4, xmm9
paddq xmm4, xmm8
movdqu xmm8, xmm1
paddq xmm1, xmm1
pxor xmm0, xmm4
psrlq xmm8, 0x3f
movups xmmword [rcx - 0x40], xmm4
pxor xmm1, xmm8
movdqu xmm8, xmm0
paddq xmm0, xmm0
psrlq xmm8, 0x3f
pxor xmm0, xmm8
movdqu xmm8, xmm1
palignr xmm8, xmm0, 8
palignr xmm0, xmm1, 8
movups xmmword [rcx - 0x50], xmm0
movdqu xmm0, xmm3
palignr xmm0, xmm2, 8
palignr xmm2, xmm3, 8
movups xmmword [rcx - 0x60], xmm8
movups xmmword [rcx - 0x20], xmm2
movups xmmword [rcx - 0x10], xmm0
cmp rdx, rcx
jne 0x140033250
lea rcx, [r11 + 0x80]
movdqu xmm0, xmmword [rax + 0x100]
movdqu xmm1, xmmword [rax]
add rax, 0x10
movdqu xmm2, xmmword [rax + 0x70]
movdqu xmm3, xmmword [rax + 0x370]
paddq xmm1, xmm0
movdqu xmm5, xmm0
pmuludq xmm5, xmmword [rax - 0x10]
paddq xmm5, xmm5
movdqu xmm8, xmmword [rax + 0x1f0]
paddq xmm5, xmm1
movdqu xmm1, xmmword [rax + 0x170]
movdqu xmm9, xmm5
paddq xmm2, xmm1
movdqu xmm4, xmm1
pmuludq xmm4, xmmword [rax + 0x70]
paddq xmm4, xmm4
paddq xmm4, xmm2
movdqu xmm2, xmmword [rax + 0x2f0]
pxor xmm3, xmm4
pxor xmm2, xmm5
pshufd xmm3, xmm3, 0xb1
pshufd xmm2, xmm2, 0xb1
movdqu xmm10, xmm3
pmuludq xmm10, xmmword [rax + 0x270]
paddq xmm10, xmm10
paddq xmm8, xmm2
movdqu xmm11, xmm2
pmuludq xmm11, xmmword [rax + 0x1f0]
paddq xmm11, xmm11
paddq xmm11, xmm8
movdqu xmm8, xmmword [rax + 0x270]
pxor xmm0, xmm11
paddq xmm8, xmm3
pshufb xmm0, xmm7
paddq xmm10, xmm8
pmuludq xmm9, xmm0
movdqu xmm8, xmm4
pxor xmm1, xmm10
paddq xmm5, xmm0
pshufb xmm1, xmm7
pmuludq xmm8, xmm1
paddq xmm4, xmm1
paddq xmm9, xmm9
paddq xmm9, xmm5
movdqu xmm5, xmm10
pxor xmm2, xmm9
paddq xmm8, xmm8
pshufb xmm2, xmm6
paddq xmm8, xmm4
movdqu xmm4, xmm11
paddq xmm11, xmm2
pmuludq xmm4, xmm2
pxor xmm3, xmm8
pshufb xmm3, xmm6
pmuludq xmm5, xmm3
paddq xmm10, xmm3
paddq xmm4, xmm4
paddq xmm4, xmm11
movdqu xmm11, xmm3
pxor xmm0, xmm4
palignr xmm11, xmm2, 8
paddq xmm5, xmm5
paddq xmm5, xmm10
palignr xmm2, xmm3, 8
movdqu xmm10, xmm0
pxor xmm1, xmm5
psrlq xmm10, 0x3f
paddq xmm0, xmm0
pxor xmm0, xmm10
movdqu xmm10, xmm1
paddq xmm1, xmm1
psrlq xmm10, 0x3f
pxor xmm1, xmm10
movdqu xmm10, xmm1
palignr xmm10, xmm0, 8
palignr xmm0, xmm1, 8
movdqu xmm1, xmm9
pmuludq xmm1, xmm10
movdqu xmm3, xmm1
paddq xmm3, xmm1
movdqu xmm1, xmm9
paddq xmm1, xmm10
paddq xmm3, xmm1
movdqu xmm1, xmm8
pmuludq xmm1, xmm0
movdqu xmm9, xmm3
pxor xmm2, xmm9
pshufd xmm12, xmm2, 0xb1
movdqu xmm3, xmm1
paddq xmm3, xmm1
movdqu xmm1, xmm8
paddq xmm1, xmm0
paddq xmm3, xmm1
movdqu xmm1, xmm5
paddq xmm5, xmm12
pmuludq xmm1, xmm12
pxor xmm11, xmm3
movdqu xmm8, xmm3
pshufd xmm11, xmm11, 0xb1
movdqu xmm3, xmm9
movdqu xmm2, xmm1
paddq xmm2, xmm1
movdqu xmm1, xmm5
movdqu xmm5, xmm2
paddq xmm5, xmm1
movdqu xmm1, xmm4
paddq xmm4, xmm11
pmuludq xmm1, xmm11
movdqu xmm2, xmm1
paddq xmm2, xmm1
movdqu xmm1, xmm4
movdqu xmm4, xmm2
movdqu xmm2, xmm8
paddq xmm4, xmm1
movdqu xmm1, xmm10
pxor xmm1, xmm5
pxor xmm0, xmm4
pshufb xmm1, xmm7
pshufb xmm0, xmm7
pmuludq xmm3, xmm1
pmuludq xmm2, xmm0
paddq xmm9, xmm1
paddq xmm8, xmm0
paddq xmm3, xmm3
paddq xmm2, xmm2
paddq xmm3, xmm9
paddq xmm2, xmm8
movdqu xmm8, xmm5
movups xmmword [rax - 0x10], xmm3
pxor xmm3, xmm12
pshufb xmm3, xmm6
movups xmmword [rax + 0x70], xmm2
pxor xmm2, xmm11
pmuludq xmm8, xmm3
paddq xmm5, xmm3
pshufb xmm2, xmm6
movdqu xmm9, xmm8
paddq xmm9, xmm8
movdqu xmm8, xmm5
movdqu xmm5, xmm9
paddq xmm5, xmm8
movdqu xmm8, xmm4
paddq xmm4, xmm2
pmuludq xmm8, xmm2
pxor xmm1, xmm5
movups xmmword [rax + 0x270], xmm5
movdqu xmm9, xmm8
paddq xmm9, xmm8
movdqu xmm8, xmm4
movdqu xmm4, xmm9
paddq xmm4, xmm8
movdqu xmm8, xmm1
paddq xmm1, xmm1
pxor xmm0, xmm4
psrlq xmm8, 0x3f
movups xmmword [rax + 0x1f0], xmm4
pxor xmm1, xmm8
movdqu xmm8, xmm0
paddq xmm0, xmm0
psrlq xmm8, 0x3f
pxor xmm0, xmm8
movdqu xmm8, xmm1
palignr xmm8, xmm0, 8
palignr xmm0, xmm1, 8
movups xmmword [rax + 0x170], xmm0
movdqu xmm0, xmm3
palignr xmm0, xmm2, 8
palignr xmm2, xmm3, 8
movups xmmword [rax + 0xf0], xmm8
movups xmmword [rax + 0x2f0], xmm2
movups xmmword [rax + 0x370], xmm0
cmp rax, rcx
jne 0x140033590
xor eax, eax
nop dword [rax + rax]
movdqu xmm0, xmmword [r11 + rax]
pxor xmm0, xmmword [rdx + rax]
movups xmmword [r11 + rax], xmm0
movups xmmword [r8 + rax], xmm0
add rax, 0x10
cmp rax, 0x400
jne 0x140033900
mov r9d, dword [rbx + 0x1c]
add r14d, 1
add r13d, 1
cmp r14d, r9d
jae 0x140033a1f
mov rax, qword [rbx]
mov r8d, dword [rbx + 0x20]
mov r10, qword [rax + 8]
jmp 0x140033178
cmp rdx, rdi
jne 0x1400339ee
lea eax, [r14 + r8 - 1]
sub eax, r9d
mov ecx, ecx
mov edx, eax
sub eax, 1
imul rcx, rcx
shr rcx, 0x20
imul rcx, rdx
shr rcx, 0x20
sub rax, rcx
cmp byte [rsp + 0x30], 0
je 0x140033a00
mov esi, dword [rsp + 0x24]
mov ecx, r8d
mov r8d, r13d
shl r8, 0xa
lea edx, [rsi + 1]
add r8, r10
imul edx, r9d
add rax, rdx
xor edx, edx
div rcx
imul rcx, r15
add rdx, rcx
shl rdx, 0xa
add rdx, r10
mov rcx, r11
call sym.fill_block_with_xor_1
jmp 0x140033921
shl rax, 0xa
mov rcx, qword [r10 + rax]
jmp 0x1400331ab
mov eax, dword [rsp + 0x28]
imul r9d, eax
cmp r14d, 1
lea eax, [r14 + r9 - 1]
sbb r9d, 0
cmp rdx, rdi
cmovne eax, r9d
jmp 0x1400331de
mov eax, r8d
sub eax, r9d
cmp r14d, 1
sbb eax, 0
jmp 0x140033961
xor edx, edx
imul r15, r8
div r8
mov r8d, r13d
shl r8, 0xa
add r8, r10
add rdx, r15
shl rdx, 0xa
add rdx, r10
jmp 0x1400339b0
movups xmm6, xmmword [rsp + 0x1450]
movups xmm7, xmmword [rsp + 0x1460]
movups xmm8, xmmword [rsp + 0x1470]
movups xmm9, xmmword [rsp + 0x1480]
movups xmm10, xmmword [rsp + 0x1490]
movups xmm11, xmmword [rsp + 0x14a0]
movups xmm12, xmmword [rsp + 0x14b0]
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov ecx, pe_nt_image_headers64
mov rdi, r11
mov rdx, r10
mov r8, r14
rep stosq qword [rdi], rax
mov rdi, qword [rsp + 0x40]
mov ecx, pe_nt_image_headers64
mov qword [rsp + 0x28], r10
add qword [rsp + 0x480], 1
rep stosq qword [rdi], rax
mov ecx, pe_nt_image_headers64
mov rdi, r13
rep stosq qword [rdi], rax
mov ecx, pe_nt_image_headers64
mov rdi, r14
rep stosq qword [rdi], rax
mov rcx, r11
call sym.fill_block_with_xor_1
mov rcx, qword [rsp + 0x40]
mov rdx, r14
mov r8, r13
call sym.fill_block_with_xor_1
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov edx, esi
add esi, 1
mov r10, qword [rsp + 0x28]
mov qword [rax + rdx*8], rcx
mov r9d, dword [rbx + 0x1c]
mov eax, 0
cmp esi, r9d
jb 0x140033090
jmp 0x1400330b9
test r12d, r12d
jne 0x140033b1e
cmp r15b, 1
jbe 0x140032fef
mov dword [rsp + 0x40], 0
mov r9d, dword [rcx + 0x1c]
lea r11, [rsp + 0xc50]
jmp 0x1400330c9
mov dword [rsp + 0x40], 0
mov r9d, dword [rcx + 0x1c]
xor r14d, r14d
lea r11, [rsp + 0xc50]
jmp 0x1400330de