⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tstril.asm

📁 wince ril程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	ldr         r3, [sp, #0x4BC]
	str         r3, [sp, #4]
	ldr         r3, [sp, #0x4B8]
	str         r3, [sp]
	ldr         r3, [sp, #0x4B4]
	ldr         r2, [sp, #0x4B0]
	ldr         r1, [pc, #0x414]
	add         r0, sp, #8
	bl          wsprintfW

; 199  : 	    SendMessage(g_hwndEdit, LB_ADDSTRING, 0, (LPARAM) szString);

	add         r3, sp, #8
	mov         r2, #0
	mov         r1, #6, 26
	ldr         r0, [pc, #0x3D8]
	ldr         r0, [r0]
	bl          SendMessageW

; 200  :     	switch (dwCode) {

	ldr         r3, [sp, #0x4B0]
	str         r3, [sp, #0x498]
	ldr         r2, [sp, #0x498]
	mov         r3, #2, 12
	orr         r3, r3, #0xA1
	cmp         r2, r3
	beq         |$LN10@NotifyCall|
	ldr         r2, [sp, #0x498]
	mov         r3, #2, 12
	orr         r3, r3, #0xA2
	cmp         r2, r3
	beq         |$LN3@NotifyCall|
	ldr         r2, [sp, #0x498]
	mov         r3, #2, 12
	orr         r3, r3, #0xA3
	cmp         r2, r3
	beq         |$LN2@NotifyCall|
	ldr         r2, [sp, #0x498]
	mov         r3, #2, 12
	orr         r3, r3, #0xA4
	cmp         r2, r3
	beq         |$LN1@NotifyCall|
	b           |$LN11@NotifyCall|
|$LN10@NotifyCall|

; 201  : 		case RIL_NOTIFY_SIMTOOLKITCMD:
; 202  : 			{
; 203  :                 RILSIMTOOLKITCMD *cmddata = (RILSIMTOOLKITCMD *)lpData;

	ldr         r3, [sp, #0x4B4]
	str         r3, [sp, #0x40C]

; 204  : 				unsigned char *prm = (unsigned char *)lpData;

	ldr         r3, [sp, #0x4B4]
	str         r3, [sp, #0x408]

; 205  :                 wsprintf(szString, L"  A SIM Toolkit command:");

	ldr         r1, [pc, #0x380]
	add         r0, sp, #8
	bl          wsprintfW

; 206  : 				SendMessage(g_hwndEdit, LB_ADDSTRING, 0, (LPARAM) szString);

	add         r3, sp, #8
	mov         r2, #0
	mov         r1, #6, 26
	ldr         r0, [pc, #0x348]
	ldr         r0, [r0]
	bl          SendMessageW

; 207  :                 memset(szString, 0, 256 * sizeof(TCHAR));

	mov         r2, #2, 24
	mov         r1, #0
	add         r0, sp, #8
	bl          memset

; 208  :                 if(cbData > 256)

	ldr         r3, [sp, #0x4B8]
	cmp         r3, #1, 24
	bls         |$LN9@NotifyCall|

; 209  :                 {
; 210  :                     break;

	b           |$LN11@NotifyCall|
|$LN9@NotifyCall|

; 211  :                 }
; 212  : 
; 213  :                 for(int i = 0; i < cbData; i++)

	mov         r3, #0
	str         r3, [sp, #0x414]
	b           |$LN8@NotifyCall|
|$LN7@NotifyCall|
	ldr         r3, [sp, #0x414]
	add         r3, r3, #1
	str         r3, [sp, #0x414]
|$LN8@NotifyCall|
	ldr         r2, [sp, #0x414]
	ldr         r3, [sp, #0x4B8]
	cmp         r2, r3
	bcs         |$LN6@NotifyCall|

; 214  :                 {
; 215  :                     TCHAR text[2] ;
; 216  :                     wsprintf(text, L"0x%2x", prm[i]);

	ldr         r2, [sp, #0x408]
	ldr         r3, [sp, #0x414]
	add         r3, r2, r3
	ldrb        r3, [r3]
	mov         r2, r3
	ldr         r1, [pc, #0x2FC]
	mov         r0, #1, 22
	orr         r0, r0, #0x18
	add         r0, sp, r0
	bl          wsprintfW

; 217  :                     wcscat(szString, text);

	mov         r1, #1, 22
	orr         r1, r1, #0x18
	add         r1, sp, r1
	add         r0, sp, #8
	bl          wcscat

; 218  :                     wcscat(szString, L" ");                    

	ldr         r1, [pc, #0x2D0]
	add         r0, sp, #8
	bl          wcscat

; 219  :                 }

	b           |$LN7@NotifyCall|
|$LN6@NotifyCall|

; 220  : 				SendMessage(g_hwndEdit, LB_ADDSTRING, 0, (LPARAM) szString);

	add         r3, sp, #8
	mov         r2, #0
	mov         r1, #6, 26
	ldr         r0, [pc, #0x29C]
	ldr         r0, [r0]
	bl          SendMessageW

; 221  : 
; 222  :                 HRESULT result; 
; 223  :                 if( hashandle == FALSE)

	ldr         r3, [pc, #0x2A4]
	ldr         r3, [r3]
	cmp         r3, #0
	bne         |$LN5@NotifyCall|

; 224  :                 {
; 225  :                 RILSIMTOOLKITRSP response = {0};

	mov         r3, #0
	str         r3, [sp, #0x41C]
	mov         r2, #0x1C
	mov         r1, #0
	add         r0, sp, #0x42, 28
	bl          memset

; 226  :                 response.cbSize = sizeof(RILSIMTOOLKITRSP);// Structure and text size in bytes

	mov         r3, #0x20
	str         r3, [sp, #0x41C]

; 227  :                 response.dwParams = 0x1f; // Indicates valid parameters

	mov         r3, #0x1F
	str         r3, [sp, #0x420]

; 228  :                 response.dwId = 0x01;// ID number of command

	mov         r3, #1
	str         r3, [sp, #0x424]

; 229  :                 response.dwTag = *((unsigned char *)lpData + 2);// Command tag (with comprehension bit)

	ldr         r3, [sp, #0x4B4]
	add         r3, r3, #2
	ldrb        r3, [r3]
	str         r3, [sp, #0x428]

; 230  :                 response.dwType = 0x24; // Type of command (DISPLAY TEXT, etc.)

	mov         r3, #0x24
	str         r3, [sp, #0x42C]

; 231  :                 response.dwQualifier = 0x0; // Command details qualifier

	mov         r3, #0
	str         r3, [sp, #0x430]

; 232  :                 response.dwResponse = 0; // Command result from SIM toolkit layer

	mov         r3, #0
	str         r3, [sp, #0x434]

; 233  :                 response.dwAdditionalInfo = 0;// Additional command result information.

	mov         r3, #0
	str         r3, [sp, #0x438]

; 234  :                 
; 235  :                 SIMTKITRSPITEM Detail;
; 236  :                 Detail.cbSize = sizeof(SIMTKITRSPITEM);

	mov         r3, #0xC
	str         r3, [sp, #0x448]

; 237  :                 Detail.dwParams = 1;

	mov         r3, #1
	str         r3, [sp, #0x44C]

; 238  :                 Detail.dwId = 1;

	mov         r3, #1
	str         r3, [sp, #0x450]

; 239  : 
; 240  :                 result = RIL_SendSimToolkitCmdResponse(g_hRil, &response, (LPBYTE)&Detail,  Detail.cbSize); 

	ldr         r3, [sp, #0x448]
	mov         r2, #1, 22
	orr         r2, r2, #0x48
	add         r2, sp, r2
	mov         r1, #1, 22
	orr         r1, r1, #0x1C
	add         r1, sp, r1
	ldr         r0, [pc, #0x1FC]
	ldr         r0, [r0]
	bl          RIL_SendSimToolkitCmdResponse
	str         r0, [sp, #0x49C]
	ldr         r3, [sp, #0x49C]
	str         r3, [sp, #0x410]

; 241  : 
; 242  :                 BYTE envcmd[9];  
; 243  :                 envcmd[0] = 0xd3; // Menu selection tag

	mov         r3, #0xD3
	strb        r3, [sp, #0x43C]

; 244  :                 envcmd[1] = 0x07; // Length

	mov         r3, #7
	strb        r3, [sp, #0x43D]

; 245  :                 envcmd[2] = 0x02; // Device Identity Tag

	mov         r3, #2
	strb        r3, [sp, #0x43E]

; 246  :                 envcmd[3] = 0x02; // Device Identity length

	mov         r3, #2
	strb        r3, [sp, #0x43F]

; 247  :                 envcmd[4] = 0x82; // Source: ME

	mov         r3, #0x82
	strb        r3, [sp, #0x440]

; 248  :                 envcmd[5] = 0x81; // Destination: SIM

	mov         r3, #0x81
	strb        r3, [sp, #0x441]

; 249  :                 envcmd[6] = *((unsigned char *)lpData + 11); // Item Identifier tag

	ldr         r3, [sp, #0x4B4]
	add         r3, r3, #0xB
	ldrb        r3, [r3]
	strb        r3, [sp, #0x442]

; 250  :                 envcmd[7] = 0x01; // Item Identifier length

	mov         r3, #1
	strb        r3, [sp, #0x443]

; 251  :                 envcmd[8] = 0x01; // Item chose               

	mov         r3, #1
	strb        r3, [sp, #0x444]

; 252  :                 //result = RIL_FetchSimToolkitCmd(g_hRil);
; 253  :                 result = RIL_SendSimToolkitEnvelopeCmd(g_hRil, envcmd, 9);       

	mov         r2, #9
	mov         r1, #1, 22
	orr         r1, r1, #0x3C
	add         r1, sp, r1
	ldr         r3, [pc, #0x184]
	ldr         r0, [r3]
	bl          RIL_SendSimToolkitEnvelopeCmd
	str         r0, [sp, #0x4A0]
	ldr         r3, [sp, #0x4A0]
	str         r3, [sp, #0x410]

; 254  :                 hashandle = TRUE;    

	ldr         r2, [pc, #0x170]
	mov         r3, #1
	str         r3, [r2]

; 255  :                 }
; 256  :                 else

	b           |$LN4@NotifyCall|
|$LN5@NotifyCall|

; 257  :                 {
; 258  :                     RILSIMTOOLKITRSP response = {0};

	mov         r3, #0
	str         r3, [sp, #0x454]
	mov         r2, #0x1C
	mov         r1, #0
	mov         r0, #1, 22
	orr         r0, r0, #0x58
	add         r0, sp, r0
	bl          memset

; 259  :                     response.cbSize = sizeof(RILSIMTOOLKITRSP);// Structure and text size in bytes

	mov         r3, #0x20
	str         r3, [sp, #0x454]

; 260  :                     response.dwParams = 0x1f; // Indicates valid parameters

	mov         r3, #0x1F
	str         r3, [sp, #0x458]

; 261  :                     response.dwId = 0x01;// ID number of command

	mov         r3, #1
	str         r3, [sp, #0x45C]

; 262  :                     response.dwTag = 0x81;//*((unsigned char *)lpData + 2);// Command tag (with comprehension bit)

	mov         r3, #0x81
	str         r3, [sp, #0x460]

; 263  :                     response.dwType = 0x24; // Type of command (DISPLAY TEXT, etc.)

	mov         r3, #0x24
	str         r3, [sp, #0x464]

; 264  :                     response.dwQualifier = 0x0; // Command details qualifier

	mov         r3, #0
	str         r3, [sp, #0x468]

; 265  :                     response.dwResponse = 0; // Command result from SIM toolkit layer

	mov         r3, #0
	str         r3, [sp, #0x46C]

; 266  :                     response.dwAdditionalInfo = 0;// Additional command result information.

	mov         r3, #0
	str         r3, [sp, #0x470]

; 267  : 
; 268  :                     SIMTKITRSPITEM Detail;
; 269  :                     Detail.cbSize = sizeof(SIMTKITRSPITEM);

	mov         r3, #0xC
	str         r3, [sp, #0x474]

; 270  :                     Detail.dwParams = 1;

	mov         r3, #1
	str         r3, [sp, #0x478]

; 271  :                     Detail.dwId = 1;

	mov         r3, #1
	str         r3, [sp, #0x47C]

; 272  :                     result = RIL_SendSimToolkitCmdResponse(g_hRil, &response, (LPBYTE)&Detail,  Detail.cbSize); 

	ldr         r3, [sp, #0x474]
	mov         r2, #1, 22
	orr         r2, r2, #0x74
	add         r2, sp, r2
	mov         r1, #1, 22
	orr         r1, r1, #0x54
	add         r1, sp, r1
	ldr         r0, [pc, #0xC8]
	ldr         r0, [r0]
	bl          RIL_SendSimToolkitCmdResponse
	str         r0, [sp, #0x4A4]
	ldr         r3, [sp, #0x4A4]
	str         r3, [sp, #0x410]
|$LN4@NotifyCall|

; 273  : 			        }
; 274  :                 }
; 275  : 				break;

	b           |$LN11@NotifyCall|
|$LN3@NotifyCall|

; 276  : 		case RIL_NOTIFY_SIMTOOLKITCALLSETUP:
; 277  : 			{
; 278  : 				RILMESSAGE *prm = (RILMESSAGE *)lpData;

	ldr         r3, [sp, #0x4B4]
	str         r3, [sp, #0x480]

; 279  : 
; 280  : 				wsprintf(szString, L" SIM Toolkit is trying to set up a call ");

	ldr         r1, [pc, #0xA0]
	add         r0, sp, #8
	bl          wsprintfW

; 281  : 				SendMessage(g_hwndEdit, LB_ADDSTRING, 0, (LPARAM) szString);

	add         r3, sp, #8
	mov         r2, #0
	mov         r1, #6, 26
	ldr         r0, [pc, #0x7C]
	ldr         r0, [r0]
	bl          SendMessageW

; 282  : 				break;

	b           |$LN11@NotifyCall|
|$LN2@NotifyCall|

; 283  : 			}
; 284  :      case RIL_NOTIFY_SIMTOOLKITEVENT:
; 285  :             {
; 286  : 				RILMESSAGE *prm = (RILMESSAGE *)lpData;

	ldr         r3, [sp, #0x4B4]
	str         r3, [sp, #0x484]

; 287  : 				wsprintf(szString, L" A SIM Toolkit command was handled by the radio or the radio sent a SIM Toolkit command response to the SIM ");

	ldr         r1, [pc, #0x6C]
	add         r0, sp, #8
	bl          wsprintfW

; 288  : 				SendMessage(g_hwndEdit, LB_ADDSTRING, 0, (LPARAM) szString);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -