// File: /workspace/github_c_makefile_star2_O0/stonezwr[P]SpiKL-IP/network.C
// Function: Network::LSMTransientSim(networkmode_t, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void Network::LSMTransientSim(networkmode_t networkmode, int  tid, const string sample_type){
    int count = 0;
	int IP_iter;
#ifdef	SPIKL_IP
	IP_iter=5;
#else
	IP_iter=1;
#endif
    LSMClearSignals();
    int info = this->LoadFirstSpeech(false, networkmode, sample_type);
    while(info != -1){
        count++;
		int iter_count=0;
		while(iter_count!=IP_iter){
			iter_count++;
			if(iter_count==IP_iter)
				SearchForNeuronGroup("reservoir")->SetGenerateTransient(true);
			else
				SearchForNeuronGroup("reservoir")->SetGenerateTransient(false);
				
			int time = 0, end_time = this->SpeechEndTime();
		
			while(!LSMEndOfSpeech(networkmode, end_time)){
				LSMNextTimeStep(++time,false,1, end_time, NULL);
			}
			if(iter_count==IP_iter&&tid == 0){
					SpeechPrint(info, "reservoir"); // dump the reservoir response for quick simulation
			}
			LSMClearSignalsIP();
			if(iter_count!=IP_iter)
				info=LoadSpeechAgain(false, networkmode, sample_type);
		}
		LSMClearSignals();
		info = LoadNextSpeech(false, networkmode, sample_type);
    }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rcx, -0xf0(%rbp)
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
movl $0x0, -0x1c(%rbp)
movl $0x5, -0x20(%rbp)
callq 0x1f080
movq -0xf0(%rbp), %rsi
movl -0xc(%rbp), %eax
movl %eax, -0xdc(%rbp)
leaq -0x48(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
callq 0x4170
movq -0xe8(%rbp), %rdi
movl -0xdc(%rbp), %edx
movq -0xd8(%rbp), %rcx
xorl %esi, %esi
callq 0x1f180
movl %eax, -0xcc(%rbp)
jmp 0x1eda1
leaq -0x48(%rbp), %rdi
callq 0x4200
movl -0xcc(%rbp), %eax
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
je 0x1f061
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
movl $0x0, -0x58(%rbp)
movl -0x58(%rbp), %eax
cmpl -0x20(%rbp), %eax
je 0x1efdb
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %eax
cmpl -0x20(%rbp), %eax
jne 0x1ee26
movq -0xe8(%rbp), %rdi
leaq 0x154ff(%rip), %rsi     # 0x342f7
callq 0x1e9c0
movq %rax, %rdi
movl $0x1, %esi
callq 0x10f90
jmp 0x1ee43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x4200
jmp 0x1f06a
movq -0xe8(%rbp), %rdi
leaq 0x154c3(%rip), %rsi     # 0x342f7
callq 0x1e9c0
movq %rax, %rdi
xorl %esi, %esi
callq 0x10f90
movq -0xe8(%rbp), %rdi
movl $0x0, -0x5c(%rbp)
callq 0x1f290
movl %eax, -0x60(%rbp)
movq -0xe8(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x60(%rbp), %edx
callq 0x1f330
xorb $-0x1, %al
testb $0x1, %al
jne 0x1ee73
jmp 0x1ee9a
movq -0xe8(%rbp), %rdi
movl -0x5c(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x5c(%rbp)
movl -0x60(%rbp), %r8d
xorl %edx, %edx
movl $0x1, %ecx
xorl %eax, %eax
movl %eax, %r9d
callq 0x1f390
jmp 0x1ee59
movl -0x58(%rbp), %eax
cmpl -0x20(%rbp), %eax
jne 0x1ef48
cmpl $0x0, -0x10(%rbp)
jne 0x1ef48
movl -0x24(%rbp), %eax
movl %eax, -0xfc(%rbp)
leaq -0x81(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
callq 0x46f0
movq -0xf8(%rbp), %rdx
leaq 0x1541d(%rip), %rsi     # 0x342f7
leaq -0x80(%rbp), %rdi
callq 0x12880
jmp 0x1eee5
movl -0xfc(%rbp), %esi
movq -0xe8(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x1f5d0
jmp 0x1eefd
leaq -0x80(%rbp), %rdi
callq 0x4200
leaq -0x81(%rbp), %rdi
callq 0x43d0
jmp 0x1ef48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x1ef37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x4200
leaq -0x81(%rbp), %rdi
callq 0x43d0
jmp 0x1f06a
movq -0xe8(%rbp), %rdi
callq 0x1f960
movl -0x58(%rbp), %eax
cmpl -0x20(%rbp), %eax
je 0x1efd6
movq -0xf0(%rbp), %rsi
movl -0xc(%rbp), %eax
movl %eax, -0x10c(%rbp)
leaq -0xa8(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x4170
movq -0xe8(%rbp), %rdi
movl -0x10c(%rbp), %edx
movq -0x108(%rbp), %rcx
xorl %esi, %esi
callq 0x1fa60
movl %eax, -0x100(%rbp)
jmp 0x1efa2
movl -0x100(%rbp), %eax
movl %eax, -0x24(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x4200
jmp 0x1efd6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x4200
jmp 0x1f06a
jmp 0x1edcd
movq -0xe8(%rbp), %rdi
callq 0x1f080
movq -0xf0(%rbp), %rsi
movl -0xc(%rbp), %eax
movl %eax, -0x11c(%rbp)
leaq -0xc8(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0x4170
movq -0xe8(%rbp), %rdi
movl -0x11c(%rbp), %edx
movq -0x118(%rbp), %rcx
xorl %esi, %esi
callq 0x1fbd0
movl %eax, -0x110(%rbp)
jmp 0x1f02d
movl -0x110(%rbp), %eax
movl %eax, -0x24(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x4200
jmp 0x1edb3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x4200
jmp 0x1f06a
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x46d0
nopw %cs:(%rax,%rax)