Function at 0x1404b1a20
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x120]
sub rsp, 0x220
movaps xmmword [rsp + 0x200], xmm7
mov rax, qword [0x14111a7d8]
xor rax, rsp
mov qword [rbp + 0x90], rax
movaps xmm7, xmm1
mov rsi, rcx
maxsd xmm7, qword [0x140d0a250]
mov rcx, r8
mov r14, r8
call fcn.1404a7b60
lea rdx, [rbp + 0x80]
movsd qword [rsp + 0x78], xmm0
mov rcx, r14
movsd qword [rsp + 0x70], xmm7
call fcn.1404a7090
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.1404885e0
mov dword [rbp - 0x70], 0xe
lea rcx, [0x140e361d0]
mov qword [rbp - 0x68], rcx
xor r8d, r8d
mov qword [rbp - 0x78], rax
lea rcx, [rbp - 0x70]
mov qword [rbp - 0x80], rcx
lea rcx, [rsp + 0x28]
mov rax, qword [rax]
mov edx, dword [rax + 4]
add edx, 0x2e
call fcn.1406e70c0
mov rax, qword [rsp + 0x28]
mov rdi, qword [rax + 0x10]
add rdi, rax
mov rax, qword [rbp - 0x80]
mov r8, rdi
movups xmm0, xmmword [rax]
movd ebx, xmm0
movaps xmmword [rbp + 0x40], xmm0
psrldq xmm0, 8
mov edx, ebx
movq rcx, xmm0
call fcn.1406e8450
movsxd rax, ebx
lea rdi, [rdi + rax*2]
mov rax, qword [rbp - 0x78]
mov rcx, qword [rax]
movsxd rax, dword [rcx + 4]
mov rdx, qword [rcx + 0x10]
add rdx, rcx
mov rcx, rdi
lea rbx, [rax + rax]
mov r8, rbx
call fcn.1408d9100
lea rax, [rdi + rbx]
lea rdx, [rsp + 0x48]
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0x70]
call fcn.1402a0600
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.1402a0600
mov rax, qword [rsp + 0x40]
mov ebx, 0xffffffff
mov ecx, dword [rax]
test ecx, ecx
je 0x1404b1b66
cmp ecx, ebx
je 0x1404b1b79
mov rax, qword [rsp + 0x40]
mov ecx, ebx
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1404b1b79
mov rcx, qword [rsp + 0x40]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.1406e4ad0
lea rcx, [rsp + 0x50]
call fcn.140467fb0
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.1404b79c0
test al, al
je 0x1404b1bdb
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.140467ad0
lea rcx, [rsp + 0x50]
call fcn.140468010
mov rcx, qword [rsp + 0x28]
mov eax, dword [rcx]
test eax, eax
je 0x1404b20a1
cmp eax, ebx
je 0x1404b20b5
mov rcx, qword [rsp + 0x28]
lock xadd dword [rcx], ebx
cmp ebx, 1
je 0x1404b20a1
jmp 0x1404b20b5
movsd xmm0, qword [0x140d16ed8]
mov qword [rsp + 0x268], r15
movaps xmmword [rsp + 0x210], xmm6
movaps xmmword [rsp + 0x1f0], xmm8
movaps xmm8, xmm7
mulsd xmm8, qword [0x140e36378]
movaps xmmword [rsp + 0x1d0], xmm10
movaps xmmword [rsp + 0x1c0], xmm11
movaps xmmword [rsp + 0x1b0], xmm12
maxsd xmm8, qword [0x140d0a258]
movaps xmmword [rsp + 0x1a0], xmm13
movaps xmm6, xmm8
addsd xmm6, xmm8
divsd xmm0, xmm6
call fcn.1408e62ac
cvttsd2si eax, xmm0
xorps xmm1, xmm1
addsd xmm7, xmm7
cvtsi2sd xmm1, eax
movaps xmm0, xmm7
mulsd xmm1, xmm6
cvttsd2si edi, xmm1
call fcn.1408ebd14
lea rcx, [rsp + 0x38]
movsd xmm13, qword [0x140d0a248]
xorps xmm11, xmm11
cvttsd2si eax, xmm0
cvtsi2sd xmm11, eax
mulsd xmm11, xmm13
call fcn.140471260
xorps xmm12, xmm12
xorps xmm10, xmm10
cvtsi2sd xmm12, edi
xorps xmm6, xmm6
movaps xmm7, xmm11
comisd xmm12, xmm10
jbe 0x1404b1d18
movaps xmmword [rsp + 0x1e0], xmm9
movaps xmm9, xmm8
mulsd xmm9, xmm13
movsd xmm13, qword [0x140d0a890]
nop dword [rax]
nop word [rax + rax]
addsd xmm6, xmm8
movsd qword [rbp - 0x58], xmm10
xorps xmm7, xmm13
lea r8, [rbp - 0x60]
lea rdx, [rbp - 0x50]
movsd qword [rbp - 0x48], xmm7
lea rcx, [rsp + 0x38]
movaps xmm0, xmm6
movsd qword [rbp - 0x60], xmm6
subsd xmm0, xmm9
movsd qword [rbp - 0x50], xmm0
call fcn.140527010
comisd xmm12, xmm6
ja 0x1404b1cd0
movaps xmm9, xmmword [rsp + 0x1e0]
movaps xmm0, xmm11
lea rcx, [rbp + 0x50]
addsd xmm0, xmm11
mov edx, edi
cvttsd2si r8d, xmm0
call fcn.140467da0
mov r8, qword [rsp + 0x68]
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0x68], rcx
lea rcx, [rbp + 0x50]
mov qword [rax + 0x18], r8
call fcn.140468010
mov edx, 0x13
lea rcx, [rbp + 0x70]
call fcn.140485c70
lea rdx, [rbp + 0x70]
lea rcx, [rsp + 0x50]
call fcn.140468d50
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.14046a6f0
mov edx, 0x10
lea rcx, [rsp + 0x30]
call fcn.1404a78e0
movaps xmm6, xmm11
lea rcx, [rsp + 0x30]
mulsd xmm6, qword [0x140d83728]
call fcn.1404a7b60
comisd xmm0, xmm6
movaps xmm13, xmmword [rsp + 0x1a0]
movaps xmm12, xmmword [rsp + 0x1b0]
movaps xmm8, xmmword [rsp + 0x1f0]
jbe 0x1404b1dc8
movaps xmm1, xmm6
lea rcx, [rsp + 0x30]
call fcn.1404a7a60
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x20]
call fcn.1404a7b70
mov rdi, qword [rsp + 0x20]
lea r15, [0x140d0a400]
movaps xmm6, xmmword [rsp + 0x210]
cmp qword [rdi + 0xf0], 0
jne 0x1404b1e1b
xorps xmm0, xmm0
mov qword [rbp - 0x40], 2
lea rdx, [0x140e360b0]
mov qword [rbp - 0x28], r15
lea rcx, [rbp - 0x40]
movdqu xmmword [rbp - 0x38], xmm0
call fcn.14073ad20
jmp 0x1404b1e6f
mov rcx, qword [rdi + 0x10]
lea rdx, [rsp + 0x30]
add rcx, 0x40
call fcn.1404a6d80
test al, al
jne 0x1404b1e6f
mov rcx, qword [rdi + 0x10]
lea rdx, [rsp + 0x30]
add rcx, 0x40
call fcn.1404a63b0
cmp qword [rdi + 0x100], 0
je 0x1404b1e67
mov rcx, rdi
call fcn.1404a9710
mov rcx, qword [rdi + 0x100]
mov rax, qword [rcx]
call qword [rax + 0xf0]
jmp 0x1404b1e6f
mov rax, qword [rdi + 0x10]
or dword [rax + 8], 1
mov rcx, qword [rsp + 0x20]
cmp qword [rcx + 0xf0], 0
jne 0x1404b1ea4
xorps xmm0, xmm0
mov qword [rbp - 0x20], 2
lea rdx, [0x140e361e0]
mov qword [rbp - 8], r15
lea rcx, [rbp - 0x20]
movdqu xmmword [rbp - 0x18], xmm0
call fcn.14073ad20
jmp 0x1404b1ed1
mov rax, qword [rcx + 0x10]
or dword [rax + 0x6c], 1
mov rdx, qword [rcx + 0x100]
test rdx, rdx
je 0x1404b1ec6
mov rax, qword [rdx]
mov rcx, rdx
call qword [rax + 0x118]
jmp 0x1404b1ed1
mov rax, qword [rcx + 0x10]
or dword [rax + 8], 0x200
mov rdi, qword [rsp + 0x20]
cmp qword [rdi + 0xf0], 0
jne 0x1404b1f06
xorps xmm0, xmm0
mov qword [rbp], 2
lea rdx, [0x140e35f20]
mov qword [rbp + 0x18], r15
lea rcx, [rbp]
movdqu xmmword [rbp + 8], xmm0
call fcn.14073ad20
jmp 0x1404b1f2e
mov rcx, qword [rdi + 0x10]
movaps xmm2, xmm11
add rcx, 0x78
movaps xmm1, xmm10
call fcn.1404bebd0
mov rax, qword [rdi + 0x10]
mov rcx, rdi
or dword [rax + 0x1a8], 1
call fcn.1404b68d0
mov rdi, qword [rsp + 0x20]
movaps xmm11, xmmword [rsp + 0x1c0]
movaps xmm10, xmmword [rsp + 0x1d0]
cmp qword [rdi + 0xf0], 0
jne 0x1404b1f75
xorps xmm0, xmm0
mov qword [rbp + 0x20], 2
lea rdx, [0x140e35fd0]
mov qword [rbp + 0x38], r15
lea rcx, [rbp + 0x20]
movdqu xmmword [rbp + 0x28], xmm0
call fcn.14073ad20
jmp 0x1404b1fd7
mov rcx, qword [rdi + 0x100]
test rcx, rcx
je 0x1404b1f8e
mov rax, qword [rcx]
lea rdx, [rsp + 0x38]
call qword [rax + 0x50]
jmp 0x1404b1fd7
mov rdx, qword [rdi + 0x10]
mov rcx, rdi
call fcn.1404b6a70
mov rcx, qword [rdi + 0xf0]
test dword [rcx + 0x10], 0x200
je 0x1404b1fc4
mov rax, qword [rdi + 0x10]
cmp dword [rax + 0x1c0], 0
jne 0x1404b1fc4
mov rax, qword [rcx]
lea rdx, [rsp + 0x38]
call qword [rax + 0x50]
jmp 0x1404b1fd7
mov r8d, 3
lea rdx, [rsp + 0x38]
mov rcx, rdi
call fcn.1404b0330
mov rax, qword [rsp + 0x20]
mov r15, qword [rsp + 0x268]
or dword [rax + 0xc8], 2
mov rcx, qword [rsp + 0x20]
cmp qword [rcx + 0xf0], 0
je 0x1404b2006
lea rcx, [rsp + 0x20]
call fcn.1404b10f0
jmp 0x1404b2019
cmp dword [rcx + 0xd0], 1
jbe 0x1404b201e
lea rdx, [rsp + 0x20]
call fcn.1404aaa40
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x1404b2045
and dword [rcx + 0xc8], 0xfffffffd
mov rcx, qword [rsp + 0x20]
mov rax, qword [rcx + 8]
test rax, rax
je 0x1404b2045
mov rcx, rax
call fcn.1408de998
mov rcx, qword [rsp + 0x20]
call fcn.1404a9990
lea rcx, [rsp + 0x30]
call fcn.1404a62a0
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.1404b8250
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.140467ad0
lea rcx, [rsp + 0x38]
call fcn.140522010
lea rcx, [rsp + 0x50]
call fcn.140468010
mov rax, qword [rsp + 0x28]
mov ecx, dword [rax]
test ecx, ecx
je 0x1404b20a1
cmp ecx, ebx
je 0x1404b20b5
mov rax, qword [rsp + 0x28]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x1404b20b5
mov rcx, qword [rsp + 0x28]
mov r8d, 8
lea edx, [r8 - 6]
call fcn.1406e4ad0
mov rax, rsi
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.1408d7570
movaps xmm7, xmmword [rsp + 0x200]
add rsp, 0x220
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret