Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Function compile flags: /Ogtpy
- ; File c:\users\meng\desktop\surfcascade\objdetector\featureextractors\densesurffeatureextractor.cpp
- ; COMDAT ?integral2@DenseSURFFeatureExtractor@@QEAAXHHPEAEPEAI@Z
- _TEXT SEGMENT
- this$dead$ = 48
- h$ = 56
- w$ = 64
- src$ = 72
- sum$ = 80
- ?integral2@DenseSURFFeatureExtractor@@QEAAXHHPEAEPEAI@Z PROC ; DenseSURFFeatureExtractor::integral2, COMDAT
- ; 78 : {
- $LN25:
- 00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx
- 00005 48 89 6c 24 10 mov QWORD PTR [rsp+16], rbp
- 0000a 48 89 74 24 20 mov QWORD PTR [rsp+32], rsi
- 0000f 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d
- 00014 57 push rdi
- 00015 41 54 push r12
- 00017 41 55 push r13
- 00019 41 56 push r14
- 0001b 41 57 push r15
- ; 79 : uchar *pg;
- ; 80 : uint *ps;
- ; 81 : uint *psu;
- ; 82 : uint s; // line sum
- ; 83 :
- ; 84 : for (int c = 0; c < n_bins; c++) {
- 0001d 48 8b 74 24 50 mov rsi, QWORD PTR sum$[rsp]
- 00022 42 8d 04 c5 10
- 00 00 00 lea eax, DWORD PTR [r8*8+16]
- 0002a 44 8d 7a 01 lea r15d, DWORD PTR [rdx+1]
- 0002e 41 0f af d0 imul edx, r8d
- 00032 48 63 c8 movsxd rcx, eax
- 00035 49 8b e9 mov rbp, r9
- 00038 41 be 08 00 00
- 00 mov r14d, 8
- 0003e 4c 63 e2 movsxd r12, edx
- 00041 48 83 c6 20 add rsi, 32 ; 00000020H
- 00045 4c 8d 2c 8d e0
- ff ff ff lea r13, QWORD PTR [rcx*4-32]
- 0004d 45 8b c8 mov r9d, r8d
- $LL9@integral2:
- ; 85 : pg = src + c * w * h;
- 00050 4c 8b d5 mov r10, rbp
- ; 86 : ps = sum + n_bins * (w + 2) + c;
- 00053 4e 8d 04 2e lea r8, QWORD PTR [rsi+r13]
- ; 87 : psu = sum + n_bins + c;
- 00057 48 8b c6 mov rax, rsi
- ; 88 :
- ; 89 : for (int y = 1; y < h + 1; y++, ps += n_bins, psu += n_bins) {
- 0005a 41 83 ff 01 cmp r15d, 1
- 0005e 7e 52 jle SHORT $LN8@integral2
- ; 85 : pg = src + c * w * h;
- 00060 41 8d 79 01 lea edi, DWORD PTR [r9+1]
- 00064 41 8d 5f ff lea ebx, DWORD PTR [r15-1]
- $LL6@integral2:
- ; 90 : s = 0;
- 00068 45 33 c9 xor r9d, r9d
- ; 91 :
- ; 92 : for (int x = 1; x < w + 1; x++, pg++, ps += n_bins, psu += n_bins) {
- 0006b 83 ff 01 cmp edi, 1
- 0006e 7e 30 jle SHORT $LN5@integral2
- ; 90 : s = 0;
- 00070 44 8d 5f ff lea r11d, DWORD PTR [rdi-1]
- 00074 0f 1f 40 00 0f
- 1f 84 00 00 00
- 00 00 npad 12
- $LL3@integral2:
- ; 93 : s += *pg;
- 00080 41 0f b6 0a movzx ecx, BYTE PTR [r10]
- ; 94 : *ps = *psu + s;
- 00084 8b 10 mov edx, DWORD PTR [rax]
- 00086 49 83 c0 20 add r8, 32 ; 00000020H
- 0008a 44 03 c9 add r9d, ecx
- 0008d 49 ff c2 inc r10
- 00090 48 83 c0 20 add rax, 32 ; 00000020H
- 00094 41 03 d1 add edx, r9d
- 00097 41 89 50 e0 mov DWORD PTR [r8-32], edx
- 0009b 49 ff cb dec r11
- 0009e 75 e0 jne SHORT $LL3@integral2
- $LN5@integral2:
- ; 88 :
- ; 89 : for (int y = 1; y < h + 1; y++, ps += n_bins, psu += n_bins) {
- 000a0 49 83 c0 20 add r8, 32 ; 00000020H
- 000a4 48 83 c0 20 add rax, 32 ; 00000020H
- 000a8 48 ff cb dec rbx
- 000ab 75 bb jne SHORT $LL6@integral2
- 000ad 44 8b 4c 24 40 mov r9d, DWORD PTR w$[rsp]
- $LN8@integral2:
- ; 79 : uchar *pg;
- ; 80 : uint *ps;
- ; 81 : uint *psu;
- ; 82 : uint s; // line sum
- ; 83 :
- ; 84 : for (int c = 0; c < n_bins; c++) {
- 000b2 49 03 ec add rbp, r12
- 000b5 48 83 c6 04 add rsi, 4
- 000b9 49 ff ce dec r14
- 000bc 75 92 jne SHORT $LL9@integral2
- ; 95 : }
- ; 96 : }
- ; 97 : }
- ; 98 : }
- 000be 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
- 000c3 48 8b 6c 24 38 mov rbp, QWORD PTR [rsp+56]
- 000c8 48 8b 74 24 48 mov rsi, QWORD PTR [rsp+72]
- 000cd 41 5f pop r15
- 000cf 41 5e pop r14
- 000d1 41 5d pop r13
- 000d3 41 5c pop r12
- 000d5 5f pop rdi
- 000d6 c3 ret 0
- ?integral2@DenseSURFFeatureExtractor@@QEAAXHHPEAEPEAI@Z ENDP ; DenseSURFFeatureExtractor::integral2
- _TEXT ENDS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement