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

📄 tstril.asm

📁 The Radio Interface Layer is the name for an interface that was developed especially for the Pocket
💻 ASM
📖 第 1 页 / 共 5 页
字号:
; 193  : 			wsprintf(szString, L"SMS Message Notification:");

	ldr       r1, [pc, #0x44]  ;  pc+8+68 = 00000A88
	add       r0, sp, #4
	bl        wsprintfW  ; 00000A4C

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

	add       r3, sp, #4
	mov       r2, #0
	mov       r1, #6, 26  ; 0x180 = 384
	ldr       r0, [pc, #-0x28]  ;  pc+8-40 = 00000A34
	ldr       r0, [r0]
	bl        SendMessageW  ; 00000A64

; 195  : 
; 196  : 			switch (dwCode & 0xff) {

	ldr       lr, [sp, #0x218]  ; 0x218 = 536
	and       r3, lr, #0xFF  ; 0xFF = 255
	str       r3, [sp, #0x20C]  ; 0x20C = 524
	ldr       r2, [sp, #0x20C]  ; 0x20C = 524
	cmp       r2, #1
	beq       |$L27330|  ; 00000A8C
	ldr       r1, [sp, #0x20C]  ; 0x20C = 524
	cmp       r1, #3
	beq       |$L27335|  ; 00000AC8
	b         |$L27327|  ; 00000AFC
|$L27523|
	DCD       |$SG27324|
|$L27330|

; 197  : 			case RIL_NOTIFY_MESSAGE:
; 198  : 				{
; 199  : 					RILMESSAGE *prm = (RILMESSAGE *)lpData;

	ldr       r0, [sp, #0x21C]  ; 0x21C = 540
	str       r0, [sp, #0x204]  ; 0x204 = 516

; 200  : 
; 201  : 					wsprintf(szString, L"  Incoming message");

	ldr       r1, [pc, #0x28]  ;  pc+8+40 = 00000AC4
	add       r0, sp, #4
	bl        wsprintfW  ; 00000AA4

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

	add       r3, sp, #4
	mov       r2, #0
	mov       r1, #6, 26  ; 0x180 = 384
	ldr       lr, [pc, #-0x80]  ;  pc+8-128 = 00000A34
	ldr       r0, [lr]
	bl        SendMessageW  ; 00000ABC

; 203  : 					DisplayMessage(prm);

	ldr       r0, [sp, #0x204]  ; 0x204 = 516
	bl        |?DisplayMessage@@YAXPAURILMESSAGE@@@Z|  ; 00000AC4

; 204  : 					break;

	b         |$L27327|  ; 00000AFC
|$L27524|
	DCD       |$SG27333|
|$L27335|

; 205  : 				}
; 206  : 			case RIL_NOTIFY_STATUSMESSAGE:
; 207  : 				{
; 208  : 					RILMESSAGE *prm = (RILMESSAGE *)lpData;

	ldr       r3, [sp, #0x21C]  ; 0x21C = 540
	str       r3, [sp, #0x208]  ; 0x208 = 520

; 209  : 
; 210  : 					wsprintf(szString, L"  Incoming status message");

	ldr       r1, [pc, #0x2C]  ;  pc+8+44 = 00000B04
	add       r0, sp, #4
	bl        wsprintfW  ; 00000AE0

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

	add       r3, sp, #4
	mov       r2, #0
	mov       r1, #6, 26  ; 0x180 = 384
	ldr       r0, [pc, #-0xBC]  ;  pc+8-188 = 00000A34
	ldr       r0, [r0]
	bl        SendMessageW  ; 00000AF8

; 212  : 					DisplayMessage(prm);

	ldr       r0, [sp, #0x208]  ; 0x208 = 520
	bl        |?DisplayMessage@@YAXPAURILMESSAGE@@@Z|  ; 00000B00
|$L27327|
|$L27320|

; 213  : 					break;
; 214  : 				}
; 215  : 			}
; 216  : 			break;
; 217  : 		}
; 218  : 	}						
; 219  : 
; 220  : }

	add       sp, sp, #0x21, 28  ; 0x210 = 528
	ldmia     sp, {sp, pc}  ; ldmfd
|$L27525|
	DCD       |$SG27338|
|$M27520|

	ENDP  ; |?NotifyCallback@@YAXKPBXKK@Z|, NotifyCallback

	EXPORT	|?ResultCallback@@YAXKJPBXKK@Z|		; ResultCallback

	AREA	|.pdata|, PDATA
|$T27529| DCD	|?ResultCallback@@YAXKJPBXKK@Z|
	DCD	0x40001704

	AREA	|.data|, DATA
|$SG27348| DCB	"r", 0x0, "e", 0x0, "s", 0x0, "u", 0x0, "l", 0x0, "t", 0x0
	DCB	":", 0x0, " ", 0x0, "d", 0x0, "w", 0x0, "C", 0x0, "o", 0x0
	DCB	"d", 0x0, "e", 0x0, "=", 0x0, "%", 0x0, "d", 0x0, ",", 0x0
	DCB	" ", 0x0, "h", 0x0, "r", 0x0, "C", 0x0, "m", 0x0, "d", 0x0
	DCB	"I", 0x0, "D", 0x0, "=", 0x0, "%", 0x0, "d", 0x0, " ", 0x0
	DCB	"l", 0x0, "p", 0x0, "D", 0x0, "a", 0x0, "t", 0x0, "a", 0x0
	DCB	"=", 0x0, "%", 0x0, "p", 0x0, ",", 0x0, " ", 0x0, "c", 0x0
	DCB	"b", 0x0, "D", 0x0, "a", 0x0, "t", 0x0, "a", 0x0, "=", 0x0
	DCB	"%", 0x0, "d", 0x0, 0x0, 0x0

	AREA	|.text|, CODE

|?ResultCallback@@YAXKJPBXKK@Z| PROC			; ResultCallback

; 224  : {

	mov       r12, sp
	stmdb     sp!, {r0 - r3}  ; stmfd
	stmdb     sp!, {r12, lr}  ; stmfd
	sub       sp, sp, #0x82, 30  ; 0x208 = 520
|$M27527|

; 225  : 	TCHAR szString[256];
; 226  : 
; 227  : 	wsprintf(szString, L"result: dwCode=%d, hrCmdID=%d lpData=%p, cbData=%d",dwCode,
; 228  : 		hrCmdID, lpData, cbData);

	ldr       r3, [sp, #0x21C]  ; 0x21C = 540
	str       r3, [sp, #4]
	ldr       r2, [sp, #0x218]  ; 0x218 = 536
	str       r2, [sp]
	ldr       r3, [sp, #0x214]  ; 0x214 = 532
	ldr       r2, [sp, #0x210]  ; 0x210 = 528
	ldr       r1, [pc, #0x28]  ;  pc+8+40 = 00000B60
	add       r0, sp, #8
	bl        wsprintfW  ; 00000B40

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

	add       r3, sp, #8
	mov       r2, #0
	mov       r1, #6, 26  ; 0x180 = 384
	ldr       r0, [pc, #0xC]  ;  pc+8+12 = 00000B5C
	ldr       r0, [r0]
	bl        SendMessageW  ; 00000B58

; 230  : }

	add       sp, sp, #0x82, 30  ; 0x208 = 520
	ldmia     sp, {sp, pc}  ; ldmfd
|$L27530|
	DCD       |?g_hwndEdit@@3PAUHWND__@@A|
	DCD       |$SG27348|
|$M27528|

	ENDP  ; |?ResultCallback@@YAXKJPBXKK@Z|, ResultCallback

	EXPORT	|?DoRIL@@YAKPAX@Z|			; DoRIL
	IMPORT	|RIL_Initialize|
	IMPORT	|Sleep|

	AREA	|.pdata|, PDATA
|$T27534| DCD	|?DoRIL@@YAKPAX@Z|
	DCD	0x40003a04

	AREA	|.data|, DATA
	%	2
|$SG27357| DCB	"R", 0x0, "I", 0x0, "L", 0x0, " ", 0x0, "H", 0x0, "a", 0x0
	DCB	"n", 0x0, "d", 0x0, "l", 0x0, "e", 0x0, ":", 0x0, " ", 0x0
	DCB	"%", 0x0, "0", 0x0, "8", 0x0, "X", 0x0, ",", 0x0, " ", 0x0
	DCB	"r", 0x0, "e", 0x0, "s", 0x0, "u", 0x0, "l", 0x0, "t", 0x0
	DCB	" ", 0x0, "%", 0x0, "0", 0x0, "8", 0x0, "X", 0x0, 0x0, 0x0

	AREA	|.text|, CODE

|?DoRIL@@YAKPAX@Z| PROC					; DoRIL

; 235  : {	

	mov       r12, sp
	stmdb     sp!, {r0}  ; stmfd
	stmdb     sp!, {r12, lr}  ; stmfd
	sub       sp, sp, #0x86, 30  ; 0x218 = 536
|$M27532|

; 236  : 	HRESULT result;
; 237  : 	DWORD dwNotificationClasses = 0xFF0000;

	mov       r3, #0xFF, 16  ; 0xFF0000 = 16711680
	str       r3, [sp, #0x10]  ; 0x10 = 16

; 238  : 	LRESULT lresult;
; 239  : 	TCHAR szString[256];
; 240  : 
; 241  : 	SendMessage(g_hwndEdit, LB_RESETCONTENT, 0, 0);

	mov       r3, #0
	mov       r2, #0
	mov       r1, #0x61, 30  ; 0x184 = 388
	ldr       r0, [pc, #0xA4]  ;  pc+8+164 = 00000C34
	ldr       r0, [r0]
	bl        SendMessageW  ; 00000B98

; 242  : 	lresult = SendMessage(g_hwndEdit,	LB_GETHORIZONTALEXTENT, 0, 0);

	mov       r3, #0
	mov       r2, #0
	mov       lr, #0x19, 28  ; 0x190 = 400
	orr       r1, lr, #3
	ldr       r0, [pc, #0x88]  ;  pc+8+136 = 00000C34
	ldr       r0, [r0]
	bl        SendMessageW  ; 00000BB4
	str       r0, [sp, #0xC]  ; 0xC = 12

; 243  : 	SendMessage(g_hwndEdit,	LB_SETHORIZONTALEXTENT, 1000, 0);

	mov       r3, #0
	mov       r2, #0xFA, 30  ; 0x3E8 = 1000
	mov       r1, #0x65, 30  ; 0x194 = 404
	ldr       lr, [pc, #0x6C]  ;  pc+8+108 = 00000C34
	ldr       r0, [lr]
	bl        SendMessageW  ; 00000BD0

; 244  : 
; 245  : 	result = RIL_Initialize(1, ResultCallback, NotifyCallback,
; 246  : 					   dwNotificationClasses, g_dwParam, &g_hRil);

	ldr       r3, [pc, #0x68]  ;  pc+8+104 = 00000C3C
	str       r3, [sp, #4]
	ldr       r2, [pc, #0x6C]  ;  pc+8+108 = 00000C48
	ldr       r1, [r2]
	str       r1, [sp]
	ldr       r3, [sp, #0x10]  ; 0x10 = 16
	ldr       r2, [pc, #0x58]  ;  pc+8+88 = 00000C44
	ldr       r1, [pc, #0x50]  ;  pc+8+80 = 00000C40
	mov       r0, #1
	bl        RIL_Initialize  ; 00000BF8
	str       r0, [sp, #8]

; 247  : 
; 248  : 	wsprintf(szString, L"RIL Handle: %08X, result %08X", g_hRil, result);

	ldr       r3, [sp, #8]
	ldr       r0, [pc, #0x38]  ;  pc+8+56 = 00000C3C
	ldr       r2, [r0]
	ldr       r1, [pc, #0x2C]  ;  pc+8+44 = 00000C38
	add       r0, sp, #0x18  ; 0x18 = 24
	bl        wsprintfW  ; 00000C14

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

	add       r3, sp, #0x18  ; 0x18 = 24
	mov       r2, #0
	mov       r1, #6, 26  ; 0x180 = 384
	ldr       lr, [pc, #0x10]  ;  pc+8+16 = 00000C34
	ldr       r0, [lr]
	bl        SendMessageW  ; 00000C2C
|$L27360|

; 250  : 
; 251  : 	while(1) {
; 252  : 		Sleep(100);

	mov       r0, #0x64  ; 0x64 = 100
	bl        Sleep  ; 00000C34

; 253  : //		wsprintf(szString, L"%s",L"...");
; 254  : //		SendMessage(g_hwndEdit, LB_ADDSTRING, 0, (LPARAM) szString);
; 255  : 	}

	b         |$L27360|  ; 00000C28
|$L27535|
	DCD       |?g_hwndEdit@@3PAUHWND__@@A|
	DCD       |$SG27357|
	DCD       |?g_hRil@@3KA|
	DCD       |?ResultCallback@@YAXKJPBXKK@Z|
	DCD       |?NotifyCallback@@YAXKPBXKK@Z|
	DCD       |?g_dwParam@@3KA|
|$M27533|

	ENDP  ; |?DoRIL@@YAKPAX@Z|, DoRIL

	EXPORT	|?InitInstance@@YAHPAUHINSTANCE__@@H@Z|	; InitInstance
	EXPORT	|WinMain|
	IMPORT	|GetMessageW|
	IMPORT	|TranslateMessage|
	IMPORT	|DispatchMessageW|
	IMPORT	|LoadAcceleratorsW|
	IMPORT	|TranslateAcceleratorW|

	AREA	|.pdata|, PDATA
|$T27539| DCD	|WinMain|
	DCD	0x40002404

	AREA	|.text|, CODE

|WinMain| PROC

; 265  : {

	mov       r12, sp
	stmdb     sp!, {r0 - r3}  ; stmfd
	stmdb     sp!, {r12, lr}  ; stmfd
	sub       sp, sp, #0x20  ; 0x20 = 32
|$M27537|

; 266  : 	MSG msg;
; 267  : 	HACCEL hAccelTable;
; 268  : 
; 269  : 	// Perform application initialization:
; 270  : 	if (!InitInstance (hInstance, nCmdShow)) 

	ldr       r1, [sp, #0x34]  ; 0x34 = 52
	ldr       r0, [sp, #0x28]  ; 0x28 = 40
	bl        |?InitInstance@@YAHPAUHINSTANCE__@@H@Z|  ; 00000C6C
	movs      r3, r0
	bne       |$L27370|  ; 00000C78

; 271  : 	{
; 272  : 		return FALSE;

	mov       r0, #0
	b         |$L27367|  ; 00000CD4
|$L27370|

; 273  : 	}
; 274  : 
; 275  : 	hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_TSTRIL);

	mov       r1, #3
	ldr       r0, [sp, #0x28]  ; 0x28 = 40
	bl        LoadAcceleratorsW  ; 00000C88
	str       r0, [sp, #0x1C]  ; 0x1C = 28
|$L27373|

; 276  : 
; 277  : 	// Main message loop:
; 278  : 	while (GetMessage(&msg, NULL, 0, 0)) 

	mov       r3, #0
	mov       r2, #0
	mov       r1, #0
	add       r0, sp, #0
	bl        GetMessageW  ; 00000CA0
	movs      r2, r0
	beq       |$L27374|  ; 00000CD0

; 279  : 	{
; 280  : 		if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 

	add       r2, sp, #0
	ldr       r1, [sp, #0x1C]  ; 0x1C = 28
	ldr       r0, [sp]
	bl        TranslateAcceleratorW  ; 00000CB8
	movs      r1, r0
	bne       |$L27375|  ; 00000CCC

; 281  : 		{
; 282  : 			TranslateMessage(&msg);

	add       r0, sp, #0
	bl        TranslateMessage  ; 00000CC8

; 283  : 			DispatchMessage(&msg);

	add       r0, sp, #0
	bl        DispatchMessageW  ; 00000CD0
|$L27375|

; 284  : 		}
; 285  : 	}

	b         |$L27373|  ; 00000C88
|$L27374|

; 286  : 
; 287  : 	return msg.wParam;

	ldr       r0, [sp, #8]
|$L27367|

; 288  : }

	add       sp, sp, #0x20  ; 0x20 = 32
	ldmia     sp, {sp, pc}  ; ldmfd
|$M27538|

	ENDP  ; |WinMain|

	EXPORT	|?MyRegisterClass@@YAGPAUHINSTANCE__@@PAG@Z| ; MyRegisterClass
	EXPORT	|?WndProc@@YAJPAUHWND__@@IIJ@Z|		; WndProc
	IMPORT	|RegisterClassW|
	IMPORT	|LoadIconW|
	IMPORT	|GetStockObject|

	AREA	|.pdata|, PDATA
|$T27543| DCD	|?MyRegisterClass@@YAGPAUHINSTANCE__@@PAG@Z|
	DCD	0x40002004

	AREA	|.text|, CODE

|?MyRegisterClass@@YAGPAUHINSTANCE__@@PAG@Z| PROC	; MyRegisterClass

; 301  : {

	mov       r12, sp
	stmdb     sp!, {r0, r1}  ; stmfd
	stmdb     sp!, {r12, lr}  ; stmfd
	sub       sp, sp, #0x28  ; 0x28 = 40
|$M27541|

; 302  : 	WNDCLASS	wc;
; 303  : 
; 304  :     wc.style			= CS_HREDRAW | CS_VREDRAW;

⌨️ 快捷键说明

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