Function at 0x14003adc0
Capabilities:
Terminate process

Disassembly:
push rbp
push rsi
push r15
sub rsp, 0x50
mov rax, qword [rcx - 0x70]
mov rsi, rcx
movsxd rbp, r8d
movsxd r15, edx
movsxd r8, dword [rax + 4]
add r8, rcx
mov r11, qword [r8 - 0x48]
mov r9, qword [r8 - 0x40]
sub r9, r11
sar r9, 3
cmp r15d, dword [r8 - 0x68]
jge 0x140026ead
cmp ebp, dword [r8 - 0x64]
jge 0x140026ead
mov rax, qword [r8 - 0x60]
lea rcx, [r15 + r15*2]
mov r10, qword [rsi - 0x68]
mov rdx, qword [rsi - 0x20]
mov r8, qword [rsi - 0x38]
mov qword [rsp + 0x88], rbx
lea rbx, [rcx*8]
mov rcx, qword [rax + rcx*8]
lea rax, [rbp*2]
mov qword [rsp + 0x48], rdi
add rax, rbp
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r13
movsxd rdi, dword [rcx + rbp*4]
mov rcx, qword [rbx + r10 + 8]
lea r12, [rax*8]
mov rax, qword [rsi - 0x50]
mov qword [rsp + 0x20], rbx
lea rbx, [rdi*4]
mov qword [rsp + 0x30], r14
movsxd r14, dword [rbx + rdx]
movsxd r13, dword [rbx + r8]
mov rax, qword [rax + r12 + 8]
movsxd rdx, r9d
mov r9, qword [r11 + rdx*8 - 8]
lea r11, [rdx*4 - 4]
movsxd r8, dword [r11 + r8]
movsxd rdx, r9d
shr r9, 0x20
lea rdx, [rdx + rdx*2]
mov rdx, qword [r10 + rdx*8]
mov dword [rdx + r8*4], edi
movsxd rdx, r9d
mov r9, qword [rsi - 0x50]
lea r10, [rdx + rdx*2]
mov rdx, qword [rsi - 0x20]
movsxd r8, dword [rdx + r11]
mov rdx, qword [r9 + r10*8]
mov r9, qword [rsp + 0x20]
mov dword [rdx + r8*4], edi
mov r8, qword [rsi - 0x38]
mov rdi, qword [rsp + 0x48]
mov edx, dword [r11 + r8]
mov dword [rbx + r8], edx
mov r8, qword [rsi - 0x20]
mov edx, dword [r11 + r8]
mov dword [rbx + r8], edx
mov r8, qword [rsi - 0x68]
mov rbx, qword [rsp + 0x88]
mov r10, qword [r9 + r8]
mov rdx, qword [r9 + r8 + 8]
sub rdx, r10
sar rdx, 2
dec edx
cmp r13d, edx
jge 0x140026e34
mov edx, dword [rcx - 4]
mov dword [r10 + r13*4], edx
movsxd rdx, dword [rcx - 4]
mov rcx, qword [rsi - 0x38]
mov dword [rcx + rdx*4], r13d
mov r8, qword [rsi - 0x68]
add qword [r9 + r8 + 8], 0xfffffffffffffffc
mov rdx, qword [rsi - 0x50]
mov r13, qword [rsp + 0x38]
mov r8, qword [r12 + rdx]
mov rcx, qword [r12 + rdx + 8]
sub rcx, r8
sar rcx, 2
dec ecx
cmp r14d, ecx
jge 0x140026e71
mov ecx, dword [rax - 4]
mov dword [r8 + r14*4], ecx
movsxd rcx, dword [rax - 4]
mov rax, qword [rsi - 0x20]
mov dword [rax + rcx*4], r14d
mov rdx, qword [rsi - 0x50]
add qword [r12 + rdx + 8], 0xfffffffffffffffc
mov r8d, ebp
add qword [rsi - 0x30], 0xfffffffffffffffc
mov edx, r15d
add qword [rsi - 0x18], 0xfffffffffffffffc
mov rax, qword [rsi - 0x70]
movsxd rcx, dword [rax + 4]
add rcx, 0xffffffffffffff90
add rcx, rsi
mov r14, qword [rsp + 0x30]
mov r12, qword [rsp + 0x40]
add rsp, 0x50
pop r15
pop rsi
pop rbp
jmp fcn.140026400
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, str.matrix_out_of_memory1
call fcn.1400092d0
lea rdx, [0x1400094a0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rax, qword [rcx - 0x10]
mov esi, r8d
mov ebp, edx
mov rdi, rcx
movsxd r9, dword [rax + 0xc]
cmp byte [r9 + rcx + 0xa8], 0
je 0x14003ae64
movsxd rax, dword [r9 + rcx + 0xac]
test eax, eax
js 0x14003ae19
imul rdx, rax, 0x78
add rdx, qword [r9 + rcx + 0x78]
mov rax, qword [rdx + 8]
movsxd rcx, dword [rax + 4]
add rcx, 8
add rcx, rdx
mov edx, ebp
call fcn.140027690
test al, al
jne 0x14003ae64
mov rax, qword [rdi - 0x10]
mov r8d, esi
mov qword [rsp + 0x30], rbx
movsxd rbx, dword [rax + 0xc]
add rbx, rdi
movsxd rdx, dword [rbx + 0xac]
mov rax, qword [rbx + 0x90]
imul rcx, rdx, 0x78
lea r9, [rax + rdx*4]
mov edx, ebp
add rcx, qword [rbx + 0x78]
mov r10, qword [rcx]
call qword [r10]
movsxd rcx, dword [rbx + 0xac]
mov rax, qword [rbx + 0x90]
mov rbx, qword [rsp + 0x30]
inc dword [rax + rcx*4]
mov rax, qword [rdi - 0x10]
mov r8d, esi
add rdi, 0x68
mov edx, ebp
movsxd rcx, dword [rax + 8]
add rcx, rdi
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
jmp 0x140026ce0
movsxd rax, dword [rcx - 4]
sub rcx, rax
jmp 0x14003adc0