Function at 0x4139bf
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x90], xmm7
movaps xmmword [rsp + 0xa0], xmm8
movaps xmmword [rsp + 0xb0], xmm9
movaps xmmword [rsp + 0xc0], xmm10
movaps xmmword [rsp + 0xd0], xmm11
mov qword [rsp + 0x130], rcx
mov qword [rsp + 0x138], rdx
mov qword [rsp + 0x140], r8
mov r12, r9
mov rbp, qword [rsp + 0x150]
mov rax, qword [r9]
movsxd rdx, dword [r9 + 8]
lea rcx, [0x00424010]
movsxd rcx, dword [rcx + rdx*4]
mov rdi, qword [rax + rcx*8 + 0x18]
mov qword [rsp + 0x30], rdi
mov rbx, qword [rax + rdx*8 + 0x18]
mov rax, qword [rbp]
movsxd rdx, dword [rbp + 8]
lea rcx, [0x00424020]
movsxd rcx, dword [rcx + rdx*4]
mov r15, qword [rax + rcx*8 + 0x18]
mov rsi, qword [rax + rdx*8 + 0x18]
cmp dword [rsp + 0x160], 1
sete byte [rsp + 0x5f]
movzx eax, byte [rsp + 0x5f]
mov rdi, qword [rsp + 0x138]
cmp dword [rdi + 0x64], 0
je 0x413a8b
test al, al
jne 0x413aa7
pxor xmm6, xmm6
movapd xmm7, xmm6
lea r13, [0x00424020]
mov rdi, qword [rsp + 0x138]
jmp 0x4147bb
mov rax, qword [r8]
movsxd rdx, dword [r8 + 8]
mov r8, qword [rax + rdx*8 + 0x18]
mov rdi, qword [rsp + 0x158]
movsxd r9, dword [rdi + 8]
lea rcx, [0x00424010]
movsxd r9, dword [rcx + r9*4]
mov rcx, qword [rdi]
mov rcx, qword [rcx + r9*8 + 0x18]
lea r9, [0x00424020]
movsxd rdx, dword [r9 + rdx*4]
mov rax, qword [rax + rdx*8 + 0x18]
movsd xmm0, qword [rax + 8]
comisd xmm0, xmmword [r8 + 8]
jbe 0x413b32
mov r10, qword [rsp + 0x140]
movsxd rax, dword [r10 + 8]
mov eax, dword [r9 + rax*4]
mov dword [r10 + 8], eax
cdqe
mov rdx, qword [r10]
mov rax, qword [rdx + rax*8]
mov edx, eax
and edx, 3
mov dword [r10 + 8], edx
xor eax, edx
mov qword [r10], rax
movsxd rdx, edx
mov rax, qword [rax + rdx*8 + 0x18]
movsd xmm0, qword [r8 + 8]
mov r8, rax
comisd xmm0, xmmword [rax + 8]
ja 0x413af7
movsxd rdx, dword [r12 + 8]
mov rax, qword [r12]
mov rdx, qword [rax + rdx*8]
mov r10d, edx
and r10d, 3
xor edx, r10d
movsxd rax, r10d
mov r8, qword [rdx + rax*8 + 0x18]
movsd xmm0, qword [r8 + 8]
lea r9, [0x00424020]
mov rax, qword [rsp + 0x30]
comisd xmm0, xmmword [rax + 8]
ja 0x413b74
jmp 0x413bb3
mov qword [rsp + 0x30], r8
mov r8, rax
mov qword [r12], rdx
movsxd r10, r10d
mov eax, dword [r9 + r10*4]
mov dword [r12 + 8], eax
cdqe
mov rdx, qword [rdx + rax*8]
mov r10d, edx
and r10d, 3
xor edx, r10d
movsxd rax, r10d
mov rax, qword [rdx + rax*8 + 0x18]
movsd xmm0, qword [rax + 8]
comisd xmm0, xmmword [r8 + 8]
ja 0x413b6c
mov rbx, qword [rsp + 0x30]
mov qword [rsp + 0x30], r8
movsd xmm0, qword [r15 + 8]
lea r8, [0x00424020]
comisd xmm0, xmmword [rsi + 8]
ja 0x413bcc
jmp 0x413c09
mov rsi, rax
movsxd rax, dword [rbp + 8]
mov eax, dword [r8 + rax*4]
mov dword [rbp + 8], eax
cdqe
mov rdx, qword [rbp]
mov rax, qword [rdx + rax*8]
mov edx, eax
and edx, 3
mov dword [rbp + 8], edx
xor eax, edx
mov qword [rbp], rax
movsxd rdx, edx
mov rax, qword [rax + rdx*8 + 0x18]
movsd xmm0, qword [rsi + 8]
comisd xmm0, xmmword [rax + 8]
ja 0x413bc9
mov r15, rsi
mov rsi, rax
mov rax, qword [rsp + 0x158]
movsxd rdx, dword [rax + 8]
mov rax, qword [rax]
mov rdx, qword [rax + rdx*8]
mov r10d, edx
and r10d, 3
xor edx, r10d
movsxd rax, r10d
mov r8, qword [rdx + rax*8 + 0x18]
movsd xmm0, qword [r8 + 8]
lea r9, [0x00424020]
comisd xmm0, xmmword [rcx + 8]
jbe 0x413a8b
mov rcx, qword [rsp + 0x158]
mov qword [rcx], rdx
movsxd r10, r10d
mov eax, dword [r9 + r10*4]
mov dword [rcx + 8], eax
cdqe
mov rdx, qword [rdx + rax*8]
mov r10d, edx
and r10d, 3
xor edx, r10d
movsxd rax, r10d
mov rax, qword [rdx + rax*8 + 0x18]
movsd xmm0, qword [r8 + 8]
mov r8, rax
movsd xmm1, qword [rax + 8]
comisd xmm1, xmm0
ja 0x413c4e
jmp 0x413a8b
mov qword [rsp + 0x30], rbx
mov rbx, r14
jmp 0x41478c
movsxd rdx, dword [r12 + 8]
mov rax, qword [r12]
mov rsi, qword [rax + rdx*8]
mov eax, esi
and eax, 3
mov dword [rsp + 0x58], eax
xor esi, eax
movsxd rdx, dword [rbp + 8]
mov rax, qword [rbp]
mov rbx, qword [rax + rdx*8]
mov edi, ebx
and edi, 3
xor ebx, edi
lea r8, [rsp + 0x70]
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x130]
call sym.maketriangle
movsxd rcx, dword [rsp + 0x78]
mov rax, qword [r12]
or eax, dword [r12 + 8]
mov rdx, qword [rsp + 0x70]
mov eax, eax
mov qword [rdx + rcx*8], rax
movsxd rcx, dword [r12 + 8]
mov rdx, qword [r12]
mov rax, qword [rsp + 0x70]
or eax, dword [rsp + 0x78]
mov eax, eax
mov qword [rdx + rcx*8], rax
lea rdx, [0x00424020]
movsxd rax, dword [rsp + 0x78]
mov eax, dword [rdx + rax*4]
mov dword [rsp + 0x78], eax
cdqe
mov rcx, qword [rbp]
or ecx, dword [rbp + 8]
mov r8, qword [rsp + 0x70]
mov ecx, ecx
mov qword [r8 + rax*8], rcx
movsxd r8, dword [rbp + 8]
mov rcx, qword [rbp]
mov rax, qword [rsp + 0x70]
or eax, dword [rsp + 0x78]
mov eax, eax
mov qword [rcx + r8*8], rax
movsxd rax, dword [rsp + 0x78]
mov eax, dword [rdx + rax*4]
mov dword [rsp + 0x78], eax
cdqe
movsxd rdx, dword [rdx + rax*4]
mov rax, qword [rsp + 0x70]
mov qword [rax + rdx*8 + 0x18], r15
movsxd rdx, dword [rsp + 0x78]
lea rax, [0x00424010]
movsxd rdx, dword [rax + rdx*4]
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x30]
mov qword [rax + rdx*8 + 0x18], rcx
mov rax, qword [rsp + 0x138]
cmp dword [rax + 0x74], 2
jg 0x413e29
mov rax, qword [rsp + 0x140]
movsxd rdx, dword [rax + 8]
lea rax, [0x00424020]
movsxd rdx, dword [rax + rdx*4]
mov rax, qword [rsp + 0x140]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x30]
cmp rcx, qword [rax + rdx*8 + 0x18]
je 0x413e54
mov rax, qword [rsp + 0x158]
movsxd rdx, dword [rax + 8]
lea rax, [0x00424010]
movsxd rdx, dword [rax + rdx*4]
mov rax, qword [rsp + 0x158]
mov rax, qword [rax]
cmp r15, qword [rax + rdx*8 + 0x18]
je 0x413e7b
movsxd rax, dword [rsp + 0x58]
mov rax, qword [rsi + rax*8 + 0x18]
mov qword [rsp + 0x38], rax
movsxd rax, edi
mov rbp, qword [rbx + rax*8 + 0x18]
pxor xmm10, xmm10
movapd xmm11, xmm10
movapd xmm9, xmm10
movapd xmm8, xmm10
jmp 0x4145d9
lea rcx, str.__Creating_base_bounding
call sym.printf
lea r8, [rsp + 0x70]
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x130]
call sym.printtriangle
jmp 0x413d9a
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x140]
mov qword [rcx], rax
movsxd rdx, dword [rsp + 0x78]
lea rax, [0x00424020]
mov eax, dword [rax + rdx*4]
mov dword [rcx + 8], eax
jmp 0x413dcc
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x158]
mov qword [rcx], rax
movsxd rdx, dword [rsp + 0x78]
lea rax, [0x00424010]
mov eax, dword [rax + rdx*4]
mov dword [rcx + 8], eax
jmp 0x413df9
lea r8, [rsp + 0x60]
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x130]
call sym.maketriangle
lea rdx, [0x00424020]
movsxd rax, dword [rsp + 0x68]
movsxd rcx, dword [rdx + rax*4]
mov rax, qword [rsp + 0x60]
mov r14, qword [rsp + 0x30]
mov qword [rax + rcx*8 + 0x18], r14
movsxd rcx, dword [rsp + 0x68]
lea rax, [0x00424010]
movsxd rcx, dword [rax + rcx*4]
mov rax, qword [rsp + 0x60]
mov qword [rax + rcx*8 + 0x18], r15
movsxd r8, dword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
or eax, dword [rsp + 0x78]
mov rcx, qword [rsp + 0x60]
mov eax, eax
mov qword [rcx + r8*8], rax
movsxd r8, dword [rsp + 0x78]
mov rax, qword [rsp + 0x60]
or eax, dword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
mov eax, eax
mov qword [rcx + r8*8], rax
movsxd rax, dword [rsp + 0x68]
mov eax, dword [rdx + rax*4]
mov dword [rsp + 0x68], eax
cdqe
mov r8d, edi
or r8d, ebx
mov rcx, qword [rsp + 0x60]
mov r11d, r8d
mov qword [rcx + rax*8], r11
movsxd rdi, edi
mov rax, qword [rsp + 0x60]
or eax, dword [rsp + 0x68]
mov eax, eax
mov qword [rbx + rdi*8], rax
movsxd rax, dword [rsp + 0x68]
mov eax, dword [rdx + rax*4]
mov dword [rsp + 0x68], eax
cdqe
mov edi, dword [rsp + 0x58]
mov ecx, edi
or ecx, esi
mov rdx, qword [rsp + 0x60]
mov ebx, ecx
mov qword [rdx + rax*8], rbx
movsxd rax, edi
mov rdx, qword [rsp + 0x60]
or edx, dword [rsp + 0x68]
mov edi, edx
mov qword [rsi + rax*8], rdi
mov rax, qword [rsp + 0x138]
cmp dword [rax + 0x74], 2
jg 0x413ff7
mov rax, qword [rsp + 0x138]
cmp dword [rax + 0x64], 0
je 0x413faf
cmp byte [rsp + 0x5f], 0
jne 0x414022
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
movaps xmm8, xmmword [rsp + 0xa0]
movaps xmm9, xmmword [rsp + 0xb0]
movaps xmm10, xmmword [rsp + 0xc0]
movaps xmm11, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.__Creating_top_bounding
call sym.printf
lea r8, [rsp + 0x60]
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x130]
call sym.printtriangle
jmp 0x413f9a
mov rax, qword [rsp + 0x140]
mov rcx, qword [rax]
mov rax, qword [rsp + 0x158]
mov rax, qword [rax]
mov rdi, qword [rsp + 0x158]
movsxd rdx, dword [rdi + 8]
lea r8, [0x00424010]
movsxd r8, dword [r8 + rdx*4]
mov r10, qword [rax + r8*8 + 0x18]
mov r8, qword [rax + rdx*8 + 0x18]
mov rax, qword [rsp + 0x140]
movsxd r11, dword [rax + 8]
mov rax, qword [rcx + r11*8]
mov edx, eax
and edx, 3
xor eax, edx
movsxd r9, edx
mov r9, qword [rax + r9*8 + 0x18]
lea rbx, [0x00424020]
movsxd r11, dword [rbx + r11*4]
mov rcx, qword [rcx + r11*8 + 0x18]
movsd xmm0, qword [rcx]
lea r11, [0x00424010]
comisd xmm0, xmmword [r9]
jbe 0x4140d3
mov rbx, qword [rsp + 0x140]
mov qword [rbx], rax
movsxd rdx, edx
mov edx, dword [r11 + rdx*4]
mov dword [rbx + 8], edx
movsxd rdx, edx
mov rax, qword [rax + rdx*8]
mov edx, eax
and edx, 3
xor eax, edx
movsxd rcx, edx
mov rcx, qword [rax + rcx*8 + 0x18]
movsd xmm0, qword [r9]
mov r9, rcx
comisd xmm0, xmmword [rcx]
ja 0x4140a2
movsd xmm0, qword [r8]
lea rcx, [0x00424010]
comisd xmm0, xmmword [r10]
jbe 0x413faf
mov r9, qword [rsp + 0x158]
movsxd rax, dword [r9 + 8]
mov eax, dword [rcx + rax*4]
mov dword [r9 + 8], eax
cdqe
mov rdx, qword [r9]
mov rax, qword [rdx + rax*8]
mov edx, eax
and edx, 3
mov dword [r9 + 8], edx
xor eax, edx
mov qword [r9], rax
movsxd rdx, edx
mov rax, qword [rax + rdx*8 + 0x18]
movsd xmm0, qword [r8]
mov r8, rax
movsd xmm1, qword [rax]
comisd xmm1, xmm0
ja 0x4140f2
jmp 0x413faf
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rdi
mov r9, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x130]
call sym.incircle
mov r14, rdi
comisd xmm0, xmm8
jbe 0x414338
mov rdi, rbp
movsxd rax, dword [rsp + 0x68]
mov eax, dword [r12 + rax*4]
mov dword [rsp + 0x68], eax
mov rdx, qword [rsp + 0x60]
cdqe
mov rcx, qword [rdx + rax*8]
mov eax, dword [r12 + rax*4]
mov dword [rsp + 0x68], eax
cdqe
lea r9, [rdx + rax*8]
mov rax, qword [r9]
mov edx, eax
and edx, 3
mov r10d, edx
xor r10d, eax
mov r8d, ecx
and r8d, 3
mov r11d, ecx
mov qword [r9], r11
xor ecx, r8d
movsxd r8, r8d
mov r9, qword [rsp + 0x60]
or r9d, dword [rsp + 0x68]
mov r11d, r9d
mov qword [rcx + r8*8], r11
movsxd rcx, ebx
or eax, edx
mov eax, eax
mov qword [rsi + rcx*8], rax
movsxd r11, edx
or ebx, esi
mov eax, ebx
mov qword [r10 + r11*8], rax
mov ebx, dword [r12 + rcx*4]
movsxd rcx, ebx
mov rax, qword [rsi + rcx*8]
movsxd r8, dword [rsp + 0x68]
mov r9d, dword [r13 + r8*4]
mov dword [rsp + 0x68], r9d
movsxd r9, r9d
mov r8d, eax
and r8d, 3
mov rbp, qword [rsp + 0x60]
mov r15d, eax
mov qword [rbp + r9*8], r15
xor eax, r8d
movsxd r8, r8d
mov r9, qword [rsp + 0x60]
or r9d, dword [rsp + 0x68]
mov r15d, r9d
mov qword [rax + r8*8], r15
movsxd rax, dword [r12 + rcx*4]
mov r8, qword [rsp + 0x30]
mov qword [rsi + rax*8 + 0x18], r8
movsxd rax, dword [r13 + rcx*4]
mov qword [rsi + rax*8 + 0x18], 0
mov qword [rsi + rcx*8 + 0x18], rdi
movsxd rax, dword [rsp + 0x68]
movsxd rcx, dword [r12 + rax*4]
mov rax, qword [rsp + 0x60]
mov qword [rax + rcx*8 + 0x18], 0
movsxd rax, dword [rsp + 0x68]
movsxd rcx, dword [r13 + rax*4]
mov rax, qword [rsp + 0x60]
mov qword [rax + rcx*8 + 0x18], r14
movsxd rcx, dword [rsp + 0x68]
mov rax, qword [rsp + 0x60]
mov qword [rax + rcx*8 + 0x18], rdi
mov qword [rsp + 0x60], r10
mov dword [rsp + 0x68], edx
mov rbp, qword [r10 + r11*8 + 0x18]
test rbp, rbp
jne 0x414133
mov dword [rsp + 0x58], ebx
mov rbx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x38]
mov qword [rsp + 0x38], rdi
mov edi, dword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
pxor xmm0, xmm0
comisd xmm0, xmm7
jb 0x414359
movsxd rdx, dword [rsp + 0x78]
mov r14d, dword [rsp + 0x58]
mov ecx, r14d
or ecx, esi
mov rax, qword [rsp + 0x70]
mov ecx, ecx
mov qword [rax + rdx*8], rcx
movsxd rcx, r14d
mov rax, qword [rsp + 0x70]
or eax, dword [rsp + 0x78]
mov eax, eax
mov qword [rsi + rcx*8], rax
mov qword [rsp + 0x70], rsi
lea rdx, [0x00424020]
mov eax, dword [rdx + rcx*4]
mov dword [rsp + 0x78], eax
cdqe
movsxd rax, dword [rdx + rax*4]
mov qword [rsi + rax*8 + 0x18], r15
movsxd rdx, dword [rsp + 0x78]
mov rax, qword [rsp + 0x70]
mov rsi, qword [rax + rdx*8]
mov eax, esi
and eax, 3
mov dword [rsp + 0x58], eax
xor esi, eax
cdqe
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x30], rcx
mov rax, qword [rsi + rax*8 + 0x18]
mov qword [rsp + 0x38], rax
jmp 0x4145c7
mov dword [rsp + 0x58], ebx
mov rbx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x38]
mov qword [rsp + 0x38], rdi
mov edi, dword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
jmp 0x4142ac
mov qword [rsp + 0x60], rbx
movsxd rax, edi
lea rdx, [0x00424020]
mov eax, dword [rdx + rax*4]
mov dword [rsp + 0x68], eax
cdqe
mov rax, qword [rbx + rax*8]
mov edx, eax
and edx, 3
mov dword [rsp + 0x68], edx
xor eax, edx
mov qword [rsp + 0x60], rax
movsxd rdx, edx
mov r12, qword [rax + rdx*8 + 0x18]
test r12, r12
je 0x414550
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rbp
mov r9, r15
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x130]
call sym.incircle
comisd xmm0, xmmword [0x00435780]
jbe 0x414550
mov r14, rbp
mov rbp, r12
lea r12, [0x00424010]
lea r13, [0x00424020]
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r14
jmp 0x414425
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rbp
mov r9, r15
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x130]
call sym.incircle
mov qword [rsp + 0x40], rbp
comisd xmm0, xmm9
jbe 0x4146f1
mov rbp, rsi
movsxd rax, dword [rsp + 0x68]
mov eax, dword [r12 + rax*4]
mov dword [rsp + 0x68], eax
mov rdx, qword [rsp + 0x60]
cdqe
mov rcx, qword [rdx + rax*8]
mov eax, dword [r12 + rax*4]
mov dword [rsp + 0x68], eax
cdqe
lea r9, [rdx + rax*8]
mov rax, qword [r9]
mov edx, eax
and edx, 3
mov r10d, edx
xor r10d, eax
mov r8d, ecx
and r8d, 3
mov esi, ecx
mov qword [r9], rsi
xor ecx, r8d
movsxd r8, r8d
mov r9, qword [rsp + 0x60]
or r9d, dword [rsp + 0x68]
mov esi, r9d
mov qword [rcx + r8*8], rsi
movsxd rcx, edi
or eax, edx
mov eax, eax
mov qword [rbx + rcx*8], rax
movsxd r11, edx
or edi, ebx
mov eax, edi
mov qword [r10 + r11*8], rax
mov edi, dword [r12 + rcx*4]
movsxd rcx, edi
mov rax, qword [rbx + rcx*8]
movsxd r8, dword [rsp + 0x68]
mov r9d, dword [r13 + r8*4]
mov dword [rsp + 0x68], r9d
movsxd r9, r9d
mov r8d, eax
and r8d, 3
mov rsi, qword [rsp + 0x60]
mov r14d, eax
mov qword [rsi + r9*8], r14
xor eax, r8d
movsxd r8, r8d
mov r9, qword [rsp + 0x60]
or r9d, dword [rsp + 0x68]
mov esi, r9d
mov qword [rax + r8*8], rsi
movsxd rax, dword [r13 + rcx*4]
mov qword [rbx + rax*8 + 0x18], 0
movsxd rax, dword [r12 + rcx*4]
mov qword [rbx + rax*8 + 0x18], r15
mov qword [rbx + rcx*8 + 0x18], rbp
movsxd rax, dword [rsp + 0x68]
movsxd rcx, dword [r13 + rax*4]
mov rax, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x40]
mov qword [rax + rcx*8 + 0x18], rsi
movsxd rax, dword [rsp + 0x68]
movsxd rcx, dword [r12 + rax*4]
mov rax, qword [rsp + 0x60]
mov qword [rax + rcx*8 + 0x18], 0
movsxd rcx, dword [rsp + 0x68]
mov rax, qword [rsp + 0x60]
mov qword [rax + rcx*8 + 0x18], rbp
mov qword [rsp + 0x60], r10
mov dword [rsp + 0x68], edx
mov rsi, qword [r10 + r11*8 + 0x18]
test rsi, rsi
jne 0x4143eb
mov rsi, qword [rsp + 0x48]
pxor xmm0, xmm0
comisd xmm0, xmm6
jb 0x4146fb
movsxd rdx, dword [rsp + 0x78]
mov ecx, edi
or ecx, ebx
mov rax, qword [rsp + 0x70]
mov ecx, ecx
mov qword [rax + rdx*8], rcx
movsxd rdi, edi
mov rax, qword [rsp + 0x70]
or eax, dword [rsp + 0x78]
mov eax, eax
mov qword [rbx + rdi*8], rax
mov qword [rsp + 0x70], rbx
lea rdx, [0x00424010]
mov eax, dword [rdx + rdi*4]
mov dword [rsp + 0x78], eax
cdqe
movsxd rax, dword [rdx + rax*4]
mov rdi, qword [rsp + 0x30]
mov qword [rbx + rax*8 + 0x18], rdi
movsxd rdx, dword [rsp + 0x78]
mov rax, qword [rsp + 0x70]
mov rbx, qword [rax + rdx*8]
mov edi, ebx
and edi, 3
xor ebx, edi
movsxd rax, edi
mov r15, rbp
mov rbp, qword [rbx + rax*8 + 0x18]
mov rax, qword [rsp + 0x138]
cmp dword [rax + 0x74], 2
jg 0x414737
mov qword [rsp + 0x20], r15
mov r14, qword [rsp + 0x30]
mov r9, r14
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x130]
call sym.counterclockwise
movapd xmm6, xmm0
mov qword [rsp + 0x20], r15
mov r9, r14
mov r8, rbp
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x130]
call sym.counterclockwise
movapd xmm7, xmm0
comisd xmm10, xmm6
jb 0x41463a
comisd xmm11, xmm0
jae 0x413ea2
pxor xmm0, xmm0
comisd xmm0, xmm6
jae 0x414359
mov qword [rsp + 0x60], rsi
movsxd rax, dword [rsp + 0x58]
lea rdx, [0x00424010]
mov eax, dword [rdx + rax*4]
mov dword [rsp + 0x68], eax
cdqe
mov rax, qword [rsi + rax*8]
mov edx, eax
and edx, 3
mov dword [rsp + 0x68], edx
xor eax, edx
mov qword [rsp + 0x60], rax
movsxd rdx, edx
mov r12, qword [rax + rdx*8 + 0x18]
test r12, r12
je 0x4142ac
mov qword [rsp + 0x28], r12
mov r14, qword [rsp + 0x38]
mov qword [rsp + 0x20], r14
mov r9, r15
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x130]
call sym.incircle
comisd xmm0, xmmword [0x00435780]
jbe 0x4142ac
mov rax, r12
lea r12, [0x00424020]
lea r13, [0x00424010]
mov qword [rsp + 0x40], rbx
mov ebx, dword [rsp + 0x58]
mov dword [rsp + 0x48], edi
mov qword [rsp + 0x38], r15
mov rdi, rax
mov qword [rsp + 0x50], rbp
jmp 0x414168
mov rsi, qword [rsp + 0x48]
jmp 0x414550
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], r15
mov r9, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x130]
call sym.incircle
comisd xmm0, xmmword [0x00435780]
ja 0x41455e
jmp 0x4142ba
lea rcx, str.__Connecting
call sym.printf
lea r8, [rsp + 0x70]
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x130]
call sym.printtriangle
jmp 0x4145d9
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov r9, r15
mov r8, rsi
mov rdx, rdi
mov rcx, qword [rsp + 0x130]
call sym.counterclockwise
comisd xmm0, xmm7
jbe 0x413c99
movsxd rax, dword [rbp + 8]
mov eax, dword [r13 + rax*4]
mov dword [rbp + 8], eax
cdqe
mov rdx, qword [rbp]
mov rax, qword [rdx + rax*8]
mov edx, eax
and edx, 3
mov dword [rbp + 8], edx
xor eax, edx
mov qword [rbp], rax
movsxd rdx, edx
mov r15, rsi
mov rsi, qword [rax + rdx*8 + 0x18]
mov qword [rsp + 0x20], r15
mov r9, rbx
mov r8, qword [rsp + 0x30]
mov rdx, rdi
mov rcx, qword [rsp + 0x130]
call sym.counterclockwise
comisd xmm0, xmm6
jbe 0x414762
movsxd rdx, dword [r12 + 8]
lea rax, [0x00424010]
mov eax, dword [rax + rdx*4]
mov dword [r12 + 8], eax
cdqe
mov rdx, qword [r12]
mov rax, qword [rdx + rax*8]
mov edx, eax
and edx, 3
mov dword [r12 + 8], edx
xor eax, edx
mov qword [r12], rax
movsxd rdx, edx
mov r14, qword [rax + rdx*8 + 0x18]
mov qword [rsp + 0x20], rbx
mov r9, r15
mov r8, rsi
mov rdx, rdi
mov rcx, qword [rsp + 0x130]
call sym.counterclockwise
comisd xmm0, xmmword [0x00435780]
ja 0x413c8c
mov qword [rsp + 0x30], rbx
mov rbx, r14
jmp 0x4147bb