Function at 0x180129a90
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xa8
mov qword [rbp + 0xf], 0xfffffffffffffffe
mov rbx, r8
mov rsi, rdx
mov rdi, rcx
mov rax, qword [rdx]
mov r9, qword [rdx + 8]
sub r9, rax
cmp r9, r8
jae 0x180129aed
lea r8, str.gold
lea rdx, str.finish
lea rcx, str.Offset_is_sane
call fcn.180044fb0
int3
lea rdx, [rax + r8]
xor eax, eax
mov byte [rsp + 0x20], al
mov r9, qword [rcx + 0x40]
mov r8, qword [rcx + 0x38]
mov rcx, rsi
call fcn.18008e660
mov rax, qword [rsi]
mov r14, qword [rsi + 8]
sub r14, rax
sub r14, rbx
lea r15, [rax + rbx]
mov qword [rbp + 0x77], r15
mov rax, qword [rdi + 0x58]
sub rax, qword [rdi + 0x50]
test al, 0xf
je 0x180129b43
lea r8, str.gold
lea rdx, str.finish
lea rcx, str.AD_is_block_size_multiple
call fcn.180044fb0
int3
mov r13, qword [rdi + 0x18]
mov edx, 0x10
lea rcx, [rbp - 0x41]
call fcn.1800360e0
nop
mov r8, r14
lea rdx, [rbp - 0x29]
mov rcx, rdi
call fcn.180129fd0
nop
mov rsi, qword [rax]
mov rbx, qword [rax + 8]
sub rbx, rsi
mov rdi, qword [r13]
mov rcx, r13
call qword [rdi + 0x28]
mov rcx, rax
xor edx, edx
mov rax, rbx
div rcx
mov r9, rax
mov r12, qword [rbp - 0x41]
mov r8, r12
mov rdx, rsi
mov rcx, r13
call qword [rdi + 0x40]
nop
mov rcx, qword [rbp - 0x29]
test rcx, rcx
je 0x180129bb5
mov rdx, qword [rbp - 0x19]
sub rdx, rcx
mov r8d, 1
call fcn.180033660
nop
xor edi, edi
mov rcx, qword [rbp + 0x67]
mov rax, qword [rcx + 0x58]
cmp rax, qword [rcx + 0x50]
je 0x180129c23
mov rsi, qword [rbp - 0x39]
sub rsi, r12
mov r15, rcx
nop
mov rax, qword [r15 + 0x50]
mov rcx, qword [rdi + rax]
mov rdx, qword [rdi + rax + 8]
xor qword [r12], rcx
xor qword [r12 + 8], rdx
mov rbx, qword [r13]
mov rcx, r13
call qword [rbx + 0x28]
mov rcx, rax
xor edx, edx
mov rax, rsi
div rcx
mov r9, rax
mov r8, r12
mov rdx, r12
mov rcx, r13
call qword [rbx + 0x40]
add rdi, 0x10
mov rax, qword [r15 + 0x58]
sub rax, qword [r15 + 0x50]
cmp rdi, rax
jne 0x180129bd0
mov r15, qword [rbp + 0x77]
mov rcx, qword [rbp + 0x67]
lea rdx, [rbp - 0x59]
call fcn.18012a0a0
nop
mov edx, 0x10
lea rcx, [rbp - 0x29]
call fcn.1800360e0
nop
mov rbx, qword [rbp - 0x51]
mov rsi, qword [rbp - 0x59]
sub rbx, rsi
mov rdi, qword [r13]
mov rcx, r13
call qword [rdi + 0x28]
mov rcx, rax
xor edx, edx
mov rax, rbx
div rcx
mov r9, rax
mov r8, qword [rbp - 0x29]
mov rdx, rsi
mov rcx, r13
call qword [rdi + 0x40]
xor ecx, ecx
mov rax, qword [rbp - 0x51]
mov rdx, qword [rbp - 0x59]
sub rax, rdx
je 0x180129ca1
nop dword [rax + rax]
sub rax, rcx
inc byte [rax + rdx - 1]
cmp byte [rax + rdx - 1], 0
jne 0x180129ca1
inc rcx
mov rax, qword [rbp - 0x51]
mov rdx, qword [rbp - 0x59]
sub rax, rdx
cmp rcx, rax
jne 0x180129c80
mov edx, 0x10
lea rcx, [rbp - 9]
call fcn.1800360e0
nop
lea rax, [r15 + r14]
mov qword [rbp + 0x7f], rax
mov rsi, qword [rbp - 9]
cmp r15, rax
je 0x180129e70
mov rdi, qword [rbp - 0x39]
sub rdi, r12
mov qword [rbp - 0x11], rdi
lea rdx, [0x18022a218]
nop word [rax + rax]
mov rcx, rax
sub rcx, r15
mov qword [rbp + 0x77], rcx
lea rax, [rbp + 0x77]
cmp rcx, 0x10
cmovae rax, rdx
mov r14, qword [rax]
mov r9, r14
mov r8, r15
mov rax, r12
cmp r14, 0x10
jb 0x180129d3d
mov r11, r15
sub r11, r12
mov r10, r14
shr r10, 4
imul r9, r10, 0xfffffffffffffff0
add r9, r14
nop dword [rax]
mov rcx, qword [r8]
mov rdx, qword [rax + r11 + 8]
xor qword [rax], rcx
xor qword [rax + 8], rdx
add rax, 0x10
add r8, 0x10
sub r10, 1
jne 0x180129d20
test r9, r9
je 0x180129d61
sub r8, rax
nop word [rax + rax]
movzx ecx, byte [rax + r8]
xor byte [rax], cl
lea rax, [rax + 1]
sub r9, 1
jne 0x180129d50
mov rbx, qword [r13]
mov rcx, r13
call qword [rbx + 0x28]
mov rcx, rax
xor edx, edx
mov rax, rdi
div rcx
mov r9, rax
mov r8, r12
mov rdx, r12
mov rcx, r13
call qword [rbx + 0x40]
mov rbx, qword [rbp - 0x51]
mov rsi, qword [rbp - 0x59]
sub rbx, rsi
mov rdi, qword [r13]
mov rcx, r13
call qword [rdi + 0x28]
mov rcx, rax
xor edx, edx
mov rax, rbx
div rcx
mov r9, rax
mov rbx, qword [rbp - 9]
mov r8, rbx
mov rdx, rsi
mov rcx, r13
call qword [rdi + 0x40]
mov r9, r14
mov r8, rbx
mov rdx, r15
cmp r14, 0x10
jb 0x180129e04
mov r11, rbx
sub r11, r15
mov r10, r14
shr r10, 4
imul r9, r10, 0xfffffffffffffff0
add r9, r14
nop dword [rax + rax]
mov rcx, qword [r8]
xor rcx, qword [rdx]
mov rax, qword [rdx + 8]
xor rax, qword [rdx + r11 + 8]
mov qword [rdx], rcx
mov qword [rdx + 8], rax
add rdx, 0x10
add r8, 0x10
sub r10, 1
jne 0x180129de0
test r9, r9
je 0x180129e21
sub r8, rdx
nop dword [rax]
movzx eax, byte [rdx + r8]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x180129e10
xor ecx, ecx
mov rax, qword [rbp - 0x51]
mov rdx, qword [rbp - 0x59]
sub rax, rdx
je 0x180129e51
sub rax, rcx
inc byte [rax + rdx - 1]
cmp byte [rax + rdx - 1], 0
jne 0x180129e51
inc rcx
mov rax, qword [rbp - 0x51]
mov rdx, qword [rbp - 0x59]
sub rax, rdx
cmp rcx, rax
jne 0x180129e30
add r15, r14
mov rax, qword [rbp + 0x7f]
cmp r15, rax
mov rdi, qword [rbp - 0x11]
lea rdx, [0x18022a218]
jne 0x180129ce0
mov rsi, qword [rbp - 9]
mov rax, qword [rbp - 0x39]
sub rax, r12
mov rbx, qword [rbp - 0x21]
mov r15, qword [rbp - 0x29]
sub rbx, r15
cmp rax, rbx
jae 0x180129e97
mov rdx, rbx
lea rcx, [rbp - 0x41]
call fcn.180036440
mov r12, qword [rbp - 0x41]
mov r8, r15
mov rdx, r12
cmp rbx, 0x10
jb 0x180129edd
mov r10, r15
sub r10, r12
mov r9, rbx
shr r9, 4
imul rax, r9, 0xfffffffffffffff0
add rbx, rax
nop word [rax + rax]
mov rax, qword [r8]
mov rcx, qword [rdx + r10 + 8]
xor qword [rdx], rax
xor qword [rdx + 8], rcx
add rdx, 0x10
add r8, 0x10
sub r9, 1
jne 0x180129ec0
test rbx, rbx
je 0x180129f01
sub r8, rdx
nop word [rax + rax]
movzx eax, byte [rdx + r8]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub rbx, 1
jne 0x180129ef0
mov rdi, qword [rbp + 0x67]
mov rdi, qword [rdi + 8]
mov r14, qword [rbp + 0x6f]
mov rbx, qword [r14 + 8]
sub rbx, qword [r14]
lea rdx, [rbx + rdi]
mov rcx, r14
call fcn.180036440
test rdi, rdi
je 0x180129f37
mov rcx, qword [r14]
add rcx, rbx
mov r8, rdi
mov rdx, r12
call fcn.1801a4560
nop
test rsi, rsi
je 0x180129f52
mov rdx, qword [rbp + 7]
sub rdx, rsi
mov r8d, 1
mov rcx, rsi
call fcn.180033660
nop
test r15, r15
je 0x180129f6d
mov rdx, qword [rbp - 0x19]
sub rdx, r15
mov r8d, 1
mov rcx, r15
call fcn.180033660
nop
mov rcx, qword [rbp - 0x59]
test rcx, rcx
je 0x180129f98
mov rdx, qword [rbp - 0x49]
sub rdx, rcx
mov r8d, 1
call fcn.180033660
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x59], xmm0
mov qword [rbp - 0x49], 0
test r12, r12
je 0x180129fb3
mov rdx, qword [rbp - 0x31]
sub rdx, r12
mov r8d, 1
mov rcx, r12
call fcn.180033660
nop
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret