Function at 0x140064040
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 [0x140113040]
xor rax, rsp
mov qword [rsp + 0x60], rax
movzx r12d, r8b
mov byte [rsp + 0x30], r12b
mov rbp, rdx
mov rsi, rcx
cmp dword [rcx + 0xc], 1
jl 0x140064086
mov rcx, qword [rcx]
mov eax, dword [rdx + 0xc]
inc eax
mov dword [rcx + 0x1b8], eax
xor r14d, r14d
mov r13d, r14d
mov rax, qword [rdx + 0x20]
mov ecx, dword [rax + 8]
mov r15d, r14d
cmp ecx, dword [0x140215368]
cmove r15, rax
mov ebx, r14d
test r15, r15
je 0x1400640be
mov rcx, qword [r15 + 0x20]
mov eax, dword [0x1402153d8]
cmp dword [rcx + 8], eax
cmove rbx, rcx
mov r13, rbp
jmp 0x1400640cb
cmp ecx, dword [0x1402153d8]
cmove rbx, rax
mov r15, rbp
mov rdi, 0xffffffffffffffff
test rbx, rbx
je 0x1400642d1
cmp dword [rsi + 8], 1
jl 0x1400642d1
mov rbx, qword [rbx + 0x20]
mov qword [rsp + 0x50], rbx
lea rcx, [rsi + 0x90]
lea rdx, [rsp + 0x50]
call fcn.140056770
lea rcx, [rax + 8]
test rax, rax
cmove rcx, r14
test rcx, rcx
je 0x140064118
cmp dword [rcx], r14d
jne 0x1400642d1
mov qword [rsp + 0x50], rbx
mov rax, rdi
inc rax
cmp byte [rbx + rax], r14b
jne 0x140064120
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x50]
mov rcx, qword [rsi]
call fcn.140057a50
mov r14d, eax
mov rdx, qword [r15 + 0x28]
mov qword [rsp + 0x50], rdx
mov r8, rdi
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x140064150
mov qword [rsp + 0x58], r8
lea rdx, [rsp + 0x50]
mov rcx, qword [rsi]
call fcn.140057a50
mov ebx, eax
test r13, r13
je 0x1400641a0
mov rdx, qword [r13 + 0x28]
mov qword [rsp + 0x50], rdx
mov r8, rdi
nop
inc r8
cmp byte [rdx + r8], 0
jne 0x140064180
mov qword [rsp + 0x58], r8
lea rdx, [rsp + 0x50]
mov rcx, qword [rsi]
call fcn.140057a50
mov ecx, eax
jmp 0x1400641a2
mov ecx, edi
test r14d, r14d
js 0x140064476
test ebx, ebx
js 0x140064476
test r13, r13
je 0x1400641c0
test ecx, ecx
js 0x140064476
cmp r14d, 0x400
jge 0x1400642d1
cmp ebx, 0x400
jge 0x1400642d1
cmp ecx, 0x400
jge 0x1400642d1
shl r14d, 0xa
or r14d, ebx
shl r14d, 0xa
mov eax, r14d
or eax, ecx
or eax, 0xc0000000
bts r14d, 0x1f
test r13, r13
cmovne r14d, eax
mov edx, r14d
mov rcx, qword [rsi]
call fcn.140057bb0
cmp eax, 0x7fff
ja 0x1400642d1
mov rbx, qword [rsi]
movzx ecx, ax
shl ecx, 8
or ecx, r12d
shl ecx, 8
or ecx, 0xc
mov dword [rsp + 0x50], ecx
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x140064245
mov dword [rdx], ecx
add qword [rbx + 0x30], 4
jmp 0x140064253
lea r8, [rsp + 0x50]
lea rcx, [rbx + 0x28]
call fcn.14005c900
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x140064274
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x140064279
call fcn.14005c900
mov rbx, qword [rsi]
mov dword [rsp + 0x50], r14d
lea rcx, [rbx + 0x28]
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x140064299
mov dword [rdx], r14d
add qword [rbx + 0x30], 4
jmp 0x1400642a3
lea r8, [rsp + 0x50]
call fcn.14005c900
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x1400642c7
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x140064440
call fcn.14005c900
jmp 0x140064440
mov qword [rsp + 0x38], rsi
mov r14d, dword [rsi + 0x40c]
mov dword [rsp + 0x40], r14d
mov rbx, qword [rbp + 0x20]
mov rdx, rbx
mov rcx, rsi
call fcn.140065fa0
mov r12d, eax
test eax, eax
jns 0x140064332
lea ecx, [r14 + 1]
cmp ecx, 0xff
ja 0x140064487
mov dword [rsi + 0x40c], ecx
mov eax, dword [rsi + 0x410]
cmp eax, ecx
cmovb eax, ecx
mov dword [rsi + 0x410], eax
movzx r8d, r14b
mov rdx, rbx
mov rcx, rsi
call fcn.140065370
movzx r12d, r14b
cmp dword [rsi + 0xc], 1
jl 0x140064346
mov rcx, qword [rsi]
mov eax, dword [rbp + 0x30]
inc eax
mov dword [rcx + 0x1b8], eax
mov rbx, qword [rbp + 0x28]
nop word [rax + rax]
inc rdi
cmp byte [rbx + rdi], 0
jne 0x140064350
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rdi
lea rdx, [rsp + 0x50]
mov rcx, qword [rsi]
call fcn.140057a50
mov r15d, eax
test eax, eax
js 0x140064465
mov r8, rdi
test rdi, rdi
je 0x1400643ae
lea r9, [rbx - 1]
add r9, rdi
nop word [rax + rax]
mov edx, edi
shl edx, 5
mov eax, edi
shr eax, 2
add edx, eax
movzx eax, byte [r9]
add edx, eax
xor edi, edx
lea r9, [r9 - 1]
sub r8, 1
jne 0x140064390
mov byte [rsp + 0x20], dil
movzx r9d, r12b
movzx r8d, byte [rsp + 0x30]
mov edx, send
mov rcx, qword [rsi]
call fcn.1400580a0
mov rbx, qword [rsi]
mov dword [rsp + 0x50], r15d
lea rcx, [rbx + 0x28]
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x1400643ea
mov dword [rdx], r15d
add qword [rbx + 0x30], 4
jmp 0x1400643f4
lea r8, [rsp + 0x50]
call fcn.14005c900
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x140064415
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x14006441a
call fcn.14005c900
movzx r8d, r12b
mov dword [rsp + 0x20], 2
mov r9d, 4
mov rdx, qword [rbp + 0x20]
mov rcx, rsi
call fcn.14006a040
nop
mov dword [rsi + 0x40c], r14d
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1400dde30
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, [rbp + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.14005d740
nop
lea rcx, [rbp + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.14005d740
nop
lea rcx, [rbx + 0xc]
mov r9d, 0xff
mov r8d, 1
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.14005d740
int3