Function at 0x180125a80
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov qword [rax - 0x48], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x20], rsi
mov rbx, r9
mov r15, r8
mov rbp, rdx
mov r12, rcx
mov rsi, qword [rsp + 0xb0]
mov rdx, qword [rsi + 0x28]
lea rcx, [rax - 0x40]
call fcn.1800360e0
nop
lea rax, [r15 + rbx]
mov qword [rsp + 0x90], rax
mov rdi, qword [rsp + 0x38]
cmp r15, rax
jae 0x180125d65
mov r13, qword [rsp + 0xa8]
mov r14, qword [rsp + 0xa0]
cmp r15, qword [r12 + 0x58]
jae 0x180125d65
mov rcx, qword [r14]
cmp byte [rcx + 0xf], 0
jne 0x180125d3b
mov eax, r15d
shr eax, 0x18
mov byte [rcx + 0x18], al
mov ecx, r15d
shr ecx, 0x10
mov rax, qword [r14]
mov byte [rax + 0x19], cl
mov ecx, r15d
shr ecx, 8
mov rax, qword [r14]
mov byte [rax + 0x1a], cl
mov rax, qword [r14]
mov byte [rax + 0x1b], r15b
mov rax, qword [r14]
mov byte [rax + 0x1f], 1
mov rcx, qword [rsi]
mov rdx, qword [rsi + 0x10]
mov r8, qword [rsi + 0x18]
sub r8, rdx
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsi]
mov byte [rsp + 0xb0], 3
mov rax, qword [rcx]
mov r8d, 1
lea rdx, [rsp + 0xb0]
call qword [rax + 0x10]
mov rcx, qword [rsi]
mov rdx, qword [r13]
mov r8, qword [r13 + 8]
sub r8, rdx
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsi]
mov rdx, qword [r14]
mov r8, qword [r14 + 8]
sub r8, rdx
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rbx, qword [rsi]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.180036440
mov rax, qword [rbx]
mov rdi, qword [rsp + 0x38]
mov rdx, rdi
mov rcx, rbx
call qword [rax + 0x18]
mov rax, qword [rbp]
mov r8, qword [rbp + 8]
sub r8, rax
cmp r8, 0x10
jb 0x180125c04
mov r10, rdi
sub r10, rax
mov r9, r8
shr r9, 4
imul rcx, r9, 0xfffffffffffffff0
add r8, rcx
nop
mov rdx, qword [rax]
xor rdx, qword [rdi]
mov rcx, qword [rax + 8]
xor rcx, qword [r10 + rax + 8]
mov qword [rax], rdx
mov qword [rax + 8], rcx
add rax, 0x10
add rdi, 0x10
sub r9, 1
jne 0x180125be0
test r8, r8
je 0x180125c20
sub rdi, rax
nop dword [rax]
movzx ecx, byte [rdi + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub r8, 1
jne 0x180125c10
mov rax, qword [r14]
mov byte [rax + 0x1f], 0
mov rcx, qword [rsi]
mov rdx, qword [rsi + 0x10]
mov r8, qword [rsi + 0x18]
sub r8, rdx
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsi]
mov byte [rsp + 0xb0], 3
mov rax, qword [rcx]
mov r8d, 1
lea rdx, [rsp + 0xb0]
call qword [rax + 0x10]
mov rcx, qword [rsi]
mov rdx, qword [r13]
mov r8, qword [r13 + 8]
sub r8, rdx
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsi]
mov rdx, qword [r14]
mov r8, qword [r14 + 8]
sub r8, rdx
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rbx, qword [rsi]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.180036440
mov rax, qword [rbx]
mov rdi, qword [rsp + 0x38]
mov rdx, rdi
mov rcx, rbx
call qword [rax + 0x18]
mov rcx, qword [rsi]
mov rdx, qword [rsi + 0x10]
mov r8, qword [rsi + 0x18]
sub r8, rdx
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsi]
mov byte [rsp + 0xb0], 0
mov rax, qword [rcx]
mov r8d, 1
lea rdx, [rsp + 0xb0]
call qword [rax + 0x10]
mov rcx, qword [rsi]
mov r8, qword [rsp + 0x40]
sub r8, rdi
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 0x10]
mov rcx, qword [rsi]
mov rdx, qword [rbp]
mov r8, qword [rbp + 8]
sub r8, rdx
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rbx, qword [rsi]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov rdx, rax
mov rcx, rbp
call fcn.180036440
mov rax, qword [rbx]
mov rdx, qword [rbp]
mov rcx, rbx
call qword [rax + 0x18]
inc r15
cmp r15, qword [rsp + 0x90]
jb 0x180125af0
jmp 0x180125d65
mov dword [rsp + 0x20], 0x11e
lea r9, str.gold
lea r8, str.set_hash_address
lea rdx, str.set_hash_address___requires_XMSS_Address::Type::OTS_Hash_Address.
lea rcx, str.get_type____Type::OTS_Hash_Address
call fcn.180043540
nop
test rdi, rdi
je 0x180125d81
mov rdx, qword [rsp + 0x48]
sub rdx, rdi
mov r8d, 1
mov rcx, rdi
call fcn.180033660
nop
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret