Function at 0x140087780
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x208
movaps xmmword [rsp + 0x1f0], xmm6
mov rax, qword [0x140178028]
xor rax, rsp
mov qword [rsp + 0x1e8], rax
test rdx, rdx
je 0x140087901
mov rbx, r8
mov r13, rdx
mov r12, rcx
movaps xmm6, xmmword [0x140156180]
movaps xmmword [rsp + 0x1a0], xmm6
movaps xmmword [rsp + 0x190], xmm6
test byte [0x140190d17], 0x40
je 0x140087a41
mov eax, 0x40000000
and eax, dword [0x140190d10]
je 0x140087a41
lea rcx, [rsp + 0x190]
mov edx, 0x20
call fcn.140019bd0
test eax, eax
je 0x140087a41
xor eax, eax
mov cl, byte [rbx + rax]
xor byte [rsp + rax + 0x190], cl
inc rax
cmp rax, 0x20
jne 0x140087810
lea r14, [rsp + 0x60]
mov r8d, 0x130
mov rcx, r14
mov dl, 0xaa
call fcn.1400aa5c0
mov ecx, 1
call fcn.140094710
test rax, rax
je 0x14008792d
mov rsi, rax
mov rbx, rax
add rbx, 0x128
cmp dword [rax + 0x128], 0xfff
ja 0x140087a62
cmp qword [rsi + 0x120], 0
jne 0x140087a62
mov edi, 0x10000
cmp r13, rdi
cmovb rdi, r13
mov qword [rsp + 0x20], 0x20
lea r9, [rsp + 0x190]
mov rcx, rsi
mov rdx, r12
mov r8, rdi
call fcn.14004b6e0
test eax, eax
je 0x140087ab8
inc dword [rbx]
sub r13, rdi
je 0x1400878f8
add r12, rdi
mov ebp, 0x10000
lea r15, [rsp + 0x190]
cmp r13, rbp
mov edi, 0x10000
cmovb rdi, r13
mov qword [rsp + 0x20], 0
mov rcx, rsi
mov rdx, r12
mov r8, rdi
mov r9, r15
call fcn.14004b6e0
test eax, eax
je 0x140087ab8
add r12, rdi
inc dword [rbx]
sub r13, rdi
jne 0x1400878c0
cmp rsi, r14
je 0x140087ad4
mov rcx, qword [rsp + 0x1e8]
xor rcx, rsp
call fcn.1400a8490
movaps xmm6, xmmword [rsp + 0x1f0]
add rsp, 0x208
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 0x130
call fcn.1400891b0
test rax, rax
je 0x140087ae8
mov rsi, rax
lea r8, [0x140114b00]
mov ecx, 1
mov rdx, rax
call fcn.140057910
test eax, eax
je 0x140087ae8
mov dword [rsi + 0x12c], 0
lea rdi, [rsp + 0x30]
movaps xmmword [rdi + 0x20], xmm6
movaps xmmword [rdi + 0x10], xmm6
movaps xmmword [rdi], xmm6
mov edx, 0x30
mov rcx, rdi
call fcn.140057fc0
movaps xmm0, xmmword [rdi]
movaps xmm1, xmmword [rdi + 0x10]
movaps xmm2, xmmword [rdi + 0x20]
movaps xmmword [rsp + 0x1d0], xmm2
movaps xmmword [rsp + 0x1c0], xmm1
movaps xmmword [rsp + 0x1b0], xmm0
xor eax, eax
lea rcx, [0x1401619e0]
mov dl, byte [rax + rcx]
xor byte [rsp + rax + 0x1b0], dl
inc rax
cmp rax, 0x30
jne 0x1400879b2
mov eax, dword [0x140190d14]
lea rcx, [rsp + 0x1b0]
mov edx, 0x100
mov r8, rsi
bt eax, 0x19
jae 0x140087af0
call fcn.140003260
lea rax, [0x140001d60]
lea rcx, section..text
mov qword [rsi + 0xf8], rcx
mov qword [rsi + 0x100], rax
movaps xmm0, xmmword [rsp + 0x1d0]
movups xmmword [rsi + 0x108], xmm0
mov qword [rsi + 0x118], 1
lea rbx, [rsi + 0x128]
mov dword [rsi + 0x128], 0
mov qword [rsi + 0x120], 0
jmp 0x140087868
call fcn.14012f240
test eax, eax
je 0x140087abd
xorps xmm0, xmm0
movaps xmmword [rsp + 0x1a0], xmm0
movaps xmmword [rsp + 0x190], xmm0
jmp 0x14008780e
lea rdi, [rsp + 0x1b0]
movaps xmmword [rdi + 0x20], xmm6
movaps xmmword [rdi + 0x10], xmm6
movaps xmmword [rdi], xmm6
mov edx, 0x30
mov rcx, rdi
call fcn.140057fc0
mov r8d, 0x30
mov rcx, rsi
mov rdx, rdi
call fcn.140087e20
test eax, eax
je 0x140087ab8
mov qword [rsi + 0x118], 1
mov dword [rbx], 0
mov qword [rsi + 0x120], 0
jmp 0x140087876
call fcn.1400bc5c0
lea rcx, [rsp + 0x190]
mov edx, 0x20
call fcn.14012f270
jmp 0x14008780e
lea rcx, [rsp + 0x60]
mov edx, 0x120
call fcn.140089230
jmp 0x140087901
mov rsi, r14
jmp 0x14008795f
bt eax, 9
jae 0x140087b0e
call fcn.140004450
lea rax, [0x140004920]
lea rcx, [0x140004620]
jmp 0x1400879f8
call fcn.140105d00
lea rax, [0x1401064f0]
lea rcx, [0x140105be0]
jmp 0x1400879f8