Function at 0x140035820
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r13, qword [rsp + 0xa0]
lea rbx, [rcx + 0x10]
movsxd r15, edx
mov r11, r8
mov qword [rsp + 0x28], r8
mov r10, rcx
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x38], rbx
lea rax, [r15 + r15*2]
lea rdi, [rax*8]
mov rax, qword [rbx]
mov qword [rsp + 0x30], rdi
mov rsi, qword [rdi + rax]
mov rbp, qword [rdi + rax + 8]
cmp rsi, rbp
je 0x140035ab8
nop
mov rax, qword [r10 + 8]
movsxd rcx, dword [rsi]
movsxd rax, dword [rax + 4]
mov rax, qword [rax + r10 + 0x30]
mov r14, qword [rax + rcx*8]
shr r14, 0x20
movsxd r8, r14d
test r14d, r14d
js 0x1400358da
mov r9, qword [r13 + 8]
lea rcx, [r8 + r8*2]
movsxd rax, dword [r9 + 8]
mov rax, qword [rax + r13 + 0x30]
lea rdx, [rax + rcx*8]
mov rax, qword [rax + rcx*8 + 8]
mov rcx, rax
sub rcx, qword [rdx]
sar rcx, 2
test ecx, ecx
je 0x1400358da
movsxd rcx, dword [r9 + 4]
movsxd rdx, dword [rax - 4]
mov rax, qword [rcx + r13 + 0x30]
mov ecx, dword [rax + rdx*8]
jmp 0x1400358df
mov ecx, 0xffffffff
cmp ecx, 0xffffffff
jle 0x140035a71
cmp r14d, r15d
je 0x140035a71
lea rax, [r8 + r8*2]
lea r12, [rax*8]
mov rax, qword [rbx]
mov rbx, qword [r12 + rax]
mov rdi, qword [r12 + rax + 8]
cmp rbx, rdi
je 0x1400359a5
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r10 + 8]
movsxd rcx, dword [rbx]
movsxd rax, dword [rax + 4]
mov rax, qword [rax + r10 + 0x30]
mov r8, qword [rax + rcx*8]
shr r8, 0x20
test r8d, r8d
js 0x140035998
mov r9, qword [r13 + 8]
movsxd rax, r8d
movsxd rdx, dword [r9 + 8]
lea rcx, [rax + rax*2]
mov rax, qword [rdx + r13 + 0x30]
lea rdx, [rax + rcx*8]
mov rax, qword [rax + rcx*8 + 8]
mov rcx, rax
sub rcx, qword [rdx]
sar rcx, 2
test ecx, ecx
je 0x140035998
movsxd rdx, dword [rax - 4]
movsxd rcx, dword [r9 + 4]
mov rax, qword [rcx + r13 + 0x30]
cmp dword [rax + rdx*8], 0xffffffff
jle 0x140035998
mov edx, r14d
mov rcx, r11
call fcn.140034ee0
test al, al
je 0x140035d50
mov r10, qword [rsp + 0x20]
mov r11, qword [rsp + 0x28]
add rbx, 4
cmp rbx, rdi
jne 0x140035920
mov rax, qword [r10 + 0x28]
mov rbx, qword [rax + r12]
mov rdi, qword [rax + r12 + 8]
cmp rbx, rdi
je 0x140035a6d
mov r12, qword [rsp + 0x28]
mov rax, qword [r10 + 8]
movsxd rcx, dword [rbx]
movsxd r9, dword [rax + 4]
mov rax, qword [r10 + r9 + 0x30]
movsxd rdx, dword [rax + rcx*8]
test edx, edx
js 0x140035a60
mov r11, qword [r13 + 8]
lea rcx, [rdx + rdx*2]
movsxd rax, dword [r11 + 8]
mov rax, qword [rax + r13 + 0x30]
lea r8, [rax + rcx*8]
mov rax, qword [rax + rcx*8 + 8]
mov rcx, rax
sub rcx, qword [r8]
sar rcx, 2
test ecx, ecx
je 0x140035a5b
movsxd r8, dword [rax - 4]
movsxd rax, dword [r11 + 4]
mov rcx, qword [rax + r13 + 0x30]
cmp dword [rcx + r8*8], 0xffffffff
jle 0x140035a5b
mov rax, qword [rsp + 0x38]
cmp r15d, dword [r9 + rax]
jge 0x140035a84
cmp edx, dword [r9 + rax + 4]
jge 0x140035a84
mov rax, qword [r9 + rax + 8]
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rax + rcx]
cmp dword [rcx + rdx*4], 0
jge 0x140035a5b
cmp edx, r14d
je 0x140035a5b
cmp edx, r15d
je 0x140035a5b
mov r8d, r14d
mov rcx, r12
call fcn.140034ee0
test al, al
je 0x140035d50
mov r10, qword [rsp + 0x20]
add rbx, 4
cmp rbx, rdi
jne 0x1400359c0
lea rbx, [r10 + 0x10]
add rsi, 4
cmp rsi, rbp
je 0x140035ab3
mov r11, qword [rsp + 0x28]
jmp 0x140035880
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 rdi, qword [rsp + 0x30]
mov rax, qword [r10 + 0x28]
mov rsi, qword [rax + rdi]
mov rbp, qword [rax + rdi + 8]
cmp rsi, rbp
je 0x140035db2
nop
mov rax, qword [r10 + 8]
movsxd rcx, dword [rsi]
movsxd rax, dword [rax + 4]
mov rax, qword [rax + r10 + 0x30]
movsxd r12, dword [rax + rcx*8]
cmp r12d, r15d
je 0x140035d0b
test r12d, r12d
js 0x140035d0b
mov r8, qword [r13 + 8]
lea rcx, [r12 + r12*2]
lea r14, [rcx*8]
movsxd rax, dword [r8 + 8]
mov rcx, qword [rax + r13 + 0x30]
mov rax, qword [r14 + rcx + 8]
mov rdx, rax
sub rdx, qword [r14 + rcx]
sar rdx, 2
test edx, edx
je 0x140035d0b
movsxd rdx, dword [rax - 4]
movsxd rax, dword [r8 + 4]
mov rcx, qword [rax + r13 + 0x30]
cmp dword [rcx + rdx*8], 0xffffffff
jle 0x140035d0b
mov rax, qword [rbx]
mov rbx, qword [rax + r14]
mov rdi, qword [rax + r14 + 8]
cmp rbx, rdi
je 0x140035c1a
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r10 + 8]
movsxd rcx, dword [rbx]
movsxd r9, dword [rax + 4]
mov rax, qword [r10 + r9 + 0x30]
mov r8, qword [rax + rcx*8]
shr r8, 0x20
test r8d, r8d
js 0x140035c0d
mov r10, qword [r13 + 8]
movsxd r11, r8d
movsxd rax, dword [r10 + 8]
lea rcx, [r11 + r11*2]
mov rax, qword [rax + r13 + 0x30]
lea rdx, [rax + rcx*8]
mov rax, qword [rax + rcx*8 + 8]
mov rcx, rax
sub rcx, qword [rdx]
sar rcx, 2
test ecx, ecx
je 0x140035c08
movsxd rdx, dword [rax - 4]
movsxd rcx, dword [r10 + 4]
mov rax, qword [rcx + r13 + 0x30]
cmp dword [rax + rdx*8], 0xffffffff
jle 0x140035c08
cmp r8d, r15d
je 0x140035c08
mov rax, qword [rsp + 0x38]
cmp r15d, dword [r9 + rax]
jge 0x140035d21
cmp r8d, dword [r9 + rax + 4]
jge 0x140035d21
mov rax, qword [r9 + rax + 8]
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rax + rcx]
cmp dword [rcx + r11*4], 0
jge 0x140035c08
mov rcx, qword [rsp + 0x28]
mov edx, r12d
call fcn.140034ee0
test al, al
je 0x140035d50
mov r10, qword [rsp + 0x20]
add rbx, 4
cmp rbx, rdi
jne 0x140035b60
mov rax, qword [r10 + 0x28]
mov rbx, qword [rax + r14]
mov rdi, qword [rax + r14 + 8]
cmp rbx, rdi
je 0x140035d0b
mov rax, qword [r10 + 8]
movsxd rcx, dword [rbx]
movsxd r8, dword [rax + 4]
mov rax, qword [r10 + r8 + 0x30]
movsxd r9, dword [rax + rcx*8]
test r9d, r9d
js 0x140035cfe
mov r10, qword [r13 + 8]
lea rax, [r9 + r9*2]
lea r14, [rax*8]
movsxd rax, dword [r10 + 8]
mov rcx, qword [rax + r13 + 0x30]
mov rax, qword [r14 + rcx + 8]
mov rdx, rax
sub rdx, qword [r14 + rcx]
sar rdx, 2
test edx, edx
je 0x140035cf9
movsxd rdx, dword [rax - 4]
movsxd rcx, dword [r10 + 4]
mov rax, qword [rcx + r13 + 0x30]
cmp dword [rax + rdx*8], 0xffffffff
jle 0x140035cf9
cmp r9d, r15d
je 0x140035cf9
cmp r9d, r12d
je 0x140035cf9
mov rax, qword [rsp + 0x38]
mov edx, dword [r8 + rax]
cmp r15d, edx
jge 0x140035d83
mov ecx, dword [r8 + rax + 4]
cmp r9d, ecx
jge 0x140035d83
mov r8, qword [r8 + rax + 8]
mov rax, qword [rsp + 0x30]
mov rax, qword [r8 + rax]
cmp dword [rax + r9*4], 0
jge 0x140035cf9
cmp r9d, edx
jge 0x140035d54
cmp r15d, ecx
jge 0x140035d54
mov rax, qword [r8 + r14]
cmp dword [rax + r15*4], 0
jge 0x140035cf9
mov rcx, qword [rsp + 0x28]
mov r8d, r12d
mov edx, r9d
call fcn.140034ee0
test al, al
je 0x140035d50
mov r10, qword [rsp + 0x20]
add rbx, 4
cmp rbx, rdi
jne 0x140035c30
add rsi, 4
cmp rsi, rbp
je 0x140035db2
lea rbx, [r10 + 0x10]
jmp 0x140035ad0
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
xor al, al
jmp 0x140035db4
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 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 al, 1
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret