; Listing generated by Microsoft (R) Optimizing Compiler Version 19.41.34120.0 include listing.inc INCLUDELIB OLDNAMES hash_mask DD 0745fH DD 03c1H DD 01fH DD 01H PUBLIC quick_string_hash ; COMDAT pdata pdata SEGMENT $pdata$quick_string_hash DD imagerel $LN7 DD imagerel $LN7+38 DD imagerel $unwind$quick_string_hash pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$0$quick_string_hash DD imagerel $LN7+38 DD imagerel $LN7+92 DD imagerel $chain$0$quick_string_hash pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$1$quick_string_hash DD imagerel $LN7+92 DD imagerel $LN7+134 DD imagerel $chain$1$quick_string_hash pdata ENDS ; COMDAT xdata xdata SEGMENT $chain$1$quick_string_hash DD 021H DD imagerel $LN7 DD imagerel $LN7+38 DD imagerel $unwind$quick_string_hash xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$0$quick_string_hash DD 020521H DD 0c3405H DD imagerel $LN7 DD imagerel $LN7+38 DD imagerel $unwind$quick_string_hash xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$quick_string_hash DD 021519H DD 070027206H DD imagerel __GSHandlerCheck DD 030H ; Function compile flags: /Ogtpy ; COMDAT quick_string_hash _TEXT SEGMENT buffer$1 = 32 __$ArrayPad$ = 48 str$ = 80 length$ = 88 quick_string_hash PROC ; COMDAT ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharpC\quick_hash.c ; Line 7 $LN7: 00000 40 57 push rdi 00002 48 83 ec 40 sub rsp, 64 ; 00000040H 00006 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 0000d 48 33 c4 xor rax, rsp 00010 48 89 44 24 30 mov QWORD PTR __$ArrayPad$[rsp], rax ; Line 9 00015 8d 3c 12 lea edi, DWORD PTR [rdx+rdx] ; Line 10 00018 83 ff 0f cmp edi, 15 0001b 7e 06 jle SHORT $LN2@quick_stri ; Line 11 0001d f2 0f f0 01 lddqu xmm0, XMMWORD PTR [rcx] ; Line 12 00021 eb 39 jmp SHORT $LN3@quick_stri $LN2@quick_stri: ; Line 14 00023 48 8b d1 mov rdx, rcx 00026 48 89 5c 24 60 mov QWORD PTR [rsp+96], rbx 0002b 48 63 df movsxd rbx, edi 0002e 48 8d 4c 24 20 lea rcx, QWORD PTR buffer$1[rsp] 00033 4c 8b c3 mov r8, rbx 00036 e8 00 00 00 00 call memcpy ; Line 15 0003b b8 10 00 00 00 mov eax, 16 00040 48 8d 4c 1c 1f lea rcx, QWORD PTR buffer$1[rsp+rbx-1] 00045 2b c7 sub eax, edi 00047 33 d2 xor edx, edx 00049 4c 63 c0 movsxd r8, eax 0004c e8 00 00 00 00 call memset ; Line 16 00051 f2 0f f0 44 24 20 lddqu xmm0, XMMWORD PTR buffer$1[rsp] 00057 48 8b 5c 24 60 mov rbx, QWORD PTR [rsp+96] $LN3@quick_stri: ; Line 19 0005c 66 0f 38 40 05 00 00 00 00 pmulld xmm0, XMMWORD PTR hash_mask ; Line 20 00065 66 0f 38 02 c0 phaddd xmm0, xmm0 ; Line 21 0006a 66 0f 38 02 c0 phaddd xmm0, xmm0 ; Line 23 0006f 66 0f 7e c0 movd eax, xmm0 ; Line 24 00073 48 8b 4c 24 30 mov rcx, QWORD PTR __$ArrayPad$[rsp] 00078 48 33 cc xor rcx, rsp 0007b e8 00 00 00 00 call __security_check_cookie 00080 48 83 c4 40 add rsp, 64 ; 00000040H 00084 5f pop rdi 00085 c3 ret 0 quick_string_hash ENDP _TEXT ENDS END