Function at 0x1400e9fc0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x138
lea rbp, [rsp + 0x60]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x140419c00]
xor rax, rsp
mov qword [rbp + 0xc0], rax
movsxd r12, dword [rsp + 0x1b8]
mov r10, rdx
mov r13, qword [rsp + 0x1b0]
mov r15d, r9d
mov qword [rbp + 0x18], rdx
xor r14d, r14d
mov rdx, qword [rsp + 0x1c0]
mov rax, rcx
mov qword [rbp + 0x20], rdx
mov rsi, r8
mov edx, r9d
shr r15d, 4
and edx, 0xf
mov qword [rbp + 8], rcx
mov rcx, qword [rsp + 0x1a0]
mov rdi, r10
mov dword [rbp + 0x10], edx
mov edx, dword [rsp + 0x1a8]
mov dword [rbp], r9d
cmp edx, 0xc
jne 0x1400e4f71
movsd xmm0, qword [rcx]
mov eax, dword [rcx + 8]
movsd qword [rbp + 0x40], xmm0
mov dword [rbp + 0x48], eax
mov dword [rbp + 0x4c], 0x1000000
jmp 0x1400e4fb1
mov ebx, dword [rax + 0x150]
lea r8, [rbp + 0x40]
mov dword [rsp + 0x30], 0x10
mov r9, rcx
mov qword [rsp + 0x28], r8
mov rcx, rax
mov dword [rsp + 0x20], edx
xor r8d, r8d
xor edx, edx
mov dword [rax + 0x150], r14d
call fcn.1400e7160
mov rcx, qword [rbp + 8]
mov r9d, dword [rbp]
mov dword [rcx + 0x150], ebx
mov r8d, dword [rsp + 0x1c8]
lea rax, [rbp + 0x60]
mov rdx, qword [rbp + 0x20]
mov rcx, qword [rbp + 8]
mov dword [rsp + 0x30], 0x10
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r9d
mov r9, rsi
call fcn.1400e7160
mov rcx, qword [rbp + 8]
lea r8, [rbp + 0xa0]
lea rdx, [rbp + 0x40]
call fcn.1400e8fd0
test eax, eax
jne 0x1400e5365
lea rax, [rbp + 0xa0]
lea rcx, [rbp + 0x60]
or rax, rcx
test al, 7
jne 0x1400e5021
movdqa xmm0, xmmword [rbp + 0x60]
pxor xmm0, xmmword [rbp + 0xa0]
movdqa xmmword [rbp + 0x60], xmm0
jmp 0x1400e507a
lea rcx, [rbp + 0x60]
lea rax, [rbp + 0xaf]
cmp rcx, rax
ja 0x1400e5068
lea rcx, [rbp + 0x6f]
lea rax, [rbp + 0xa0]
cmp rcx, rax
jb 0x1400e5068
mov rcx, r14
mov edx, 0x10
nop dword [rax]
movzx eax, byte [rbp + rcx + 0xa0]
xor byte [rbp + rcx + 0x60], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1400e5050
jmp 0x1400e507a
movdqa xmm0, xmmword [rbp + 0x60]
pxor xmm0, xmmword [rbp + 0xa0]
movdqa xmmword [rbp + 0x60], xmm0
mov r10, qword [rbp + 8]
mov rcx, rdi
test rdi, rdi
jne 0x1400e5094
mov eax, dword [rsp + 0x1c8]
mov dword [r10 + 0x150], eax
mov r8d, r14d
test r12d, r12d
jle 0x1400e5189
lea rax, [rbp + 0x60]
cmp r12d, 8
jb 0x1400e5147
mov rdx, r12
xorps xmm4, xmm4
and rdx, 0xfffffffffffffff8
xorps xmm3, xmm3
sub r13, rax
nop
xorps xmm0, xmm0
lea rax, [rbp + 0x60]
add rax, r14
add r8d, 8
add r14, 8
movd xmm2, dword [rax + r13]
movd xmm1, dword [rax]
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
pxor xmm2, xmm1
movd xmm1, dword [rax + 4]
punpcklbw xmm1, xmm0
por xmm4, xmm2
movd xmm2, dword [rax + r13 + 4]
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
punpcklwd xmm1, xmm0
pxor xmm2, xmm1
por xmm3, xmm2
cmp r14, rdx
jl 0x1400e50c0
por xmm3, xmm4
movdqa xmm0, xmm3
psrldq xmm0, 8
por xmm3, xmm0
movdqa xmm0, xmm3
psrldq xmm0, 4
por xmm3, xmm0
movd r14d, xmm3
cmp r8d, r12d
jge 0x1400e517a
jmp 0x1400e514a
sub r13, rax
movsxd rax, r8d
lea rdx, [rbp + 0x60]
add rdx, rax
sub r12d, r8d
mov r8d, r12d
nop word [rax + rax]
movzx ecx, byte [rdx + r13]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
xor ecx, eax
or r14d, ecx
sub r8, 1
jne 0x1400e5160
mov rcx, rdi
test r14d, r14d
je 0x1400e5189
mov eax, 0xffffff4c
jmp 0x1400e5365
mov r14d, 0xf
cmp rsi, rcx
je 0x1400e51f4
test r15d, r15d
je 0x1400e51f4
mov edx, dword [rbp]
cmp edx, 0x10
jb 0x1400e51c7
dec r15d
mov rax, r14
add byte [rbp + rax + 0x40], 1
jne 0x1400e51b7
dec rax
cmp rax, 0xc
jge 0x1400e51a7
movaps xmm0, xmmword [rbp + 0x40]
movups xmmword [rdi], xmm0
add rdi, 0x10
test r15d, r15d
jne 0x1400e51a1
and edx, 0xfffffff0
mov r8, rcx
mov ebx, edx
mov r9d, edx
mov rdx, rcx
mov rcx, r10
call fcn.1400e8fb0
mov rcx, qword [rbp + 0x18]
mov r8d, ebx
mov rdx, rsi
call fcn.1400eb860
add rsi, rbx
jmp 0x1400e530f
cmp dword [rbp], 0x10
jb 0x1400e530f
mov r13, rsi
lea rax, [rbp + 0x80]
sub r13, rcx
lea rbx, [rcx + 0xf]
mov r12, r13
sub r12, rax
nop word [rax + rax]
dec r15d
mov rax, r14
add byte [rbp + rax + 0x40], 1
jne 0x1400e5236
dec rax
cmp rax, 0xc
jge 0x1400e5226
lea r8, [rbp + 0x80]
mov rcx, r10
lea rdx, [rbp + 0x40]
call fcn.1400e8fd0
test eax, eax
jne 0x1400e5365
mov rax, rdi
lea rcx, [rbp + 0x80]
or rax, rsi
or rax, rcx
test al, 7
jne 0x1400e5284
mov rax, qword [rbp + 0x80]
xor rax, qword [rsi]
mov qword [rdi], rax
mov rax, qword [rbp + 0x88]
xor rax, qword [rbx + r13 - 7]
mov qword [rbx - 7], rax
jmp 0x1400e52f6
lea rax, [rbp + 0x8f]
cmp rdi, rax
ja 0x1400e529c
lea rax, [rbp + 0x80]
cmp rbx, rax
jae 0x1400e52aa
lea rax, [rbx + r13]
cmp rdi, rax
ja 0x1400e52e6
cmp rbx, rsi
jb 0x1400e52e6
lea rax, [rbp + 0x80]
mov r8d, 0x10
nop word [rax + rax]
lea rcx, [rax + r12]
movzx edx, byte [rcx + rbx - 0xf]
lea r9, [rbp + 0x8f]
xor dl, byte [rax]
mov rcx, rax
sub rcx, r9
inc rax
mov byte [rcx + rbx], dl
sub r8, 1
jne 0x1400e52c0
jmp 0x1400e52f6
movdqu xmm0, xmmword [rsi]
pxor xmm0, xmmword [rbp + 0x80]
movdqu xmmword [rdi], xmm0
mov r10, qword [rbp + 8]
add rdi, 0x10
add rbx, 0x10
add rsi, 0x10
test r15d, r15d
jne 0x1400e5220
mov ebx, dword [rbp + 0x10]
test ebx, ebx
je 0x1400e5363
add byte [rbp + r14 + 0x40], 1
jne 0x1400e5327
dec r14
cmp r14, 0xc
jge 0x1400e5316
mov rcx, qword [rbp + 8]
lea r8, [rbp + 0x80]
lea rdx, [rbp + 0x40]
call fcn.1400e8fd0
test eax, eax
jne 0x1400e5365
mov r8d, ebx
lea rcx, [rbp + 0x80]
mov rdx, rsi
call fcn.1400eb860
mov r8, rbx
lea rdx, [rbp + 0x80]
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
xor eax, eax
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.1400f4390
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x60
mov esi, 0xffffff4c
mov r11d, r9d
mov dword [rsp + 0x70], esi
mov rbx, r8
mov rdi, rdx
mov r10, rcx
test rcx, rcx
je 0x1400ea0fc
mov r9, qword [rsp + 0x90]
test r9, r9
je 0x1400ea0fc
test r11d, r11d
je 0x1400ea015
test rbx, rbx
je 0x1400ea0fc
test rdx, rdx
je 0x1400ea0fc
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x1400ea0fc
mov r8d, dword [rsp + 0xa8]
lea eax, [r8 - 1]
cmp eax, 0xf
ja 0x1400ea0fc
mov edx, dword [rsp + 0x98]
test edx, edx
je 0x1400ea0fc
cmp dword [0x140c28ff0], 0
je 0x1400ea0ba
lea rax, [rsp + 0x70]
mov qword [rsp + 0x58], rax
mov eax, dword [r10 + 0xf0]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0xb8]
mov qword [rsp + 0x48], r10
mov dword [rsp + 0x40], r8d
mov r8, qword [rsp + 0xb0]
mov dword [rsp + 0x38], edx
mov rdx, rdi
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r11d
mov qword [rsp + 0x20], rcx
mov rcx, rbx
call fcn.1400e3d10
xor eax, eax
cmp dword [rsp + 0x70], eax
cmove eax, esi
mov rbx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
ret
mov dword [rsp + 0xa8], r8d
mov r8, rbx
mov qword [rsp + 0xa0], rcx
mov rcx, r10
mov dword [rsp + 0x98], edx
mov rdx, rdi
mov qword [rsp + 0x90], r9
mov r9d, r11d
mov rbx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
jmp 0x1400e4ed0
mov rbx, qword [rsp + 0x78]
mov eax, 0xffffff53
mov rsi, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
ret