Function at 0x180069880
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov rax, qword [0x1802edb40]
xor rax, rsp
mov qword [rsp + 0x60], rax
movzx r14d, r8b
mov byte [rsp + 0x20], r14b
mov rsi, rdx
mov rbx, rcx
mov qword [rsp + 0x28], rcx
mov r13d, dword [rcx + 0x40c]
mov dword [rsp + 0x30], r13d
mov rax, qword [rdx + 0x28]
mov qword [rsp + 0x40], rax
add rcx, 0xe0
lea rdx, [rsp + 0x40]
call fcn.180071970
test rax, rax
je 0x1800698ec
movups xmm2, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
jmp 0x180069903
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x48], xmm0
movups xmm2, xmmword [rsp + 0x40]
unpckhpd xmm0, xmm0
movsd qword [rsp + 0x50], xmm0
movd eax, xmm2
cmp eax, 3
jne 0x1800699e0
movaps xmm1, xmm2
unpckhpd xmm1, xmm2
comisd xmm1, xmmword [0x1802ba560]
jb 0x1800699e0
movsd xmm0, qword [0x1802ba5b8]
comisd xmm0, xmm1
jb 0x1800699e0
cvttsd2si ebp, xmm1
movd xmm0, ebp
cvtdq2pd xmm0, xmm0
ucomisd xmm0, xmm1
jp 0x1800699e0
jne 0x1800699e0
dec bpl
mov rdi, qword [rsi + 0x20]
mov rdx, rdi
mov rcx, rbx
call fcn.18006b4b0
mov edx, eax
test eax, eax
jns 0x1800699ab
lea ecx, [r13 + 1]
cmp ecx, 0xff
ja 0x180069c9a
mov dword [rbx + 0x40c], ecx
mov eax, dword [rbx + 0x410]
cmp eax, ecx
cmovb eax, ecx
mov dword [rbx + 0x410], eax
movzx r8d, r13b
mov rdx, rdi
mov rcx, rbx
call fcn.18006a840
movzx edx, r13b
mov rax, qword [rsi + 0x28]
cmp dword [rbx + 0xc], 1
jl 0x1800699c3
mov rcx, qword [rbx]
mov eax, dword [rax + 0xc]
inc eax
mov dword [rcx + 0x1b8], eax
movzx ecx, bpl
shl ecx, 8
movzx eax, dl
or ecx, eax
shl ecx, 8
or ecx, r14d
shl ecx, 8
or ecx, 0x11
jmp 0x180069c02
cmp eax, 5
jne 0x180069b4a
movdqa xmm0, xmm2
psrldq xmm0, 8
movq rbp, xmm0
psrldq xmm2, 4
movd edi, xmm2
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], rdi
lea rdx, [rsp + 0x40]
mov rcx, qword [rbx]
call fcn.18005cfb0
mov r12d, eax
test eax, eax
js 0x180069cb7
mov r14, qword [rsi + 0x20]
mov rdx, r14
mov rcx, rbx
call fcn.18006b4b0
mov r15d, eax
test eax, eax
jns 0x180069a75
mov r15d, dword [rbx + 0x40c]
lea ecx, [r15 + 1]
cmp ecx, 0xff
ja 0x180069cc8
mov dword [rbx + 0x40c], ecx
mov eax, dword [rbx + 0x410]
cmp eax, ecx
cmovb eax, ecx
mov dword [rbx + 0x410], eax
movzx r8d, r15b
mov rdx, r14
mov rcx, rbx
call fcn.18006a840
mov rax, qword [rsi + 0x28]
cmp dword [rbx + 0xc], 1
jl 0x180069a8d
mov rcx, qword [rbx]
mov eax, dword [rax + 0xc]
inc eax
mov dword [rcx + 0x1b8], eax
mov rsi, qword [rbx]
test rdi, rdi
je 0x180069abb
mov rdx, rdi
nop dword [rax + rax]
movzx ecx, byte [rdx + rbp - 1]
mov eax, edi
shl eax, 5
add ecx, eax
mov eax, edi
shr eax, 2
add ecx, eax
xor edi, ecx
sub rdx, 1
jne 0x180069aa0
movzx ecx, dil
shl ecx, 8
movzx eax, r15b
or ecx, eax
shl ecx, 8
movzx eax, byte [rsp + 0x20]
or ecx, eax
shl ecx, 8
or ecx, 0xf
mov dword [rsp + 0x40], ecx
mov rdx, qword [rsi + 0x30]
cmp rdx, qword [rsi + 0x38]
je 0x180069aef
mov dword [rdx], ecx
add qword [rsi + 0x30], 4
jmp 0x180069afd
lea r8, [rsp + 0x40]
lea rcx, [rsi + 0x28]
call fcn.180048a00
lea rcx, [rsi + 0x40]
lea r8, [rsi + 0x1b8]
mov rdx, qword [rsi + 0x48]
cmp rdx, qword [rsi + 0x50]
je 0x180069b1e
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rsi + 0x48], 4
jmp 0x180069b23
call fcn.180048a00
mov rdi, qword [rbx]
mov dword [rsp + 0x40], r12d
lea rcx, [rdi + 0x28]
mov rdx, qword [rdi + 0x30]
cmp rdx, qword [rdi + 0x38]
je 0x180069c20
mov dword [rdx], r12d
add qword [rdi + 0x30], 4
jmp 0x180069c2a
mov rdi, qword [rsi + 0x20]
mov rdx, rdi
mov rcx, rbx
call fcn.18006b4b0
mov ebp, eax
test eax, eax
jns 0x180069b99
lea ecx, [r13 + 1]
cmp ecx, 0xff
ja 0x180069ce5
mov dword [rbx + 0x40c], ecx
mov eax, dword [rbx + 0x410]
cmp eax, ecx
cmovb eax, ecx
mov dword [rbx + 0x410], eax
movzx r8d, r13b
mov rdx, rdi
mov rcx, rbx
call fcn.18006a840
movzx ebp, r13b
mov rdi, qword [rsi + 0x28]
mov rdx, rdi
mov rcx, rbx
call fcn.18006b4b0
mov esi, eax
test eax, eax
jns 0x180069be9
mov esi, dword [rbx + 0x40c]
lea ecx, [rsi + 1]
cmp ecx, 0xff
ja 0x180069c7d
mov dword [rbx + 0x40c], ecx
mov eax, dword [rbx + 0x410]
cmp eax, ecx
cmovb eax, ecx
mov dword [rbx + 0x410], eax
movzx r8d, sil
mov rdx, rdi
mov rcx, rbx
call fcn.18006a840
movzx ecx, sil
shl ecx, 8
movzx eax, bpl
or ecx, eax
shl ecx, 8
or ecx, r14d
shl ecx, 8
or ecx, 0xd
mov rdi, qword [rbx]
mov dword [rsp + 0x40], ecx
mov rdx, qword [rdi + 0x30]
cmp rdx, qword [rdi + 0x38]
je 0x180069c1c
mov dword [rdx], ecx
add qword [rdi + 0x30], 4
jmp 0x180069c2a
lea rcx, [rdi + 0x28]
lea r8, [rsp + 0x40]
call fcn.180048a00
mov rdx, qword [rdi + 0x48]
lea rcx, [rdi + 0x40]
lea r8, [rdi + 0x1b8]
cmp rdx, qword [rdi + 0x50]
je 0x180069c4b
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rdi + 0x48], 4
jmp 0x180069c51
call fcn.180048a00
nop
mov dword [rbx + 0x40c], r13d
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1801cf080
mov rbx, qword [rsp + 0xc0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, [rdi + 0xc]
mov r9d, 0xff
mov r8d, 1
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.180062650
int3
lea rcx, [rdi + 0xc]
mov r9d, 0xff
mov r8d, 1
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.180062650
int3
lea rcx, [rsi + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.180062650
int3
lea rcx, [r14 + 0xc]
mov r9d, 0xff
mov r8d, 1
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.180062650
int3
lea rcx, [rdi + 0xc]
mov r9d, 0xff
mov r8d, 1
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.180062650
int3