// File: /workspace/github_c_makefile_star2_O0/loversmile[P]sugarcrm/sugar_function.c
// Function: searchModule
int searchModule(struct soap *soap, const char *soap_endpoint, char *session, enum module_name module_name, char *search_string,
                enum search_type search_type, SGSearchResult *search_result)
{
    struct select_USCOREfields *modules = NULL;
    int offset = 0;
    int max_results = 20;
    char *assigned_user_id = "";//NULL;
    struct select_USCOREfields *select_fields = NULL;
    struct ns1__search_USCOREby_USCOREmoduleResponse *_param_17 = NULL;
    modules = (struct select_USCOREfields *)malloc(sizeof(struct select_USCOREfields ));
    select_fields = (struct select_USCOREfields *)malloc(sizeof(struct select_USCOREfields));
    _param_17 = (struct ns1__search_USCOREby_USCOREmoduleResponse *)malloc(sizeof(struct ns1__search_USCOREby_USCOREmoduleResponse));
    int ret = -1;
    
    char soap_action[128] = {0};
    memset(soap_action, 0, sizeof(soap_action));
    snprintf(soap_action, sizeof(soap_action), "%s/search_by_module", soap_endpoint);
    int item = 0;
	char rel_string[64] = {0};
	char string_number[64] = {0};
    if (CRM_TYPE_PHONE == search_type) 
	{
        //addPercent(rel_string, search_string);
		leave_number(string_number, search_string);
		addPercent(rel_string, string_number);
        printf("rel = %s\n",  rel_string);
		printf("leave = %s\n",  string_number);
    }
	else
	{
		strcpy(rel_string, search_string);
	}
    switch(module_name){
        case CRM_MODULE_ACCOUNTS:
            modules->__ptr = (char**)malloc(sizeof(char*));
            modules->__ptr[0] = strdup("Accounts");
            modules->__size = 1;
            select_fields->__ptr = (char**)malloc(PTR_SIZE);
            select_fields->__ptr[item++] = strdup("id");
            select_fields->__ptr[item++] = strdup("name");
            select_fields->__ptr[item++] = strdup("account_type");
            select_fields->__ptr[item++] = strdup("phone_office");
            select_fields->__ptr[item++] = strdup("assigned_user_name");     
            select_fields->__ptr[item++] = strdup("billing_address_city");
            select_fields->__size = item;

            ret = soap_call_ns1__search_USCOREby_USCOREmodule(soap, soap_endpoint, soap_action, session, rel_string, modules, offset, max_results, "",
                            select_fields, 0, 0, _param_17); 
            break;
        case CRM_MODULE_CONTACTS:
            modules->__ptr = (char**)malloc(sizeof(char*));
            modules->__ptr[0] = strdup("Contacts");
            modules->__size = 1;
            
            select_fields->__ptr = (char**)malloc(PTR_SIZE);
            select_fields->__ptr[item++] = strdup("id");
            select_fields->__ptr[item++] = strdup("name");
            select_fields->__ptr[item++] = strdup("phone_home");
            select_fields->__ptr[item++] = strdup("phone_work");
            select_fields->__ptr[item++] = strdup("phone_mobile");
            select_fields->__ptr[item++] = strdup("assigned_user_name");
            select_fields->__size = item;
            ret = soap_call_ns1__search_USCOREby_USCOREmodule(soap, soap_endpoint, soap_action, session, search_string, modules, offset, max_results, "",
                            select_fields, 0, 0, _param_17); 
            break;
        case CRM_MODULE_LEADS:
            modules->__ptr = (char**)malloc(sizeof(char*));
            modules->__ptr[0] = strdup("Leads");
            modules->__size = 1;
            select_fields->__ptr = (char**)malloc(PTR_SIZE);
            select_fields->__ptr[item++] = strdup("id");
            select_fields->__ptr[item++] = strdup("name");
            select_fields->__ptr[item++] = strdup("phone_home");
            select_fields->__ptr[item++] = strdup("phone_work");
            select_fields->__ptr[item++] = strdup("phone_mobile");
            select_fields->__ptr[item++] = strdup("assigned_user_name");
            select_fields->__size = item;
            ret = soap_call_ns1__search_USCOREby_USCOREmodule(soap, soap_endpoint, soap_action, session, search_string, modules, offset, max_results, "",
                            select_fields, 0, 0, _param_17); 
            break;
        case CRM_MODULE_CALLS:
            modules->__ptr = (char**)malloc(sizeof(char*));
            modules->__ptr[0] = strdup("Calls");
            modules->__size = 1;
            select_fields->__ptr = (char**)malloc(PTR_SIZE);
            select_fields->__ptr[item++] = strdup("id");
            select_fields->__ptr[item++] = strdup("name");
            select_fields->__ptr[item++] = strdup("date_start");
            select_fields->__ptr[item++] = strdup("date_end");
            select_fields->__size = item;
            ret = soap_call_ns1__search_USCOREby_USCOREmodule(soap, soap_endpoint, soap_action, session, search_string, modules, offset, max_results, "",
                            select_fields, 0, 0, _param_17); 
            break;
        default:
            return 0;
            break;
    }

	int f = 0;
	for (f = 0; f < modules->__size; f++) {
		SAFE_FREE(modules->__ptr[f]);
	}
	SAFE_FREE(modules->__ptr);
	SAFE_FREE(modules);
	
		//modules->__ptr[f] = NULL;
	for (f = 0; f < select_fields->__size; f++) {
		SAFE_FREE(select_fields->__ptr[f]);
	}
	SAFE_FREE(select_fields->__ptr);
	SAFE_FREE(select_fields);

    
    if (ret == SOAP_OK) {
        printf("Search Success!\n");
        printf("%d\n", _param_17->return_->entry_USCORElist->__size);
        int value_size = _param_17->return_->entry_USCORElist->__size;
        int i = 0;
        for (i = 0; i < value_size; i++){
            printf("name  = %s\n", _param_17->return_->entry_USCORElist->__ptr[i]->name);
            if (search_result != NULL)
                search_result->module = strdup(_param_17->return_->entry_USCORElist->__ptr[i]->name);
            printf("size = %d\n", _param_17->return_->entry_USCORElist->__ptr[i]->records->__size);
            int records_size = _param_17->return_->entry_USCORElist->__ptr[i]->records->__size;
            for (int j = 0; j < records_size; j++) {
                printf("record[%d] -------------I\n", j);
				char return_id[64] = {0};
				char return_phone_office[64] = {0};
				char return_phone_home[64] = {0};
				char return_phone_work[64] = {0};
				char return_phone_mobile[64] = {0};
                for(int k = 0; k < _param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[0]->__size; k++) {
                    printf("    name   = %s\n", _param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[j]->__ptr[k]->name);
                    printf("    value  = %s\n", _param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[j]->__ptr[k]->value);
                    if (!strcasecmp("id", _param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[j]->__ptr[k]->name)) {
                        if (search_result != NULL) {
                        	//*result_char = strdup(_param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[j]->__ptr[k]->value);
                        	strcpy(return_id, _param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[j]->__ptr[k]->value);
                            //search_result->id = strdup(_param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[j]->__ptr[k]->value);
                        }
                    }
					if (!strcasecmp("phone_office", _param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[j]->__ptr[k]->name)) 
					{
						if (search_result != NULL) {
                        	leave_number(return_phone_office, _param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[j]->__ptr[k]->value);
                        }
					}
					if (!strcasecmp("phone_home", _param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[j]->__ptr[k]->name)) 
					{
						if (search_result != NULL) {
                        	leave_number(return_phone_home, _param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[j]->__ptr[k]->value);
                        }
					}
					if (!strcasecmp("phone_work", _param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[j]->__ptr[k]->name)) 
					{
						if (search_result != NULL) {
                        	leave_number(return_phone_work, _param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[j]->__ptr[k]->value);
                        }
					}
					if (!strcasecmp("phone_mobile", _param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[j]->__ptr[k]->name)) 
					{
						if (search_result != NULL) {
                        	leave_number(return_phone_mobile, _param_17->return_->entry_USCORElist->__ptr[i]->records->__ptr[j]->__ptr[k]->value);
                        }
					}
					if (!strcmp(string_number, return_phone_office) || 
						!strcmp(string_number, return_phone_home) ||
						!strcmp(string_number, return_phone_work) ||
						!strcmp(string_number, return_phone_mobile))
					{
						search_result->id = strdup(return_id);
						SAFE_FREE(_param_17);
						return ret;
					}
                }
            }
        }
		SAFE_FREE(_param_17);
        return ret;
    } else if (ret == SOAP_TYPE) {
        printf("Result not match!\n");
        if (_param_17 == NULL)
            printf("17 is null\n");
        else
            printf("17 is not null\n");
		SAFE_FREE(_param_17);
        return ret;
    } else {
        printf("ret = %d\n", ret);
        soap_print_fault(soap, stderr);
		SAFE_FREE(_param_17);
        return ret;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x328, %rsp            # imm = 0x328
movq 0x10(%rbp), %rax
movq %rdi, -0x28(%rbp)
movq %rsi, -0x30(%rbp)
movq %rdx, -0x38(%rbp)
movl %ecx, -0x3c(%rbp)
movq %r8, -0x48(%rbp)
movl %r9d, -0x4c(%rbp)
movq $0x0, -0x58(%rbp)
movl $0x0, -0x5c(%rbp)
movl $0x14, -0x60(%rbp)
leaq 0x8b21(%rip), %rax      # 0x7aad9
movq %rax, -0x68(%rbp)
movq $0x0, -0x70(%rbp)
movq $0x0, -0x78(%rbp)
movl $0x10, %edi
callq 0x3290
movq %rax, -0x58(%rbp)
movl $0x10, %edi
callq 0x3290
movq %rax, -0x70(%rbp)
movl $0x8, %edi
callq 0x3290
movq %rax, -0x78(%rbp)
movl $0xffffffff, -0x7c(%rbp) # imm = 0xFFFFFFFF
leaq -0x100(%rbp), %rdi
xorl %esi, %esi
movl $0x80, %edx
callq 0x3190
leaq -0x100(%rbp), %rdi
xorl %esi, %esi
movl $0x80, %edx
callq 0x3190
leaq -0x100(%rbp), %rdi
movq -0x30(%rbp), %rcx
movl $0x80, %esi
leaq 0xa331(%rip), %rdx      # 0x7c36b
movb $0x0, %al
callq 0x3150
movl $0x0, -0x104(%rbp)
leaq -0x150(%rbp), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x3190
leaq -0x190(%rbp), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x3190
movl $0x1, %eax
cmpl -0x4c(%rbp), %eax
jne 0x720ca
leaq -0x190(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x70490
leaq -0x150(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x70520
leaq -0x150(%rbp), %rsi
leaq 0xa2d3(%rip), %rdi      # 0x7c37f
movb $0x0, %al
callq 0x3140
leaq -0x190(%rbp), %rsi
leaq 0xa2c8(%rip), %rdi      # 0x7c389
movb $0x0, %al
callq 0x3140
jmp 0x720da
leaq -0x150(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x3090
movl -0x3c(%rbp), %eax
movq %rax, -0x300(%rbp)
subq $0x3, %rax
ja 0x727fd
movq -0x300(%rbp), %rax
leaq 0xa07c(%rip), %rcx      # 0x7c178
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x8, %edi
callq 0x3290
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq %rcx, (%rax)
leaq 0xa275(%rip), %rdi      # 0x7c395
callq 0x33a0
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq (%rax), %rax
movq %rcx, (%rax)
movq -0x58(%rbp), %rax
movl $0x1, 0x8(%rax)
movl $0x40, %edi
callq 0x3290
movq %rax, %rcx
movq -0x70(%rbp), %rax
movq %rcx, (%rax)
leaq 0x76e2(%rip), %rdi      # 0x7983a
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x746d(%rip), %rdi      # 0x795f3
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0xa1ea(%rip), %rdi      # 0x7c39e
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0xa1c9(%rip), %rdi      # 0x7c3ab
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0xa1a8(%rip), %rdi      # 0x7c3b8
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0xa18d(%rip), %rdi      # 0x7c3cb
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x104(%rbp), %ecx
movq -0x70(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
leaq -0x100(%rbp), %rdx
movq -0x38(%rbp), %rcx
leaq -0x150(%rbp), %r8
movq -0x58(%rbp), %r9
movl -0x5c(%rbp), %r14d
movl -0x60(%rbp), %ebx
movq -0x70(%rbp), %r10
movq -0x78(%rbp), %rax
leaq 0x8833(%rip), %r11      # 0x7aad9
xorl %r15d, %r15d
movl %r14d, (%rsp)
movl %ebx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movl $0x0, 0x20(%rsp)
movl $0x0, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0x4d2e0
movl %eax, -0x7c(%rbp)
jmp 0x72809
movl $0x8, %edi
callq 0x3290
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq %rcx, (%rax)
leaq 0xa0e8(%rip), %rdi      # 0x7c3e0
callq 0x33a0
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq (%rax), %rax
movq %rcx, (%rax)
movq -0x58(%rbp), %rax
movl $0x1, 0x8(%rax)
movl $0x40, %edi
callq 0x3290
movq %rax, %rcx
movq -0x70(%rbp), %rax
movq %rcx, (%rax)
leaq 0x750a(%rip), %rdi      # 0x7983a
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x7295(%rip), %rdi      # 0x795f3
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0xa05d(%rip), %rdi      # 0x7c3e9
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0xa03a(%rip), %rdi      # 0x7c3f4
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0xa017(%rip), %rdi      # 0x7c3ff
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x9fa2(%rip), %rdi      # 0x7c3b8
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x104(%rbp), %ecx
movq -0x70(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
leaq -0x100(%rbp), %rdx
movq -0x38(%rbp), %rcx
movq -0x48(%rbp), %r8
movq -0x58(%rbp), %r9
movl -0x5c(%rbp), %r14d
movl -0x60(%rbp), %ebx
movq -0x70(%rbp), %r10
movq -0x78(%rbp), %rax
leaq 0x865e(%rip), %r11      # 0x7aad9
xorl %r15d, %r15d
movl %r14d, (%rsp)
movl %ebx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movl $0x0, 0x20(%rsp)
movl $0x0, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0x4d2e0
movl %eax, -0x7c(%rbp)
jmp 0x72809
movl $0x8, %edi
callq 0x3290
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq %rcx, (%rax)
leaq 0x9f3f(%rip), %rdi      # 0x7c40c
callq 0x33a0
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq (%rax), %rax
movq %rcx, (%rax)
movq -0x58(%rbp), %rax
movl $0x1, 0x8(%rax)
movl $0x40, %edi
callq 0x3290
movq %rax, %rcx
movq -0x70(%rbp), %rax
movq %rcx, (%rax)
leaq 0x7335(%rip), %rdi      # 0x7983a
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x70c0(%rip), %rdi      # 0x795f3
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x9e88(%rip), %rdi      # 0x7c3e9
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x9e65(%rip), %rdi      # 0x7c3f4
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x9e42(%rip), %rdi      # 0x7c3ff
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x9dcd(%rip), %rdi      # 0x7c3b8
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x104(%rbp), %ecx
movq -0x70(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
leaq -0x100(%rbp), %rdx
movq -0x38(%rbp), %rcx
movq -0x48(%rbp), %r8
movq -0x58(%rbp), %r9
movl -0x5c(%rbp), %r14d
movl -0x60(%rbp), %ebx
movq -0x70(%rbp), %r10
movq -0x78(%rbp), %rax
leaq 0x8489(%rip), %r11      # 0x7aad9
xorl %r15d, %r15d
movl %r14d, (%rsp)
movl %ebx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movl $0x0, 0x20(%rsp)
movl $0x0, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0x4d2e0
movl %eax, -0x7c(%rbp)
jmp 0x72809
movl $0x8, %edi
callq 0x3290
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq %rcx, (%rax)
leaq 0x9d70(%rip), %rdi      # 0x7c412
callq 0x33a0
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq (%rax), %rax
movq %rcx, (%rax)
movq -0x58(%rbp), %rax
movl $0x1, 0x8(%rax)
movl $0x40, %edi
callq 0x3290
movq %rax, %rcx
movq -0x70(%rbp), %rax
movq %rcx, (%rax)
leaq 0x7160(%rip), %rdi      # 0x7983a
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x6eeb(%rip), %rdi      # 0x795f3
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x9ce2(%rip), %rdi      # 0x7c418
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x9cbf(%rip), %rdi      # 0x7c423
callq 0x33a0
movq %rax, %rdx
movq -0x70(%rbp), %rax
movq (%rax), %rax
movl -0x104(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x104(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x104(%rbp), %ecx
movq -0x70(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
leaq -0x100(%rbp), %rdx
movq -0x38(%rbp), %rcx
movq -0x48(%rbp), %r8
movq -0x58(%rbp), %r9
movl -0x5c(%rbp), %r14d
movl -0x60(%rbp), %ebx
movq -0x70(%rbp), %r10
movq -0x78(%rbp), %rax
leaq 0x8310(%rip), %r11      # 0x7aad9
xorl %r15d, %r15d
movl %r14d, (%rsp)
movl %ebx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movl $0x0, 0x20(%rsp)
movl $0x0, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0x4d2e0
movl %eax, -0x7c(%rbp)
jmp 0x72809
movl $0x0, -0x1c(%rbp)
jmp 0x73081
movl $0x0, -0x194(%rbp)
movl $0x0, -0x194(%rbp)
movl -0x194(%rbp), %eax
movq -0x58(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x72881
movq -0x58(%rbp), %rax
movq (%rax), %rax
movslq -0x194(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x7286e
movq -0x58(%rbp), %rax
movq (%rax), %rax
movslq -0x194(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x3030
movq -0x58(%rbp), %rax
movq (%rax), %rax
movslq -0x194(%rbp), %rcx
movq $0x0, (%rax,%rcx,8)
jmp 0x72870
movl -0x194(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x194(%rbp)
jmp 0x7281d
movq -0x58(%rbp), %rax
cmpq $0x0, (%rax)
je 0x728a2
movq -0x58(%rbp), %rax
movq (%rax), %rdi
callq 0x3030
movq -0x58(%rbp), %rax
movq $0x0, (%rax)
cmpq $0x0, -0x58(%rbp)
je 0x728ba
movq -0x58(%rbp), %rdi
callq 0x3030
movq $0x0, -0x58(%rbp)
movl $0x0, -0x194(%rbp)
movl -0x194(%rbp), %eax
movq -0x70(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x72928
movq -0x70(%rbp), %rax
movq (%rax), %rax
movslq -0x194(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x72915
movq -0x70(%rbp), %rax
movq (%rax), %rax
movslq -0x194(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x3030
movq -0x70(%rbp), %rax
movq (%rax), %rax
movslq -0x194(%rbp), %rcx
movq $0x0, (%rax,%rcx,8)
jmp 0x72917
movl -0x194(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x194(%rbp)
jmp 0x728c4
movq -0x70(%rbp), %rax
cmpq $0x0, (%rax)
je 0x72949
movq -0x70(%rbp), %rax
movq (%rax), %rdi
callq 0x3030
movq -0x70(%rbp), %rax
movq $0x0, (%rax)
cmpq $0x0, -0x70(%rbp)
je 0x72961
movq -0x70(%rbp), %rdi
callq 0x3030
movq $0x0, -0x70(%rbp)
cmpl $0x0, -0x7c(%rbp)
jne 0x72fe6
leaq 0x9aba(%rip), %rdi      # 0x7c42c
movb $0x0, %al
callq 0x3140
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movl 0x8(%rax), %esi
leaq 0x9ac3(%rip), %rdi      # 0x7c450
movb $0x0, %al
callq 0x3140
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x198(%rbp)
movl $0x0, -0x19c(%rbp)
movl $0x0, -0x19c(%rbp)
movl -0x19c(%rbp), %eax
cmpl -0x198(%rbp), %eax
jge 0x72fc3
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rsi
leaq 0x9a4e(%rip), %rdi      # 0x7c43d
movb $0x0, %al
callq 0x3140
cmpq $0x0, 0x10(%rbp)
je 0x72a28
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rdi
callq 0x33a0
movq %rax, %rcx
movq 0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %esi
leaq 0x99fb(%rip), %rdi      # 0x7c449
movb $0x0, %al
callq 0x3140
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x1a0(%rbp)
movl $0x0, -0x1a4(%rbp)
movl -0x1a4(%rbp), %eax
cmpl -0x1a0(%rbp), %eax
jge 0x72fad
movl -0x1a4(%rbp), %esi
leaq 0x99b1(%rip), %rdi      # 0x7c454
movb $0x0, %al
callq 0x3140
leaq -0x1f0(%rbp), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x3190
leaq -0x230(%rbp), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x3190
leaq -0x270(%rbp), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x3190
leaq -0x2b0(%rbp), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x3190
leaq -0x2f0(%rbp), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x3190
movl $0x0, -0x2f4(%rbp)
movl -0x2f4(%rbp), %eax
movq -0x78(%rbp), %rcx
movq (%rcx), %rcx
movq (%rcx), %rcx
movq (%rcx), %rcx
movslq -0x19c(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq 0x8(%rcx), %rcx
movq (%rcx), %rcx
movq (%rcx), %rcx
cmpl 0x8(%rcx), %eax
jge 0x72f97
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x1a4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rsi
leaq 0x98e9(%rip), %rdi      # 0x7c46f
movb $0x0, %al
callq 0x3140
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x1a4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rsi
leaq 0x98b0(%rip), %rdi      # 0x7c480
movb $0x0, %al
callq 0x3140
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x1a4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rsi
leaq 0x6c21(%rip), %rdi      # 0x7983a
callq 0x3050
cmpl $0x0, %eax
jne 0x72c74
cmpq $0x0, 0x10(%rbp)
je 0x72c72
leaq -0x1f0(%rbp), %rdi
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x1a4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rsi
callq 0x3090
jmp 0x72c74
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x1a4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rsi
leaq 0x96f5(%rip), %rdi      # 0x7c3ab
callq 0x3050
cmpl $0x0, %eax
jne 0x72d11
cmpq $0x0, 0x10(%rbp)
je 0x72d0f
leaq -0x230(%rbp), %rdi
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x1a4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rsi
callq 0x70490
jmp 0x72d11
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x1a4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rsi
leaq 0x9696(%rip), %rdi      # 0x7c3e9
callq 0x3050
cmpl $0x0, %eax
jne 0x72dae
cmpq $0x0, 0x10(%rbp)
je 0x72dac
leaq -0x270(%rbp), %rdi
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x1a4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rsi
callq 0x70490
jmp 0x72dae
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x1a4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rsi
leaq 0x9604(%rip), %rdi      # 0x7c3f4
callq 0x3050
cmpl $0x0, %eax
jne 0x72e4b
cmpq $0x0, 0x10(%rbp)
je 0x72e49
leaq -0x2b0(%rbp), %rdi
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x1a4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rsi
callq 0x70490
jmp 0x72e4b
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x1a4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rsi
leaq 0x9572(%rip), %rdi      # 0x7c3ff
callq 0x3050
cmpl $0x0, %eax
jne 0x72ee8
cmpq $0x0, 0x10(%rbp)
je 0x72ee6
leaq -0x2f0(%rbp), %rdi
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movslq -0x19c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x1a4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rsi
callq 0x70490
jmp 0x72ee8
leaq -0x190(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x3210
cmpl $0x0, %eax
je 0x72f48
leaq -0x190(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x3210
cmpl $0x0, %eax
je 0x72f48
leaq -0x190(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x3210
cmpl $0x0, %eax
je 0x72f48
leaq -0x190(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0x3210
cmpl $0x0, %eax
jne 0x72f81
leaq -0x1f0(%rbp), %rdi
callq 0x33a0
movq %rax, %rcx
movq 0x10(%rbp), %rax
movq %rcx, (%rax)
cmpq $0x0, -0x78(%rbp)
je 0x72f76
movq -0x78(%rbp), %rdi
callq 0x3030
movq $0x0, -0x78(%rbp)
movl -0x7c(%rbp), %eax
movl %eax, -0x1c(%rbp)
jmp 0x73081
jmp 0x72f83
movl -0x2f4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2f4(%rbp)
jmp 0x72b13
jmp 0x72f99
movl -0x1a4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1a4(%rbp)
jmp 0x72a84
jmp 0x72faf
movl -0x19c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x19c(%rbp)
jmp 0x729bb
cmpq $0x0, -0x78(%rbp)
je 0x72fdb
movq -0x78(%rbp), %rdi
callq 0x3030
movq $0x0, -0x78(%rbp)
movl -0x7c(%rbp), %eax
movl %eax, -0x1c(%rbp)
jmp 0x73081
cmpl $0x4, -0x7c(%rbp)
jne 0x7303f
leaq 0x949e(%rip), %rdi      # 0x7c491
movb $0x0, %al
callq 0x3140
cmpq $0x0, -0x78(%rbp)
jne 0x73011
leaq 0x949c(%rip), %rdi      # 0x7c4a4
movb $0x0, %al
callq 0x3140
jmp 0x7301f
leaq 0x9498(%rip), %rdi      # 0x7c4b0
movb $0x0, %al
callq 0x3140
cmpq $0x0, -0x78(%rbp)
je 0x73037
movq -0x78(%rbp), %rdi
callq 0x3030
movq $0x0, -0x78(%rbp)
movl -0x7c(%rbp), %eax
movl %eax, -0x1c(%rbp)
jmp 0x73081
movl -0x7c(%rbp), %esi
leaq 0x9081(%rip), %rdi      # 0x7c0ca
movb $0x0, %al
callq 0x3140
movq -0x28(%rbp), %rdi
movq 0x1bf9d(%rip), %rax     # 0x8eff8
movq (%rax), %rsi
callq 0x6e2c0
cmpq $0x0, -0x78(%rbp)
je 0x7307b
movq -0x78(%rbp), %rdi
callq 0x3030
movq $0x0, -0x78(%rbp)
movl -0x7c(%rbp), %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
addq $0x328, %rsp            # imm = 0x328
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nopw %cs:(%rax,%rax)