Function at 0x1400e7d20
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
movups xmmword [rsp + 0x70], xmm6
movups xmmword [rsp + 0x80], xmm7
movups xmmword [rsp + 0x90], xmm8
movups xmmword [rsp + 0xa0], xmm9
mov rsi, rcx
mov ecx, 0x401b0
mov r15d, r9d
mov rbp, rdx
mov edi, r8d
call sub.msvcrt.dll_malloc
mov r8d, edi
mov rdx, rsi
lea r14, [rax + 0x40000]
mov rbx, rax
mov rcx, r14
lea r12, [rbx + 0x40188]
call fcn.1400f05b0
movdqu xmm7, xmmword [rbx + 0x40040]
lea r9, [rbx + 0x40040]
lea r10, [rbx + 0x400c8]
mov qword [rsp + 0x30], r9
movups xmmword [rbx + 0x400c8], xmm7
movdqu xmm7, xmmword [rbx + 0x40050]
mov qword [rsp + 0x20], r10
movups xmmword [rbx + 0x400d8], xmm7
movdqu xmm7, xmmword [rbx + 0x40060]
movups xmmword [rbx + 0x400e8], xmm7
movdqu xmm7, xmmword [rbx + 0x40070]
movups xmmword [rbx + 0x400f8], xmm7
movdqu xmm7, xmmword [rbx + 0x40080]
movups xmmword [rbx + 0x40108], xmm7
movdqu xmm7, xmmword [rbx + 0x40090]
movups xmmword [rbx + 0x40118], xmm7
movdqu xmm7, xmmword [rbx + 0x400a0]
movups xmmword [rbx + 0x40128], xmm7
movdqu xmm7, xmmword [rbx + 0x400b0]
movups xmmword [rbx + 0x40138], xmm7
movdqu xmm7, xmmword [rbx + 0x40000]
movups xmmword [rbx + 0x40188], xmm7
movdqu xmm7, xmmword [r14 + 0x10]
movups xmmword [r12 + 0x10], xmm7
call fcn.1400f1400
cmp r15d, 1
mov r10, qword [rsp + 0x20]
mov r9, qword [rsp + 0x30]
mov qword [rbx + 0x401a8], rax
mov rcx, rax
jne 0x1400e7e5a
cmp edi, 0x2a
jbe 0x1400e85b7
cmp r15d, 1
je 0x1400e8580
jle 0x1400e8595
mov rax, qword [rbx + 0x40060]
movdqu xmm0, xmmword [rbx + 0x40040]
mov qword [rsp + 0x48], 0
movdqu xmm7, xmmword [rbx + 0x40050]
mov qword [rsp + 0x38], rax
mov rax, qword [rbx + 0x40068]
pxor xmm0, xmm7
mov qword [rsp + 0x28], rax
movups xmmword [rbx + 0x40168], xmm0
mov rdx, r12
mov r8d, 0x20
mov qword [rsp + 0x30], r10
mov rsi, rbx
mov qword [rsp + 0x20], r9
lea r13, [rbx + 0x40148]
call fcn.1400f1200
mov r12, qword [rsp + 0x20]
mov qword [rsp + 0x20], rbp
mov rbp, rbx
mov rbx, qword [rsp + 0x30]
nop word [rax + rax]
mov rdi, rbx
nop dword [rax + rax]
mov rax, qword [rbp + 0x401a8]
mov rdx, rdi
mov rcx, rdi
add rdi, 0x10
mov rax, qword [rax]
mov r8, qword [rax + 0x18]
call fcn.1400e9160
cmp r13, rdi
jne 0x1400e7ee8
movdqu xmm2, xmmword [rbx]
sub rsi, 0xffffffffffffff80
movups xmmword [rsi - 0x80], xmm2
movdqu xmm3, xmmword [rbx + 0x10]
movups xmmword [rsi - 0x70], xmm3
movdqu xmm4, xmmword [rbx + 0x20]
movups xmmword [rsi - 0x60], xmm4
movdqu xmm5, xmmword [rbx + 0x30]
movups xmmword [rsi - 0x50], xmm5
movdqu xmm7, xmmword [rbx + 0x40]
movups xmmword [rsi - 0x40], xmm7
movdqu xmm6, xmmword [rbx + 0x50]
movups xmmword [rsi - 0x30], xmm6
movdqu xmm1, xmmword [rbx + 0x60]
movups xmmword [rsi - 0x20], xmm1
movdqu xmm2, xmmword [rbx + 0x70]
movups xmmword [rsi - 0x10], xmm2
cmp r14, rsi
jne 0x1400e7ee0
mov r10, rbx
mov rbx, rbp
mov rbp, qword [rsp + 0x20]
mov esi, 0x10000
movdqu xmm7, xmmword [rbx + 0x40000]
movdqu xmm0, xmmword [rbx + 0x40020]
lea rax, [rbx + 0x40178]
mov qword [rsp + 0x20], rsi
movdqu xmm6, xmmword [rbx + 0x40010]
mov rsi, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
pxor xmm0, xmm7
mov qword [rsp + 0x50], r12
movsd xmm8, qword [0x1402c88d8]
movups xmmword [rbx + 0x40148], xmm0
movdqu xmm0, xmmword [rbx + 0x40030]
movsd xmm7, qword [0x1402c88e0]
mov qword [rsp + 0x58], rbp
pxor xmm0, xmm6
mov qword [rsp + 0x60], r14
movsd xmm6, qword [0x1402c88e8]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x68], r10
movups xmmword [rbx + 0x40158], xmm0
jmp 0x1400e8246
mov rdi, qword [rbx + 0x40178]
mov rbp, rdi
and ebp, 0x3fff0
lea r14, [rbx + rbp]
mov r13, qword [r14]
mov r10, qword [r14 + 8]
cmp r15d, 1
jle 0x1400e80de
mov rcx, qword [rsp + 0x38]
mov rax, rsi
xor edx, edx
shl rax, 0x20
xor r13, rcx
xor r13, rax
mov eax, dword [rbx + 0x40178]
lea ecx, [rax + rsi*2]
mov rax, qword [rbx + 0x40180]
or ecx, 0x80000001
div rcx
shl rdx, 0x20
mov eax, eax
add rax, rdx
mov r12, rax
mov qword [rsp + 0x38], rax
add r12, rdi
js 0x1400e8398
pxor xmm0, xmm0
cvtsi2sd xmm0, r12
addsd xmm0, xmm8
pxor xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x1400e85a3
sqrtsd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm0, xmm7
comisd xmm0, xmm6
jae 0x1400e8380
cvttsd2si rdx, xmm0
mov r11, rdx
mov rcx, rdx
mov r8, rdx
mov rsi, r12
shr r11, 1
and ecx, 1
shl r8, 0x20
lea rax, [r11 + rcx]
sub rsi, r11
imul rax, r11
add rax, r8
movabs r8, 0x100000000
add r8, rax
cmp r8, rsi
setb sil
add rcx, rax
cmp r12, rcx
movzx esi, sil
sbb esi, 0
movsxd rsi, esi
add rsi, rdx
mov rax, rdi
mov r8, r13
mov edx, r13d
mov edi, edi
shr r8, 0x20
shr rax, 0x20
mov r12, rdi
mov rcx, rax
imul rdi, r8
imul rax, rdx
imul rcx, r8
imul r12, rdx
xor edx, edx
add rax, rdi
mov r8, rax
setb dl
shl r8, 0x20
add r12, r8
setb r8b
shr rax, 0x20
movq xmm3, r12
add rax, rcx
shl rdx, 0x20
movzx r8d, r8b
lea rdi, [rax + rdx]
add rdi, r8
movq xmm9, rdi
punpcklqdq xmm9, xmm3
cmp rdi, rcx
jb 0x1400e8350
cmp r15d, 1
jle 0x1400e81d8
mov rax, rbp
xor rax, 0x10
lea rdx, [rbx + rax]
xor qword [rdx], rdi
xor qword [rbx + rax + 8], r12
mov rax, rbp
xor rbp, 0x30
mov r8, qword [rdx]
add rbp, rbx
xor rax, 0x20
mov r11, qword [rbx + 0x40168]
mov rcx, qword [rdx + 8]
add r11, qword [rbp]
add rax, rbx
movdqu xmm5, xmmword [rax]
mov qword [rdx], r11
mov r11, qword [rbx + 0x40170]
add r11, qword [rbp + 8]
mov qword [rdx + 8], r11
mov rdx, qword [rbx + 0x40148]
pxor xmm9, xmm5
add rdx, qword [rax]
mov qword [rbp], rdx
mov rdx, qword [rbx + 0x40150]
add rdx, qword [rax + 8]
mov qword [rbp + 8], rdx
add r8, qword [rbx + 0x40158]
mov qword [rax], r8
add rcx, qword [rbx + 0x40160]
mov qword [rax + 8], rcx
movdqu xmm0, xmmword [rbx + 0x40148]
paddq xmm0, xmm9
movups xmmword [rbx + 0x40148], xmm0
movq qword [r14], xmm0
mov rax, qword [rbx + 0x40150]
mov qword [r14 + 8], rax
xor rax, r10
xor qword [rbx + 0x40148], r13
mov qword [rbx + 0x40150], rax
cmp r15d, 1
jne 0x1400e821c
mov rax, qword [rsp + 0x48]
xor qword [r14 + 8], rax
sub qword [rsp + 0x20], 1
movdqu xmm0, xmmword [rbx + 0x40158]
movdqu xmm4, xmmword [rbx + 0x40178]
movups xmmword [rbx + 0x40168], xmm0
movups xmmword [rbx + 0x40158], xmm4
je 0x1400e83b9
mov rdi, qword [rbx + 0x40148]
mov r8, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
and edi, 0x3fff0
lea rbp, [rbx + rdi]
mov rcx, rbp
call fcn.1400e8ff0
cmp r15d, 1
jle 0x1400e82de
mov rdx, rdi
mov rax, rdi
xor rdi, 0x30
mov r10, qword [rbx + 0x40168]
add rdi, rbx
xor rdx, 0x10
xor rax, 0x20
add r10, qword [rdi]
add rdx, rbx
add rax, rbx
mov r8, qword [rdx]
mov rcx, qword [rdx + 8]
mov qword [rdx], r10
mov r10, qword [rbx + 0x40170]
add r10, qword [rdi + 8]
mov qword [rdx + 8], r10
mov rdx, qword [rbx + 0x40148]
add rdx, qword [rax]
mov qword [rdi], rdx
mov rdx, qword [rbx + 0x40150]
add rdx, qword [rax + 8]
mov qword [rdi + 8], rdx
add r8, qword [rbx + 0x40158]
mov qword [rax], r8
add rcx, qword [rbx + 0x40160]
mov qword [rax + 8], rcx
mov rax, qword [rbx + 0x40178]
xor rax, qword [rbx + 0x40158]
mov qword [rbp], rax
mov rax, qword [rbx + 0x40180]
xor rax, qword [rbx + 0x40160]
mov qword [rbp + 8], rax
cmp r15d, 1
jne 0x1400e7ff0
shr rax, 0x18
mov ecx, eax
mov edx, eax
shr cl, 3
and edx, 1
and ecx, 6
or ecx, edx
mov edx, 0x75310
add ecx, ecx
shr edx, cl
and edx, 0x30
xor edx, eax
mov byte [rbp + 0xb], dl
mov rdi, qword [rbx + 0x40178]
mov rbp, rdi
and ebp, 0x3fff0
lea r14, [rbx + rbp]
mov r13, qword [r14]
mov r10, qword [r14 + 8]
jmp 0x1400e80de
mov qword [rsp + 0x40], r10
mov r8d, 0x5b
lea rdx, [0x1402c8878]
lea rcx, [0x1402c88a1]
call qword [sym.imp.msvcrt.dll__assert]
mov r10, qword [rsp + 0x40]
jmp 0x1400e814b
subsd xmm0, xmm6
cvttsd2si rdx, xmm0
btc rdx, 0x3f
jmp 0x1400e8093
mov rax, r12
mov rdx, r12
pxor xmm0, xmm0
shr rax, 1
and edx, 1
or rax, rdx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
jmp 0x1400e8065
mov r9, qword [rsp + 0x50]
movdqu xmm7, xmmword [rbx + 0x40040]
lea rdx, [rbx + 0x40020]
mov r8d, 0x20
mov r10, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x20]
movups xmmword [rbx + 0x400c8], xmm7
movdqu xmm6, xmmword [r9 + 0x10]
mov r13, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x58]
mov r14, qword [rsp + 0x60]
mov qword [rsp + 0x28], r9
movups xmmword [r10 + 0x10], xmm6
movdqu xmm7, xmmword [r9 + 0x20]
mov qword [rsp + 0x20], r10
movups xmmword [r10 + 0x20], xmm7
movdqu xmm6, xmmword [r9 + 0x30]
movups xmmword [r10 + 0x30], xmm6
movdqu xmm7, xmmword [r9 + 0x40]
movups xmmword [r10 + 0x40], xmm7
movdqu xmm6, xmmword [r9 + 0x50]
movups xmmword [r10 + 0x50], xmm6
movdqu xmm7, xmmword [r9 + 0x60]
movups xmmword [r10 + 0x60], xmm7
movdqu xmm6, xmmword [r9 + 0x70]
movups xmmword [r10 + 0x70], xmm6
mov rcx, qword [rbx + 0x401a8]
call fcn.1400f1200
mov r15, qword [rsp + 0x28]
mov r12, qword [rsp + 0x20]
mov rdi, r12
nop dword [rax + rax]
mov rax, qword [rdi + rsi - 0x400c8]
xor qword [rdi], rax
mov rdx, rdi
mov rcx, rdi
mov rax, qword [rdi + rsi - 0x400c0]
xor qword [rdi + 8], rax
add rdi, 0x10
mov rax, qword [rbx + 0x401a8]
mov rax, qword [rax]
mov r8, qword [rax + 0x18]
call fcn.1400e9160
cmp rdi, r13
jne 0x1400e8468
sub rsi, 0xffffffffffffff80
cmp rsi, 0x40000
jne 0x1400e8460
movdqu xmm7, xmmword [rbx + 0x400c8]
mov rcx, r14
movups xmmword [rbx + 0x40040], xmm7
movdqu xmm6, xmmword [r12 + 0x10]
movups xmmword [r15 + 0x10], xmm6
movdqu xmm7, xmmword [r12 + 0x20]
movups xmmword [r15 + 0x20], xmm7
movdqu xmm6, xmmword [r12 + 0x30]
movups xmmword [r15 + 0x30], xmm6
movdqu xmm7, xmmword [r12 + 0x40]
movups xmmword [r15 + 0x40], xmm7
movdqu xmm6, xmmword [r12 + 0x50]
movups xmmword [r15 + 0x50], xmm6
movdqu xmm7, xmmword [r12 + 0x60]
movups xmmword [r15 + 0x60], xmm7
movdqu xmm6, xmmword [r12 + 0x70]
movups xmmword [r15 + 0x70], xmm6
call fcn.1400f05a0
mov r8, rbp
mov edx, 0xc8
mov rcx, r14
movzx eax, byte [rbx + 0x40000]
lea r9, [0x1402c88c0]
and eax, 2
call qword [r9 + rax*8]
lea rcx, [rbx + 0x401a8]
call fcn.1400f12f0
nop
movups xmm6, xmmword [rsp + 0x70]
movups xmm7, xmmword [rsp + 0x80]
mov rcx, rbx
movups xmm8, xmmword [rsp + 0x90]
movups xmm9, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.140197f58
mov rax, qword [rsi + 0x23]
xor rax, qword [rbx + 0x400c0]
mov qword [rsp + 0x48], rax
jmp 0x1400e7ea6
mov qword [rsp + 0x48], 0
jmp 0x1400e7ea6
mov qword [rsp + 0x40], r10
call fcn.14018e340
mov r10, qword [rsp + 0x40]
jmp 0x1400e807c
mov ecx, 2
call qword [fcn.140197860]
lea rdx, [0x1402c8840]
mov rcx, rax
call fcn.1400e7cf0
mov ecx, 1
call sub.msvcrt.dll_exit
nop
nop dword [rax]
push rbx
sub rsp, 0xf0
lea rax, [rsp + 0x20]
mov rbx, rdx
mov r8d, r8d
mov rdx, rcx
mov rcx, rax
call fcn.1400f05b0
movdqu xmm0, xmmword [rsp + 0x20]
movdqu xmm1, xmmword [rsp + 0x30]
movdqu xmm2, xmmword [rsp + 0x40]
movdqu xmm3, xmmword [rsp + 0x50]
movups xmmword [rbx], xmm0
movups xmmword [rbx + 0x10], xmm1
movups xmmword [rbx + 0x20], xmm2
movups xmmword [rbx + 0x30], xmm3
add rsp, 0xf0
pop rbx
ret