LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O2/janthonyo[P]Redes-Practicas/funcionesServer.cc
// Function: checkPiece(int, char*, ficha&, char*&)
bool checkPiece(int i, char* buffer, ficha &auxFicha, char* &extremo)
{
    //Variables auxiliares
    int contNum = 0;
    char valorFicha[2];
    char* aux;

    //Sacamos "COLOCAR-FICHA" del buffer
    aux = strtok(buffer, " ,");

    // Sacamos la ficha y la posicion donde colocarla (izquierda/derecha)
    aux = strtok(NULL, " ,");   //La ficha entra en aux
    contNum = 0;                //Evaluamos si es un comando de colocar ficha válido

    //Hallamos los valores de la ficha
    for (int l = 0; l < strlen(aux); l++) {
        if (isdigit(aux[l])) {
            if(contNum < 2){
                // "- '0'" sirve para pasar de char a int el contenido de aux
                valorFicha[contNum] = (aux[l]) - '0';
            }
            contNum++;
        }
    }
    if(contNum != 2){   //Si el comando no lleva exactamente 2 valores numéricos
        return false;
    }

    extremo = strtok(NULL, " ,");   //El extremo entra en aux

    //Si el valor del extremo no es válido
    if ((strcmp( extremo, "derecha\n") != 0 ) && (strcmp( extremo, "izquierda\n") != 0 ))
    {
        return false;
    }

    auxFicha.left = valorFicha[0];
    auxFicha.right = valorFicha[1];

    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rcx, %r14
movq %rdx, %rbx
movq %rsi, %rdi
leaq 0x1826(%rip), %r15      # 0x897f
movq %r15, %rsi
callq 0x22e0
xorl %r12d, %r12d
xorl %edi, %edi
movq %r15, %rsi
callq 0x22e0
movq %rax, %r15
movq %rax, %rdi
callq 0x20f0
xorl %ecx, %ecx
cmpq %r12, %rax
je 0x71a3
movsbl (%r15,%r12), %edx
leal -0x30(%rdx), %esi
cmpl $0x9, %esi
ja 0x719e
cmpl $0x1, %ecx
jg 0x719c
addb $-0x30, %dl
movslq %ecx, %rsi
movb %dl, -0x22(%rbp,%rsi)
incl %ecx
incq %r12
jmp 0x717b
cmpl $0x2, %ecx
jne 0x71e2
leaq 0x17d0(%rip), %rsi      # 0x897f
xorl %edi, %edi
callq 0x22e0
movq %rax, %r15
movq %rax, (%r14)
leaq 0x17bf(%rip), %rsi      # 0x8982
movq %rax, %rdi
callq 0x22a0
testl %eax, %eax
je 0x71e6
leaq 0x17b5(%rip), %rsi      # 0x898b
movq %r15, %rdi
callq 0x22a0
testl %eax, %eax
je 0x71e6
xorl %eax, %eax
jmp 0x71f5
movsbl -0x22(%rbp), %eax
movl %eax, (%rbx)
movsbl -0x21(%rbp), %eax
movl %eax, 0x4(%rbx)
movb $0x1, %al
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/janthonyo[P]Redes-Practicas/funcionesServer.cc
// Function: puttingpieceP1(domino&, ficha&, char*)
bool puttingpieceP1(domino& game, ficha &auxFicha, char* extremo)
{
    if (strcmp( extremo, "izquierda\n") == 0)
    {
        //Si la ficha se puede coloca, se coloca y se le quita de la mano
        if (game.putInBoardLeft(auxFicha)) {
            game.quitPieceJ1(auxFicha);
        }
        else{
            return false;
        }
    }

    else if (strcmp( extremo, "derecha\n") == 0)
    {
        //Si la ficha se puede coloca, se coloca y se le quita de la mano
        if (game.putInBoardRight(auxFicha)) {
            game.quitPieceJ1(auxFicha);
        }
        else{
            return false;
        }
    }

    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x176f(%rip), %rsi      # 0x898b
movq %rdx, %rdi
callq 0x22a0
testl %eax, %eax
je 0x724c
leaq 0x1753(%rip), %rsi      # 0x8982
movq %r15, %rdi
callq 0x22a0
movl %eax, %ecx
movb $0x1, %al
testl %ecx, %ecx
jne 0x726c
movq (%r14), %rsi
movq %rbx, %rdi
callq 0x73a4
jmp 0x7257
movq (%r14), %rsi
movq %rbx, %rdi
callq 0x7348
testb %al, %al
je 0x726a
movq (%r14), %rsi
movq %rbx, %rdi
callq 0x4c08
movb $0x1, %al
jmp 0x726c
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/janthonyo[P]Redes-Practicas/./domino.cc
// Function: domino::putInBoardLeft(ficha)
bool putInBoardLeft(ficha f)
	{
		//Estructura ficha auxiliar para "girar" la ficha
		ficha aux;
		bool inserted = false;

		/*No hace falta considerar el caso con tablero vacio, ya que nunca se
		  va a llamar a esta funcion en esa situacion.*/

		//Se comprueba si la ficha se puede colocar en el extremo inicial.
		if((first == f.left) or (first == f.right))
		{
			if( f.left == first )
			{
				setFirst(f.right);
				aux.left = f.right;
				aux.right = f.left;
				board.insert(board.begin(), aux);
			}

			else
			{
				setFirst(f.left);
				board.insert(board.begin(), f);
			}

			inserted = true;
		}

		//Si no, se devuelve false (valor inicial de inserted)
		return inserted;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x18, %rsp
movq %rsi, -0x10(%rbp)
movl 0x130(%rdi), %eax
cmpl %esi, %eax
sete %dl
movq %rsi, %rcx
shrq $0x20, %rcx
cmpl %ecx, %eax
sete %bl
orb %dl, %bl
cmpb $0x1, %bl
jne 0x739a
cmpl %esi, %eax
jne 0x7388
movl %ecx, 0x130(%rdi)
leaq -0x18(%rbp), %rdx
movl %ecx, (%rdx)
movl %eax, 0x4(%rdx)
jmp 0x7392
movl %esi, 0x130(%rdi)
leaq -0x10(%rbp), %rdx
movq (%rdi), %rsi
callq 0x4d70
movl %ebx, %eax
addq $0x18, %rsp
popq %rbx
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/janthonyo[P]Redes-Practicas/./domino.cc
// Function: domino::putInBoardRight(ficha)
bool putInBoardRight(ficha f)
	{
		//Estructura ficha auxiliar para "girar" la ficha
		ficha aux;
		bool inserted = false;

		/*No hace falta considerar el caso con tablero vacio, ya que nunca se
		  va a llamar a esta funcion en esa situacion.*/

		  //Se comprueba si la ficha se puede colocar en el extremo final.
  		if((last == f.left) or (last == f.right))
  		{
  			if( f.left == last )
  			{
  				setLast(f.right);
  				board.push_back(f);
  			}

  			else
  			{
  				setLast(f.left);
  				aux.left = f.right;
  				aux.right = f.left;
  				board.push_back(aux);
  			}

  			inserted = true;
  		}

		//Si no, se devuelve false (valor inicial de inserted)
		return inserted;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x18, %rsp
movq %rsi, -0x10(%rbp)
movl 0x134(%rdi), %eax
cmpl %esi, %eax
sete %dl
movq %rsi, %rcx
shrq $0x20, %rcx
cmpl %ecx, %eax
sete %bl
orb %dl, %bl
cmpb $0x1, %bl
jne 0x73f6
cmpl %esi, %eax
jne 0x73df
movl %ecx, 0x134(%rdi)
leaq -0x10(%rbp), %rax
jmp 0x73ee
movl %esi, 0x134(%rdi)
leaq -0x18(%rbp), %rax
movl %ecx, (%rax)
movl %esi, 0x4(%rax)
movq %rax, %rsi
callq 0x49a2
movl %ebx, %eax
addq $0x18, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/main.cpp
// Function: updateInterfaceUI()
void updateInterfaceUI()
{
	interfaceHeader->Print();
	for (size_t i = 0; i < interfaces.size(); ++i)
	{
		interfaces[i]->Print();
	}
	footer->Print();
	refresh();
}

// Assembly:
pushq %rbx
movq 0xc562(%rip), %rdi      # 0x10300
callq 0x89ce
xorl %ebx, %ebx
movq 0xc57c(%rip), %rcx      # 0x10328
movq 0xc56d(%rip), %rax      # 0x10320
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rcx, %rbx
jae 0x3dcd
movq (%rax,%rbx,8), %rdi
callq 0x901a
incq %rbx
jmp 0x3da5
movq 0xc564(%rip), %rdi      # 0x10338
callq 0x9e68
popq %rbx
jmp 0x3520
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/main.cpp
// Function: translateInterfaceIndex(int)
int translateInterfaceIndex(int index)
{
	int matchIndex = -1;
	for (size_t i = 0; i < interfaces.size(); ++i)
	{
		if (!interfaces[i]->IsHidden())
		{
			matchIndex++;
		}
		if (matchIndex == index)
		{
			return i;
		}
	}
	return -1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movl %edi, %ebp
pushq $-0x1
popq %rbx
xorl %r14d, %r14d
movl %ebx, %r15d
movq 0xc2a3(%rip), %rcx      # 0x10328
movq 0xc294(%rip), %rax      # 0x10320
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rcx, %r14
jae 0x40b6
movq (%rax,%r14,8), %rdi
callq 0x92ca
xorb $0x1, %al
movzbl %al, %eax
addl %eax, %r15d
cmpl %ebp, %r15d
je 0x40b3
incq %r14
jmp 0x407e
movl %r14d, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/main.cpp
// Function: updateGraphs()
void updateGraphs()
{
	switch (gm)
	{
		case GM_ONE:
		{
			graphs[0]->Update();
			break;
		}
		case GM_TWO_WIDE:
		case GM_TWO_TALL:
		{
			graphs[0]->Update();
			graphs[1]->Update();
			break;
		}
		case GM_FOUR_WIDE:
		case GM_FOUR_TALL:
		case GM_TWO_WIDE_TWO_TALL:
		{
			graphs[0]->Update();
			graphs[1]->Update();
			graphs[2]->Update();
			graphs[3]->Update();
			break;
		}
	}
}

// Assembly:
pushq %rax
movl 0xb377(%rip), %eax      # 0x10370
leal -0x3(%rax), %ecx
cmpl $0x3, %ecx
jb 0x5025
leal -0x1(%rax), %ecx
cmpl $0x2, %ecx
jae 0x5061
movq 0xb348(%rip), %rax      # 0x10358
movq (%rax), %rdi
callq 0x8118
movq 0xb339(%rip), %rax      # 0x10358
addq $0x8, %rax
jmp 0x506c
movq 0xb32c(%rip), %rax      # 0x10358
movq (%rax), %rdi
callq 0x8118
movq 0xb31d(%rip), %rax      # 0x10358
movq 0x8(%rax), %rdi
callq 0x8118
movq 0xb30d(%rip), %rax      # 0x10358
movq 0x10(%rax), %rdi
callq 0x8118
movq 0xb2fd(%rip), %rax      # 0x10358
addq $0x18, %rax
jmp 0x506c
testl %eax, %eax
jne 0x5075
movq 0xb2ec(%rip), %rax      # 0x10358
movq (%rax), %rdi
popq %rax
jmp 0x8118
popq %rax
retq
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/main.cpp
// Function: deactivateGraphs()
void deactivateGraphs()
{
	switch (gm)
	{
		case GM_ONE:
		{
			graphs[0]->setActive(false);
			break;
		}
		case GM_TWO_WIDE:
		case GM_TWO_TALL:
		{
			graphs[0]->setActive(false);
			graphs[1]->setActive(false);
			break;
		}
		case GM_FOUR_WIDE:
		case GM_FOUR_TALL:
		case GM_TWO_WIDE_TWO_TALL:
		{
			graphs[0]->setActive(false);
			graphs[1]->setActive(false);
			graphs[2]->setActive(false);
			graphs[3]->setActive(false);
			break;
		}
	}
}

// Assembly:
pushq %rax
movl 0xb2f2(%rip), %eax      # 0x10370
leal -0x3(%rax), %ecx
cmpl $0x3, %ecx
jb 0x50ac
leal -0x1(%rax), %ecx
cmpl $0x2, %ecx
jae 0x50ee
movq 0xb2c3(%rip), %rax      # 0x10358
movq (%rax), %rdi
xorl %esi, %esi
callq 0x82de
movq 0xb2b2(%rip), %rax      # 0x10358
addq $0x8, %rax
jmp 0x50f9
movq 0xb2a5(%rip), %rax      # 0x10358
movq (%rax), %rdi
xorl %esi, %esi
callq 0x82de
movq 0xb294(%rip), %rax      # 0x10358
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0x82de
movq 0xb282(%rip), %rax      # 0x10358
movq 0x10(%rax), %rdi
xorl %esi, %esi
callq 0x82de
movq 0xb270(%rip), %rax      # 0x10358
addq $0x18, %rax
jmp 0x50f9
testl %eax, %eax
jne 0x5104
movq 0xb25f(%rip), %rax      # 0x10358
movq (%rax), %rdi
xorl %esi, %esi
popq %rax
jmp 0x82de
popq %rax
retq
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/main.cpp
// Function: printGraphs()
void printGraphs()
{
	switch (gm)
	{
		case GM_ONE:
		{
			graphs[0]->Print();
			break;
		}
		case GM_TWO_WIDE:
		case GM_TWO_TALL:
		{
			graphs[0]->Print();
			graphs[1]->Print();
			break;
		}
		case GM_FOUR_WIDE:
		case GM_FOUR_TALL:
		case GM_TWO_WIDE_TWO_TALL:
		{
			graphs[0]->Print();
			graphs[1]->Print();
			graphs[2]->Print();
			graphs[3]->Print();
			break;
		}
	}
}

// Assembly:
pushq %rax
movl 0xb263(%rip), %eax      # 0x10370
leal -0x3(%rax), %ecx
cmpl $0x3, %ecx
jb 0x5139
leal -0x1(%rax), %ecx
cmpl $0x2, %ecx
jae 0x5175
movq 0xb234(%rip), %rax      # 0x10358
movq (%rax), %rdi
callq 0x8154
movq 0xb225(%rip), %rax      # 0x10358
addq $0x8, %rax
jmp 0x5180
movq 0xb218(%rip), %rax      # 0x10358
movq (%rax), %rdi
callq 0x8154
movq 0xb209(%rip), %rax      # 0x10358
movq 0x8(%rax), %rdi
callq 0x8154
movq 0xb1f9(%rip), %rax      # 0x10358
movq 0x10(%rax), %rdi
callq 0x8154
movq 0xb1e9(%rip), %rax      # 0x10358
addq $0x18, %rax
jmp 0x5180
testl %eax, %eax
jne 0x5189
movq 0xb1d8(%rip), %rax      # 0x10358
movq (%rax), %rdi
popq %rax
jmp 0x8154
popq %rax
retq
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/main.cpp
// Function: updateAllGraphInterfaces(Interface*)
void updateAllGraphInterfaces(Interface * interface)
{
	switch (gm)
	{
		case GM_ONE:
		{
			graphs[0]->UpdateGraphInterface(interface);
			break;
		}
		case GM_TWO_WIDE:
		case GM_TWO_TALL:
		{
			graphs[0]->UpdateGraphInterface(interface);
			graphs[1]->UpdateGraphInterface(interface);
			break;
		}
		case GM_FOUR_WIDE:
		case GM_FOUR_TALL:
		case GM_TWO_WIDE_TWO_TALL:
		{
			graphs[0]->UpdateGraphInterface(interface);
			graphs[1]->UpdateGraphInterface(interface);
			graphs[2]->UpdateGraphInterface(interface);
			graphs[3]->UpdateGraphInterface(interface);
			break;
		}
	}
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl 0xb1c5(%rip), %eax      # 0x10370
leal -0x3(%rax), %ecx
cmpl $0x3, %ecx
jb 0x51da
leal -0x1(%rax), %ecx
cmpl $0x2, %ecx
jae 0x521f
movq 0xb196(%rip), %rax      # 0x10358
movq (%rax), %rdi
movq %rbx, %rsi
callq 0x8284
movq 0xb184(%rip), %rax      # 0x10358
addq $0x8, %rax
jmp 0x522a
movq 0xb177(%rip), %rax      # 0x10358
movq (%rax), %rdi
movq %rbx, %rsi
callq 0x8284
movq 0xb165(%rip), %rax      # 0x10358
movq 0x8(%rax), %rdi
movq %rbx, %rsi
callq 0x8284
movq 0xb152(%rip), %rax      # 0x10358
movq 0x10(%rax), %rdi
movq %rbx, %rsi
callq 0x8284
movq 0xb13f(%rip), %rax      # 0x10358
addq $0x18, %rax
jmp 0x522a
testl %eax, %eax
jne 0x5236
movq 0xb12e(%rip), %rax      # 0x10358
movq (%rax), %rdi
movq %rbx, %rsi
popq %rbx
jmp 0x8284
popq %rbx
retq
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/main.cpp
// Function: clearGraphs()
void clearGraphs()
{
	switch (gm)
	{
		case GM_ONE:
		{
			graphs[0]->Clear();
			break;
		}
		case GM_TWO_WIDE:
		case GM_TWO_TALL:
		{
			graphs[0]->Clear();
			graphs[1]->Clear();
			break;
		}
		case GM_FOUR_WIDE:
		case GM_FOUR_TALL:
		case GM_TWO_WIDE_TWO_TALL:
		{
			graphs[0]->Clear();
			graphs[1]->Clear();
			graphs[2]->Clear();
			graphs[3]->Clear();
			break;
		}
	}
}

// Assembly:
pushq %rax
movl 0xb131(%rip), %eax      # 0x10370
leal -0x3(%rax), %ecx
cmpl $0x3, %ecx
jb 0x526b
leal -0x1(%rax), %ecx
cmpl $0x2, %ecx
jae 0x52a7
movq 0xb102(%rip), %rax      # 0x10358
movq (%rax), %rdi
callq 0x8208
movq 0xb0f3(%rip), %rax      # 0x10358
addq $0x8, %rax
jmp 0x52b2
movq 0xb0e6(%rip), %rax      # 0x10358
movq (%rax), %rdi
callq 0x8208
movq 0xb0d7(%rip), %rax      # 0x10358
movq 0x8(%rax), %rdi
callq 0x8208
movq 0xb0c7(%rip), %rax      # 0x10358
movq 0x10(%rax), %rdi
callq 0x8208
movq 0xb0b7(%rip), %rax      # 0x10358
addq $0x18, %rax
jmp 0x52b2
testl %eax, %eax
jne 0x52bb
movq 0xb0a6(%rip), %rax      # 0x10358
movq (%rax), %rdi
popq %rax
jmp 0x8208
popq %rax
retq
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/graph.cpp
// Function: GraphRow::Update(std::vector<GraphDataColumn*, std::allocator<GraphDataColumn*>>*, int)
void GraphRow::Update(std::vector<GraphDataColumn *> *gDataCols, int max)
{
	werase(this->win);
	float currPos = (float)this->value / (float)this->max;
	for (size_t i = 0; i < gDataCols->size(); i++)
	{
		float valuePercent = (float)gDataCols->at(i)->GetValue() / (float)max;
		float split = (float)1 / (float)this->max;
		if (valuePercent > currPos && valuePercent <= (currPos + split))
		{
			mvwprintw(this->win, 0, i, ".");
		}
		else if (valuePercent > currPos)
		{
			mvwprintw(this->win, 0, i, "|");
		}
		else if (valuePercent == 0 && currPos == 0)
		{
			mvwprintw(this->win, 0, i, "_");
		}
	}

	wrefresh(this->win);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %edx, %ebp
movq %rsi, %r14
movq %rdi, %rbx
movq (%rdi), %rdi
callq 0x3050
movsd 0x8(%rbx), %xmm0
cvtdq2ps %xmm0, %xmm3
movaps %xmm3, %xmm0
cvtsi2ss %ebp, %xmm1
movss %xmm1, 0xc(%rsp)
shufps $0x55, %xmm3, %xmm0     # xmm0 = xmm0[1,1],xmm3[1,1]
divss %xmm0, %xmm3
leaq 0x3b52(%rip), %r15      # 0xb526
leaq 0x3b49(%rip), %r12      # 0xb524
leaq 0x3b46(%rip), %r13      # 0xb528
xorl %ebp, %ebp
movaps %xmm3, 0x10(%rsp)
movq 0x8(%r14), %rax
subq (%r14), %rax
sarq $0x3, %rax
cmpq %rax, %rbp
jae 0x7a7d
movq %r14, %rdi
movq %rbp, %rsi
callq 0x8324
movaps 0x10(%rsp), %xmm3
movq (%rax), %rax
cvtsi2ssl (%rax), %xmm0
divss 0xc(%rsp), %xmm0
ucomiss %xmm3, %xmm0
jbe 0x7a45
cvtsi2ssl 0xc(%rbx), %xmm1
movss 0x3af0(%rip), %xmm2     # 0xb51c
divss %xmm1, %xmm2
addss %xmm3, %xmm2
ucomiss %xmm0, %xmm2
movq (%rbx), %rdi
jae 0x7a67
xorl %esi, %esi
movl %ebp, %edx
movq %r15, %rcx
jmp 0x7a6e
ucomiss 0x3ad4(%rip), %xmm0     # 0xb520
jne 0x7a75
jp 0x7a75
ucomiss 0x3ac9(%rip), %xmm3     # 0xb520
jne 0x7a75
jp 0x7a75
movq (%rbx), %rdi
xorl %esi, %esi
movl %ebp, %edx
movq %r13, %rcx
jmp 0x7a6e
xorl %esi, %esi
movl %ebp, %edx
movq %r12, %rcx
xorl %eax, %eax
callq 0x30b0
incq %rbp
jmp 0x79e9
movq (%rbx), %rdi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3310
nop
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/graph.cpp
// Function: GraphTitle::Update()
void GraphTitle::Update()
{
	werase(this->win);

	char graphTypeString[graphTypeStringSize];
	getGraphTypeString(this->graphType, graphTypeString);

	if (this->active)
	{
		wattron(this->win, COLOR_PAIR(HEADER_ACTIVE_COLOR));
	}
	if (this->interface == NULL)
	{
		wprintw(this->win, "%s", graphTypeString);
	}
	else
	{
		wprintw(this->win, "%s through %s", graphTypeString, interface->name);
	}
	if (this->active)
	{
		wattroff(this->win, COLOR_PAIR(HEADER_ACTIVE_COLOR));
	}

	wrefresh(this->win);
}

// Assembly:
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
movq (%rdi), %rdi
callq 0x3050
movl 0x18(%rbx), %edi
movq %rsp, %rsi
callq 0x96b3
cmpb $0x1, 0x28(%rbx)
jne 0x7afc
movq (%rbx), %rdi
movl $0x400, %esi            # imm = 0x400
xorl %edx, %edx
callq 0x3180
movq (%rbx), %rdi
movq 0x20(%rbx), %rax
testq %rax, %rax
je 0x7b1e
movq (%rax), %rcx
leaq 0x3a18(%rip), %rsi      # 0xb52a
movq %rsp, %rdx
xorl %eax, %eax
callq 0x3060
jmp 0x7b2f
leaq 0x3bf9(%rip), %rsi      # 0xb71e
movq %rsp, %rdx
xorl %eax, %eax
callq 0x3060
cmpb $0x1, 0x28(%rbx)
jne 0x7b44
movq (%rbx), %rdi
movl $0x400, %esi            # imm = 0x400
xorl %edx, %edx
callq 0x33a0
movq (%rbx), %rdi
callq 0x3310
addq $0x20, %rsp
popq %rbx
retq
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/graph.cpp
// Function: GraphTitle::Resize(int, int, int, int)
void GraphTitle::Resize(int placementX, int placementY, int width, int height)
{
	this->placementX = placementX;
	this->placementY = placementY;
	this->width = width;
	this->height = height;

	wresize(this->win, this->height, this->width);
	mvwin(this->win, this->placementY, this->placementX);

	this->Update();
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl %esi, 0x8(%rdi)
movl %edx, 0xc(%rdi)
movl %ecx, 0x10(%rdi)
movl %r8d, 0x14(%rdi)
movq (%rdi), %rdi
movl %r8d, %esi
movl %ecx, %edx
callq 0x31f0
movq (%rbx), %rdi
movl 0xc(%rbx), %esi
movl 0x8(%rbx), %edx
callq 0x3140
movq %rbx, %rdi
popq %rbx
jmp 0x7acc
nop
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/graph.cpp
// Function: Graph::Graph(GraphType, std::vector<Interface*, std::allocator<Interface*>>*)
Graph::Graph(GraphType graphType, std::vector<Interface *> *interfaces)
{
	this->graphType = graphType;
	this->interfaces = interfaces;

	this->graphTitle = new GraphTitle(this->graphType, NULL);
	this->graphMaxItem = new GraphMaxItem();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
andq $0x0, 0x28(%rdi)
movl %esi, %ebp
leaq 0x48(%rdi), %r14
xorps %xmm0, %xmm0
movups %xmm0, 0x48(%rdi)
movups %xmm0, 0x58(%rdi)
movups %xmm0, 0x68(%rdi)
movl %esi, 0x30(%rdi)
movq %rdx, 0x20(%rdi)
pushq $0x30
popq %rdi
callq 0x32c0
movb $0x0, 0x28(%rax)
andq $0x0, 0x20(%rax)
movl %ebp, 0x18(%rax)
movq %rax, 0x38(%rbx)
pushq $0x20
popq %rdi
callq 0x32c0
andl $0x0, 0x18(%rax)
movq %rax, 0x40(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
addq $0x60, %rbx
movq %rbx, %rdi
callq 0x854e
movq %r14, %rdi
callq 0x851a
movq %r15, %rdi
callq 0x3540
nop
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/graph.cpp
// Function: Graph::~Graph()
Graph::~Graph()
{
	gDataCols.clear();
	gRows.clear();
	delete this->graphTitle;
	delete this->graphMaxItem;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %r15
movq 0x60(%rdi), %rax
cmpq %rax, 0x68(%rdi)
je 0x7cd4
movq %rax, 0x68(%r15)
leaq 0x60(%r15), %r14
leaq 0x48(%r15), %rbx
movq 0x48(%r15), %rax
cmpq %rax, 0x50(%r15)
je 0x7cea
movq %rax, 0x50(%r15)
movq 0x38(%r15), %rdi
pushq $0x30
popq %rsi
callq 0x32d0
movq 0x40(%r15), %rdi
pushq $0x20
popq %rsi
callq 0x32d0
movq %r14, %rdi
callq 0x854e
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x851a
nop
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/graph.cpp
// Function: Graph::Update()
void Graph::Update()
{
	// Update the data
	for (size_t i = 0; i < this->gDataCols.size(); i++)
	{
		gDataCols[i]->Update();
	}

	this->Print();
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
xorl %r14d, %r14d
movq 0x60(%rbx), %rax
movq 0x68(%rbx), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rcx, %r14
jae 0x8144
movq (%rax,%r14,8), %rdi
callq 0x76be
incq %r14
jmp 0x8122
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x8154
nop
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/graph.cpp
// Function: Graph::Print()
void Graph::Print()
{
	// Scan the data columns for the maximum
	int max = 0;
	for (size_t i = 0; i < this->gDataCols.size(); i++)
	{
		int tempValue = gDataCols[i]->GetValue();
		if (tempValue > max)
		{
			max = tempValue;
		}
	}

	wborder(this->win, 0, 0, 0, 0, 0, 0, 0, 0);
	wrefresh(this->win);

	// Print the graph contents
	for (size_t i = 0; i < this->gRows.size(); i++)
	{
		gRows[i]->Update(&(this->gDataCols), max);
	}

	this->graphMaxItem->UpdateMaxItem(max);

	this->graphTitle->Update();

	wrefresh(this->win);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
leaq 0x60(%rdi), %r14
movq 0x60(%rdi), %rax
movq 0x68(%rdi), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
xorl %edx, %edx
xorl %ebp, %ebp
cmpq %rdx, %rcx
je 0x818d
movq (%rax,%rdx,8), %rsi
movl (%rsi), %esi
cmpl %ebp, %esi
cmovgl %esi, %ebp
incq %rdx
jmp 0x8178
movq (%rbx), %rdi
andl $0x0, 0x10(%rsp)
andl $0x0, 0x8(%rsp)
andl $0x0, (%rsp)
xorl %r15d, %r15d
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x31c0
movq (%rbx), %rdi
callq 0x3310
movq 0x48(%rbx), %rax
movq 0x50(%rbx), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rcx, %r15
jae 0x81e1
movq (%rax,%r15,8), %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x7992
incq %r15
jmp 0x81ba
movq 0x40(%rbx), %rdi
movl %ebp, 0x18(%rdi)
callq 0x7c0e
movq 0x38(%rbx), %rdi
callq 0x7acc
movq (%rbx), %rdi
addq $0x18, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x3310
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/graph.cpp
// Function: Graph::Clear()
void Graph::Clear()
{
	for (size_t i = 0; i < this->gDataCols.size(); i++)
	{
		gDataCols[i]->Clear();
	}

	for (size_t i = 0; i < this->gRows.size(); i++)
	{
		gRows[i]->Update(&(this->gDataCols), 2);
	}

	this->graphMaxItem->UpdateMaxItem(0);

	wrefresh(this->win);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x60(%rdi), %r14
movq 0x60(%rdi), %rax
movq 0x68(%rdi), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
xorl %edx, %edx
cmpq %rcx, %rdx
jae 0x8238
movq (%rax,%rdx,8), %rsi
andl $0x0, (%rsi)
incq %rdx
jmp 0x8227
xorl %r15d, %r15d
pushq $0x2
popq %rbp
movq 0x48(%rbx), %rax
movq 0x50(%rbx), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rcx, %r15
jae 0x8265
movq (%rax,%r15,8), %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x7992
incq %r15
jmp 0x823e
movq 0x40(%rbx), %rdi
andl $0x0, 0x18(%rdi)
callq 0x7c0e
movq (%rbx), %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x3310
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/graph.cpp
// Function: Graph::UpdateGraphInterface(Interface*)
void Graph::UpdateGraphInterface(Interface *interface)
{
	this->interface = interface;

	this->graphTitle->UpdateGraphInterface(interface);

	for (size_t i = 0; i < this->gDataCols.size(); i++)
	{
		gDataCols[i]->UpdateGraphInterface(interface);
	}

	this->Clear();
	this->Update();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq %rsi, 0x28(%rdi)
movq 0x38(%rdi), %rdi
movq %rsi, 0x20(%rdi)
callq 0x7acc
xorl %r15d, %r15d
movq 0x60(%rbx), %rax
movq 0x68(%rbx), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rcx, %r15
jae 0x82c9
movq (%rax,%r15,8), %rdi
movq %r14, 0x10(%rdi)
callq 0x76be
incq %r15
jmp 0x82a3
movq %rbx, %rdi
callq 0x8208
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x8118
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/interface.cpp
// Function: InterfaceHeader::PrintTabTitle(int, char*)
void InterfaceHeader::PrintTabTitle(int index, char *text)
{
	if (this->activeTab == index)
	{
		wattron(this->win, COLOR_PAIR(HEADER_ACTIVE_COLOR));
		wprintw(this->win, "%s",
				text);
		wattroff(this->win, COLOR_PAIR(HEADER_ACTIVE_COLOR));
		wattron(this->win, COLOR_PAIR(HEADER_COLOR));
	}
	else if (this->sortingHeader == index)
	{
		wattron(this->win, COLOR_PAIR(HEADER_SORT_COLOR));
		wprintw(this->win, "%s",
				text);
		wattroff(this->win, COLOR_PAIR(HEADER_SORT_COLOR));
		wattron(this->win, COLOR_PAIR(HEADER_COLOR));
	}
	else
	{
		wprintw(this->win, "%s",
				text);
	}
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rdi, %rbx
cmpl %esi, 0xc(%rdi)
jne 0x8968
movq (%rbx), %rdi
movl $0x400, %esi            # imm = 0x400
xorl %edx, %edx
callq 0x3180
movq (%rbx), %rdi
leaq 0x2dca(%rip), %rsi      # 0xb71e
movq %r14, %rdx
xorl %eax, %eax
callq 0x3060
movq (%rbx), %rdi
movl $0x400, %esi            # imm = 0x400
jmp 0x8998
movq (%rbx), %rdi
cmpl %esi, 0x8(%rbx)
jne 0x89b5
movl $0x500, %esi            # imm = 0x500
xorl %edx, %edx
callq 0x3180
movq (%rbx), %rdi
leaq 0x2d98(%rip), %rsi      # 0xb71e
movq %r14, %rdx
xorl %eax, %eax
callq 0x3060
movq (%rbx), %rdi
movl $0x500, %esi            # imm = 0x500
xorl %edx, %edx
callq 0x33a0
movq (%rbx), %rdi
movl $0x100, %esi            # imm = 0x100
xorl %edx, %edx
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x3180
leaq 0x2d62(%rip), %rsi      # 0xb71e
movq %r14, %rdx
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x3060
nop
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/interface.cpp
// Function: InterfaceHeader::Print()
void InterfaceHeader::Print()
{
	werase(this->win);
	wattron(this->win, COLOR_PAIR(HEADER_COLOR));
	if (this->activeTab == 0)
	{
		wattron(this->win, COLOR_PAIR(HEADER_ACTIVE_COLOR));
		mvwprintw(this->win, 0, 1, "%*s",
				this->longest, "Interface Name");
		wattroff(this->win, COLOR_PAIR(HEADER_ACTIVE_COLOR));
		wattron(this->win, COLOR_PAIR(HEADER_COLOR));
	}
	else
	{
		mvwprintw(this->win, 0, 1, "%*s",
				this->longest, "Interface Name");
	}
	wprintw(this->win, " | ");
	this->PrintTabTitle(1, " Rcvd Bytes  ");
	wprintw(this->win, " | ");
	this->PrintTabTitle(2, "Rcvd Pkts");
	wprintw(this->win, " | ");
	this->PrintTabTitle(3, " Sent Bytes  ");
	wprintw(this->win, " | ");
	this->PrintTabTitle(4, "Sent Pkts");
	wattroff(this->win, COLOR_PAIR(HEADER_COLOR));
	wrefresh(this->win);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq (%rdi), %rdi
callq 0x3050
movq (%rbx), %rdi
movl $0x100, %esi            # imm = 0x100
xorl %edx, %edx
callq 0x3180
cmpl $0x0, 0xc(%rbx)
movq (%rbx), %rdi
je 0x8a15
movl 0x14(%rbx), %r8d
leaq 0x2c10(%rip), %rcx      # 0xb610
leaq 0x2c0d(%rip), %r9       # 0xb614
pushq $0x1
popq %rdx
xorl %esi, %esi
xorl %eax, %eax
callq 0x30b0
jmp 0x8a60
movl $0x400, %esi            # imm = 0x400
xorl %edx, %edx
callq 0x3180
movq (%rbx), %rdi
movl 0x14(%rbx), %r8d
leaq 0x2be1(%rip), %rcx      # 0xb610
leaq 0x2bde(%rip), %r9       # 0xb614
pushq $0x1
popq %rdx
xorl %esi, %esi
xorl %eax, %eax
callq 0x30b0
movq (%rbx), %rdi
movl $0x400, %esi            # imm = 0x400
xorl %edx, %edx
callq 0x33a0
movq (%rbx), %rdi
movl $0x100, %esi            # imm = 0x100
xorl %edx, %edx
callq 0x3180
movq (%rbx), %rdi
leaq 0x27e9(%rip), %r14      # 0xb253
movq %r14, %rsi
xorl %eax, %eax
callq 0x3060
leaq 0x2ba8(%rip), %rdx      # 0xb623
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0x892c
movq (%rbx), %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x3060
leaq 0x2b97(%rip), %rdx      # 0xb631
pushq $0x2
popq %rsi
movq %rbx, %rdi
callq 0x892c
movq (%rbx), %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x3060
leaq 0x2b82(%rip), %rdx      # 0xb63b
pushq $0x3
popq %rsi
movq %rbx, %rdi
callq 0x892c
movq (%rbx), %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x3060
leaq 0x2b71(%rip), %rdx      # 0xb649
pushq $0x4
popq %rsi
movq %rbx, %rdi
callq 0x892c
movq (%rbx), %rdi
movl $0x100, %esi            # imm = 0x100
xorl %edx, %edx
callq 0x33a0
movq (%rbx), %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x3310
nop
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/interface.cpp
// Function: InterfaceRow::InterfaceRow(int, int, int, int)
InterfaceRow::InterfaceRow(int placementX, int placementY, int width, int height)
{
	this->placementX = placementX;
	this->placementY = placementY;
	this->width = width;
	this->height = height;

	this->win = newwin(3, this->width, this->placementY, this->placementX);
}

// Assembly:
pushq %rbx
movl %esi, %eax
movq %rdi, %rbx
movl %esi, 0x8(%rdi)
movl %edx, 0xc(%rdi)
movl %ecx, 0x10(%rdi)
movl %r8d, 0x14(%rdi)
pushq $0x3
popq %rdi
movl %ecx, %esi
movl %eax, %ecx
callq 0x32e0
movq %rax, (%rbx)
popq %rbx
retq
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/interface.cpp
// Function: Interface::Interface(char*, int, bool)
Interface::Interface(char *name, int longest, bool wireless)
{
	this->longest = longest;
	this->wireless = wireless;
	this->name = new char[strlen(name) + 1];
	strcpy(this->name, name);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
andq $0x0, 0x9c(%rdi)
movq %rsi, %r14
andq $0x0, 0xa8(%rdi)
andw $0x0, 0xb0(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rdi)
andq $0x0, 0x20(%rdi)
movups %xmm0, 0x30(%rdi)
andq $0x0, 0x40(%rdi)
movups %xmm0, 0x50(%rdi)
movups %xmm0, 0x68(%rdi)
movl %edx, 0xb4(%rdi)
movb %cl, 0x8c(%rdi)
movq %rsi, %rdi
callq 0x3160
leaq 0x1(%rax), %rdi
callq 0x3030
movq %rax, (%rbx)
movq %rax, %rdi
movq %r14, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x3270
nop
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/interface.cpp
// Function: Interface::UnZero()
void Interface::UnZero()
{
	r_bytesZeroed = 0;
	t_bytesZeroed = 0;
	r_packetsZeroed = 0;
	t_packetsZeroed = 0;
}

// Assembly:
andq $0x0, 0x20(%rdi)
andq $0x0, 0x40(%rdi)
andq $0x0, 0x58(%rdi)
andq $0x0, 0x70(%rdi)
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/interface.cpp
// Function: InterfaceDetailWindow::InterfaceDetailWindow(int, int, int, int, Interface*)
InterfaceDetailWindow::InterfaceDetailWindow(int placementX, int placementY, int width, int height, Interface *interface)
{
	this->placementX = placementX;
	this->placementY = placementY;
	this->width = width;
	this->height = height;

	this->interface = interface;

	this->win = newwin(this->height, this->width, this->placementY, this->placementX);

	this->Update();
}

// Assembly:
pushq %rbx
movl %esi, %eax
movq %rdi, %rbx
orl $-0x1, 0x20(%rdi)
movl %esi, 0x8(%rdi)
movl %edx, 0xc(%rdi)
movl %ecx, 0x10(%rdi)
movl %r8d, 0x14(%rdi)
movq %r9, 0x18(%rdi)
movl %r8d, %edi
movl %ecx, %esi
movl %eax, %ecx
callq 0x32e0
movq %rax, (%rbx)
movq %rbx, %rdi
popq %rbx
jmp 0x9306
nop
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/interface.cpp
// Function: getMatchingInterface(char*)
Interface *getMatchingInterface(char *ifname)
{
	extern std::vector<Interface *> interfaces;

	for (size_t i = 0; i < interfaces.size(); ++i)
	{
		if (strcmp(interfaces[i]->name, ifname) == 0)
		{
			return interfaces[i];
		}
	}
	return NULL;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdi, %rbx
leaq 0x6d19(%rip), %rax      # 0x10320
movq (%rax), %r15
movq 0x8(%rax), %r12
subq %r15, %r12
sarq $0x3, %r12
xorl %r13d, %r13d
cmpq %r12, %r13
jae 0x9635
movq (%r15,%r13,8), %r14
movq (%r14), %rdi
movq %rbx, %rsi
callq 0x33f0
incq %r13
testl %eax, %eax
jne 0x9618
jmp 0x9638
xorl %r14d, %r14d
movq %r14, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/settings.cpp
// Function: Settings::Settings()
Settings::Settings()
{
	char *homedir;
	if ((homedir = getenv("HOME")) == NULL) {
		homedir = getpwuid(getuid())->pw_dir;
	}
	const char *filename = "/.bwmon";
	strcat(homedir, filename);
	strcpy(this->settingsFileName, homedir);

	this->settingsFileExists = fileExists(this->settingsFileName);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
xorl %esi, %esi
callq 0x3150
movb $0x0, 0x28(%rbx)
leaq 0x20e1(%rip), %rdi      # 0xb8cb
callq 0x3390
movq %rax, %r14
testq %rax, %rax
jne 0x9807
callq 0x3190
movl %eax, %edi
callq 0x3340
movq 0x20(%rax), %r14
movq %r14, %rdi
callq 0x3160
movabsq $0x6e6f6d77622e2f, %rcx # imm = 0x6E6F6D77622E2F
movq %rcx, (%r14,%rax)
leaq 0x29(%rbx), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x3270
movq %r15, %rdi
callq 0x96e9
movb %al, 0x28(%rbx)
popq %rbx
popq %r14
popq %r15
retq
jmp 0x983f
movq %rax, %r14
movq %rbx, %rdi
callq 0x31b0
movq %r14, %rdi
callq 0x3540
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/settings.cpp
// Function: Settings::Initialize()
void Settings::Initialize()
{
	if (this->settingsFileExists)
	{
		std::ifstream settingsFile(this->settingsFileName);

		// Read the file
		settingsFile >> this->root;

		settingsFile.close();
	}
	else
	{
		// Initialize the default settings locally
		this->root["sortingColumn"] = -1;
		this->root["zeroOnStart"] = 1;
		this->root["graphs"][0] = 0;
		this->root["graphs"][1] = 1;
		this->root["graphs"][2] = 2;
		this->root["graphs"][3] = 3;

		// Call save
		this->SaveSettings();
	}
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x208, %rsp            # imm = 0x208
movq %rdi, %rbx
cmpb $0x1, 0x28(%rdi)
jne 0x98e9
leaq 0x29(%rbx), %rsi
movq %rsp, %r14
pushq $0x8
popq %rdx
movq %r14, %rdi
callq 0x3560
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3580
movq %rsp, %rdi
callq 0x3090
movq %rsp, %rdi
callq 0x30c0
jmp 0x9a3b
movq %rsp, %rdi
pushq $-0x1
popq %rsi
callq 0x3200
leaq 0x19f7(%rip), %rsi      # 0xb2f2
movq %rbx, %rdi
callq 0x3120
movq %rsp, %r14
movq %rax, %rdi
movq %r14, %rsi
callq 0x3370
movq %r14, %rdi
callq 0x31b0
movq %rsp, %rdi
pushq $0x1
popq %rsi
callq 0x3200
leaq 0x19d5(%rip), %rsi      # 0xb300
movq %rbx, %rdi
callq 0x3120
movq %rsp, %r14
movq %rax, %rdi
movq %r14, %rsi
callq 0x3370
movq %r14, %rdi
callq 0x31b0
movq %rsp, %rdi
xorl %esi, %esi
callq 0x3200
leaq 0x1991(%rip), %rsi      # 0xb2eb
movq %rbx, %rdi
callq 0x3120
movq %rax, %rdi
xorl %esi, %esi
callq 0x3300
movq %rsp, %r14
movq %rax, %rdi
movq %r14, %rsi
callq 0x3370
movq %r14, %rdi
callq 0x31b0
movq %rsp, %rdi
pushq $0x1
popq %rsi
callq 0x3200
leaq 0x1957(%rip), %rsi      # 0xb2eb
movq %rbx, %rdi
callq 0x3120
pushq $0x1
popq %rsi
movq %rax, %rdi
callq 0x3300
movq %rsp, %r14
movq %rax, %rdi
movq %r14, %rsi
callq 0x3370
movq %r14, %rdi
callq 0x31b0
movq %rsp, %rdi
pushq $0x2
popq %rsi
callq 0x3200
leaq 0x191c(%rip), %rsi      # 0xb2eb
movq %rbx, %rdi
callq 0x3120
pushq $0x2
popq %rsi
movq %rax, %rdi
callq 0x3300
movq %rsp, %r14
movq %rax, %rdi
movq %r14, %rsi
callq 0x3370
movq %r14, %rdi
callq 0x31b0
movq %rsp, %rdi
pushq $0x3
popq %rsi
callq 0x3200
leaq 0x18e1(%rip), %rsi      # 0xb2eb
movq %rbx, %rdi
callq 0x3120
pushq $0x3
popq %rsi
movq %rax, %rdi
callq 0x3300
movq %rsp, %r14
movq %rax, %rdi
movq %r14, %rsi
callq 0x3370
movq %r14, %rdi
callq 0x31b0
movq %rbx, %rdi
callq 0x9a70
addq $0x208, %rsp            # imm = 0x208
popq %rbx
popq %r14
retq
jmp 0x9a50
jmp 0x9a50
jmp 0x9a50
jmp 0x9a50
jmp 0x9a50
movq %rax, %rbx
movq %rsp, %rdi
callq 0x31b0
movq %rbx, %rdi
callq 0x3540
movq %rax, %rbx
movq %rsp, %rdi
callq 0x30c0
jmp 0x9a5b
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/settings.cpp
// Function: Settings::SaveSettings()
void Settings::SaveSettings()
{
	extern Logger *logger;

	std::ofstream settingsFile(this->settingsFileName);

	Json::StyledWriter writer;
	logger->Log(writer.write(this->root).c_str());
	settingsFile << writer.write(this->root).c_str();
	settingsFile.close();
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x298, %rsp            # imm = 0x298
movq %rdi, %rbx
leaq 0x29(%rdi), %rsi
leaq 0x98(%rsp), %rdi
pushq $0x10
popq %rdx
callq 0x32f0
leaq 0x28(%rsp), %rdi
callq 0x3070
leaq 0x68d6(%rip), %rax      # 0x10378
movq (%rax), %r14
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
movq %rbx, %rdx
callq 0x33c0
movq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x97a6
leaq 0x8(%rsp), %rdi
callq 0x3170
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
movq %rbx, %rdx
callq 0x33c0
movq 0x8(%rsp), %rsi
leaq 0x98(%rsp), %rdi
callq 0x32a0
leaq 0x8(%rsp), %rdi
callq 0x3170
leaq 0x98(%rsp), %rdi
callq 0x3420
leaq 0x28(%rsp), %rdi
callq 0x9b68
leaq 0x98(%rsp), %rdi
callq 0x3430
addq $0x298, %rsp            # imm = 0x298
popq %rbx
popq %r14
retq
jmp 0x9b40
jmp 0x9b31
jmp 0x9b40
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3170
jmp 0x9b43
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x9b68
leaq 0x98(%rsp), %rdi
callq 0x3430
movq %rbx, %rdi
callq 0x3540
movq %rax, %rbx
jmp 0x9b4d
nop
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/selectionWindow.cpp
// Function: SelectionWindow::SelectionWindow(GraphType, int, int, int, int)
SelectionWindow::SelectionWindow(GraphType graphType, int placementX, int placementY, int width, int height)
{
	this->graphType = graphType;
	this->placementX = placementX;
	this->placementY = placementY;
	this->width = width;
	this->height = height;

	this->win = newwin(this->height, this->width, this->placementY, this->placementX);

	this->Update();
}

// Assembly:
pushq %rbx
movl %edx, %eax
movq %rdi, %rbx
orl $-0x1, 0x1c(%rdi)
movl %esi, 0x8(%rdi)
movl %edx, 0xc(%rdi)
movl %ecx, 0x10(%rdi)
movl %r8d, 0x14(%rdi)
movl %r9d, 0x18(%rdi)
movl %r9d, %edi
movl %r8d, %esi
movl %ecx, %edx
movl %eax, %ecx
callq 0x32e0
movq %rax, (%rbx)
movq %rbx, %rdi
popq %rbx
jmp 0x9c52
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/selectionWindow.cpp
// Function: SelectionWindow::Update()
void SelectionWindow::Update()
{
	werase(this->win);
	wborder(this->win, 0, 0, 0, 0, 0, 0, 0, 0);

	char graphTypeString[graphTypeStringSize];
	for (int i = 0; i < GT_END; i++)
	{
		getGraphTypeString((GraphType)i, graphTypeString);
		if (i == activeItem)
		{
			wattron(this->win, COLOR_PAIR(HEADER_ACTIVE_COLOR));
		}
		mvwprintw(this->win, i + 1, 1, "%s", graphTypeString);
		if (i == activeItem)
		{
			wattroff(this->win, COLOR_PAIR(HEADER_ACTIVE_COLOR));
		}
	}

	wrefresh(this->win);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
movq (%rdi), %rdi
callq 0x3050
movq (%rbx), %rdi
andl $0x0, 0x10(%rsp)
andl $0x0, 0x8(%rsp)
andl $0x0, (%rsp)
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x31c0
pushq $0x4
popq %r15
leaq 0x20(%rsp), %r14
pushq $0x1
popq %rbp
xorl %r12d, %r12d
subl $0x1, %r15d
jb 0x9cfd
movl %r12d, %edi
movq %r14, %rsi
callq 0x96b3
cmpl 0x1c(%rbx), %r12d
jne 0x9cc2
movq (%rbx), %rdi
movl $0x400, %esi            # imm = 0x400
xorl %edx, %edx
callq 0x3180
movq (%rbx), %rdi
leal 0x1(%r12), %r13d
movl %r13d, %esi
movl %ebp, %edx
leaq 0x1a48(%rip), %rcx      # 0xb71e
movq %r14, %r8
xorl %eax, %eax
callq 0x30b0
cmpl 0x1c(%rbx), %r12d
movl %r13d, %r12d
jne 0x9c9c
movq (%rbx), %rdi
movl $0x400, %esi            # imm = 0x400
xorl %edx, %edx
callq 0x33a0
movl %r13d, %r12d
jmp 0x9c9c
movq (%rbx), %rdi
callq 0x3310
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/selectionWindow.cpp
// Function: SelectionWindow::AutoResize()
void SelectionWindow::AutoResize()
{
	this->placementX = this->graph->GetPlacementX();
	this->placementY = this->graph->GetPlacementY() + 1;
	this->width = graphTypeStringSize + 1;
	this->height = (int)GT_END + 2;

	wresize(this->win, this->height, this->width);
	mvwin(this->win, this->placementY, this->placementX);

	this->Update();
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x20(%rdi), %rdi
callq 0x82ec
movl %eax, 0xc(%rbx)
movq 0x20(%rbx), %rdi
callq 0x82f0
incl %eax
movl %eax, 0x10(%rbx)
movabsq $0x600000012, %rax      # imm = 0x600000012
movq %rax, 0x14(%rbx)
movq (%rbx), %rdi
pushq $0x6
popq %rsi
pushq $0x12
popq %rdx
callq 0x31f0
movq (%rbx), %rdi
movl 0x10(%rbx), %esi
movl 0xc(%rbx), %edx
callq 0x3140
movq %rbx, %rdi
popq %rbx
jmp 0x9c52
nop
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/footer.cpp
// Function: Footer::Footer(int, int, int, int)
Footer::Footer(int placementX, int placementY, int width, int height)
{
	this->placementX = placementX;
	this->placementY = placementY;
	this->width = width;
	this->height = height;

	this->win = newwin(this->height, this->width, this->placementY, this->placementX);
}

// Assembly:
pushq %rbx
movl %esi, %eax
movq %rdi, %rbx
andl $0x0, 0x8(%rdi)
movl %esi, 0xc(%rdi)
movl %edx, 0x10(%rdi)
movl %ecx, 0x14(%rdi)
movl %r8d, 0x18(%rdi)
movl %r8d, %edi
movl %ecx, %esi
movl %eax, %ecx
callq 0x32e0
movq %rax, (%rbx)
popq %rbx
retq
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/footer.cpp
// Function: Footer::Print()
void Footer::Print()
{
	werase(this->win);

	char modeString[modeStringSize];
	getModeString(this->mode, modeString);
	wprintw(this->win, " Mode: %s ",
			modeString);

	wattron(this->win, COLOR_PAIR(OPTION_COLOR));
	if (this->mode == MODE_SEARCH)
	{
		wprintw(this->win, " %s | %s | %s ",
				"hl enter to Select", "q Quit", "d Deselect");
	}
	else if (this->mode == MODE_GRAPH)
	{
		wprintw(this->win, " %s | %s | %s | %s ",
				"hl enter to Select", "q Quit", "c clear", "C clear all");
	}
	else if (this->mode == MODE_GRAPH_SELECTION)
	{
		wprintw(this->win, " %s | %s ",
				"jk enter to Select", "q Quit");
	}
	else if (mode == MODE_INTERFACE_DETAIL)
	{
		wprintw(this->win, " %s | %s ",
				"jk enter to Select", "q Quit");
	}
	else if (mode == MODE_SETTINGS)
	{
		wprintw(this->win, " %s | %s ",
				"jk enter to Select", "q Quit");
	}
	else
	{
		wprintw(this->win, " %s | %s | %s | %s | %s | %s | %s | %s ",
		"jk enter to Select", "q Quit", "d Deselect", "s Sort", "S Settings", "g Graph", "z Zero", "Z Un-Zero");
	}
	wattroff(this->win, COLOR_PAIR(OPTION_COLOR));

	wrefresh(this->win);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
movq (%rdi), %rdi
callq 0x3050
movl 0x8(%rbx), %edi
movq %rsp, %r14
movq %r14, %rsi
callq 0x9698
movq (%rbx), %rdi
leaq 0x1a50(%rip), %rsi      # 0xb8e4
movq %r14, %rdx
xorl %eax, %eax
callq 0x3060
movq (%rbx), %rdi
movl $0x300, %esi            # imm = 0x300
xorl %edx, %edx
callq 0x3180
movl 0x8(%rbx), %eax
movq (%rbx), %rdi
decl %eax
cmpl $0x4, %eax
ja 0x9f40
leaq 0x1a0b(%rip), %rcx      # 0xb8d0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x1a84(%rip), %rsi      # 0xb959
leaq 0x1a4c(%rip), %rdx      # 0xb928
leaq 0x1a1f(%rip), %rcx      # 0xb902
xorl %eax, %eax
callq 0x3060
jmp 0x9f92
leaq 0x1a5e(%rip), %rsi      # 0xb954
leaq 0x19f2(%rip), %rdx      # 0xb8ef
leaq 0x19fe(%rip), %rcx      # 0xb902
leaq 0x19fe(%rip), %r8       # 0xb909
xorl %eax, %eax
callq 0x3060
jmp 0x9f92
leaq 0x1a34(%rip), %rsi      # 0xb94f
leaq 0x19cd(%rip), %rdx      # 0xb8ef
leaq 0x19d9(%rip), %rcx      # 0xb902
leaq 0x19e4(%rip), %r8       # 0xb914
leaq 0x19e5(%rip), %r9       # 0xb91c
xorl %eax, %eax
callq 0x3060
jmp 0x9f92
leaq 0x1a3d(%rip), %r10      # 0xb984
leaq 0x1a2f(%rip), %r11      # 0xb97d
leaq 0x1a20(%rip), %r14      # 0xb975
leaq 0x1a0e(%rip), %r15      # 0xb96a
leaq 0x19d8(%rip), %rsi      # 0xb93b
leaq 0x19be(%rip), %rdx      # 0xb928
leaq 0x1991(%rip), %rcx      # 0xb902
leaq 0x1991(%rip), %r8       # 0xb909
leaq 0x19e4(%rip), %r9       # 0xb963
xorl %eax, %eax
pushq %r10
pushq %r11
pushq %r14
pushq %r15
callq 0x3060
addq $0x20, %rsp
movq (%rbx), %rdi
movl $0x300, %esi            # imm = 0x300
xorl %edx, %edx
callq 0x33a0
movq (%rbx), %rdi
callq 0x3310
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/settingsWindow.cpp
// Function: SettingsWindow::SettingsWindow(int, int, int)
SettingsWindow::SettingsWindow(int placementX, int placementY, int width)
{
	this->placementX = placementX;
	this->placementY = placementY;
	this->width = width;
	this->height = SWO_END + settings->root["hiddenInterfaces"].size() + 3;

	this->max = SWO_END + settings->root["hiddenInterfaces"].size() - 1;

	this->win = newwin(this->height, this->width, this->placementY, this->placementX);

	this->Update();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
movq %rax, 0x18(%rdi)
movl %esi, 0x8(%rdi)
movl %edx, 0xc(%rdi)
movl %ecx, 0x10(%rdi)
leaq 0x63ae(%rip), %r15      # 0x10388
movq (%r15), %rdi
leaq 0x119a(%rip), %r14      # 0xb17e
movq %r14, %rsi
callq 0x3120
movq %rax, %rdi
callq 0x34e0
addl $0x5, %eax
movl %eax, 0x14(%rbx)
movq (%r15), %rdi
movq %r14, %rsi
callq 0x3120
movq %rax, %rdi
callq 0x34e0
incl %eax
movl %eax, 0x18(%rbx)
movl 0x14(%rbx), %edi
movl 0x10(%rbx), %esi
movl 0x8(%rbx), %ecx
movl 0xc(%rbx), %edx
callq 0x32e0
movq %rax, (%rbx)
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0xa034
nop
// File: /workspace/github_cpp_makefile_star2_O2/Stygain[P]bandwidth-monitor/src/settingsWindow.cpp
// Function: SettingsWindow::Resize(int, int, int)
void SettingsWindow::Resize(int placementX, int placementY, int width)
{
	this->placementX = placementX;
	this->placementY = placementY;
	this->width = width;
	this->height = SWO_END + settings->root["hiddenInterfaces"].size() + 3;

	wresize(this->win, this->height, this->width);
	mvwin(this->win, this->placementY, this->placementX);

	this->Update();
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl %esi, 0x8(%rdi)
movl %edx, 0xc(%rdi)
movl %ecx, 0x10(%rdi)
leaq 0x611c(%rip), %rax      # 0x10388
movq (%rax), %rdi
leaq 0xf08(%rip), %rsi       # 0xb17e
callq 0x3120
movq %rax, %rdi
callq 0x34e0
leal 0x5(%rax), %esi
movl %esi, 0x14(%rbx)
movq (%rbx), %rdi
movl 0x10(%rbx), %edx
callq 0x31f0
movq (%rbx), %rdi
movl 0xc(%rbx), %esi
movl 0x8(%rbx), %edx
callq 0x3140
movq %rbx, %rdi
popq %rbx
jmp 0xa034
nop
// File: /workspace/github_cpp_makefile_star2_O2/iZhangHui[P]CppPrimer/CH06_Functions/examples/fcnptrRet.cc
// Function: main
int main()
{
	// "sum" is the argument to getFcn
	// ("hello", "world!") are arguments to the function getFcn returns
	cout << getFcn("sum")("hello", "world!") << endl;    // prints 11
	cout << getFcn("larger")("hello", "world!") << endl; // prints 6

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x68, %rsp
leaq 0xdbc(%rip), %rsi       # 0x2004
leaq -0x70(%rbp), %rdi
leaq -0xb(%rbp), %rdx
callq 0x1040
leaq -0x70(%rbp), %rdi
callq 0x120f
movq %rax, %rbx
leaq 0xda0(%rip), %rsi       # 0x2008
leaq -0x50(%rbp), %rdi
leaq -0xa(%rbp), %rdx
callq 0x1040
leaq 0xd92(%rip), %rsi       # 0x200e
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1040
leaq -0x50(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq *%rbx
movq 0x2d3e(%rip), %rdi      # 0x3fd8
movq %rax, %rsi
callq 0x1070
movq %rax, %rdi
callq 0x1060
leaq -0x30(%rbp), %rdi
callq 0x1050
leaq -0x50(%rbp), %rdi
callq 0x1050
leaq -0x70(%rbp), %rdi
callq 0x1050
leaq 0xd49(%rip), %rsi       # 0x2015
leaq -0x70(%rbp), %rdi
leaq -0xb(%rbp), %rdx
callq 0x1040
leaq -0x70(%rbp), %rdi
callq 0x120f
movq %rax, %rbx
leaq 0xd1c(%rip), %rsi       # 0x2008
leaq -0x50(%rbp), %rdi
leaq -0xa(%rbp), %rdx
callq 0x1040
leaq 0xd0e(%rip), %rsi       # 0x200e
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1040
leaq -0x50(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq *%rbx
movq 0x2cba(%rip), %rdi      # 0x3fd8
movq %rax, %rsi
callq 0x1070
movq %rax, %rdi
callq 0x1060
leaq -0x30(%rbp), %rdi
callq 0x1050
leaq -0x50(%rbp), %rdi
callq 0x1050
leaq -0x70(%rbp), %rdi
callq 0x1050
xorl %eax, %eax
addq $0x68, %rsp
popq %rbx
popq %rbp
retq
jmp 0x1358
jmp 0x135d
jmp 0x1362
movq %rax, %rbx
jmp 0x1375
movq %rax, %rbx
jmp 0x137e
movq %rax, %rbx
jmp 0x1387
jmp 0x1369
movq %rax, %rbx
leaq -0x30(%rbp), %rdi
callq 0x1050
leaq -0x50(%rbp), %rdi
callq 0x1050
leaq -0x70(%rbp), %rdi
callq 0x1050
movq %rbx, %rdi
callq 0x10a0