Function at 0x14003c360
Capabilities:
Terminate process

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x130
mov qword [rax - 0xc8], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
mov rax, qword [0x14020c050]
xor rax, rsp
mov qword [rsp + 0xb0], rax
mov r13, rcx
mov qword [rsp + 0x50], rcx
mov rax, qword [rcx + 0x40]
mov rcx, qword [rax + 8]
sub rcx, qword [rax]
sar rcx, 3
mov qword [rsp + 0x78], rcx
lea r8d, [rcx - 1]
mov dword [rsp + 0x60], r8d
xor r15d, r15d
mov dword [rsp + 0x58], r15d
movsd xmm11, qword [0x1401c4510]
xorps xmm12, xmm12
test r8d, r8d
jle 0x14003ce1b
xor edx, edx
mov qword [rsp + 0x88], rdx
movsd xmm8, qword [0x1401c4558]
movsd xmm9, qword [0x1401c4488]
movsd xmm10, qword [0x1401c4560]
movsd xmm7, qword [0x1401c44a8]
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r13 + 0x40]
mov rcx, qword [rax]
mov rbx, qword [rcx + rdx*8]
mov qword [rsp + 0x68], rbx
cmp dword [rbx + 0x30], 3
jne 0x14003cd68
mov edi, r8d
mov dword [rsp + 0x5c], r8d
cmp r8d, r15d
jle 0x14003cd68
movsxd r13, r8d
mov qword [rsp + 0x80], r13
mov r14, qword [rsp + 0x50]
nop dword [rax + rax]
mov r15, qword [r14 + 0x40]
mov rax, qword [r15]
mov r13, qword [rax + r13*8]
cmp dword [r13 + 0x30], 3
jne 0x14003cd33
mov rsi, qword [r13 + 0xe8]
mov rcx, qword [rsi + 0x50]
mov rbp, qword [rbx + 0xe8]
mov rax, qword [rbp + 0x50]
movsd xmm2, qword [rcx + 0x10]
subsd xmm2, qword [rax + 0x10]
movsd xmm1, qword [rcx + 8]
subsd xmm1, qword [rax + 8]
movsd xmm0, qword [rcx]
subsd xmm0, qword [rax]
mulsd xmm0, xmm0
mulsd xmm1, xmm1
addsd xmm0, xmm1
mulsd xmm2, xmm2
addsd xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movaps xmm6, xmm0
mov rax, qword [rbx + 0x1e8]
movzx ecx, byte [rax + 0xa0]
mov rax, qword [r13 + 0x1e8]
cmp cl, byte [rax + 0xa0]
jne 0x14003c50f
mov eax, dword [rsp + 0x58]
inc eax
cmp edi, eax
je 0x14003cd33
lea rcx, [rbx + 0x38]
mov r8, qword [rcx + 0x10]
mov rax, rcx
mov r9, qword [rcx + 0x18]
cmp r9, 0x10
jb 0x14003c527
mov rax, qword [rcx]
cmp r8, 1
jne 0x14003c545
movzx eax, byte [rax]
cmp al, byte [0x14016fb9c]
jne 0x14003c53c
xor eax, eax
jmp 0x14003c541
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003c587
mov rdx, rcx
cmp r9, 0x10
jb 0x14003c551
mov rdx, qword [rcx]
cmp r8, 3
jne 0x14003c5bb
movzx eax, byte [rdx]
cmp al, byte [0x14016fc88]
jne 0x14003c57e
movzx eax, byte [rdx + 1]
cmp al, byte [0x14016fc89]
jne 0x14003c57e
movzx eax, byte [rdx + 2]
cmp al, byte [0x14016fc8a]
jne 0x14003c57e
xor eax, eax
jmp 0x14003c583
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003c5bb
lea rax, [r13 + 0x38]
mov rdx, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14003c599
mov rax, qword [rax]
cmp rdx, 1
jne 0x14003c5bb
movzx eax, byte [rax]
cmp al, byte [0x14016fbdc]
jne 0x14003c5ae
xor eax, eax
jmp 0x14003c5b3
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003c7b5
mov rax, rcx
cmp r9, 0x10
jb 0x14003c5c7
mov rax, qword [rcx]
cmp r8, 1
jne 0x14003c666
movzx eax, byte [rax]
cmp al, byte [0x14016fe7c]
jne 0x14003c5e0
xor eax, eax
jmp 0x14003c5e5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003c666
lea rdx, [r13 + 0x38]
mov r8, qword [rdx + 0x10]
mov rax, rdx
mov r9, qword [rdx + 0x18]
cmp r9, 0x10
jb 0x14003c601
mov rax, qword [rdx]
cmp r8, 1
jne 0x14003c623
movzx eax, byte [rax]
cmp al, byte [0x14016fe78]
jne 0x14003c616
xor eax, eax
jmp 0x14003c61b
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003c7b5
cmp r9, 0x10
jb 0x14003c62c
mov rdx, qword [rdx]
cmp r8, 3
jne 0x14003c666
movzx eax, byte [rdx]
cmp al, byte [0x14016fe84]
jne 0x14003c659
movzx eax, byte [rdx + 1]
cmp al, byte [0x14016fe85]
jne 0x14003c659
movzx eax, byte [rdx + 2]
cmp al, byte [0x14016fe86]
jne 0x14003c659
xor eax, eax
jmp 0x14003c65e
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003c7b5
mov r8, qword [rcx + 0x10]
mov rax, rcx
mov r9, qword [rcx + 0x18]
cmp r9, 0x10
jb 0x14003c67a
mov rax, qword [rcx]
cmp r8, 1
jne 0x14003c6cc
movzx eax, byte [rax]
cmp al, byte [0x14016fe80]
jne 0x14003c68f
xor eax, eax
jmp 0x14003c694
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003c6cc
lea rax, [r13 + 0x38]
mov rdx, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14003c6aa
mov rax, qword [rax]
cmp rdx, 1
jne 0x14003c6cc
movzx eax, byte [rax]
cmp al, byte [0x14016fe6c]
jne 0x14003c6bf
xor eax, eax
jmp 0x14003c6c4
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003c7b5
mov rax, rcx
cmp r9, 0x10
jb 0x14003c6d8
mov rax, qword [rcx]
cmp r8, 1
jne 0x14003c6f6
movzx eax, byte [rax]
cmp al, byte [0x14016fe68]
jne 0x14003c6ed
xor eax, eax
jmp 0x14003c6f2
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003c740
mov rdx, rcx
cmp r9, 0x10
jb 0x14003c702
mov rdx, qword [rcx]
cmp r8, 3
jne 0x14003c7c2
movzx eax, byte [rdx]
cmp al, byte [0x14016fe74]
jne 0x14003c733
movzx eax, byte [rdx + 1]
cmp al, byte [0x14016fe75]
jne 0x14003c733
movzx eax, byte [rdx + 2]
cmp al, byte [0x14016fe76]
jne 0x14003c733
xor eax, eax
jmp 0x14003c738
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003c7c2
lea rdx, [r13 + 0x38]
mov r8, qword [rdx + 0x10]
mov rax, rdx
mov r9, qword [rdx + 0x18]
cmp r9, 0x10
jb 0x14003c758
mov rax, qword [rdx]
cmp r8, 1
jne 0x14003c776
movzx eax, byte [rax]
cmp al, byte [0x14016fe70]
jne 0x14003c76d
xor eax, eax
jmp 0x14003c772
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003c7b5
cmp r9, 0x10
jb 0x14003c77f
mov rdx, qword [rdx]
cmp r8, 3
jne 0x14003c7c2
movzx eax, byte [rdx]
cmp al, byte [0x14016fe9c]
jne 0x14003c7ac
movzx eax, byte [rdx + 1]
cmp al, byte [0x14016fe9d]
jne 0x14003c7ac
movzx eax, byte [rdx + 2]
cmp al, byte [0x14016fe9e]
jne 0x14003c7ac
xor eax, eax
jmp 0x14003c7b1
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003c7c2
mov rax, qword [rsi + 0x70]
mov rcx, qword [rbp + 0x78]
jmp 0x14003ca6e
lea rdx, [r13 + 0x38]
mov r9, qword [rdx + 0x10]
mov rax, rdx
mov r10, qword [rdx + 0x18]
cmp r10, 0x10
jb 0x14003c7da
mov rax, qword [rdx]
cmp r9, 1
jne 0x14003c7f8
movzx eax, byte [rax]
cmp al, byte [0x14016fe98]
jne 0x14003c7ef
xor eax, eax
jmp 0x14003c7f4
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003c83d
mov r8, rdx
cmp r10, 0x10
jb 0x14003c804
mov r8, qword [rdx]
cmp r9, 3
jne 0x14003c86d
movzx eax, byte [r8]
cmp al, byte [0x14016fea4]
jne 0x14003c834
movzx eax, byte [r8 + 1]
cmp al, byte [0x14016fea5]
jne 0x14003c834
movzx eax, byte [r8 + 2]
cmp al, byte [0x14016fea6]
jne 0x14003c834
xor eax, eax
jmp 0x14003c839
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003c86d
mov rax, rcx
cmp qword [rcx + 0x18], 0x10
jb 0x14003c84a
mov rax, qword [rcx]
cmp qword [rcx + 0x10], 1
jne 0x14003c86d
movzx eax, byte [rax]
cmp al, byte [0x14016fea0]
jne 0x14003c860
xor eax, eax
jmp 0x14003c865
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003ca66
mov rax, rdx
cmp r10, 0x10
jb 0x14003c879
mov rax, qword [rdx]
cmp r9, 1
jne 0x14003c91a
movzx eax, byte [rax]
cmp al, byte [0x14016fe8c]
jne 0x14003c892
xor eax, eax
jmp 0x14003c897
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003c91a
mov r9, qword [rcx + 0x10]
mov rax, rcx
mov r10, qword [rcx + 0x18]
cmp r10, 0x10
jb 0x14003c8af
mov rax, qword [rcx]
cmp r9, 1
jne 0x14003c8d1
movzx eax, byte [rax]
cmp al, byte [0x14016fe88]
jne 0x14003c8c4
xor eax, eax
jmp 0x14003c8c9
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003ca66
mov r8, rcx
cmp r10, 0x10
jb 0x14003c8dd
mov r8, qword [rcx]
cmp r9, 3
jne 0x14003c91a
movzx eax, byte [r8]
cmp al, byte [0x14016fe94]
jne 0x14003c90d
movzx eax, byte [r8 + 1]
cmp al, byte [0x14016fe95]
jne 0x14003c90d
movzx eax, byte [r8 + 2]
cmp al, byte [0x14016fe96]
jne 0x14003c90d
xor eax, eax
jmp 0x14003c912
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003ca66
mov r8, qword [rdx + 0x10]
mov rax, rdx
mov r9, qword [rdx + 0x18]
cmp r9, 0x10
jb 0x14003c92e
mov rax, qword [rdx]
cmp r8, 1
jne 0x14003c97c
movzx eax, byte [rax]
cmp al, byte [0x14016fe90]
jne 0x14003c943
xor eax, eax
jmp 0x14003c948
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003c97c
mov rax, rcx
cmp qword [rcx + 0x18], 0x10
jb 0x14003c959
mov rax, qword [rcx]
cmp qword [rcx + 0x10], 1
jne 0x14003c97c
movzx eax, byte [rax]
cmp al, byte [0x14016febc]
jne 0x14003c96f
xor eax, eax
jmp 0x14003c974
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003ca66
mov rax, rdx
cmp r9, 0x10
jb 0x14003c988
mov rax, qword [rdx]
cmp r8, 1
jne 0x14003c9a6
movzx eax, byte [rax]
cmp al, byte [0x14016feb8]
jne 0x14003c99d
xor eax, eax
jmp 0x14003c9a2
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003c9ed
cmp r9, 0x10
jb 0x14003c9af
mov rdx, qword [rdx]
cmp r8, 3
jne 0x14003cd33
movzx eax, byte [rdx]
cmp al, byte [0x14016fec4]
jne 0x14003c9e0
movzx eax, byte [rdx + 1]
cmp al, byte [0x14016fec5]
jne 0x14003c9e0
movzx eax, byte [rdx + 2]
cmp al, byte [0x14016fec6]
jne 0x14003c9e0
xor eax, eax
jmp 0x14003c9e5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003cd33
mov rdx, qword [rcx + 0x10]
mov rax, rcx
mov r8, qword [rcx + 0x18]
cmp r8, 0x10
jb 0x14003ca01
mov rax, qword [rcx]
cmp rdx, 1
jne 0x14003ca1f
movzx eax, byte [rax]
cmp al, byte [0x14016fec0]
jne 0x14003ca16
xor eax, eax
jmp 0x14003ca1b
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003ca66
cmp r8, 0x10
jb 0x14003ca28
mov rcx, qword [rcx]
cmp rdx, 3
jne 0x14003cd33
movzx eax, byte [rcx]
cmp al, byte [0x14016feac]
jne 0x14003ca59
movzx eax, byte [rcx + 1]
cmp al, byte [0x14016fead]
jne 0x14003ca59
movzx eax, byte [rcx + 2]
cmp al, byte [0x14016feae]
jne 0x14003ca59
xor eax, eax
jmp 0x14003ca5e
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003cd33
mov rax, qword [rsi + 0x78]
mov rcx, qword [rbp + 0x70]
movsd xmm1, qword [rax + 8]
movsd xmm0, qword [rax]
movsd xmm2, qword [rax + 0x10]
subsd xmm1, qword [rcx + 8]
subsd xmm0, qword [rcx]
subsd xmm2, qword [rcx + 0x10]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
mulsd xmm2, xmm2
addsd xmm0, xmm1
addsd xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movaps xmm1, xmm6
divsd xmm1, xmm0
comisd xmm11, xmm1
jbe 0x14003cd33
comisd xmm6, xmm8
jbe 0x14003caca
comisd xmm1, xmm9
jbe 0x14003caca
comisd xmm10, xmm6
ja 0x14003cad4
comisd xmm1, xmm7
jbe 0x14003cd33
mov rcx, qword [rbx + 0x1a8]
mov r10d, dword [rcx + 0x170]
cmp r10d, 0xffffd8f1
jne 0x14003cb1a
mov rax, qword [r13 + 0x1a8]
cmp dword [rax + 0x170], r10d
jne 0x14003cb1a
mov eax, dword [r13 + 0x78]
mov dword [rcx + 0x170], eax
mov rcx, qword [r13 + 0x1a8]
mov eax, dword [rbx + 0x78]
mov dword [rcx + 0x170], eax
jmp 0x14003cd33
xor sil, sil
xor r12b, r12b
mov r9, qword [r14 + 0x50]
add r9, 0x70
mov r15, qword [r15]
mov eax, dword [r13 + 0x78]
mov rdx, qword [r15 + rax*8]
mov eax, dword [rbx + 0x78]
mov rcx, qword [r15 + rax*8]
mov r8d, dword [rcx + 0x78]
mov edi, dword [rdx + 0x78]
mov ecx, r8d
cmp edi, r8d
cmovge ecx, edi
mov ebx, edi
cmovge ebx, r8d
mov rax, qword [r9 + 8]
movsxd rdx, dword [rax + 4]
mov ebp, dword [rdx + r9 + 0x10]
cmp ebx, ebp
jge 0x14003cdec
mov r11d, dword [rdx + r9 + 0x14]
cmp ecx, r11d
jge 0x14003cdec
mov r14, qword [rdx + r9 + 0x18]
movsxd rax, ebx
lea rax, [rax + rax*2]
movsxd rcx, ecx
mov rax, qword [r14 + rax*8]
mov ebx, dword [rax + rcx*4]
shr ebx, 0x1f
xor bl, 1
cmp r10d, 0xffffd8f1
je 0x14003cbe0
mov rcx, qword [r15 + r10*8]
mov eax, dword [rcx + 0x78]
mov ecx, r8d
cmp eax, r8d
cmovge ecx, eax
cmovge eax, r8d
cmp eax, ebp
jge 0x14003cd8e
cmp ecx, r11d
jge 0x14003cd8e
cdqe
lea rax, [rax + rax*2]
movsxd rcx, ecx
mov rax, qword [r14 + rax*8]
mov edx, dword [rax + rcx*4]
shr edx, 0x1f
xor dl, 1
test bl, bl
je 0x14003cbe3
test dl, dl
je 0x14003cbe0
mov r12b, 1
jmp 0x14003cbe3
mov sil, 1
xor r8b, r8b
xor r9b, r9b
mov rax, qword [r13 + 0x1a8]
mov ecx, dword [rax + 0x170]
cmp ecx, 0xffffd8f1
je 0x14003cc43
mov rcx, qword [r15 + rcx*8]
mov eax, dword [rcx + 0x78]
mov ecx, edi
cmp eax, edi
cmovge ecx, eax
cmovge eax, edi
cmp eax, ebp
jge 0x14003cdbd
cmp ecx, r11d
jge 0x14003cdbd
cdqe
lea rax, [rax + rax*2]
movsxd rcx, ecx
mov rax, qword [r14 + rax*8]
mov edx, dword [rax + rcx*4]
shr edx, 0x1f
xor dl, 1
test bl, bl
je 0x14003cc46
test dl, dl
je 0x14003cc43
mov r9b, 1
jmp 0x14003cc46
mov r8b, 1
test sil, sil
je 0x14003ccd0
test r8b, r8b
je 0x14003ccd0
cmp r10d, 0xffffd8f1
je 0x14003cc72
mov rcx, qword [r15 + r10*8]
mov rax, qword [rcx + 0x1a8]
mov dword [rax + 0x170], 0xffffd8f1
mov rax, qword [r13 + 0x1a8]
mov ecx, dword [rax + 0x170]
mov r14, qword [rsp + 0x50]
cmp ecx, 0xffffd8f1
je 0x14003cca8
mov rax, qword [r14 + 0x40]
mov rax, qword [rax]
mov rcx, qword [rax + rcx*8]
mov rax, qword [rcx + 0x1a8]
mov dword [rax + 0x170], 0xffffd8f1
mov rbx, qword [rsp + 0x68]
mov rcx, qword [rbx + 0x1a8]
mov eax, dword [r13 + 0x78]
mov dword [rcx + 0x170], eax
mov rcx, qword [r13 + 0x1a8]
mov eax, dword [rbx + 0x78]
mov dword [rcx + 0x170], eax
jmp 0x14003cd2f
test r12b, r12b
jne 0x14003ccda
test r9b, r9b
je 0x14003cd25
mov edi, dword [rsp + 0x5c]
mov dword [rsp + 0x5c], edi
movsd qword [rsp + 0x70], xmm12
mov byte [rsp + 0x38], 1
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r13
mov rbx, qword [rsp + 0x68]
mov r9, rbx
mov r8d, edi
mov edx, dword [rsp + 0x58]
mov r14, qword [rsp + 0x50]
mov rcx, r14
call fcn.14003bc40
jmp 0x14003cd33
mov rbx, qword [rsp + 0x68]
mov r14, qword [rsp + 0x50]
mov edi, dword [rsp + 0x5c]
dec edi
mov dword [rsp + 0x5c], edi
mov r13, qword [rsp + 0x80]
dec r13
mov qword [rsp + 0x80], r13
cmp edi, dword [rsp + 0x58]
jg 0x14003c480
mov rdx, qword [rsp + 0x88]
mov r13, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x60]
mov ebx, dword [rsp + 0x58]
inc ebx
mov dword [rsp + 0x58], ebx
inc rdx
mov qword [rsp + 0x88], rdx
cmp ebx, r8d
jge 0x14003ce1b
mov r15d, ebx
jmp 0x14003c440
lea rdx, str.matrix_out_of_memory1
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
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
lea rdx, str.matrix_out_of_memory1
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
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
lea rdx, str.matrix_out_of_memory1
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
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 r12d, r12d
movsxd rdx, r8d
mov qword [rsp + 0x70], rdx
test r8d, r8d
jle 0x14003d56a
xor r14d, r14d
movsd xmm10, qword [0x1401c4528]
movsd xmm8, qword [0x1401c4478]
movsd xmm7, qword [0x1401c4548]
movsd xmm9, qword [0x1401c4570]
nop word [rax + rax]
mov rax, qword [r13 + 0x40]
mov rcx, qword [rax]
mov rsi, qword [rcx + r14*8]
cmp dword [rsi + 0x30], 3
jne 0x14003d55b
mov rax, qword [rsi + 0x1a8]
cmp dword [rax + 0x170], 0xffffd8f1
jne 0x14003d55b
mov ebp, r8d
cmp rdx, r14
jle 0x14003d55b
mov rdi, rdx
nop dword [rax + rax]
mov rax, qword [r13 + 0x40]
mov rcx, qword [rax]
mov rbx, qword [rcx + rdi*8]
cmp dword [rbx + 0x30], 3
jne 0x14003d543
mov rax, qword [rbx + 0x1a8]
cmp dword [rax + 0x170], 0xffffd8f1
jne 0x14003d543
mov r15, qword [rbx + 0xe8]
mov rcx, qword [r15 + 0x50]
mov r13, qword [rsi + 0xe8]
mov rax, qword [r13 + 0x50]
movsd xmm2, qword [rcx + 0x10]
subsd xmm2, qword [rax + 0x10]
movsd xmm1, qword [rcx + 8]
subsd xmm1, qword [rax + 8]
movsd xmm0, qword [rcx]
subsd xmm0, qword [rax]
mulsd xmm0, xmm0
mulsd xmm1, xmm1
addsd xmm0, xmm1
mulsd xmm2, xmm2
addsd xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movaps xmm6, xmm0
mov rax, qword [rsi + 0x1e8]
movzx ecx, byte [rax + 0xa0]
mov rax, qword [rbx + 0x1e8]
cmp cl, byte [rax + 0xa0]
jne 0x14003cf44
lea eax, [r12 + 1]
cmp ebp, eax
je 0x14003d53e
comisd xmm10, xmm6
ja 0x14003d53e
lea rcx, [rsi + 0x38]
mov r8, qword [rcx + 0x10]
mov rax, rcx
mov r9, qword [rcx + 0x18]
cmp r9, 0x10
jb 0x14003cf67
mov rax, qword [rcx]
cmp r8, 1
jne 0x14003cf85
movzx eax, byte [rax]
cmp al, byte [0x14016fea8]
jne 0x14003cf7c
xor eax, eax
jmp 0x14003cf81
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003cfc7
mov rdx, rcx
cmp r9, 0x10
jb 0x14003cf91
mov rdx, qword [rcx]
cmp r8, 3
jne 0x14003cffb
movzx eax, byte [rdx]
cmp al, byte [0x14016feb4]
jne 0x14003cfbe
movzx eax, byte [rdx + 1]
cmp al, byte [0x14016feb5]
jne 0x14003cfbe
movzx eax, byte [rdx + 2]
cmp al, byte [0x14016feb6]
jne 0x14003cfbe
xor eax, eax
jmp 0x14003cfc3
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003cffb
lea rax, [rbx + 0x38]
mov rdx, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14003cfd9
mov rax, qword [rax]
cmp rdx, 1
jne 0x14003cffb
movzx eax, byte [rax]
cmp al, byte [0x14016feb0]
jne 0x14003cfee
xor eax, eax
jmp 0x14003cff3
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003d1f5
mov rax, rcx
cmp r9, 0x10
jb 0x14003d007
mov rax, qword [rcx]
cmp r8, 1
jne 0x14003d0a6
movzx eax, byte [rax]
cmp al, byte [0x14016fedc]
jne 0x14003d020
xor eax, eax
jmp 0x14003d025
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003d0a6
lea rdx, [rbx + 0x38]
mov r8, qword [rdx + 0x10]
mov rax, rdx
mov r9, qword [rdx + 0x18]
cmp r9, 0x10
jb 0x14003d041
mov rax, qword [rdx]
cmp r8, 1
jne 0x14003d063
movzx eax, byte [rax]
cmp al, byte [0x14016fed8]
jne 0x14003d056
xor eax, eax
jmp 0x14003d05b
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003d1f5
cmp r9, 0x10
jb 0x14003d06c
mov rdx, qword [rdx]
cmp r8, 3
jne 0x14003d0a6
movzx eax, byte [rdx]
cmp al, byte [0x14016fee4]
jne 0x14003d099
movzx eax, byte [rdx + 1]
cmp al, byte [0x14016fee5]
jne 0x14003d099
movzx eax, byte [rdx + 2]
cmp al, byte [0x14016fee6]
jne 0x14003d099
xor eax, eax
jmp 0x14003d09e
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003d1f5
mov r8, qword [rcx + 0x10]
mov rax, rcx
mov r9, qword [rcx + 0x18]
cmp r9, 0x10
jb 0x14003d0ba
mov rax, qword [rcx]
cmp r8, 1
jne 0x14003d10c
movzx eax, byte [rax]
cmp al, byte [0x14016fee0]
jne 0x14003d0cf
xor eax, eax
jmp 0x14003d0d4
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003d10c
lea rax, [rbx + 0x38]
mov rdx, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14003d0ea
mov rax, qword [rax]
cmp rdx, 1
jne 0x14003d10c
movzx eax, byte [rax]
cmp al, byte [0x14016fecc]
jne 0x14003d0ff
xor eax, eax
jmp 0x14003d104
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003d1f5
mov rax, rcx
cmp r9, 0x10
jb 0x14003d118
mov rax, qword [rcx]
cmp r8, 1
jne 0x14003d136
movzx eax, byte [rax]
cmp al, byte [0x14016fec8]
jne 0x14003d12d
xor eax, eax
jmp 0x14003d132
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003d180
mov rdx, rcx
cmp r9, 0x10
jb 0x14003d142
mov rdx, qword [rcx]
cmp r8, 3
jne 0x14003d214
movzx eax, byte [rdx]
cmp al, byte [0x14016fed4]
jne 0x14003d173
movzx eax, byte [rdx + 1]
cmp al, byte [0x14016fed5]
jne 0x14003d173
movzx eax, byte [rdx + 2]
cmp al, byte [0x14016fed6]
jne 0x14003d173
xor eax, eax
jmp 0x14003d178
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003d214
lea rdx, [rbx + 0x38]
mov r8, qword [rdx + 0x10]
mov rax, rdx
mov r9, qword [rdx + 0x18]
cmp r9, 0x10
jb 0x14003d198
mov rax, qword [rdx]
cmp r8, 1
jne 0x14003d1b6
movzx eax, byte [rax]
cmp al, byte [0x14016fed0]
jne 0x14003d1ad
xor eax, eax
jmp 0x14003d1b2
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003d1f5
cmp r9, 0x10
jb 0x14003d1bf
mov rdx, qword [rdx]
cmp r8, 3
jne 0x14003d214
movzx eax, byte [rdx]
cmp al, byte [0x14016fefc]
jne 0x14003d1ec
movzx eax, byte [rdx + 1]
cmp al, byte [0x14016fefd]
jne 0x14003d1ec
movzx eax, byte [rdx + 2]
cmp al, byte [0x14016fefe]
jne 0x14003d1ec
xor eax, eax
jmp 0x14003d1f1
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003d214
mov rax, qword [r15 + 0x70]
mov rcx, qword [r13 + 0x78]
movsd xmm0, qword [rax + 8]
subsd xmm0, qword [rcx + 8]
movsd xmm1, qword [rax]
subsd xmm1, qword [rcx]
jmp 0x14003d4d2
lea rdx, [rbx + 0x38]
mov r9, qword [rdx + 0x10]
mov rax, rdx
mov r10, qword [rdx + 0x18]
cmp r10, 0x10
jb 0x14003d22c
mov rax, qword [rdx]
cmp r9, 1
jne 0x14003d24a
movzx eax, byte [rax]
cmp al, byte [0x14016fef8]
jne 0x14003d241
xor eax, eax
jmp 0x14003d246
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003d28f
mov r8, rdx
cmp r10, 0x10
jb 0x14003d256
mov r8, qword [rdx]
cmp r9, 3
jne 0x14003d2bf
movzx eax, byte [r8]
cmp al, byte [0x14016ff04]
jne 0x14003d286
movzx eax, byte [r8 + 1]
cmp al, byte [0x14016ff05]
jne 0x14003d286
movzx eax, byte [r8 + 2]
cmp al, byte [0x14016ff06]
jne 0x14003d286
xor eax, eax
jmp 0x14003d28b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003d2bf
mov rax, rcx
cmp qword [rcx + 0x18], 0x10
jb 0x14003d29c
mov rax, qword [rcx]
cmp qword [rcx + 0x10], 1
jne 0x14003d2bf
movzx eax, byte [rax]
cmp al, byte [0x14016ff00]
jne 0x14003d2b2
xor eax, eax
jmp 0x14003d2b7
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003d4b8
mov rax, rdx
cmp r10, 0x10
jb 0x14003d2cb
mov rax, qword [rdx]
cmp r9, 1
jne 0x14003d36c
movzx eax, byte [rax]
cmp al, byte [0x14016feec]
jne 0x14003d2e4
xor eax, eax
jmp 0x14003d2e9
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003d36c
mov r9, qword [rcx + 0x10]
mov rax, rcx
mov r10, qword [rcx + 0x18]
cmp r10, 0x10
jb 0x14003d301
mov rax, qword [rcx]
cmp r9, 1
jne 0x14003d323
movzx eax, byte [rax]
cmp al, byte [0x14016fee8]
jne 0x14003d316
xor eax, eax
jmp 0x14003d31b
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003d4b8
mov r8, rcx
cmp r10, 0x10
jb 0x14003d32f
mov r8, qword [rcx]
cmp r9, 3
jne 0x14003d36c
movzx eax, byte [r8]
cmp al, byte [0x14016fef4]
jne 0x14003d35f
movzx eax, byte [r8 + 1]
cmp al, byte [0x14016fef5]
jne 0x14003d35f
movzx eax, byte [r8 + 2]
cmp al, byte [0x14016fef6]
jne 0x14003d35f
xor eax, eax
jmp 0x14003d364
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003d4b8
mov r8, qword [rdx + 0x10]
mov rax, rdx
mov r9, qword [rdx + 0x18]
cmp r9, 0x10
jb 0x14003d380
mov rax, qword [rdx]
cmp r8, 1
jne 0x14003d3ce
movzx eax, byte [rax]
cmp al, byte [0x14016fef0]
jne 0x14003d395
xor eax, eax
jmp 0x14003d39a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003d3ce
mov rax, rcx
cmp qword [rcx + 0x18], 0x10
jb 0x14003d3ab
mov rax, qword [rcx]
cmp qword [rcx + 0x10], 1
jne 0x14003d3ce
movzx eax, byte [rax]
cmp al, byte [0x14016ff4c]
jne 0x14003d3c1
xor eax, eax
jmp 0x14003d3c6
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003d4b8
mov rax, rdx
cmp r9, 0x10
jb 0x14003d3da
mov rax, qword [rdx]
cmp r8, 1
jne 0x14003d3f8
movzx eax, byte [rax]
cmp al, byte [0x14016ff48]
jne 0x14003d3ef
xor eax, eax
jmp 0x14003d3f4
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003d43f
cmp r9, 0x10
jb 0x14003d401
mov rdx, qword [rdx]
cmp r8, 3
jne 0x14003d53e
movzx eax, byte [rdx]
cmp al, byte [0x14016ff54]
jne 0x14003d432
movzx eax, byte [rdx + 1]
cmp al, byte [0x14016ff55]
jne 0x14003d432
movzx eax, byte [rdx + 2]
cmp al, byte [0x14016ff56]
jne 0x14003d432
xor eax, eax
jmp 0x14003d437
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003d53e
mov rdx, qword [rcx + 0x10]
mov rax, rcx
mov r8, qword [rcx + 0x18]
cmp r8, 0x10
jb 0x14003d453
mov rax, qword [rcx]
cmp rdx, 1
jne 0x14003d471
movzx eax, byte [rax]
cmp al, byte [0x14016ff50]
jne 0x14003d468
xor eax, eax
jmp 0x14003d46d
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003d4b8
cmp r8, 0x10
jb 0x14003d47a
mov rcx, qword [rcx]
cmp rdx, 3
jne 0x14003d53e
movzx eax, byte [rcx]
cmp al, byte [0x14016ff34]
jne 0x14003d4ab
movzx eax, byte [rcx + 1]
cmp al, byte [0x14016ff35]
jne 0x14003d4ab
movzx eax, byte [rcx + 2]
cmp al, byte [0x14016ff36]
jne 0x14003d4ab
xor eax, eax
jmp 0x14003d4b0
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003d53e
mov rax, qword [r15 + 0x78]
mov rcx, qword [r13 + 0x70]
movsd xmm1, qword [rax + 8]
subsd xmm1, qword [rcx + 8]
movsd xmm0, qword [rax]
subsd xmm0, qword [rcx]
movsd xmm2, qword [rax + 0x10]
subsd xmm2, qword [rcx + 0x10]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
mulsd xmm2, xmm2
addsd xmm0, xmm1
addsd xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movaps xmm1, xmm6
divsd xmm1, xmm0
comisd xmm1, xmm8
jbe 0x14003d53e
comisd xmm11, xmm1
jbe 0x14003d53e
comisd xmm6, xmm7
jbe 0x14003d53e
mov r13, qword [rsp + 0x50]
comisd xmm9, xmm6
jbe 0x14003d543
mov rcx, qword [rsi + 0x1a8]
mov eax, dword [rbx + 0x78]
mov dword [rcx + 0x170], eax
mov rcx, qword [rbx + 0x1a8]
mov eax, dword [rsi + 0x78]
mov dword [rcx + 0x170], eax
jmp 0x14003d543
mov r13, qword [rsp + 0x50]
dec ebp
dec rdi
cmp rdi, r14
jg 0x14003cea0
mov rdx, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x60]
inc r12d
inc r14
cmp r14, rdx
jl 0x14003ce60
xor esi, esi
mov r15, qword [rsp + 0x78]
test r15d, r15d
jle 0x14003d6e7
nop word [rax + rax]
mov rax, qword [r13 + 0x40]
mov rax, qword [rax]
mov rbp, qword [rax + rsi*8]
cmp dword [rbp + 0x30], 3
jne 0x14003d6dc
mov rax, qword [rbp + 0x1a8]
cmp dword [rax + 0x170], 0xffffd8f1
jne 0x14003d6dc
xor eax, eax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x98], xmm0
mov qword [rsp + 0xa8], rax
mov rcx, qword [r13 + 0x50]
add rcx, 0x70
lea r8, [rsp + 0x98]
mov edx, esi
call fcn.140044390
mov rax, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x98]
sub rax, rdi
sar rax, 2
mov dword [rsp + 0x60], 0xffffd8f1
movsd qword [rsp + 0x78], xmm12
xor ebx, ebx
movsxd r14, eax
test eax, eax
jle 0x14003d69f
nop dword [rax]
mov rax, qword [r13 + 0x40]
mov r8d, dword [rdi + rbx*4]
mov rax, qword [rax]
mov rdx, qword [rax + r8*8]
cmp dword [rdx + 0x30], 3
jne 0x14003d663
mov rax, qword [rdx + 0x1a8]
cmp dword [rax + 0x170], 0xffffd8f1
jne 0x14003d663
mov byte [rsp + 0x38], 0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
mov r9, rbp
mov edx, esi
mov rcx, r13
call fcn.14003bc40
inc rbx
cmp rbx, r14
jl 0x14003d610
mov ecx, dword [rsp + 0x60]
cmp ecx, 0xffffd8f1
je 0x14003d69f
mov rax, qword [rbp + 0x1a8]
mov dword [rax + 0x170], ecx
mov rax, qword [r13 + 0x40]
mov rax, qword [rax]
mov rcx, qword [rax + rcx*8]
mov rdx, qword [rcx + 0x1a8]
mov eax, dword [rbp + 0x78]
mov dword [rdx + 0x170], eax
test rdi, rdi
je 0x14003d6dc
mov rdx, qword [rsp + 0xa8]
sub rdx, rdi
and rdx, 0xfffffffffffffffc
mov rax, rdi
cmp rdx, 0x1000
jb 0x14003d6d4
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003d73b
mov rcx, rdi
call fcn.14014a730
inc esi
cmp esi, r15d
jl 0x14003d580
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.14014a6d0
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3