// File: mehrangoli[P]Static-Data-Extractor/SCmain.cpp
// Function: ScMain::find_module_func(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
NT ScMain:: find_module_func (string line){
	NT NameType;
	vector<string> split_line = split(line, ' ');
	remove_element_vector(split_line, "");

	if ((split_line.size()>1) && (!string_finder(line, "~"))){  			 //------------------- ignore constractor and destrocture function
		int index = find_in_vector(split_line, "(");
		if (index>=0){
			size_t pos = split_line[index].find("("); 
			NameType.first = split_line[index].substr(0,pos);
			NameType.second = split_line[index-1];
		}
	}
	return NameType;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rdx, -0x130(%rbp)
movq %rdi, -0x140(%rbp)
movq %rdi, %rax
movq %rax, -0x138(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movb $0x0, -0x19(%rbp)
callq 0xe2f0
movq -0x130(%rbp), %rsi
leaq -0x38(%rbp), %rdi
movl $0x20, %edx
callq 0x10ec0
jmp 0xd8df
leaq -0x69(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0x3430
movq -0x148(%rbp), %rdx
leaq 0x9bf5(%rip), %rsi      # 0x174f2
leaq -0x68(%rbp), %rdi
callq 0x6100
jmp 0xd908
leaq -0x38(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x11350
jmp 0xd917
leaq -0x68(%rbp), %rdi
callq 0x3190
leaq -0x69(%rbp), %rdi
callq 0x32a0
leaq -0x38(%rbp), %rdi
callq 0xe320
movq %rax, %rcx
movb $0x0, -0x91(%rbp)
movb $0x0, -0xba(%rbp)
movb $0x0, -0xbb(%rbp)
xorl %eax, %eax
cmpq $0x1, %rcx
movb %al, -0x149(%rbp)
jbe 0xd9de
movq -0x130(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x3120
jmp 0xd971
movb $0x1, -0x91(%rbp)
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x3430
movq -0x158(%rbp), %rdx
movb $0x1, -0xba(%rbp)
leaq 0x9ae3(%rip), %rsi      # 0x17483
leaq -0xb8(%rbp), %rdi
callq 0x6100
jmp 0xd9ae
movb $0x1, -0xbb(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x10e10
movb %al, -0x159(%rbp)
jmp 0xd9d0
movb -0x159(%rbp), %al
xorb $-0x1, %al
movb %al, -0x149(%rbp)
movb -0x149(%rbp), %al
movb %al, -0x15a(%rbp)
testb $0x1, -0xbb(%rbp)
jne 0xd9f5
jmp 0xda01
leaq -0xb8(%rbp), %rdi
callq 0x3190
testb $0x1, -0xba(%rbp)
jne 0xda0c
jmp 0xda18
leaq -0xb9(%rbp), %rdi
callq 0x32a0
testb $0x1, -0x91(%rbp)
jne 0xda23
jmp 0xda2f
leaq -0x90(%rbp), %rdi
callq 0x3190
movb -0x15a(%rbp), %al
testb $0x1, %al
jne 0xda3e
jmp 0xdc8d
leaq -0xd8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xe5d0
jmp 0xda50
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x3430
movq -0x168(%rbp), %rdx
leaq 0x9a14(%rip), %rsi      # 0x17485
leaq -0xf8(%rbp), %rdi
callq 0x6100
jmp 0xda7f
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x11260
movl %eax, -0x16c(%rbp)
jmp 0xda9a
leaq -0xf8(%rbp), %rdi
callq 0x3190
leaq -0xf9(%rbp), %rdi
callq 0x32a0
leaq -0xd8(%rbp), %rdi
callq 0x6270
movl -0x16c(%rbp), %eax
movl %eax, -0xc0(%rbp)
cmpl $0x0, -0xc0(%rbp)
jl 0xdc8b
movslq -0xc0(%rbp), %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0x180(%rbp)
callq 0xe270
movq %rax, %rdi
leaq 0x998d(%rip), %rsi      # 0x17485
xorl %eax, %eax
movl %eax, %edx
movq %rdx, -0x178(%rbp)
callq 0x34a0
movq -0x180(%rbp), %rdi
movq %rax, -0x108(%rbp)
movslq -0xc0(%rbp), %rsi
callq 0xe270
movq -0x178(%rbp), %rdx
movq %rax, %rsi
movq -0x108(%rbp), %rcx
leaq -0x128(%rbp), %rdi
callq 0x3270
jmp 0xdb41
movq -0x140(%rbp), %rdi
leaq -0x128(%rbp), %rsi
movq %rsi, -0x188(%rbp)
callq 0x32d0
movq -0x188(%rbp), %rdi
callq 0x3190
movl -0xc0(%rbp), %eax
decl %eax
movslq %eax, %rsi
leaq -0x38(%rbp), %rdi
callq 0xe270
movq -0x140(%rbp), %rdi
movq %rax, %rsi
addq $0x20, %rdi
callq 0x3030
jmp 0xdb90
jmp 0xdc8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdcc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdbc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x3190
leaq -0x69(%rbp), %rdi
callq 0x32a0
jmp 0xdca2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdca2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdc1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
testb $0x1, -0xbb(%rbp)
jne 0xdc0d
jmp 0xdc19
leaq -0xb8(%rbp), %rdi
callq 0x3190
jmp 0xdc1b
testb $0x1, -0xba(%rbp)
jne 0xdc26
jmp 0xdc32
leaq -0xb9(%rbp), %rdi
callq 0x32a0
testb $0x1, -0x91(%rbp)
jne 0xdc3d
jmp 0xdc49
leaq -0x90(%rbp), %rdi
callq 0x3190
jmp 0xdca2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdc71
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x3190
leaq -0xf9(%rbp), %rdi
callq 0x32a0
leaq -0xd8(%rbp), %rdi
callq 0x6270
jmp 0xdca2
jmp 0xdc8d
movb $0x1, -0x19(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x6270
testb $0x1, -0x19(%rbp)
jne 0xdcb9
jmp 0xdcad
leaq -0x38(%rbp), %rdi
callq 0x6270
jmp 0xdcc9
movq -0x140(%rbp), %rdi
callq 0x6740
movq -0x138(%rbp), %rax
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
movq -0x140(%rbp), %rdi
callq 0x6740
movq -0x40(%rbp), %rdi
callq 0x3420
nop