Function at 0x140049130
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x150
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x88], r14
mov r14, rcx
mov qword [rbp + 0x90], r15
mov qword [rbp + 0x80], r13
mov qword [rbp + 0xb0], r12
mov r12, r8
mov eax, dword [r14 + 8]
mov qword [rbp + 0xa8], rdi
mov rdi, r9
mov qword [rbp + 0xa0], rsi
mov rsi, rdx
mov qword [rbp + 0x98], rbx
mov qword [rbp + 0x78], 0xfffffffffffffffe
cmp eax, dword [r14 + 0xc]
je 0x1400491de
lea rax, vtable.std::exception.0
pxor xmm0, xmm0
mov qword [rbp], rax
movdqu xmmword [rbp + 8], xmm0
movups xmm0, xmmword [0x140145670]
lea rcx, [rbp + 0x40]
movups xmmword [rcx], xmm0
lea rdx, [rbp + 8]
lea rax, str.Not_implemented_for_a_non_square_matrix
mov qword [rcx], rax
call sub.VCRUNTIME140.dll___std_exception_copy
lea rdx, [0x140145680]
lea rcx, [rbp]
lea rax, vtable.std::out_of_range.0
mov qword [rcx], rax
call sub.VCRUNTIME140.dll__CxxThrowException
mov rax, qword [rsi + 8]
xor edx, edx
sub rax, qword [rsi]
mov ebx, dword [rbp + 0x110]
movsxd rbx, ebx
sar rax, 3
div rbx
mov rcx, qword [r12 + 8]
xor edx, edx
mov r15, qword [r12]
mov r12d, eax
mov qword [rbp + 0xb8], rcx
sub rcx, r15
sar rcx, 3
mov rax, rcx
div rbx
mov r13, qword [r14 + 0x78]
mov dword [rbp + 0xc0], eax
mov r13d, dword [r13]
lea r8d, [r12 + r13]
add r8d, eax
cmp r8d, dword [r14 + 8]
je 0x140049283
lea rcx, vtable.std::exception.0
pxor xmm0, xmm0
mov qword [rbp + 0x20], rcx
movdqu xmmword [rbp + 0x28], xmm0
movups xmm0, xmmword [0x140145670]
lea rcx, [rbp + 0x50]
movups xmmword [rcx], xmm0
lea rdx, [rbp + 0x28]
lea r8, str.Bad_size_of_input_arrays__du__dFspc__dFmpc_.
mov qword [rcx], r8
call sub.VCRUNTIME140.dll___std_exception_copy
lea rdx, [0x140145680]
lea rcx, [rbp + 0x20]
lea r8, vtable.std::out_of_range.0
mov qword [rcx], r8
call sub.VCRUNTIME140.dll__CxxThrowException
lea rcx, [rbp + 0x60]
call fcn.14002d570
nop
mov r9d, ebx
imul r9d, r13d
mov rax, qword [rbp + 0x68]
mov r11, rax
mov rcx, qword [rbp + 0x60]
sub r11, rcx
movsxd r9, r9d
sar r11, 3
cmp r9, r11
jb 0x1400496dc
jbe 0x1400492f9
mov r10, qword [rbp + 0x70]
sub r10, rcx
sar r10, 3
cmp r9, r10
ja 0x14004955c
sub r9, r11
mov rcx, rax
xor edx, edx
mov qword [rbp + 0x18], r9
mov qword [rbp + 0x38], rax
lea r8, [r9*8]
call fcn.1400fa7b0
mov rax, qword [rbp + 0x38]
mov r9, qword [rbp + 0x18]
lea rax, [rax + r9*8]
mov rcx, qword [rbp + 0x60]
mov qword [rbp + 0x68], rax
xor r9d, r9d
mov qword [rbp + 0x18], r9
mov qword [rbp + 0x38], r9
mov r10, qword [rbp + 0x18]
mov r11, qword [rbp + 0x38]
cmp r10, r11
je 0x1400496c6
cmp rcx, rax
je 0x140049345
sub rax, rcx
add rax, 7
mov r8, rax
shr r8, 3
cmp rax, 0xc
jbe 0x140049685
shl r8, 3
xor edx, edx
call fcn.1400fa7b0
mov rax, qword [rbp + 0x68]
mov rcx, qword [rbp + 0x60]
mov rdx, qword [r14 + 0x10]
mov r8, qword [r14 + 0x28]
mov r9, qword [r14 + 0x40]
cmp byte [r14 + 0x58], 0
je 0x140049361
mov dword [rbp + 0x18], 0xffffffff
jmp 0x140049368
mov dword [rbp + 0x18], 0
mov r10, rsp
cmp rcx, rax
mov r11d, dword [rbp + 0x18]
mov rsi, qword [rsi]
mov dword [r10 + 0x20], r11d
mov r11, qword [rbp + 0x100]
mov qword [r10 + 0x38], rsi
mov esi, 0
cmove rcx, rsi
mov r11, qword [r11]
mov qword [r10 + 0x28], r11
mov r11, qword [rbp + 0x108]
mov qword [r10 + 0x40], rcx
mov ecx, dword [r14 + 8]
mov r11, qword [r11]
mov qword [r10 + 0x30], r11
cmp r15, qword [rbp + 0xb8]
mov dword [r10 + 0x50], r12d
lea r12, [rbp + 0x1c]
cmove r15, rsi
mov qword [r10 + 0x48], r15
mov dword [r10 + 0x58], r13d
mov eax, dword [rbp + 0xc0]
mov dword [r10 + 0x60], eax
mov dword [r10 + 0x68], ebx
mov qword [r10 + 0x70], r12
call sub.k2fem2Dfortran64.dll_LINSYSV3_FORSOLVESYSTEMNUMERIC
test r13d, r13d
jle 0x1400494d3
mov rax, rsp
mov rdx, rdi
mov r9d, 1
lea r8, [rbp + 0x60]
mov rcx, qword [r14 + 0x78]
mov dword [rax + 0x20], ebx
call fcn.1400a04d0
mov rcx, qword [rbp + 0x68]
mov rsi, qword [rbp + 0x60]
sub rcx, rsi
sar rcx, 3
jne 0x14004957c
mov r13, qword [r14 + 0x80]
xor r8d, r8d
mov r9, qword [rdi]
mov r10, qword [r13]
test ebx, ebx
jbe 0x1400494d7
xor edi, edi
mov r11, qword [r13 + 8]
mov r12, r9
sub r11, qword [r13]
and r11, 0xfffffffffffffffc
lea rax, [r10 + r11]
cmp r10, rax
je 0x1400494c7
add r11, 3
mov rcx, rdi
mov rax, r11
mov r14d, 1
mov rdx, rcx
shr rax, 3
je 0x1400494a3
cmp dword [r10 + rcx*8], 0xffffffff
jne 0x140049474
mov r14, qword [rsi]
add rsi, 8
mov qword [rdx + r9], r14
cmp dword [r10 + rcx*8 + 4], 0xffffffff
jne 0x140049488
mov r14, qword [rsi]
add rsi, 8
mov qword [rdx + r9 + 8], r14
inc rcx
add rdx, 0x10
cmp rcx, rax
jb 0x140049462
mov rax, rcx
lea r14, [rcx + rcx + 1]
shl rax, 4
add r9, rax
shr r11, 2
lea rax, [r14 - 1]
cmp rax, r11
jae 0x1400494c7
cmp dword [r10 + r14*4 - 4], 0xffffffff
lea r9, [r12 + r14*8]
jne 0x1400494c7
mov rax, qword [rsi]
add rsi, 8
mov qword [r9 - 8], rax
inc r8d
cmp r8d, ebx
jb 0x140049431
mov rsi, qword [rbp + 0x60]
mov ebx, dword [rbp + 0x1c]
test rsi, rsi
je 0x140049520
mov rdx, qword [rbp + 0x70]
mov rcx, rsi
sub rdx, rsi
and rdx, 0xfffffffffffffff8
cmp rdx, 0x1000
jb 0x14004950d
mov rcx, qword [rsi - 8]
sub rsi, rcx
add rdx, 0x27
cmp rsi, 8
jb 0x140049575
cmp rsi, 0x27
ja 0x140049575
call fcn.14013ad50
xor edx, edx
mov qword [rbp + 0x60], rdx
mov qword [rbp + 0x68], rdx
mov qword [rbp + 0x70], rdx
mov rsi, qword [rbp + 0xa0]
mov eax, ebx
mov rbx, qword [rbp + 0x98]
mov rdi, qword [rbp + 0xa8]
mov r12, qword [rbp + 0xb0]
mov r13, qword [rbp + 0x80]
mov r14, qword [rbp + 0x88]
mov r15, qword [rbp + 0x90]
lea rsp, [rbp + 0xd0]
pop rbp
ret
mov rdx, r9
lea rcx, [rbp + 0x60]
call fcn.1400e3aa0
mov rax, qword [rbp + 0x68]
mov rcx, qword [rbp + 0x60]
jmp 0x1400492f9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
lea rax, [rsi + rcx*8]
cmp rsi, rax
je 0x140049416
lea rax, [rcx*8 + 7]
shr rax, 3
cmp rax, 8
jb 0x140049680
mov r9, rsi
and r9, 0xf
je 0x1400495bb
test r9, 7
jne 0x140049680
mov r9d, 1
lea rcx, [r9 + 8]
cmp rax, rcx
jb 0x140049680
mov r10, rax
xor r8d, r8d
sub r10, r9
mov rcx, rsi
and r10, 7
neg r10
add r10, rax
test r9, r9
jbe 0x140049600
movsd xmm0, qword [rcx]
inc r8
xorps xmm0, xmmword [0x140145e70]
movsd qword [rcx], xmm0
add rcx, 8
cmp r8, r9
jb 0x1400495e3
nop
movups xmm0, xmmword [rsi + r9*8]
movups xmm1, xmmword [rsi + r9*8 + 0x10]
movups xmm2, xmmword [rsi + r9*8 + 0x20]
movups xmm3, xmmword [rsi + r9*8 + 0x30]
xorps xmm0, xmmword [0x140146410]
xorps xmm1, xmmword [0x140146410]
xorps xmm2, xmmword [0x140146410]
xorps xmm3, xmmword [0x140146410]
movups xmmword [rsi + r9*8], xmm0
movups xmmword [rsi + r9*8 + 0x10], xmm1
movups xmmword [rsi + r9*8 + 0x20], xmm2
movups xmmword [rsi + r9*8 + 0x30], xmm3
add r9, 8
cmp r9, r10
jb 0x140049600
lea rcx, [rsi + r10*8]
cmp r10, rax
jae 0x140049677
movsd xmm0, qword [rcx]
inc r10
xorps xmm0, xmmword [0x140145e70]
movsd qword [rcx], xmm0
add rcx, 8
cmp r10, rax
jb 0x14004965c
mov rsi, qword [rbp + 0x60]
jmp 0x140049416
xor r10d, r10d
jmp 0x140049653
cmp r8, 4
jb 0x1400496aa
mov r9, r8
xor eax, eax
and r9, 0xfffffffffffffffc
pxor xmm0, xmm0
movups xmmword [rcx + rax*8], xmm0
movups xmmword [rcx + rax*8 + 0x10], xmm0
add rax, 4
cmp rax, r9
jb 0x140049698
cmp r9, r8
jae 0x14004933d
xor eax, eax
mov qword [rcx + r9*8], rax
inc r9
cmp r9, r8
jb 0x1400496b5
jmp 0x14004933d
sub rax, rcx
xor edx, edx
and rax, 0xfffffffffffffff8
mov r8, rax
call fcn.1400fa7b0
jmp 0x14004933d
lea rax, [rcx + r9*8]
mov qword [rbp + 0x68], rax
jmp 0x1400492f9