Changeset 8281 for trunk/tools/profilerfix/cppopa4.asm
- Timestamp:
- Apr 18, 2002, 3:35:24 AM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/profilerfix/cppopa4.asm
r8280 r8281 1 2 1 ; $Id: cppopa4.asm,v 1.2 2002-04-18 01:35:24 bird Exp $ 3 2 ; 4 ; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» 5 ; º This file is generated by The Interactive Disassembler (IDA) º 6 ; º Copyright (c) 2000 by DataRescue sa/nv, <ida@datarescue.com> º 7 ; º Licensed to: PMSC AS, 1 user º 8 ; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍŒ 3 ; File Name : G:\fun\cpppan40.obj\cpppan40.obj 4 ; Format : Object Module Format (OMF/IBM) 5 ; Module name : cppopa4.asm 6 ; Translator : ALP: Assembly Language Processor Ver 4.00.002 7 ; Debug info type : Unknown 8 9 10 11 .586 12 .MODEL FLAT 13 14 large EQU 15 9 16 ; 10 ; File Name : G:\fun\cpppan40.obj\cpppan40.obj 11 ; Format : Object Module Format (OMF/IBM) 12 ; Module name : cppopa4.asm 13 ; Translator : ALP: Assembly Language Processor Ver 4.00.002 14 ; Debug info type : Unknown 15 16 17 18 .586 19 .MODEL FLAT 20 21 large EQU 22 23 ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 24 25 ; Segment type: Group 26 ;FLAT group 27 28 ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 29 30 ; Segment type: Group 31 DGROUP group DATA32,CONST32,BSS32 32 33 ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 34 35 ; Segment type: Externs 36 ; extn00 17 ; Segment definitionas. 18 ; 19 DATA32 segment dword public 'DATA' use32 20 DATA32 ends 21 CONST32 segment dword public 'DATA' use32 22 CONST32 ends 23 BSS32 segment dword public 'DATA' use32 24 BSS32 ends 25 26 DGROUP group DATA32, CONST32, BSS32 27 28 CODE32 segment dword public 'CODE' use32 29 CODE32 ends 30 31 32 ; 33 ; Externals 34 ; 35 extrn DosExit:near 37 36 extrn DosSleep:far 38 39 ; Type idx: 134 40 ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 41 42 ; Segment type: Pure data 43 DATA32 segment dword public 'DATA' use32 37 extrn DosLoadModule:near 38 extrn DosQueryProcAddr:near 39 extrn DosUnwindException:near 40 41 42 ; 43 ; Global Variables 44 ; 45 DATA32 segment 44 46 ; assume cs:DATA32 45 47 public $$PROSEGPTR32 46 $$PROSEGPTR32 dd 0; DATA XREF: $$PROFCALL32+5r47 48 initAdr dd 0; DATA XREF: DoInit+27o49 50 alreadyTriedInit dd 0; DATA XREF: $$PROFCALL32+13r51 48 $$PROSEGPTR32 dd 0 ; DATA XREF: $$PROFCALL32+5r 49 ; $$PROFCALL32+2Fr ... 50 initAdr dd 0 ; DATA XREF: DoInit+27o 51 ; DoInit+63r 52 alreadyTriedInit dd 0 ; DATA XREF: $$PROFCALL32+13r 53 ; $$PROFCALL32+25w ... 52 54 DATA32 ends 53 54 ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ55 56 ; Segment type: Zero-length57 CONST32 segment dword public 'DATA' use3258 CONST32 ends59 60 ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ61 62 ; Segment type: Zero-length63 BSS32 segment dword public 'DATA' use3264 BSS32 ends65 66 ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ67 68 ; Segment type: Externs69 ; extn0670 extrn DosExit:near ; CODE XREF: CrashAndBurn+9p71 ; Type idx: 18372 extrn DosLoadModule:near ; CODE XREF: DoInit+10p73 ; Type idx: 18374 extrn DosQueryProcAddr:near ; CODE XREF: DoInit+38p75 ; Type idx: 18376 extrn DosUnwindException:near ; CODE XREF: longjmp+11p77 78 ; Type idx: 51379 ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ80 55 81 56 … … 83 58 ; Structures and Typedefs 84 59 ; 85 PROSEG struc86 proseg_flags dw ?87 proseg_unused dw ?88 proseg_rc dd ?89 proseg_rcSys dd ?90 proseg_clkIntCtr dd ?91 proseg_initTics_low dd ?92 proseg_initTics_high dd ?93 proseg_exitTics_low dd ?94 proseg_exitTics_high dd ?95 proseg_preTics_low dd ?96 proseg_preTics_high dd ?97 proseg_postTics_low dd ?98 proseg_postTics_high dd ?60 PROSEG struc 61 proseg_flags dw ? 62 proseg_unused dw ? 63 proseg_rc dd ? 64 proseg_rcSys dd ? 65 proseg_clkIntCtr dd ? 66 proseg_initTics_low dd ? 67 proseg_initTics_high dd ? 68 proseg_exitTics_low dd ? 69 proseg_exitTics_high dd ? 70 proseg_preTics_low dd ? 71 proseg_preTics_high dd ? 72 proseg_postTics_low dd ? 73 proseg_postTics_high dd ? 99 74 proseg_clockFrequency_low dd ? 100 75 proseg_clockFrequency_high dd ? 101 proseg_logBuf1st dd ? 102 proseg_logBufMax dd ? 103 proseg_logBufNext dd ? 104 proseg_logBufWrap dd ? 105 proseg_procAddrs dd 7 dup(?) 106 proseg_maxTid dd ? 107 proseg_ptrCurTid dd ? 108 proseg_maxSuffixBytes dd ? 109 proseg_usedSuffixBytes dd ? 110 proseg_ptrSuffixBytes dd ? 111 proseg_ticsEntry dd ? 112 proseg_ticsExit dd ? 113 proseg_ticsUser dd ? 114 proseg_curTidNum dd ? 115 proseg_extraDDH dd ? 116 proseg_appDDH dd ? 117 proseg_logDev db 16 dup(?) 118 proseg_logDLL db 16 dup(?) 119 proseg_procNames db 112 dup(?) 120 ;_counterArray db 36 dup(?) 121 _counterArray dd 9 dup(?) 122 _command dd ? 123 _parm dd 3 dup(?) 124 proseg_retStacks dd ? 125 proseg_tidDecNest dd ? 126 proseg_tidMaxNest dd ? 127 proseg_tidTrigger dd ? 128 conditionalExit dd ? 129 _cpuType dd ? 130 _lockFlag dd ? 131 proseg_reserved dd 2 dup(?) 132 PROSEG ends 133 134 ; 135 TVersionId struc 76 proseg_logBuf1st dd ? 77 proseg_logBufMax dd ? 78 proseg_logBufNext dd ? 79 proseg_logBufWrap dd ? 80 proseg_procAddrs dd 7 dup(?) 81 proseg_maxTid dd ? 82 proseg_ptrCurTid dd ? 83 proseg_maxSuffixBytes dd ? 84 proseg_usedSuffixBytes dd ? 85 proseg_ptrSuffixBytes dd ? 86 proseg_ticsEntry dd ? 87 proseg_ticsExit dd ? 88 proseg_ticsUser dd ? 89 proseg_curTidNum dd ? 90 proseg_extraDDH dd ? 91 proseg_appDDH dd ? 92 proseg_logDev db 16 dup(?) 93 proseg_logDLL db 16 dup(?) 94 proseg_procNames db 112 dup(?) 95 _counterArray dd 9 dup(?) 96 _command dd ? 97 _parm dd 3 dup(?) 98 proseg_retStacks dd ? 99 proseg_tidDecNest dd ? 100 proseg_tidMaxNest dd ? 101 proseg_tidTrigger dd ? 102 conditionalExit dd ? 103 _cpuType dd ? 104 _lockFlag dd ? 105 proseg_reserved dd 2 dup(?) 106 PROSEG ends 107 108 TVersionId struc 136 109 _versionNumber dd ? 137 110 _releaseNumber dd ? 138 111 _modificationLevel dd ? 139 112 _prosegSize dd ? 140 TVersionId ends141 142 TStackHeader struc113 TVersionId ends 114 115 TStackHeader struc 143 116 _offsetOfTop dd ? 144 TStackHeader ends145 146 TStackEntry struc117 TStackHeader ends 118 119 TStackEntry struc 147 120 _returnAddr dd ? 148 121 _frameAddr dd ? 149 TStackEntry ends150 151 tib2_s struc122 TStackEntry ends 123 124 tib2_s struc 152 125 tib2_ultid dd ? 153 126 tib2_ulpri dd ? … … 155 128 tib2_usMCCount dw ? 156 129 tib2_fMCForceFlag dw ? 157 tib2_s ends158 159 tib_s struc130 tib2_s ends 131 132 tib_s struc 160 133 tib_pexchain dd ? 161 134 tib_pstack dd ? … … 164 137 tib_version dd ? 165 138 tib_arbpointer dd ? 166 tib_s ends167 168 pib_s struc139 tib_s ends 140 141 pib_s struc 169 142 pib_ulpid dd ? 170 143 pib_ulppid dd ? … … 174 147 pib_flstatus dd ? 175 148 pib_ultype dd ? 176 pib_s ends 177 178 179 ; Segment type: Pure code 180 CODE32 segment dword public 'CODE' use32 181 assume cs:CODE32 182 ;org 10h 183 assume es:nothing, ss:nothing, ds:DGROUP, fs:nothing, gs:nothing 149 pib_s ends 150 151 152 ; 153 ; Code! 154 ; 155 CODE32 segment 156 ; assume cs:CODE32 157 ; assume cs:FLAT 158 assume es:nothing, ss:nothing, ds:FLAT, fs:nothing, gs:nothing 184 159 185 160 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ … … 192 167 _ProfileHook32 endp 193 168 194 ; Type idx: 513 195 ; #line 247 196 197 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 198 199 169 170 ; 171 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 172 ; 200 173 public $$PROFCALL32 201 174 $$PROFCALL32 proc near ; CODE XREF: eCal+23j uCal+5p … … 205 178 206 179 pushfd 207 ; #line 1208 180 push ebx 209 181 push esi 210 182 push edx 211 ; #line 1212 183 push eax 213 184 mov esi, $$PROSEGPTR32 … … 229 200 loc_6_4E: ; CODE XREF: $$PROFCALL32+Dj 230 201 mov ebx, large fs:0Ch 231 ; #line 1232 202 test dword ptr [esi], 10h 233 203 jnz loc_6_FD 234 204 movzx ebx, word ptr [ebx] 235 ; #line 1236 205 dec ebx 237 206 cmp ebx, [esi+64h] 238 207 jnb loc_6_FD 239 ; #line 1240 208 mov eax, [esi+164h] 241 209 mov dword ptr [eax+ebx*4], 0FFFFFFFFh 242 210 mov eax, [esi+160h] 243 211 cmp dword ptr [eax+ebx*4], 0 244 ; #line 1245 212 jz short loc_6_FD 246 213 nop … … 250 217 mov eax, [esi+158h] 251 218 dec dword ptr [eax+ebx*4] 252 ; #line 1253 219 js short loc_6_104 254 220 nop … … 261 227 or eax, eax 262 228 jnz short loc_6_103 263 ; #line 1264 229 mov eax, offset _ProfileHook32+0FFh 265 230 xchg eax, [esp+18h+arg_0] 266 231 mov edi, ebx 267 ; #line 1268 232 shl edi, 0Ch 269 233 add edi, [esi+154h] … … 272 236 call checkForUnwindAtCall 273 237 pop eax 274 ; #line 1275 238 add dword ptr [edi], 8 276 239 add edi, [edi] 277 240 mov [edi], eax 278 ; #line 1279 241 lea eax, [esp+18h] 280 242 mov [edi+4], eax 281 243 mov eax, [eax] 282 ; #line 1283 244 test dword ptr [esi], 20h 284 245 jz short loc_6_F4 … … 288 249 nop 289 250 shl ebx, 10h 290 ; #line 1291 251 mov bl, 1 292 252 mov edx, [esp+18h+var_14] 293 253 call dword ptr [esi+58h] 294 ; #line 1295 254 jmp short loc_6_FC 296 255 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 297 align 4 256 ; align 4 257 nop 258 nop 259 nop 298 260 299 261 loc_6_F4: ; CODE XREF: $$PROFCALL32+CCj 300 262 shl ebx, 10h 301 263 mov bl, 40h ; '@' 302 ; #line 1303 264 call dword ptr [esi+50h] 304 265 … … 309 270 ; $$PROFCALL32+37j ... 310 271 pop eax 311 ; #line 1312 272 pop edx 313 273 pop esi 314 274 pop ebx 315 ; #line 1316 275 popfd 317 276 retn … … 320 279 loc_6_103: ; CODE XREF: $$PROFCALL32+95j 321 280 pop edi 322 ; #line 1323 281 324 282 loc_6_104: ; CODE XREF: $$PROFCALL32+83j … … 329 287 330 288 ; Type idx: 513 331 ; #line 1332 289 333 290 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ … … 344 301 pushfd 345 302 push eax 346 ; #line 1347 303 push ebx 348 304 push esi 349 305 push edi 350 ; #line 1351 306 mov ebx, large fs:0Ch 352 307 mov esi, $$PROSEGPTR32 353 308 movzx ebx, word ptr [ebx] 354 ; #line 1355 309 dec ebx 356 310 mov eax, [esi+158h] 357 311 inc dword ptr [eax+ebx*4] 358 ; #line 1359 312 mov edi, ebx 360 313 shl edi, 0Ch 361 314 add edi, [esi+154h] 362 ; #line 1363 315 push eax 364 316 lea eax, [esp+18h+var_4] … … 367 319 sub dword ptr [edi], 8 368 320 add edi, [edi] 369 ; #line 1370 321 mov eax, [edi+8] 371 322 mov [esp+14h], eax 372 323 shl ebx, 10h 373 ; #line 1374 324 mov bl, 0 375 325 call dword ptr [esi+4Ch] 376 326 pop edi 377 ; #line 1378 327 pop esi 379 328 pop ebx 380 329 pop eax 381 ; #line 1382 330 popfd 383 331 retn … … 396 344 397 345 pushfd 398 ; #line 1399 346 push ebx 400 347 push esi 401 348 push edx 402 ; #line 1403 349 push eax 404 350 mov esi, $$PROSEGPTR32 … … 420 366 loc_6_19F: ; CODE XREF: $$PROFTRIG32+Dj 421 367 test dword ptr [esi], 10h 422 ; #line 1423 368 jnz loc_6_24A 424 369 mov ebx, large fs:0Ch 425 370 movzx ebx, word ptr [ebx] 426 ; #line 1427 371 dec ebx 428 372 cmp ebx, [esi+64h] 429 373 jnb loc_6_24A 430 ; #line 1431 374 mov eax, [esi+164h] 432 375 mov dword ptr [eax+ebx*4], 0FFFFFFFFh 433 376 mov eax, [esi+158h] 434 377 dec dword ptr [eax+ebx*4] 435 ; #line 1436 378 js short loc_6_251 437 379 push edi … … 440 382 or eax, eax 441 383 jnz short loc_6_250 442 ; #line 1443 384 mov eax, offset _ProfileHook32+24Ch 444 385 xchg eax, [esp+18h+arg_0] 445 386 cmp eax, offset _ProfileHook32+24Ch 446 ; #line 1447 387 jz short loc_6_250 448 388 mov edi, [esi+160h] 449 389 inc dword ptr [edi+ebx*4] 450 ; #line 1451 390 mov edi, ebx 452 391 shl edi, 0Ch 453 392 add edi, [esi+154h] 454 ; #line 1455 393 push eax 456 394 lea eax, [esp+1Ch] … … 459 397 add dword ptr [edi], 8 460 398 add edi, [edi] 461 ; #line 1462 399 mov [edi], eax 463 400 lea eax, [esp+18h] 464 401 mov [edi+4], eax 465 ; #line 1466 402 mov eax, [eax] 467 403 test dword ptr [esi], 20h … … 471 407 nop 472 408 nop 473 ; #line 1474 409 shl ebx, 10h 475 410 mov bl, 1 … … 478 413 jmp short loc_6_249 479 414 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 480 db 3 dup(90h) 481 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 482 ; #line 1 415 ; align 4 ?? 416 nop 417 nop 418 nop 419 420 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 483 421 484 422 loc_6_241: ; CODE XREF: $$PROFTRIG32+C8j … … 486 424 mov bl, 40h ; '@' 487 425 call dword ptr [esi+50h] 488 ; #line 1489 426 490 427 loc_6_249: ; CODE XREF: $$PROFTRIG32+DAj … … 495 432 pop eax 496 433 pop edx 497 ; #line 1498 434 pop esi 499 435 pop ebx 500 436 popfd 501 ; #line 1502 437 retn 503 438 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ … … 509 444 loc_6_251: ; CODE XREF: $$PROFTRIG32+73j 510 445 mov eax, [esi+158h] 511 ; #line 1512 446 inc dword ptr [eax+ebx*4] 513 447 jmp short loc_6_24A … … 527 461 528 462 lea esp, [esp-4] 529 ; #line 1530 463 pushfd 531 464 push eax 532 465 push ebx 533 ; #line 1534 466 push esi 535 467 push edi 536 468 mov ebx, large fs:0Ch 537 ; #line 1538 469 mov esi, $$PROSEGPTR32 539 470 movzx ebx, word ptr [ebx] 540 471 dec ebx 541 ; #line 1542 472 mov eax, [esi+158h] 543 473 inc dword ptr [eax+ebx*4] 544 474 mov edi, ebx 545 ; #line 1546 475 shl edi, 0Ch 547 476 add edi, [esi+154h] … … 550 479 call checkForUnwindAtReturn 551 480 pop eax 552 ; #line 1553 481 sub dword ptr [edi], 8 554 482 add edi, [edi] 555 483 mov eax, [edi+8] 556 ; #line 1557 484 mov [esp+18h+var_4], eax 558 485 mov eax, [esi+160h] 559 486 dec dword ptr [eax+ebx*4] 560 ; #line 1561 487 shl ebx, 10h 562 488 call dword ptr [esi+4Ch] 563 489 pop edi 564 ; #line 1565 490 pop esi 566 491 pop ebx 567 492 pop eax 568 ; #line 1569 493 popfd 570 494 retn … … 582 506 583 507 ; Type idx: 513 584 ; #line 1585 508 586 509 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ … … 599 522 push ebx 600 523 push esi 601 ; #line 1602 524 push edx 603 525 push eax … … 617 539 or esi, esi 618 540 jz loc_6_40B 619 ; #line 1620 541 621 542 loc_6_2F4: ; CODE XREF: $$PROFEYEC32+Dj … … 623 544 jnz loc_6_40B 624 545 mov ebx, large fs:0Ch 625 ; #line 1626 546 movzx ebx, word ptr [ebx] 627 547 dec ebx 628 548 cmp ebx, [esi+64h] 629 ; #line 1630 549 jnb loc_6_40B 631 550 mov eax, [esi+160h] 632 551 cmp dword ptr [eax+ebx*4], 0 633 ; #line 1634 552 jz loc_6_40B 635 553 mov eax, [esi+158h] 636 554 dec dword ptr [eax+ebx*4] 637 ; #line 1638 555 js loc_6_412 639 556 push edi … … 642 559 or eax, eax 643 560 jnz loc_6_411 644 ; #line 1645 561 mov eax, offset _ProfileHook32+0FFh 646 562 xchg eax, [esp+18h+arg_0] 647 563 cmp eax, offset _ProfileHook32+0FFh 648 ; #line 1649 564 jnz short loc_6_36A 650 565 mov eax, 0FFFFFFFDh 651 566 call PERF 652 ; #line 1653 567 inc dword ptr [esi+134h] 654 568 jmp loc_6_411 … … 657 571 loc_6_36A: ; CODE XREF: $$PROFEYEC32+9Cj 658 572 mov edi, ebx 659 ; #line 1660 573 shl edi, 0Ch 661 574 add edi, [esi+154h] … … 664 577 call checkForUnwindAtCall 665 578 pop eax 666 ; #line 1667 579 add dword ptr [edi], 8 668 580 add edi, [edi] 669 581 mov [edi], eax 670 ; #line 1671 582 lea eax, [esp+18h] 672 583 mov [edi+4], eax 673 584 mov eax, [eax] 674 ; #line 1675 585 push dword ptr [edi] 676 586 test dword ptr [esi], 20h … … 680 590 nop 681 591 nop 682 ; #line 1683 592 shl ebx, 10h 684 593 mov bl, 1 685 594 mov edx, [esp+1Ch+var_10] 686 ; #line 1687 595 call dword ptr [esi+58h] 688 596 jmp short loc_6_3B7 689 597 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 690 db 3 dup(90h) 598 ; align 4 ?? 599 nop 600 nop 601 nop 691 602 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 692 603 693 604 loc_6_3AF: ; CODE XREF: $$PROFEYEC32+E1j 694 605 shl ebx, 10h 695 ; #line 1696 606 mov bl, 40h ; '@' 697 607 call dword ptr [esi+50h] … … 699 609 loc_6_3B7: ; CODE XREF: $$PROFEYEC32+F3j 700 610 pop ebx 701 ; #line 1702 611 mov ebx, [ebx] 703 612 cmp bl, 0A9h ; '©' 704 613 jnz short loc_6_40A 705 ; #line 1706 614 xor bl, bl 707 615 lea edi, [esp+18h+arg_4] 708 616 mov eax, [esp+18h+var_14] 709 ; #line 1710 617 mov esi, offset _ProfileHook32+3E1h 711 618 … … 714 621 shl ebx, 1 715 622 jb short loc_6_3DD 716 ; #line 1717 623 add edi, 4 718 624 shl ebx, 1 719 625 jb short loc_6_3EF 720 ; #line 1721 626 jz short loc_6_40A 722 627 jmp short loc_6_3CE … … 725 630 loc_6_3DD: ; CODE XREF: $$PROFEYEC32+119j 726 631 shl ebx, 1 727 ; #line 1728 632 jb short loc_6_3E8 729 633 fstp qword ptr [edi] 730 634 add edi, 8 731 ; #line 1732 635 jmp short loc_6_3CE 733 636 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ … … 736 639 fstp tbyte ptr [edi] 737 640 add edi, 10h 738 ; #line 1739 641 jmp short loc_6_3CE 740 642 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ … … 744 646 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 745 647 mov esi, offset _ProfileHook32+3EBh 746 ; #line 1747 648 mov [edi-4], eax 748 649 jmp short loc_6_3CE 749 650 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 750 651 mov esi, offset _ProfileHook32+3F5h 751 ; #line 1752 652 mov [edi-4], edx 753 653 jmp short loc_6_3CE … … 756 656 jmp short loc_6_3CE 757 657 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 758 ; #line 1759 658 760 659 loc_6_40A: ; CODE XREF: $$PROFEYEC32+106j … … 766 665 pop eax 767 666 pop edx 768 ; #line 1769 667 pop esi 770 668 pop ebx 771 669 popfd 772 ; #line 1773 670 retn 774 671 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ … … 780 677 loc_6_412: ; CODE XREF: $$PROFEYEC32+76j 781 678 mov eax, [esi+158h] 782 ; #line 1783 679 inc dword ptr [eax+ebx*4] 784 680 jmp short loc_6_40B … … 799 695 800 696 ; Type idx: 183 801 ; #line 1802 697 803 698 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ … … 809 704 push esi 810 705 push ecx 811 ; #line 1812 706 push edx 813 707 mov esi, $$PROSEGPTR32 … … 837 731 loc_6_45A: ; CODE XREF: PROFITCAL+Cj 838 732 test dword ptr [esi], 10h 839 ; #line 1840 733 jnz short loc_6_494 841 734 nop … … 845 738 mov ebx, large fs:0Ch 846 739 movzx ebx, word ptr [ebx] 847 ; #line 1848 740 dec ebx 849 741 cmp ebx, [esi+64h] 850 742 jnb short loc_6_494 851 ; #line 1852 743 mov edx, [esi+158h] 853 744 mov edx, [edx+ebx*4] 854 745 mov ecx, [esi+15Ch] 855 ; #line 1856 746 cmp edx, [ecx+ebx*4] 857 747 jz short loc_6_494 858 748 push edi 859 ; #line 1860 749 shl ebx, 10h 861 750 mov bl, 20h ; ' ' 862 751 call dword ptr [esi+50h] 863 ; #line 1864 752 pop edi 865 753 … … 868 756 pop edx 869 757 pop ecx 870 ; #line 1871 758 pop esi 872 759 pop ebx … … 875 762 876 763 ; Type idx: 513 877 ; #line 1878 764 879 765 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ … … 885 771 push esi 886 772 push ecx 887 ; #line 1888 773 push edx 889 774 mov esi, $$PROSEGPTR32 890 775 or esi, esi 891 ; #line 1892 776 jz short loc_6_4C9 893 777 nop … … 897 781 xor ecx, ecx 898 782 xor edx, edx 899 ; #line 1900 783 mov dx, [esi] 901 784 mov cx, dx 902 785 and dx, 10h 903 ; #line 1904 786 xor cx, dx 905 787 mov [esi], cx 906 788 mov eax, 0FFFFFFFEh 907 ; #line 1908 789 call PERF 909 790 … … 911 792 pop edx 912 793 pop ecx 913 ; #line 1914 794 pop esi 915 795 pop eax … … 918 798 919 799 ; Type idx: 513 920 ; #line 1921 800 922 801 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ … … 928 807 push esi 929 808 push ecx 930 ; #line 1931 809 push edx 932 810 mov esi, $$PROSEGPTR32 933 811 or esi, esi 934 ; #line 1935 812 jz short loc_6_4F8 936 813 nop … … 940 817 mov eax, 0FFFFFFFFh 941 818 call PERF 942 ; #line 1943 819 xor ecx, ecx 944 820 xor edx, edx 945 821 mov cx, [esi] 946 ; #line 1947 822 or cx, 10h 948 823 mov [esi], cx … … 950 825 loc_6_4F8: ; CODE XREF: PerfStop+Cj 951 826 pop edx 952 ; #line 1953 827 pop ecx 954 828 pop esi 955 829 pop eax 956 ; #line 1957 830 retn 958 831 PerfStop endp … … 975 848 976 849 call _ProfileHook32 977 ; #line 1978 850 mov [eax+4], ecx 979 851 mov [eax+0Ch], ebx 980 852 mov [eax+14h], esi 981 ; #line 1982 853 mov [eax+10h], edi 983 854 mov [eax], ebp 984 855 lea edx, [esp+arg_0] 985 ; #line 1986 856 mov [eax+8], edx 987 857 mov edx, large fs:0 988 858 mov [eax+18h], edx 989 ; #line 1990 859 fstcw word ptr [eax+1Ch] 991 860 xor eax, eax … … 995 864 996 865 ; Type idx: 513 997 ; #line 1998 866 999 867 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ … … 1005 873 push eax 1006 874 push edx 1007 ; #line 11008 875 push 0 1009 876 push offset _ProfileHook32+53Bh 1010 877 push dword ptr [eax+18h] 1011 ; #line 11012 878 call DosUnwindException 1013 879 mov edx, 0FCCCh … … 1015 881 1016 882 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1017 ; #line 11018 883 add esp, 0Ch 1019 884 pop edx 1020 885 pop eax 1021 ; #line 11022 886 mov ecx, $$PROSEGPTR32 1023 887 jecxz short loc_6_5C2 1024 888 mov ebx, large fs:0Ch 1025 ; #line 11026 889 mov esi, ecx 1027 890 movzx ebx, word ptr [ebx] 1028 891 dec ebx 1029 ; #line 11030 892 cmp ebx, [esi+64h] 1031 893 jnb short loc_6_5C2 1032 894 push eax 1033 ; #line 11034 895 push edx 1035 896 mov eax, [eax+8] 1036 897 xor ecx, ecx 1037 ; #line 11038 898 mov edi, ebx 1039 899 shl edi, 0Ch 1040 900 add edi, [esi+154h] 1041 ; #line 11042 901 1043 902 loc_6_57C: ; CODE XREF: CODE32:000005B0j … … 1045 904 or edx, edx 1046 905 jz short loc_6_5B2 1047 ; #line 11048 906 cmp eax, [edi+edx+4] 1049 907 jbe short loc_6_5B2 1050 908 mov edx, [edi+edx+4] 1051 909 mov edx, [edx+4] 1052 ; #line 11053 910 cmp edx, offset _ProfileHook32+24Ch 1054 911 jnz short loc_6_5A2 1055 912 push eax 1056 ; #line 11057 913 mov eax, [esi+160h] 1058 914 dec dword ptr [eax+ebx*4] 1059 915 pop eax 1060 ; #line 11061 916 1062 917 loc_6_5A2: ; CODE XREF: CODE32:00000595j … … 1064 919 mov eax, [esi+158h] 1065 920 inc dword ptr [eax+ebx*4] 1066 ; #line 11067 921 pop eax 1068 922 sub dword ptr [edi], 8 1069 923 loop loc_6_57C 1070 ; #line 11071 924 1072 925 loc_6_5B2: ; CODE XREF: CODE32:00000580j … … 1075 928 jz short loc_6_5DD 1076 929 mov eax, ecx 1077 ; #line 11078 930 shl ebx, 10h 1079 931 mov bl, 10h 1080 932 call dword ptr [esi+50h] 1081 ; #line 11082 933 pop edx 1083 934 pop eax … … 1086 937 ; CODE32:00000568j 1087 938 xchg eax, edx 1088 ; #line 11089 939 finit 1090 940 wait 1091 941 fldcw word ptr [edx+1Ch] 1092 ; #line 11093 942 mov ebx, [edx+0Ch] 1094 943 mov esi, [edx+14h] 1095 944 mov edi, [edx+10h] 1096 ; #line 11097 945 mov ebp, [edx] 1098 946 mov esp, [edx+8] 1099 947 or eax, eax 1100 ; #line 11101 948 jnz short loc_6_5DD 1102 949 inc eax … … 1109 956 ExceptionThrownString db 'C++ exception thrown here:',0 1110 957 ; Type idx: 513 1111 ; #line 11112 958 1113 959 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ … … 1119 965 mov eax, offset _ProfileHook32+5D0h 1120 966 call PERF 1121 ; #line 11122 967 pop eax 1123 968 jmp PERF … … 1132 977 _ProfileUnwind32 proc near 1133 978 push ebx 1134 ; #line 11135 979 push esi 1136 980 push edi 1137 981 mov esi, $$PROSEGPTR32 1138 ; #line 11139 982 or esi, esi 1140 983 jz short loc_6_67A 1141 984 mov ebx, large fs:0Ch 1142 ; #line 11143 985 movzx ebx, word ptr [ebx] 1144 986 dec ebx 1145 987 cmp ebx, [esi+64h] 1146 ; #line 11147 988 jnb short loc_6_67A 1148 989 xor ecx, ecx 1149 990 mov edi, ebx 1150 ; #line 11151 991 shl edi, 0Ch 1152 992 add edi, [esi+154h] … … 1154 994 loc_6_636: ; CODE XREF: _ProfileUnwind32+5Ej 1155 995 mov edx, [edi] 1156 ; #line 11157 996 or edx, edx 1158 997 jz short loc_6_66C 1159 998 cmp eax, [edi+edx+4] 1160 ; #line 11161 999 jbe short loc_6_66C 1162 1000 mov edx, [edi+edx+4] 1163 1001 mov edx, [edx+4] 1164 ; #line 11165 1002 cmp edx, offset _ProfileHook32+24Ch 1166 1003 jnz short loc_6_65C 1167 1004 push eax 1168 ; #line 11169 1005 mov eax, [esi+160h] 1170 1006 dec dword ptr [eax+ebx*4] 1171 1007 pop eax 1172 ; #line 11173 1008 1174 1009 loc_6_65C: ; CODE XREF: _ProfileUnwind32+43j … … 1176 1011 mov eax, [esi+158h] 1177 1012 inc dword ptr [eax+ebx*4] 1178 ; #line 11179 1013 pop eax 1180 1014 sub dword ptr [edi], 8 1181 1015 loop loc_6_636 1182 ; #line 11183 1016 1184 1017 loc_6_66C: ; CODE XREF: _ProfileUnwind32+2Ej … … 1187 1020 jz short loc_6_67A 1188 1021 mov eax, ecx 1189 ; #line 11190 1022 shl ebx, 10h 1191 1023 mov bl, 10h 1192 1024 call dword ptr [esi+50h] 1193 ; #line 11194 1025 1195 1026 loc_6_67A: ; CODE XREF: _ProfileUnwind32+Bj … … 1198 1029 pop esi 1199 1030 pop ebx 1200 ; #line 11201 1031 retn 1202 1032 _ProfileUnwind32 endp … … 1211 1041 push esi 1212 1042 mov esi, $$PROSEGPTR32 1213 ; #line 11214 1043 mov ecx, [esi+158h] 1215 1044 dec dword ptr [ecx] 1216 1045 mov ecx, 8 1217 ; #line 11218 1046 1219 1047 loc_6_692: ; CODE XREF: CODE32:000006A7j … … 1221 1049 push offset _ProfileHook32+697h 1222 1050 push offset _ProfileHook32+1 1223 ; #line 11224 1051 jmp $$PROFCALL32 1225 1052 … … 1228 1055 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1229 1056 loop loc_6_692 1230 ; #line 11231 1057 push eax 1232 1058 mov eax, [esi+158h] 1233 1059 inc dword ptr [eax] 1234 ; #line 11235 1060 pop eax 1236 1061 pop esi 1237 1062 retn 1238 1063 ; Type idx: 513 1239 ; #line 11240 1064 eCal endp 1241 1065 … … 1248 1072 call $$PROFCALL32 1249 1073 push esi 1250 ; #line 11251 1074 mov esi, $$PROSEGPTR32 1252 1075 mov ecx, 8 … … 1254 1077 loc_6_6CB: ; CODE XREF: uCal+22j 1255 1078 push ecx 1256 ; #line 11257 1079 call PROFITCAL 1258 1080 call PROFITCAL 1259 1081 pop ecx 1260 ; #line 11261 1082 loop loc_6_6CB 1262 1083 pop esi … … 1265 1086 1266 1087 ; Type idx: 513 1267 ; #line 11268 1088 1269 1089 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ … … 1275 1095 mov [esi+8], eax 1276 1096 push eax 1277 ; #line 11278 1097 push 1 1279 1098 call DosExit … … 1291 1110 ; $$PROFTRIG32+20p ... 1292 1111 pushad 1293 ; #line 11294 1112 xor ebx, ebx 1295 1113 push ebx 1296 1114 mov eax, esp 1297 ; #line 11298 1115 push eax 1299 1116 lea eax, logDllName ; "CPPPAN40" 1300 1117 push eax 1301 ; #line 11302 1118 push ebx 1303 1119 push ebx 1304 1120 call DosLoadModule 1305 1121 add esp, 10h 1306 ; #line 11307 1122 mov edx, 0FAD8h 1308 1123 or eax, eax 1309 1124 jnz short CrashAndBurn 1310 ; #line 11311 1125 pop edx 1312 1126 mov ecx, 7 1313 1127 lea edi, initAdr 1314 ; #line 11315 1128 push edi 1316 1129 lea ebx, initName ; "INIT_PROSEG" 1317 1130 push ebx 1318 ; #line 11319 1131 push 0 1320 1132 push edx 1321 1133 call DosQueryProcAddr 1322 ; #line 11323 1134 add esp, 10h 1324 1135 mov edx, 0FB3Ch 1325 1136 or eax, eax 1326 ; #line 11327 1137 jnz short CrashAndBurn 1328 1138 xor ebx, ebx 1329 1139 push ebx 1330 ; #line 11331 1140 push ebx 1332 1141 mov eax, esp 1333 1142 mov edx, offset _ProfileHook32+66Eh 1334 ; #line 11335 1143 mov ecx, offset _ProfileHook32+6A5h 1336 1144 lea esi, $$PROSEGPTR32 1337 1145 push esi 1338 ; #line 11339 1146 sub esp, 0Ch 1340 1147 call initAdr 1341 1148 add esp, 10h 1342 ; #line 11343 1149 or eax, eax 1344 1150 pop edx 1345 1151 pop eax 1346 ; #line 11347 1152 jnz CrashAndBurn 1348 1153 popad 1349 1154 mov esi, $$PROSEGPTR32 1350 ; #line 11351 1155 retn 1352 1156 DoInit endp … … 1362 1166 test word ptr [esi], 40h 1363 1167 jz short locret_6_7D0 1364 ; #line 121365 1168 test word ptr [esi], 80h 1366 1169 jz short locret_6_7D0 1367 1170 push edx 1368 ; #line 121369 1171 push ecx 1370 1172 mov edx, edi 1371 1173 add edx, [edx] 1372 ; #line 121373 1174 xor ecx, ecx 1374 1175 … … 1376 1177 cmp edx, edi 1377 1178 jbe short loc_6_7AB 1378 ; #line 121379 1179 cmp [edx+4], eax 1380 1180 ja short loc_6_7AB 1381 1181 sub edx, 8 1382 ; #line 121383 1182 sub dword ptr [edi], 8 1384 1183 loop loc_6_792 1385 1184 xor eax, eax 1386 1185 mov dword ptr [eax], 0 1387 ; #line 121388 1186 1389 1187 loc_6_7AB: ; CODE XREF: checkForUnwindAtCall+18j … … 1392 1190 jz short loc_6_7CE 1393 1191 add [esi+ebx*4+158h], ecx 1394 ; #line 121395 1192 mov eax, 0FFFFFFFCh 1396 1193 call PERF 1397 1194 push ebx 1398 ; #line 121399 1195 push edi 1400 1196 shl ebx, 10h 1401 1197 mov bl, 10h 1402 ; #line 121403 1198 mov eax, ecx 1404 1199 call dword ptr [esi+50h] 1405 1200 pop edi 1406 ; #line 121407 1201 pop ebx 1408 1202 … … 1410 1204 pop ecx 1411 1205 pop edx 1412 ; #line 121413 1206 1414 1207 locret_6_7D0: ; CODE XREF: checkForUnwindAtCall+5j … … 1427 1220 test word ptr [esi], 40h 1428 1221 jz short locret_6_82F 1429 ; #line 121430 1222 test word ptr [esi], 80h 1431 1223 jz short locret_6_82F 1432 1224 cmp dword ptr [edi], 10h 1433 ; #line 121434 1225 jb short locret_6_82F 1435 1226 push edx 1436 1227 push ecx 1437 ; #line 121438 1228 mov edx, edi 1439 1229 add edx, [edx] 1440 1230 xor ecx, ecx 1441 ; #line 121442 1231 1443 1232 loc_6_7EC: ; CODE XREF: checkForUnwindAtReturn+2Fj … … 1445 1234 jnb short loc_6_80A 1446 1235 sub edx, 8 1447 ; #line 121448 1236 cmp edx, edi 1449 1237 jbe short loc_6_80A 1450 1238 cmp [edx+4], eax 1451 ; #line 121452 1239 ja short loc_6_80A 1453 1240 sub dword ptr [edi], 8 1454 1241 loop loc_6_7EC 1455 ; #line 121456 1242 xor eax, eax 1457 1243 mov dword ptr [eax], 0 … … 1461 1247 neg ecx 1462 1248 jz short loc_6_82D 1463 ; #line 121464 1249 add [esi+ebx*4+158h], ecx 1465 1250 mov eax, 0FFFFFFFBh 1466 1251 call PERF 1467 ; #line 121468 1252 push ebx 1469 1253 push edi 1470 1254 shl ebx, 10h 1471 ; #line 121472 1255 mov bl, 10h 1473 1256 mov eax, ecx 1474 1257 call dword ptr [esi+50h] 1475 ; #line 121476 1258 pop edi 1477 1259 pop ebx … … 1479 1261 loc_6_82D: ; CODE XREF: checkForUnwindAtReturn+3Bj 1480 1262 pop ecx 1481 ; #line 121482 1263 pop edx 1483 1264 … … 1496 1277 ; $$PROFTRIG32+7Ap ... 1497 1278 push edi 1498 ; #line 131499 1279 test word ptr [esi], 40h 1500 1280 jz short loc_6_85F 1501 1281 test word ptr [esi], 80h 1502 ; #line 131503 1282 jz short loc_6_85F 1504 1283 mov edi, ebx 1505 1284 shl edi, 0Ch 1506 ; #line 131507 1285 add edi, [esi+154h] 1508 1286 cmp dword ptr [edi], 0 … … 1512 1290 nop 1513 1291 nop 1514 ; #line 131515 1292 cmp eax, [edi+0Ch] 1516 1293 ja short loc_6_863 1517 1294 add edi, [edi] 1518 ; #line 131519 1295 cmp eax, [edi+4] 1520 1296 jz short loc_6_86A … … 1523 1299 ; verifyStackFrame+Dj ... 1524 1300 xor eax, eax 1525 ; #line 131526 1301 jmp short loc_6_879 1527 1302 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ … … 1531 1306 jmp short loc_6_86F 1532 1307 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1533 ; #line 131534 1308 1535 1309 loc_6_86A: ; CODE XREF: verifyStackFrame+2Dj … … 1542 1316 loc_6_879: ; CODE XREF: verifyStackFrame+31j 1543 1317 pop edi 1544 ; #line 131545 1318 retn 1546 1319 verifyStackFrame endp … … 1556 1329 push ebp 1557 1330 mov ebp, esp 1558 ; #line 141559 1331 pushfd 1560 1332 push esi … … 1566 1338 test word ptr [esi], 10h 1567 1339 jnz short loc_6_8EE 1568 ; #line 141569 1340 push edi 1570 1341 push ebx 1571 1342 push ecx 1572 ; #line 141573 1343 mov ebx, large fs:0Ch 1574 1344 mov ebx, [ebx] … … 1580 1350 jz short loc_6_8EB 1581 1351 mov edi, ebx 1582 ; #line 141583 1352 shl ebx, 10h 1584 1353 mov eax, [ebp+4] 1585 1354 push edx 1586 ; #line 141587 1355 mov ecx, [esi+164h] 1588 1356 mov edx, [ecx+edi*4] 1589 1357 cmp edx, 0FFFFFFFFh 1590 ; #line 141591 1358 jz short loc_6_8E5 1592 1359 mov bl, 5 1593 1360 push eax 1594 ; #line 141595 1361 push ebx 1596 1362 push edi 1597 1363 call dword ptr [esi+58h] 1598 ; #line 141599 1364 pop edi 1600 1365 pop ebx 1601 1366 pop eax 1602 ; #line 141603 1367 mov ecx, [esi+164h] 1604 1368 mov dword ptr [ecx+edi*4], 0FFFFFFFFh … … 1606 1370 loc_6_8E5: ; CODE XREF: _ProfileEnterParagraph32+50j 1607 1371 mov bl, 4 1608 ; #line 141609 1372 pop edx 1610 1373 call dword ptr [esi+58h] … … 1613 1376 ; _ProfileEnterParagraph32+39j 1614 1377 pop ecx 1615 ; #line 141616 1378 pop ebx 1617 1379 pop edi … … 1620 1382 ; _ProfileEnterParagraph32+14j ... 1621 1383 pop esi 1622 ; #line 141623 1384 popfd 1624 1385 pop ebp … … 1627 1388 1628 1389 ; Type idx: 513 1629 ; #line 141630 1390 1631 1391 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ … … 1638 1398 mov ebp, esp 1639 1399 pushfd 1640 ; #line 141641 1400 push esi 1642 1401 mov esi, $$PROSEGPTR32 … … 1648 1407 jnz short loc_6_939 1649 1408 push ebx 1650 ; #line 141651 1409 mov ebx, large fs:0Ch 1652 1410 mov ebx, [ebx] … … 1658 1416 jz short loc_6_938 1659 1417 mov edx, eax 1660 ; #line 141661 1418 mov eax, [ebp+4] 1662 1419 shl ebx, 10h 1663 1420 mov bl, 5 1664 ; #line 141665 1421 call dword ptr [esi+58h] 1666 1422 … … 1672 1428 ; _ProfileExitParagraph32+14j ... 1673 1429 pop esi 1674 ; #line 141675 1430 popfd 1676 1431 pop ebp … … 1679 1434 1680 1435 ; Type idx: 513 1681 ; #line 141682 1436 1683 1437 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ … … 1695 1449 test word ptr [esi], 10h 1696 1450 jnz short loc_6_973 1697 ; #line 141698 1451 push ebx 1699 1452 push ecx … … 1703 1456 ja short loc_6_971 1704 1457 dec ebx 1705 ; #line 141706 1458 mov ecx, [esi+164h] 1707 1459 mov [ecx+ebx*4], eax … … 1709 1461 loc_6_971: ; CODE XREF: _ProfileConditionalExit32+28j 1710 1462 pop ecx 1711 ; #line 141712 1463 pop ebx 1713 1464 … … 1716 1467 pop esi 1717 1468 popfd 1718 ; #line 141719 1469 retn 1720 1470 _ProfileConditionalExit32 endp … … 1729 1479 pushfd 1730 1480 push esi 1731 ; #line 141732 1481 mov esi, $$PROSEGPTR32 1733 1482 or esi, esi … … 1739 1488 push ebx 1740 1489 push ecx 1741 ; #line 141742 1490 mov ebx, large fs:0Ch 1743 1491 mov ebx, [ebx] … … 1747 1495 mov ecx, [esi+164h] 1748 1496 mov dword ptr [ecx+ebx*4], 0FFFFFFFFh 1749 ; #line 141750 1497 1751 1498 loc_6_9AE: ; CODE XREF: _ProfileCancelExit32+28j … … 1756 1503 ; _ProfileCancelExit32+11j ... 1757 1504 pop esi 1758 ; #line 141759 1505 popfd 1760 1506 retn … … 1770 1516 _ProfileNameString32 proc near 1771 1517 push ebp 1772 ; #line 141773 1518 mov ebp, esp 1774 1519 pushfd 1775 1520 push esi 1776 ; #line 141777 1521 mov esi, $$PROSEGPTR32 1778 1522 or esi, esi … … 1784 1528 push ebx 1785 1529 push ecx 1786 ; #line 141787 1530 mov ebx, large fs:0Ch 1788 1531 mov ebx, [ebx] … … 1794 1537 jz short loc_6_A0F 1795 1538 mov ecx, [ebp+4] 1796 ; #line 141797 1539 mov [esi+148h], ecx 1798 1540 mov [esi+14Ch], eax 1799 1541 mov [esi+150h], edx 1800 ; #line 141801 1542 mov dword ptr [esi+144h], 2 1802 1543 int 3 ; Trap to Debugger … … 1808 1549 pop ecx 1809 1550 pop ebx 1810 ; #line 141811 1551 1812 1552 loc_6_A11: ; CODE XREF: _ProfileNameString32+Dj … … 1815 1555 popfd 1816 1556 pop ebp 1817 ; #line 141818 1557 retn 1819 1558 _ProfileNameString32 endp
Note:
See TracChangeset
for help on using the changeset viewer.