Function at 0x180033c40
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0xc0
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x108], rbx
mov rax, qword [0x1802609a8]
xor rax, rsp
mov qword [rsp + 0xb8], rax
mov r14, r8
mov rdi, rdx
mov rbp, rcx
mov rcx, qword [rdx]
mov r8, qword [rdx + 8]
sub r8, rcx
cmp r8, r14
jae 0x180033cb4
mov dword [rsp + 0x20], 0x9a
lea r9, str.gold
lea r8, str.finish
lea rdx, str.Offset_is_sane
lea rcx, str.buffer.size_____offset
call fcn.1800401f0
int3
lea r11, [r14 + rcx]
mov r10, r8
sub r10, r14
mov rbx, qword [rbp + 0x20]
sub rbx, qword [rbp + 0x18]
lea rax, [rbx + 1]
cmp r10, rax
jae 0x180033d14
lea rdx, [rsp + 0x40]
mov rcx, rbp
call fcn.180033f70
nop
lea r8, str.:_insufficient_data_to_encrypt
mov rdx, rax
lea rcx, [rsp + 0x98]
call fcn.180030420
nop
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.1800309d0
lea rdx, [0x18025d0f0]
lea rcx, [rsp + 0x60]
call fcn.18017b8e8
nop
xor edx, edx
mov rax, r10
div rbx
test rdx, rdx
jne 0x180033dad
cmp r8, r14
jae 0x180033d54
mov dword [rsp + 0x20], 0x75
lea r9, str.gold
lea r8, str.update
lea rdx, str.Offset_ok
lea rcx, str.buffer.size_____offset
call fcn.1800401f0
int3
mov rax, qword [rbp]
sub r8, r14
lea rdx, [r14 + rcx]
mov rcx, rbp
call qword [rax + 0x10]
lea rdx, [r14 + rax]
mov rcx, rdi
call fcn.180033000
xor r9d, r9d
test rbx, rbx
je 0x180033efb
lea r10, [rbx + rbx]
mov r8, qword [rdi + 8]
mov rdx, r8
sub rdx, r10
sub r8, rbx
movzx ecx, byte [r8 + r9]
movzx eax, byte [rdx + r9]
mov byte [r8 + r9], al
mov byte [rdx + r9], cl
inc r9
cmp r9, rbx
jne 0x180033d81
jmp 0x180033efb
mov r15, r10
sub r15, rbx
sub r15, rdx
mov rsi, r10
sub rsi, r15
cmp rsi, rbx
jbe 0x180033ed1
lea rax, [rbx + rbx]
cmp rsi, rax
jae 0x180033ed1
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
xor r9d, r9d
mov qword [rsp + 0x50], r9
xor eax, eax
lea r8, [r10 + r11]
lea rdx, [r15 + r11]
lea rcx, [rsp + 0x40]
call fcn.180033240
nop
lea rdx, [r14 + r15]
mov rcx, rdi
call fcn.180033000
mov r8, r14
mov rdx, rdi
mov rcx, rbp
call fcn.180034720
mov r8, rbx
mov rdx, qword [rbp + 0x18]
mov r14, qword [rsp + 0x40]
mov rcx, r14
call fcn.180020d00
mov rcx, qword [rbp + 8]
mov rax, qword [rcx]
mov r9d, 1
mov r8, r14
mov rdx, r14
call qword [rax + 0x40]
sub rsi, rbx
je 0x180033e66
lea rax, [r14 + rbx]
neg rbx
nop dword [rax + rax]
movzx ecx, byte [rax]
xor byte [rbx + rax], cl
movzx ecx, byte [rbx + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub rsi, 1
jne 0x180033e50
mov rcx, qword [rbp + 8]
mov rax, qword [rcx]
mov r9d, 1
mov r8, r14
mov rdx, r14
call qword [rax + 0x40]
mov rsi, qword [rdi + 8]
sub rsi, qword [rdi]
mov rbx, qword [rsp + 0x48]
sub rbx, r14
lea rdx, [rbx + rsi]
mov rcx, rdi
call fcn.180033000
test rbx, rbx
je 0x180033eb3
mov rcx, qword [rdi]
add rcx, rsi
test rbx, rbx
je 0x180033eb3
mov r8, rbx
mov rdx, r14
call fcn.18017c7f0
nop
test r14, r14
je 0x180033ecf
mov rdx, qword [rsp + 0x50]
sub rdx, r14
mov r8d, 1
mov rcx, r14
call fcn.1800302d0
nop
jmp 0x180033efb
mov dword [rsp + 0x20], 0xaf
lea r9, str.gold
lea r8, str.finish
lea rdx, str.Left_over_size_in_expected_range
lea rcx, str.final_bytes___BS__final_bytes___2BS
call fcn.1800401f0
int3
mov rcx, qword [rsp + 0xb8]
xor rcx, rsp
call fcn.18015e5e0
mov rbx, qword [rsp + 0x108]
add rsp, 0xc0
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret