// File: nataly-enne[P]pet-fera/pet_fera_editar.cpp
// Function: editar(std::map<int, TRATADOR, std::less<int>, std::allocator<std::pair<int const, TRATADOR>>>&)
void editar(map <int, TRATADOR> &tratadores){
	int id_buscado, idade,nivel_seg;
	long int cpf;
	string nome, especialidade, tipo_sang;
	char fator_rh, sucesso;
	ofstream tratador;

	cout << "Insira o ID buscado: " << endl;
	cin >> id_buscado;

	auto result = tratadores.find(id_buscado);
	
	if(result != tratadores.end()){
		cout << "ID existe!" << endl;

		cout << "Digite o nome: " << endl;
		cin.ignore();
		getline(cin, nome); 
		transform(nome.begin(), nome.end(), nome.begin(), ::toupper); //Converte a string nome para caracteres maiusculos
		cout << "Digite o cpf: " << endl;
		cin >> cpf;
		cout << "Digite a idade: " << endl;
		cin >> idade;
		cout << "Insira o tipo sanguineo: " << endl;
		cin.ignore();
		getline(cin, tipo_sang);
		cout << "Insira o fator RH: " << endl;
		cin >> fator_rh;
		cout << "Digite a especialidade: " << endl;
		cin.ignore();
		getline(cin, especialidade);
		cout << "Digite o nivel de seguranca: "<< endl;
		cin >> nivel_seg;

		(*result).second = TRATADOR(id_buscado, nome, cpf, idade, tipo_sang, fator_rh, especialidade, nivel_seg);
		sucesso = 's';
	}
	else{
		cout << "Funcionario não cadastrado!!" << endl;
		sucesso = 'n';
	}

	if(sucesso == 's'){
		tratador.open("tratadores.txt");
		for(auto it = tratadores.begin(); it != tratadores.end(); it++){
			tratador << (*it).second;
		}
		tratador.close();
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x470, %rsp            # imm = 0x470
movq %rdi, -0x8(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x3300
leaq -0x60(%rbp), %rdi
callq 0x3300
leaq -0x80(%rbp), %rdi
callq 0x3300
leaq -0x288(%rbp), %rdi
callq 0x33b0
jmp 0x36f68
movq 0x1a049(%rip), %rdi     # 0x50fb8
leaq 0xb2b1(%rip), %rsi      # 0x42227
callq 0x3240
movq %rax, -0x3d8(%rbp)
jmp 0x36f84
movq -0x3d8(%rbp), %rdi
movq 0x1a00e(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x36f99
movq 0x1a038(%rip), %rdi     # 0x50fd8
leaq -0xc(%rbp), %rsi
callq 0x3170
jmp 0x36fab
movq -0x8(%rbp), %rdi
leaq -0xc(%rbp), %rsi
callq 0x37a10
movq %rax, -0x3e0(%rbp)
jmp 0x36fc1
movq -0x3e0(%rbp), %rax
movq %rax, -0x2a0(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1f910
movq %rax, -0x2a8(%rbp)
leaq -0x2a0(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x1f8e0
testb $0x1, %al
jne 0x36ffb
jmp 0x3743d
movq 0x19fb6(%rip), %rdi     # 0x50fb8
leaq 0xb234(%rip), %rsi      # 0x4223d
callq 0x3240
movq %rax, -0x3e8(%rbp)
jmp 0x37017
movq -0x3e8(%rbp), %rdi
movq 0x19f7b(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3702c
movq 0x19f85(%rip), %rdi     # 0x50fb8
leaq 0xb2f2(%rip), %rsi      # 0x4232c
callq 0x3240
movq %rax, -0x3f0(%rbp)
jmp 0x37048
movq -0x3f0(%rbp), %rdi
movq 0x19f4a(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3705d
movq 0x19f74(%rip), %rdi     # 0x50fd8
callq 0x33f0
jmp 0x3706b
movq 0x19f66(%rip), %rdi     # 0x50fd8
leaq -0x40(%rbp), %rsi
callq 0x3070
jmp 0x3707d
leaq -0x40(%rbp), %rdi
movq %rdi, -0x400(%rbp)
callq 0x31e0
movq -0x400(%rbp), %rdi
movq %rax, -0x2b0(%rbp)
callq 0x3120
movq -0x400(%rbp), %rdi
movq %rax, -0x2b8(%rbp)
callq 0x31e0
movq %rax, -0x2c0(%rbp)
movq -0x2b0(%rbp), %rdi
movq -0x2b8(%rbp), %rsi
movq -0x2c0(%rbp), %rdx
movq 0x19f0a(%rip), %rcx     # 0x50fe0
callq 0x1f5a0
movq %rax, -0x3f8(%rbp)
jmp 0x370e4
movq -0x3f8(%rbp), %rax
movq %rax, -0x2c8(%rbp)
movq 0x19ebf(%rip), %rdi     # 0x50fb8
leaq 0xb23c(%rip), %rsi      # 0x4233c
callq 0x3240
movq %rax, -0x408(%rbp)
jmp 0x3710e
movq -0x408(%rbp), %rdi
movq 0x19e84(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x37123
movq 0x19eae(%rip), %rdi     # 0x50fd8
leaq -0x20(%rbp), %rsi
callq 0x3140
jmp 0x37135
movq 0x19e7c(%rip), %rdi     # 0x50fb8
leaq 0xa67f(%rip), %rsi      # 0x417c2
callq 0x3240
movq %rax, -0x410(%rbp)
jmp 0x37151
movq -0x410(%rbp), %rdi
movq 0x19e41(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x37166
movq 0x19e6b(%rip), %rdi     # 0x50fd8
leaq -0x10(%rbp), %rsi
callq 0x3170
jmp 0x37178
movq 0x19e39(%rip), %rdi     # 0x50fb8
leaq 0xa67a(%rip), %rsi      # 0x41800
callq 0x3240
movq %rax, -0x418(%rbp)
jmp 0x37194
movq -0x418(%rbp), %rdi
movq 0x19dfe(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x371a9
movq 0x19e28(%rip), %rdi     # 0x50fd8
callq 0x33f0
jmp 0x371b7
movq 0x19e1a(%rip), %rdi     # 0x50fd8
leaq -0x80(%rbp), %rsi
callq 0x3070
jmp 0x371c9
movq 0x19de8(%rip), %rdi     # 0x50fb8
leaq 0xa673(%rip), %rsi      # 0x4184a
callq 0x3240
movq %rax, -0x420(%rbp)
jmp 0x371e5
movq -0x420(%rbp), %rdi
movq 0x19dad(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x371fa
movq 0x19dd7(%rip), %rdi     # 0x50fd8
leaq -0x81(%rbp), %rsi
callq 0x32e0
jmp 0x3720f
movq 0x19da2(%rip), %rdi     # 0x50fb8
leaq 0xa663(%rip), %rsi      # 0x41880
callq 0x3240
movq %rax, -0x428(%rbp)
jmp 0x3722b
movq -0x428(%rbp), %rdi
movq 0x19d67(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x37240
movq 0x19d91(%rip), %rdi     # 0x50fd8
callq 0x33f0
jmp 0x3724e
movq 0x19d83(%rip), %rdi     # 0x50fd8
leaq -0x60(%rbp), %rsi
callq 0x3070
jmp 0x37260
movq 0x19d51(%rip), %rdi     # 0x50fb8
leaq 0xb0fb(%rip), %rsi      # 0x42369
callq 0x3240
movq %rax, -0x430(%rbp)
jmp 0x3727c
movq -0x430(%rbp), %rdi
movq 0x19d16(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x37291
movq 0x19d40(%rip), %rdi     # 0x50fd8
leaq -0x14(%rbp), %rsi
callq 0x3170
jmp 0x372a3
movl -0xc(%rbp), %eax
movl %eax, -0x434(%rbp)
leaq -0x378(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x3100
jmp 0x372be
movq -0x20(%rbp), %rax
movq %rax, -0x440(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0x438(%rbp)
leaq -0x398(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x3100
jmp 0x372e4
movb -0x81(%rbp), %al
movb %al, -0x441(%rbp)
leaq -0x3b8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3100
jmp 0x37302
movl -0x438(%rbp), %r8d
movq -0x440(%rbp), %rcx
movl -0x434(%rbp), %esi
movb -0x441(%rbp), %dl
movl -0x14(%rbp), %edi
movq %rsp, %rax
movl %edi, 0x10(%rax)
leaq -0x3b8(%rbp), %rdi
movq %rdi, 0x8(%rax)
movsbl %dl, %edx
movl %edx, (%rax)
leaq -0x358(%rbp), %rdi
leaq -0x378(%rbp), %rdx
leaq -0x398(%rbp), %r9
callq 0x12d60
jmp 0x37351
leaq -0x2a0(%rbp), %rdi
callq 0x1f940
movq %rax, %rdi
addq $0x8, %rdi
leaq -0x358(%rbp), %rsi
callq 0x37a40
leaq -0x358(%rbp), %rdi
callq 0x6570
leaq -0x3b8(%rbp), %rdi
callq 0x3180
leaq -0x398(%rbp), %rdi
callq 0x3180
leaq -0x378(%rbp), %rdi
callq 0x3180
movb $0x73, -0x82(%rbp)
jmp 0x37475
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x290(%rbp)
movl %eax, -0x294(%rbp)
jmp 0x3755e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x290(%rbp)
movl %eax, -0x294(%rbp)
jmp 0x37552
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x290(%rbp)
movl %eax, -0x294(%rbp)
jmp 0x3742c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x290(%rbp)
movl %eax, -0x294(%rbp)
jmp 0x37420
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x290(%rbp)
movl %eax, -0x294(%rbp)
leaq -0x3b8(%rbp), %rdi
callq 0x3180
leaq -0x398(%rbp), %rdi
callq 0x3180
leaq -0x378(%rbp), %rdi
callq 0x3180
jmp 0x37552
movq 0x19b74(%rip), %rdi     # 0x50fb8
leaq 0xaf00(%rip), %rsi      # 0x4234b
callq 0x3240
movq %rax, -0x450(%rbp)
jmp 0x37459
movq -0x450(%rbp), %rdi
movq 0x19b39(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3746e
movb $0x6e, -0x82(%rbp)
movsbl -0x82(%rbp), %eax
cmpl $0x73, %eax
jne 0x37522
leaq 0xa57c(%rip), %rsi      # 0x41a08
leaq -0x288(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
jmp 0x3749f
movq -0x8(%rbp), %rdi
callq 0x1f8b0
movq %rax, -0x3c0(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1f910
movq %rax, -0x3c8(%rbp)
leaq -0x3c0(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
callq 0x1f8e0
testb $0x1, %al
jne 0x374d8
jmp 0x37512
leaq -0x3c0(%rbp), %rdi
callq 0x1f940
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x288(%rbp), %rdi
callq 0x13170
jmp 0x374f9
jmp 0x374fb
leaq -0x3c0(%rbp), %rdi
xorl %esi, %esi
callq 0x1f960
movq %rax, -0x3d0(%rbp)
jmp 0x374af
leaq -0x288(%rbp), %rdi
callq 0x3310
jmp 0x37520
jmp 0x37522
leaq -0x288(%rbp), %rdi
callq 0x3340
leaq -0x80(%rbp), %rdi
callq 0x3180
leaq -0x60(%rbp), %rdi
callq 0x3180
leaq -0x40(%rbp), %rdi
callq 0x3180
addq $0x470, %rsp            # imm = 0x470
popq %rbp
retq
leaq -0x288(%rbp), %rdi
callq 0x3340
leaq -0x80(%rbp), %rdi
callq 0x3180
leaq -0x60(%rbp), %rdi
callq 0x3180
leaq -0x40(%rbp), %rdi
callq 0x3180
movq -0x290(%rbp), %rdi
callq 0x33d0
nopw %cs:(%rax,%rax)
nop