Function at 0x140059910
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
push rbp
lea rbp, [rsp - 0x720]
sub rsp, 0x820
mov rax, qword [0x1401cde90]
xor rax, rsp
mov qword [rbp + 0x710], rax
call fcn.140055320
xor ebx, ebx
test al, al
jne 0x140059a7f
mov qword [rsp + 0x830], rsi
mov edi, ebx
mov esi, 0xf8
nop dword [rax]
call fcn.1400d41a0
inc rdi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [rsp + rdi*8 + 0x18], xmm0
cmp rdi, rsi
jb 0x140059960
mov r9, rbx
mov r10d, 0xf7
nop word [rax + rax]
mov edx, 0xf7
cmp r9, rdx
jge 0x140059a68
cmp r10, 4
jl 0x140059a3d
mov r8d, 0xf3
lea rcx, [rbp + 0x6c8]
sub r8, r9
shr r8, 2
inc r8
lea rax, [r8*4]
sub rdx, rax
nop word [rax + rax]
movsd xmm0, qword [rcx + 0x10]
movsd xmm1, qword [rcx + 8]
comisd xmm0, xmm1
jbe 0x1400599ea
movsd qword [rcx + 0x10], xmm1
movsd qword [rcx + 8], xmm0
movsd xmm0, qword [rcx + 8]
movsd xmm1, qword [rcx]
comisd xmm0, xmm1
jbe 0x140059a02
movsd qword [rcx + 8], xmm1
movsd qword [rcx], xmm0
movsd xmm0, qword [rcx]
movsd xmm1, qword [rcx - 8]
comisd xmm0, xmm1
jbe 0x140059a1a
movsd qword [rcx], xmm1
movsd qword [rcx - 8], xmm0
movsd xmm0, qword [rcx - 8]
movsd xmm1, qword [rcx - 0x10]
comisd xmm0, xmm1
jbe 0x140059a34
movsd qword [rcx - 8], xmm1
movsd qword [rcx - 0x10], xmm0
sub rcx, 0x20
dec r8
jne 0x1400599d0
cmp rdx, r9
jle 0x140059a68
movsd xmm0, qword [rsp + rdx*8 + 0x20]
movsd xmm1, qword [rsp + rdx*8 + 0x18]
comisd xmm0, xmm1
jbe 0x140059a60
movsd qword [rsp + rdx*8 + 0x20], xmm1
movsd qword [rsp + rdx*8 + 0x18], xmm0
dec rdx
cmp rdx, r9
jg 0x140059a42
inc r9
dec r10
dec rsi
jne 0x140059990
mov rsi, qword [rsp + 0x830]
cmp byte [0x1401d7a25], bl
je 0x140059a93
lea rax, [0x1401d1898]
jmp 0x140059c0d
mov r8d, dword [0x1401d5d60]
lea eax, [r8 + 1]
lea ecx, [r8 + 2]
imul ecx, eax
mov eax, 0x6bca1af3
imul ecx, r8d
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x13
sub ecx, edx
cmp ecx, 0xc
jne 0x140059ace
dec r8d
mov dword [0x1401d5d60], r8d
mov dword [rbp + 0x6e0], 0x170032
mov dword [rbp + 0x6e4], 0x150007
mov dword [rbp + 0x6e8], 0x3b000a
mov dword [rbp + 0x6ec], 0x50013
mov dword [rbp + 0x6f0], 0x100017
mov dword [rbp + 0x6f4], 0x16001a
mov dword [rbp + 0x6f8], 0x100022
mov dword [rbp + 0x6fc], 0x80006
mov dword [rbp + 0x700], 0x100019
mov dword [rbp + 0x704], 0x53005f
mov word [rbp + 0x708], bx
lea rdi, [0x1401d1898]
lea rdx, [0x1401d0d91]
nop word [rax + rax]
movzx eax, byte [rbx + rdx - 1]
movzx ecx, word [rbp + rbx*2 + 0x6e2]
add rbx, 5
xor ax, word [rbp + rbx*2 + 0x6d6]
mov word [rdi + rbx*2 - 0xa], ax
movzx eax, byte [rbx + rdx - 5]
xor cx, ax
movzx eax, byte [rbx + rdx - 4]
xor ax, word [rbp + rbx*2 + 0x6da]
mov word [rdi + rbx*2 - 8], cx
mov word [rdi + rbx*2 - 6], ax
movzx eax, byte [rbx + rdx - 3]
xor ax, word [rbp + rbx*2 + 0x6dc]
mov word [rdi + rbx*2 - 4], ax
movzx eax, byte [rbx + rdx - 2]
xor ax, word [rbp + rbx*2 + 0x6de]
mov word [rdi + rbx*2 - 2], ax
cmp rbx, 0x14
jl 0x140059b50
lea eax, [r8 + 1]
lea ecx, [r8 + 2]
imul ecx, eax
mov eax, 0x30c30c31
imul ecx, r8d
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x15
sub ecx, edx
cmp ecx, 0x10
jne 0x140059c03
mov ecx, 4
call fcn.1400d3fa0
mov rbx, rax
call fcn.1400d41a0
mov rcx, rbx
mov dword [rbx], eax
mov dword [0x1401d5d60], eax
call fcn.1400d37c0
mov byte [0x1401d7a25], 1
mov rax, rdi
mov rcx, qword [rbp + 0x710]
xor rcx, rsp
call fcn.1400d37e0
lea r11, [rsp + 0x820]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret