Function at 0x1400ab860
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0xb10
lea rbp, [rsp + 0x40]
mov qword [rbp + 0xb8], rdi
mov rdi, rcx
mov qword [rbp + 0xa8], r15
pxor xmm3, xmm3
mov qword [rbp + 0xa0], r14
mov qword [rbp + 0x98], r13
mov r13, r9
mov qword [rbp + 0x90], r12
mov r12, r8
mov qword [rbp + 0xb0], rsi
mov qword [rbp + 0xc0], rbx
mov rbx, rdx
mov r10, qword [rdi]
mov rax, qword [0x14018b5c0]
xor rax, rbp
mov qword [rbp + 0xac8], rax
mov r8, qword [rbp + 0xb08]
mov qword [rbp + 0x88], 0xfffffffffffffffe
movsxd r11, dword [r10 + 4]
mov rcx, qword [r8]
mov rsi, qword [rdi + 0x28]
mov r15d, dword [r11 + rdi + 0x10]
mov r8, qword [r13]
mov esi, dword [rsi + 0x1c]
lea r15d, [r15 + r15*2]
lea rdx, [rcx + r15*8]
call fcn.1400acbb0
movsd qword [rbx], xmm0
mov ebx, dword [rdi + 0x30]
imul ebx, esi
mov r14, qword [r12 + 8]
mov r9, r14
mov rcx, qword [r12]
sub r9, rcx
sar r9, 3
cmp rbx, r9
jb 0x1400ac4fc
jbe 0x1400ab95c
mov rax, qword [r12 + 0x10]
sub rax, rcx
sar rax, 3
cmp rbx, rax
ja 0x1400abc58
sub rbx, r9
mov rcx, r14
xor edx, edx
lea r8, [rbx*8]
call fcn.1400fa7b0
lea rax, [r14 + rbx*8]
mov qword [r12 + 8], rax
mov r14, qword [r12 + 8]
mov rcx, qword [r12]
xor eax, eax
mov qword [rbp], rax
mov qword [rbp + 8], rax
mov rbx, qword [rbp]
mov r9, qword [rbp + 8]
cmp rbx, r9
je 0x1400ac4e6
cmp rcx, r14
je 0x1400ab99b
sub r14, rcx
add r14, 7
cmp r14, 0xc
jbe 0x1400ac49f
and r14, 0xfffffffffffffff8
xor edx, edx
mov r8, r14
call fcn.1400fa7b0
lea rcx, [rbp + 0x18]
call fcn.14002d570
nop
mov rdx, r15
lea rcx, [rbp + 0x18]
mov qword [rbp + 0xc8], 0
lea r8, [rbp + 0xc8]
call fcn.1400ad350
lea rcx, [rbp + 0x30]
call fcn.14002d570
nop
mov rdx, r15
lea rcx, [rbp + 0x30]
mov qword [rbp + 0xd0], 0
lea r8, [rbp + 0xd0]
call fcn.1400ad350
lea rcx, [rbp + 0x48]
call fcn.14002d570
nop
mov rax, qword [rdi]
lea rcx, [rbp + 0x48]
mov qword [rbp + 0xd8], 0
lea r8, [rbp + 0xd8]
movsxd rbx, dword [rax + 4]
mov edx, dword [rbx + rdi + 0x14]
call fcn.1400ad350
mov rax, qword [rdi]
mov r14, rsp
mov r11, qword [rbp + 0xb10]
lea rdx, [rbp + 0x18]
mov r10, qword [rbp + 0xb08]
lea r8, [rbp + 0x48]
movsxd rbx, dword [rax + 4]
lea r9, [rbp + 0x30]
mov qword [r14 + 0x20], r10
mov qword [r14 + 0x28], r11
mov rcx, qword [rbx + rdi + 8]
mov dword [r14 + 0x30], 1
mov r15, qword [rcx]
call qword [r15 + 0x18]
mov r14d, eax
test r14d, r14d
je 0x1400abd47
mov rbx, qword [0x140190a28]
test rbx, rbx
je 0x1400abd04
mov rcx, rbx
lea rdx, str.WARNING:_Error_in_solve_subsystem
call fcn.1400d7cf0
mov rbx, qword [0x140190a28]
test rbx, rbx
je 0x1400ac41e
lea rsi, [rbp + 0x16]
test r14d, r14d
jl 0x1400ac461
mov rdi, rsi
mov eax, 0xcccccccd
lea r9, [rdi - 1]
mul r14d
shr edx, 3
lea r8d, [rdx + rdx*4]
add r8d, r8d
sub r14d, r8d
add r14d, 0x30
mov byte [r9], r14b
mov r14d, edx
mov rdi, r9
test r14d, r14d
jne 0x1400abaa6
mov qword [rbp + 0x970], 0
xor r8d, r8d
mov qword [rbp + 0x988], 0xf
mov r10d, 0xf
mov byte [rbp + 0x970], 0
cmp r9, rsi
jne 0x1400abb09
mov qword [rbp + 0x980], 0
jmp 0x1400abb4a
lea rsi, [rbp + 1]
sub rsi, r9
add rsi, 0x15
cmp rsi, 0xf
ja 0x1400abcd5
mov rdx, r9
lea rcx, [rbp + 0x970]
mov r8, rsi
mov qword [rcx + 0x10], rsi
call sub.VCRUNTIME140.dll_memmove
mov byte [rbp + rsi + 0x970], 0
mov r8, qword [rbp + 0x980]
mov r10, qword [rbp + 0x988]
lea rdx, str.Sparse_solver_returned_code:
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x1400abb79
mov rax, rdx
add rdx, rcx
call fcn.1400fa740
mov r12, rax
mov rax, r10
sub rax, r8
cmp r12, rax
ja 0x1400abca4
lea rax, str.Sparse_solver_returned_code:
cmp r10, 0x10
lea rdi, [r12 + r8]
mov qword [rbp + 0x980], rdi
lea rdi, [rbp + 0x970]
cmovae rdi, qword [rdi]
lea rsi, [rax + r12]
cmp rsi, rdi
ja 0x1400abc71
mov rsi, r12
inc r8
lea rcx, [r12 + rdi]
mov rdx, rdi
call sub.VCRUNTIME140.dll_memmove
mov rcx, rdi
lea rdx, str.Sparse_solver_returned_code:
mov r8, rsi
call fcn.1400fa8d0
lea rax, str.Sparse_solver_returned_code:
add rdi, rsi
mov rcx, rdi
lea r9, [r12 + rsi]
sub r12, rsi
mov r8, r12
lea rdx, [rax + r9]
call fcn.1400fa8d0
lea rdx, [rbp + 0x970]
xor eax, eax
mov qword [rbp + 0x990], rax
mov qword [rbp + 0x9a0], rax
mov qword [rbp + 0x9a8], rax
movups xmm0, xmmword [rdx]
movups xmmword [rbp + 0x990], xmm0
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rbp + 0x9a0], xmm1
mov qword [rdx + 0x10], 0
mov rcx, rbx
mov qword [rdx + 0x18], 0xf
lea r8, [rbp + 0x990]
mov byte [rdx], 0
mov edx, 1
call fcn.1400f5c70
nop
mov rcx, r12
mov rdx, rbx
call fcn.1400e3aa0
mov r14, qword [r12 + 8]
mov rcx, qword [r12]
jmp 0x1400ab95c
lea rax, str.Sparse_solver_returned_code:
lea rsi, [r8 + rdi]
cmp rax, rsi
ja 0x1400abbb9
lea rax, str.Sparse_solver_returned_code:
mov rsi, rdi
mov r9, rax
sub rsi, rax
xor r10d, r10d
cmp rdi, r9
cmovbe rsi, r10
jmp 0x1400abbbc
mov rsi, rsp
lea rcx, [rbp + 0x970]
mov rdx, r12
xor r9d, r9d
movzx r8d, byte [rbp]
lea rax, str.Sparse_solver_returned_code:
mov qword [rsi + 0x20], rax
mov qword [rsi + 0x28], r12
call fcn.140052b40
mov rdx, rax
jmp 0x1400abc04
mov rdx, rsi
lea rcx, [rbp + 0x970]
movzx r8d, byte [rbp]
mov qword [rcx + 0x10], 0
call fcn.14000dc30
mov r8, qword [rbp + 0x980]
mov r10, qword [rbp + 0x988]
jmp 0x1400abb4a
mov ecx, 0x210
mov dword [rbp + 8], 0
call fcn.14013ad58
mov rbx, rax
mov qword [rbp], rbx
test rbx, rbx
je 0x1400abd43
mov rcx, rbx
mov dword [rbp + 8], 1
call fcn.1400ae310
mov dword [rbp + 8], 0
mov qword [0x140190a28], rbx
jmp 0x1400aba77
xor ebx, ebx
jmp 0x1400abd37
mov rbx, qword [rbp + 0x20]
mov rax, qword [rbp + 0x18]
sub rbx, rax
sar rbx, 3
jne 0x1400ac31a
mov rbx, qword [0x140190a38]
xor edx, edx
xor eax, eax
mov dword [rbp + 0x9b0], edx
mov qword [rbp + 0x9b8], rax
mov qword [rbp + 0x9c0], rax
mov dword [rbp + 0xf8], edx
mov qword [rbp + 0x100], rax
mov qword [rbp + 0x108], rax
mov dword [rbp + 0xf0], edx
mov dword [rbp + 0xf4], edx
mov dword [rbp + 0x318], edx
mov qword [rbp + 0x320], rax
mov qword [rbp + 0x328], rax
mov dword [rbp + 0x310], edx
mov dword [rbp + 0x314], edx
mov dword [rbp + 0x538], edx
mov qword [rbp + 0x540], rax
mov qword [rbp + 0x548], rax
mov dword [rbp + 0x530], edx
mov dword [rbp + 0x534], edx
mov dword [rbp + 0x758], edx
mov qword [rbp + 0x760], rax
mov qword [rbp + 0x768], rax
mov dword [rbp + 0x750], edx
mov dword [rbp + 0x754], edx
test rbx, rbx
je 0x1400ac298
add rbx, 0x28
lea rdx, [rbp + 0x60]
mov rcx, rbx
lea r8, [rbp + 0xe0]
movabs r14, 0x3244454c454d
mov qword [r8], r14
call fcn.140095210
mov rax, qword [rbp + 0x60]
mov rcx, qword [rax + 0x28]
mov rdx, qword [rcx]
call qword [rdx + 0x40]
mov rbx, rax
mov r15, qword [0x140190a38]
test r15, r15
je 0x1400ac215
add r15, 0x28
lea rdx, [rbp + 0x70]
mov rcx, r15
lea r8, [rbp + 0xe8]
mov qword [rdx + 0x78], r14
call fcn.140095210
mov rax, qword [rbp + 0x70]
mov rcx, qword [rax + 0x28]
mov rdx, qword [rcx]
call qword [rdx + 0x48]
mov r15, rax
xor r14d, r14d
cmp r15, rbx
je 0x1400ac01a
movsxd rax, esi
shl rax, 3
mov qword [rbp + 8], rax
mov rax, qword [rdi + 0x38]
cmp dword [rax + r14*4], 0xffffffff
jne 0x1400ac00a
mov rcx, qword [rbx]
lea rdx, [rbp + 0x9b0]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov eax, dword [rbp + 0x9b0]
lea rcx, [rbp + 0xf0]
mov r8d, 1
lea edx, [rax + rax*2]
call fcn.1400ac750
mov r8, qword [rbp + 0x9b8]
mov rdx, qword [rbp + 0x100]
mov rax, qword [r13]
cmp r8, qword [rbp + 0x9c0]
je 0x1400abf0b
mov r9d, dword [r8]
lea r10d, [r9 + r9*2 - 3]
movups xmm0, xmmword [rax + r10*8]
movups xmmword [rdx], xmm0
mov r11, qword [rax + r10*8 + 0x10]
mov qword [rdx + 0x10], r11
add r8, 4
add rdx, 0x18
cmp r8, qword [rbp + 0x9c0]
jne 0x1400abee1
mov rax, qword [rdi + 0x28]
lea rcx, [rbp + 0x310]
mov r8d, 1
mov edx, dword [rax + 0x1c]
mov dword [rbp + 0x10], edx
call fcn.1400ac750
mov r8d, dword [rbp + 0x10]
mov eax, r8d
imul eax, r14d
mov r9, qword [rbp + 0xb00]
movsxd rax, eax
movsxd r8, r8d
mov r10, qword [r9]
shl r8, 3
mov rcx, qword [rbp + 0x320]
mov dword [rbp], r14d
lea rdx, [r10 + rax*8]
call fcn.1400fa8d0
mov eax, dword [rbp + 0x9b0]
lea rcx, [rbp + 0x530]
mov r8d, 1
lea edx, [rax + rax*2]
call fcn.1400ac750
mov r8, qword [rbp + 0x9b8]
mov rdx, qword [rbp + 0x540]
mov rax, qword [rbp + 0x18]
cmp r8, qword [rbp + 0x9c0]
je 0x1400abfba
mov r9d, dword [r8]
lea r10d, [r9 + r9*2 - 3]
movups xmm0, xmmword [rax + r10*8]
movups xmmword [rdx], xmm0
mov r11, qword [rax + r10*8 + 0x10]
mov qword [rdx + 0x10], r11
add r8, 4
add rdx, 0x18
cmp r8, qword [rbp + 0x9c0]
jne 0x1400abf90
mov rcx, qword [rbx]
mov r11, rsp
lea rdx, [rbp + 0xf0]
lea r8, [rbp + 0x310]
mov rax, qword [rcx]
lea r9, [rbp + 0x530]
lea r10, [rbp + 0x750]
mov qword [r11 + 0x20], r10
call qword [rax + 0xa8]
mov eax, dword [rbp]
imul eax, esi
movsxd rax, eax
mov r9, qword [r12]
mov rdx, qword [rbp + 0x760]
mov r8, qword [rbp + 8]
lea rcx, [r9 + rax*8]
call fcn.1400fa8d0
add rbx, 8
inc r14
cmp r15, rbx
jne 0x1400abe8c
mov rcx, qword [rbp + 0x760]
test rcx, rcx
je 0x1400ac039
lea rax, [rbp + 0x770]
cmp rcx, rax
je 0x1400ac039
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
mov rcx, qword [rbp + 0x540]
test rcx, rcx
je 0x1400ac058
lea rax, [rbp + 0x550]
cmp rcx, rax
je 0x1400ac058
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
mov rcx, qword [rbp + 0x320]
test rcx, rcx
je 0x1400ac077
lea rax, [rbp + 0x330]
cmp rcx, rax
je 0x1400ac077
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
mov rcx, qword [rbp + 0x100]
test rcx, rcx
je 0x1400ac096
lea rax, [rbp + 0x110]
cmp rcx, rax
je 0x1400ac096
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
mov rcx, qword [rbp + 0x9b8]
test rcx, rcx
je 0x1400ac0b5
lea rax, [rbp + 0x9c8]
cmp rcx, rax
je 0x1400ac0b5
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
mov rax, qword [rbp + 0x48]
test rax, rax
je 0x1400ac107
mov rdx, qword [rbp + 0x58]
mov rcx, rax
sub rdx, rax
and rdx, 0xfffffffffffffff8
cmp rdx, 0x1000
jb 0x1400ac0f4
mov rcx, qword [rax - 8]
sub rax, rcx
add rdx, 0x27
cmp rax, 8
jb 0x1400ac20e
cmp rax, 0x27
ja 0x1400ac20e
call fcn.14013ad50
xor eax, eax
mov qword [rbp + 0x48], rax
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x58], rax
mov rax, qword [rbp + 0x30]
test rax, rax
je 0x1400ac159
mov rdx, qword [rbp + 0x40]
mov rcx, rax
sub rdx, rax
and rdx, 0xfffffffffffffff8
cmp rdx, 0x1000
jb 0x1400ac146
mov rcx, qword [rax - 8]
sub rax, rcx
add rdx, 0x27
cmp rax, 8
jb 0x1400ac207
cmp rax, 0x27
ja 0x1400ac207
call fcn.14013ad50
xor eax, eax
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x38], rax
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0x18]
test rax, rax
je 0x1400ac1a3
mov rdx, qword [rbp + 0x28]
mov rcx, rax
sub rdx, rax
and rdx, 0xfffffffffffffff8
cmp rdx, 0x1000
jb 0x1400ac190
mov rcx, qword [rax - 8]
sub rax, rcx
add rdx, 0x27
cmp rax, 8
jb 0x1400ac200
cmp rax, 0x27
ja 0x1400ac200
call fcn.14013ad50
xor eax, eax
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rax
mov rcx, qword [rbp + 0xac8]
mov qword [rbp + 0xac8], 0
xor rcx, rbp
cmp rcx, qword [0x14018b5c0]
jne 0x1400ac1fb
mov rbx, qword [rbp + 0xc0]
mov rsi, qword [rbp + 0xb0]
mov rdi, qword [rbp + 0xb8]
mov r12, qword [rbp + 0x90]
mov r13, qword [rbp + 0x98]
mov r14, qword [rbp + 0xa0]
mov r15, qword [rbp + 0xa8]
lea rsp, [rbp + 0xad0]
pop rbp
ret
call fcn.14013ad30
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov ecx, 0x38
mov dword [rbp + 0x10], 0
call fcn.14013ad58
mov r15, rax
mov qword [rbp + 8], r15
test r15, r15
je 0x1400ac293
mov ecx, 0x10
xor eax, eax
mov dword [rbp + 0x10], 1
mov qword [rbp], r15
mov qword [r15], rax
mov qword [r15 + 8], rax
mov qword [r15 + 0x10], rax
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x20], rax
call fcn.14013ad58
test rax, rax
je 0x1400ac269
mov qword [rax + 8], 0
mov qword [r15], rax
lea rcx, [r15 + 0x28]
mov qword [rax], r15
lea rdx, [rbp + 0x81]
call fcn.14000c860
nop
mov dword [rbp + 0x10], 0
mov qword [0x140190a38], r15
jmp 0x1400abe49
xor r15d, r15d
jmp 0x1400ac287
mov ecx, 0x38
mov dword [rbp + 0x10], 0
call fcn.14013ad58
mov rbx, rax
mov qword [rbp + 8], rbx
test rbx, rbx
je 0x1400ac316
mov ecx, 0x10
xor eax, eax
mov dword [rbp + 0x10], 1
mov qword [rbp], rbx
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
call fcn.14013ad58
test rax, rax
je 0x1400ac2ec
mov qword [rax + 8], 0
mov qword [rbx], rax
lea rcx, [rbx + 0x28]
mov qword [rax], rbx
lea rdx, [rbp + 0x80]
call fcn.14000c860
nop
mov dword [rbp + 0x10], 0
mov qword [0x140190a38], rbx
jmp 0x1400abe04
xor ebx, ebx
jmp 0x1400ac30a
lea rdx, [rax + rbx*8]
cmp rax, rdx
je 0x1400abd5c
lea r9, [rbx*8 + 7]
shr r9, 3
cmp r9, 8
jb 0x1400ac41a
mov r8, rax
and r8, 0xf
je 0x1400ac359
test r8, 7
jne 0x1400ac41a
mov r8d, 1
lea rdx, [r8 + 8]
cmp r9, rdx
jb 0x1400ac41a
mov rdx, r9
xor ebx, ebx
sub rdx, r8
and rdx, 7
neg rdx
add rdx, r9
test r8, r8
jbe 0x1400ac3a0
movsd xmm0, qword [rax + rbx*8]
xorps xmm0, xmmword [0x140145e70]
movsd qword [rax + rbx*8], xmm0
inc rbx
cmp rbx, r8
jb 0x1400ac37d
nop dword [rax]
nop dword [rax]
movups xmm0, xmmword [rax + r8*8]
movups xmm1, xmmword [rax + r8*8 + 0x10]
movups xmm2, xmmword [rax + r8*8 + 0x20]
movups xmm3, xmmword [rax + r8*8 + 0x30]
xorps xmm0, xmmword [0x140146410]
xorps xmm1, xmmword [0x140146410]
xorps xmm2, xmmword [0x140146410]
xorps xmm3, xmmword [0x140146410]
movups xmmword [rax + r8*8], xmm0
movups xmmword [rax + r8*8 + 0x10], xmm1
movups xmmword [rax + r8*8 + 0x20], xmm2
movups xmmword [rax + r8*8 + 0x30], xmm3
add r8, 8
cmp r8, rdx
jb 0x1400ac3a0
cmp rdx, r9
jae 0x1400abd5c
movsd xmm0, qword [rax + rdx*8]
xorps xmm0, xmmword [0x140145e70]
movsd qword [rax + rdx*8], xmm0
inc rdx
cmp rdx, r9
jb 0x1400ac3fc
jmp 0x1400abd5c
xor edx, edx
jmp 0x1400ac3f3
mov ecx, 0x210
mov dword [rbp + 8], 0
call fcn.14013ad58
mov rbx, rax
mov qword [rbp], rbx
test rbx, rbx
je 0x1400ac45d
mov rcx, rbx
mov dword [rbp + 8], 1
call fcn.1400ae310
mov dword [rbp + 8], 0
mov qword [0x140190a28], rbx
jmp 0x1400aba96
xor ebx, ebx
jmp 0x1400ac451
mov r8, rsi
neg r14d
mov eax, 0xcccccccd
lea rdi, [r8 - 1]
mul r14d
shr edx, 3
lea r9d, [rdx + rdx*4]
add r9d, r9d
sub r14d, r9d
add r14d, 0x30
mov byte [rdi], r14b
mov r14d, edx
mov r8, rdi
test r14d, r14d
jne 0x1400ac467
mov byte [rdi - 1], 0x2d
lea r9, [rdi - 1]
jmp 0x1400abad1
shr r14, 3
cmp r14, 4
jb 0x1400ac4e2
mov rbx, r14
and rbx, 0xfffffffffffffffc
pxor xmm0, xmm0
movups xmmword [rcx + rax*8], xmm0
movups xmmword [rcx + rax*8 + 0x10], xmm0
add rax, 4
cmp rax, rbx
jb 0x1400ac4b4
cmp rbx, r14
jae 0x1400ab99b
xor eax, eax
mov qword [rcx + rbx*8], rax
inc rbx
cmp rbx, r14
jb 0x1400ac4d1
jmp 0x1400ab99b
xor ebx, ebx
jmp 0x1400ac4c6
sub r14, rcx
xor edx, edx
and r14, 0xfffffffffffffff8
mov r8, r14
call fcn.1400fa7b0
jmp 0x1400ab99b
lea rax, [rcx + rbx*8]
mov qword [r12 + 8], rax
mov r14, qword [r12 + 8]
jmp 0x1400ab95c