16: {
00401070 push ebp
00401071 mov ebp,esp
00401073 push 0FFh
00401075 push offset string "1: Raise an Exception\n"+20h (0042f080)
0040107A push offset __except_handler3 (004083e4)
0040107F mov eax,fs:[00000000]
00401085 push eax
00401086 mov dword ptr fs:[0],esp
0040108D add esp,0B8h
00401090 push ebx
00401091 push esi
00401092 push edi
00401093 mov dword ptr [ebp-18h],esp
00401096 lea edi,[ebp-58h]
00401099 mov ecx,10h
0040109E mov eax,0CCCCCCCCh
004010A3 rep stos dword ptr [edi]
17: __try
004010A5 mov dword ptr [ebp-4],0
18: {
19: __try{
004010AC mov dword ptr [ebp-4],1
20: printf("1: Raise an Exception\n");
004010B3 push offset string "1: Raise an Exception\n" (0042f060)
004010B8 call printf (00408270)
004010BD add esp,4
21: RAISE_AN_EXCEPTION();
004010C0 call @ILT+0(RAISE_AN_EXCEPTION) (00401005)
22: }
004010C5 mov dword ptr [ebp-4],0
004010CC call $L8443 (004010d3)
004010D1 jmp $L8446 (004010e1)
23: __finally
24: {
25: printf("2: In Finally\n");
004010D3 push offset string "2: In Finally\n" (0042f04c)
004010D8 call printf (00408270)
004010DD add esp,4
$L8444:
004010E0 ret
26: }
27: }
004010E1 mov dword ptr [ebp-4],0FFFFFFFFh
004010E8 jmp $L8440+17h (0040110f)
28: __except( printf("3: In Filter\n"))
004010EA push offset string "3: In Filter\n" (0042f03c)
004010EF call printf (00408270)
004010F4 add esp,4
$L8441:
004010F7 ret
$L8440:
004010F8 mov esp,dword ptr [ebp-18h]
29: {
30: printf("4: In Exception Handler\n");
004010FB push offset string "4: In Exception Handler\n" (0042f01c)
00401100 call printf (00408270)
00401105 add esp,4
31: }
00401108 mov dword ptr [ebp-4],0FFFFFFFFh
32: return 0;
0040110F xor eax,eax
33: }
00401111 mov ecx,dword ptr [ebp-10h]
00401114 mov dword ptr fs:[0],ecx
0040111B pop edi
0040111C pop esi
0040111D pop ebx
0040111E add esp,58h
00401121 cmp ebp,esp
00401123 call __chkesp (00408230)
00401128 mov esp,ebp
0040112A pop ebp
0040112B ret
댓글 없음:
댓글 쓰기