// File: VitorCorreaSilva[P]sistemaControle/source/empresa.cpp
// Function: Empresa::relatorioFinanceiro()
void Empresa::relatorioFinanceiro(){
	int numTimes = times.size();
	for (int i = 0; i < numTimes; ++i)
	{
		float salarios = 0;
		float totalInss = 0;
		float totalIrrf = 0;

		vector<Jogador> jogadores = times[i].getJogadores();
		int numJogadores = jogadores.size();

		for (int j = 0; j < numJogadores; ++j)
		{
			float descontoInss = jogadores[j].calcularDescontoInss(jogadores[j].getSalarioBruto());
			salarios +=  jogadores[j].calcularSalarioLiquido(jogadores[j].getSalarioBruto());
			totalInss += descontoInss;
			totalIrrf += jogadores[j].calcularDescontoIrrf(jogadores[j].getSalarioBruto() - descontoInss);
		}

		cout << fixed;
		cout.precision(2);
		cout << "Time: " << times[i].getNome() << endl;
		cout << "Total Salarios: " << salarios << endl;
		cout << "Total INSS: " << totalInss << endl;
		cout << "Total IRRF: " << totalIrrf << endl;
		cout << endl;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x80(%rbp)
addq $0x20, %rdi
callq 0x3da0
movl %eax, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x3cdc
movq -0x80(%rbp), %rdi
xorps %xmm0, %xmm0
movss %xmm0, -0x14(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x18(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x1c(%rbp)
addq $0x20, %rdi
movslq -0x10(%rbp), %rsi
callq 0x3dd0
movq %rax, %rsi
leaq -0x38(%rbp), %rdi
callq 0x86a0
leaq -0x38(%rbp), %rdi
callq 0x3df0
movl %eax, -0x3c(%rbp)
movl $0x0, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jge 0x3b0b
movslq -0x40(%rbp), %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0x98(%rbp)
callq 0x3e20
movq -0x98(%rbp), %rdi
movq %rax, -0x90(%rbp)
movslq -0x40(%rbp), %rsi
callq 0x3e20
movq %rax, %rdi
callq 0x5b00
movss %xmm0, -0x84(%rbp)
jmp 0x39c7
movss -0x84(%rbp), %xmm0
movq -0x90(%rbp), %rdi
callq 0x5ce0
movss %xmm0, -0x9c(%rbp)
jmp 0x39e5
movss -0x9c(%rbp), %xmm0
movss %xmm0, -0x44(%rbp)
movslq -0x40(%rbp), %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x3e20
movq -0xb0(%rbp), %rdi
movq %rax, -0xa8(%rbp)
movslq -0x40(%rbp), %rsi
callq 0x3e20
movq %rax, %rdi
callq 0x5b00
movss %xmm0, -0xa0(%rbp)
jmp 0x3a2f
movss -0xa0(%rbp), %xmm0
movq -0xa8(%rbp), %rdi
callq 0x5c70
movss %xmm0, -0xb4(%rbp)
jmp 0x3a4d
movss -0xb4(%rbp), %xmm1
movss -0x14(%rbp), %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x14(%rbp)
movss -0x44(%rbp), %xmm1
movss -0x18(%rbp), %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x18(%rbp)
movslq -0x40(%rbp), %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
callq 0x3e20
movq -0xc8(%rbp), %rdi
movq %rax, -0xc0(%rbp)
movslq -0x40(%rbp), %rsi
callq 0x3e20
movq %rax, %rdi
callq 0x5b00
movss %xmm0, -0xb8(%rbp)
jmp 0x3ab3
movq -0xc0(%rbp), %rdi
movss -0xb8(%rbp), %xmm0
movss -0x44(%rbp), %xmm1
subss %xmm1, %xmm0
callq 0x5dd0
movss %xmm0, -0xcc(%rbp)
jmp 0x3ada
movss -0xcc(%rbp), %xmm0
addss -0x1c(%rbp), %xmm0
movss %xmm0, -0x1c(%rbp)
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x397e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x3cd1
movq 0xb4c6(%rip), %rdi      # 0xefd8
leaq 0x327(%rip), %rsi       # 0x3e40
callq 0x2070
jmp 0x3b20
movq 0xb4b1(%rip), %rdi      # 0xefd8
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0x2, %esi
callq 0x3e70
jmp 0x3b3d
movq 0xb494(%rip), %rdi      # 0xefd8
leaq 0x658e(%rip), %rsi      # 0xa0d9
callq 0x21b0
movq %rax, -0xd8(%rbp)
jmp 0x3b59
movq -0x80(%rbp), %rdi
addq $0x20, %rdi
movslq -0x10(%rbp), %rsi
callq 0x3dd0
movq %rax, %rsi
leaq -0x78(%rbp), %rdi
callq 0x8650
jmp 0x3b78
movq -0xd8(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x2190
movq %rax, -0xe0(%rbp)
jmp 0x3b91
movq -0xe0(%rbp), %rdi
movq 0xb429(%rip), %rsi      # 0xefc8
callq 0x21e0
jmp 0x3ba6
leaq -0x78(%rbp), %rdi
callq 0x20f0
movq 0xb422(%rip), %rdi      # 0xefd8
leaq 0x6564(%rip), %rsi      # 0xa121
callq 0x21b0
movq %rax, -0xe8(%rbp)
jmp 0x3bcb
movq -0xe8(%rbp), %rdi
movss -0x14(%rbp), %xmm0
callq 0x2140
movq %rax, -0xf0(%rbp)
jmp 0x3be5
movq -0xf0(%rbp), %rdi
movq 0xb3d5(%rip), %rsi      # 0xefc8
callq 0x21e0
jmp 0x3bfa
movq 0xb3d7(%rip), %rdi      # 0xefd8
leaq 0x652a(%rip), %rsi      # 0xa132
callq 0x21b0
movq %rax, -0xf8(%rbp)
jmp 0x3c16
movq -0xf8(%rbp), %rdi
movss -0x18(%rbp), %xmm0
callq 0x2140
movq %rax, -0x100(%rbp)
jmp 0x3c30
movq -0x100(%rbp), %rdi
movq 0xb38a(%rip), %rsi      # 0xefc8
callq 0x21e0
jmp 0x3c45
movq 0xb38c(%rip), %rdi      # 0xefd8
leaq 0x64ec(%rip), %rsi      # 0xa13f
callq 0x21b0
movq %rax, -0x108(%rbp)
jmp 0x3c61
movq -0x108(%rbp), %rdi
movss -0x1c(%rbp), %xmm0
callq 0x2140
movq %rax, -0x110(%rbp)
jmp 0x3c7b
movq -0x110(%rbp), %rdi
movq 0xb33f(%rip), %rsi      # 0xefc8
callq 0x21e0
jmp 0x3c90
movq 0xb341(%rip), %rdi      # 0xefd8
movq 0xb32a(%rip), %rsi      # 0xefc8
callq 0x21e0
jmp 0x3ca5
leaq -0x38(%rbp), %rdi
callq 0x3ea0
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x392a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x20f0
leaq -0x38(%rbp), %rdi
callq 0x3ea0
jmp 0x3ce5
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x22d0
nop