ntdll!strcmp
来源:互联网 发布:自动作曲软件 编辑:程序博客网 时间:2024/06/03 18:16
7c902583 8b542404 mov edx,dword ptr [esp+4]
7c902587 8b4c2408 mov ecx,dword ptr [esp+8]
7c90258b f7c203000000 test edx,3
7c902591 753d jne ntdll!strcmp+0x4c (7c9025d0)
7c902593 8b02 mov eax,dword ptr [edx] ; 4 bytes aligning
7c902595 3a01 cmp al,byte ptr [ecx] ; compare the first byte
7c902597 752e jne ntdll!strcmp+0x44 (7c9025c7)
7c902599 0ac0 or al,al
7c90259b 7426 je ntdll!strcmp+0x40 (7c9025c3)
7c90259d 3a6101 cmp ah,byte ptr [ecx+1] ; compare the second byte
7c9025a0 7525 jne ntdll!strcmp+0x44 (7c9025c7)
7c9025a2 0ae4 or ah,ah
7c9025a4 741d je ntdll!strcmp+0x40 (7c9025c3)
7c9025a6 c1e810 shr eax,10h
7c9025a9 3a4102 cmp al,byte ptr [ecx+2] ; comare the third byte
7c9025ac 7519 jne ntdll!strcmp+0x44 (7c9025c7)
7c9025ae 0ac0 or al,al
7c9025b0 7411 je ntdll!strcmp+0x40 (7c9025c3)
7c9025b2 3a6103 cmp ah,byte ptr [ecx+3] ; compare the fourth byte
7c9025b5 7510 jne ntdll!strcmp+0x44 (7c9025c7)
7c9025b7 83c104 add ecx,4
7c9025ba 83c204 add edx,4
7c9025bd 0ae4 or ah,ah
7c9025bf 75d2 jne ntdll!strcmp+0x10 (7c902593) ; cycle
7c9025c1 8bff mov edi,edi
7c9025c3 33c0 xor eax,eax
7c9025c5 c3 ret
7c9025c6 90 nop
7c9025c7 1bc0 sbb eax,eax ; After comparison if edx is smaller than dcx, the CF will be set, return -1 otherwise return 1
7c9025c9 d1e0 shl eax,1
7c9025cb 40 inc eax
7c9025cc c3 ret
7c9025cd 90 nop
7c9025ce 8bff mov edi,edi
7c9025d0 f7c201000000 test edx,1
7c9025d6 7414 je ntdll!strcmp+0x68 (7c9025ec)
7c9025d8 8a02 mov al,byte ptr [edx] ; 1 byte aligning
7c9025da 42 inc edx
7c9025db 3a01 cmp al,byte ptr [ecx]
7c9025dd 75e8 jne ntdll!strcmp+0x44 (7c9025c7) ;
7c9025df 41 inc ecx
7c9025e0 0ac0 or al,al ; Check if it is the end, the previous comparison equals, so the strings match.
7c9025e2 74df je ntdll!strcmp+0x40 (7c9025c3)
7c9025e4 f7c202000000 test edx,2 ; Check if 4 bytes aligning, if the answer if true goto 2593
7c9025ea 74a7 je ntdll!strcmp+0x10 (7c902593)
7c9025ec 668b02 mov ax,word ptr [edx] ; 2 bytes align
7c9025ef 83c202 add edx,2
7c9025f2 3a01 cmp al,byte ptr [ecx]
7c9025f4 75d1 jne ntdll!strcmp+0x44 (7c9025c7)
7c9025f6 0ac0 or al,al ; is the end?
7c9025f8 74c9 je ntdll!strcmp+0x40 (7c9025c3) ; return 0
7c9025fa 3a6101 cmp ah,byte ptr [ecx+1]
7c9025fd 75c8 jne ntdll!strcmp+0x44 (7c9025c7)
7c9025ff 0ae4 or ah,ah ; is the end?
7c902601 74c0 je ntdll!strcmp+0x40 (7c9025c3) ; return 0
7c902603 83c102 add ecx,2
7c902606 eb8b jmp ntdll!strcmp+0x10 (7c902593) ; finally 4 bytes aligned
7c902587 8b4c2408 mov ecx,dword ptr [esp+8]
7c90258b f7c203000000 test edx,3
7c902591 753d jne ntdll!strcmp+0x4c (7c9025d0)
7c902593 8b02 mov eax,dword ptr [edx] ; 4 bytes aligning
7c902595 3a01 cmp al,byte ptr [ecx] ; compare the first byte
7c902597 752e jne ntdll!strcmp+0x44 (7c9025c7)
7c902599 0ac0 or al,al
7c90259b 7426 je ntdll!strcmp+0x40 (7c9025c3)
7c90259d 3a6101 cmp ah,byte ptr [ecx+1] ; compare the second byte
7c9025a0 7525 jne ntdll!strcmp+0x44 (7c9025c7)
7c9025a2 0ae4 or ah,ah
7c9025a4 741d je ntdll!strcmp+0x40 (7c9025c3)
7c9025a6 c1e810 shr eax,10h
7c9025a9 3a4102 cmp al,byte ptr [ecx+2] ; comare the third byte
7c9025ac 7519 jne ntdll!strcmp+0x44 (7c9025c7)
7c9025ae 0ac0 or al,al
7c9025b0 7411 je ntdll!strcmp+0x40 (7c9025c3)
7c9025b2 3a6103 cmp ah,byte ptr [ecx+3] ; compare the fourth byte
7c9025b5 7510 jne ntdll!strcmp+0x44 (7c9025c7)
7c9025b7 83c104 add ecx,4
7c9025ba 83c204 add edx,4
7c9025bd 0ae4 or ah,ah
7c9025bf 75d2 jne ntdll!strcmp+0x10 (7c902593) ; cycle
7c9025c1 8bff mov edi,edi
7c9025c3 33c0 xor eax,eax
7c9025c5 c3 ret
7c9025c6 90 nop
7c9025c7 1bc0 sbb eax,eax ; After comparison if edx is smaller than dcx, the CF will be set, return -1 otherwise return 1
7c9025c9 d1e0 shl eax,1
7c9025cb 40 inc eax
7c9025cc c3 ret
7c9025cd 90 nop
7c9025ce 8bff mov edi,edi
7c9025d0 f7c201000000 test edx,1
7c9025d6 7414 je ntdll!strcmp+0x68 (7c9025ec)
7c9025d8 8a02 mov al,byte ptr [edx] ; 1 byte aligning
7c9025da 42 inc edx
7c9025db 3a01 cmp al,byte ptr [ecx]
7c9025dd 75e8 jne ntdll!strcmp+0x44 (7c9025c7) ;
7c9025df 41 inc ecx
7c9025e0 0ac0 or al,al ; Check if it is the end, the previous comparison equals, so the strings match.
7c9025e2 74df je ntdll!strcmp+0x40 (7c9025c3)
7c9025e4 f7c202000000 test edx,2 ; Check if 4 bytes aligning, if the answer if true goto 2593
7c9025ea 74a7 je ntdll!strcmp+0x10 (7c902593)
7c9025ec 668b02 mov ax,word ptr [edx] ; 2 bytes align
7c9025ef 83c202 add edx,2
7c9025f2 3a01 cmp al,byte ptr [ecx]
7c9025f4 75d1 jne ntdll!strcmp+0x44 (7c9025c7)
7c9025f6 0ac0 or al,al ; is the end?
7c9025f8 74c9 je ntdll!strcmp+0x40 (7c9025c3) ; return 0
7c9025fa 3a6101 cmp ah,byte ptr [ecx+1]
7c9025fd 75c8 jne ntdll!strcmp+0x44 (7c9025c7)
7c9025ff 0ae4 or ah,ah ; is the end?
7c902601 74c0 je ntdll!strcmp+0x40 (7c9025c3) ; return 0
7c902603 83c102 add ecx,2
7c902606 eb8b jmp ntdll!strcmp+0x10 (7c902593) ; finally 4 bytes aligned
- ntdll!strcmp
- NTDLL
- NTDLL
- strcmp
- strcmp
- strcmp
- strcmp
- StrCmp
- strcmp
- strcmp
- strcmp
- strcmp
- strcmp
- strcmp
- strcmp
- strcmp
- strcmp
- strcmp
- 移动互联网漫谈(3)
- 遍历List列表进行选择性的删除操作
- Linux shell脚本区别内容相同的文件
- Mac OSX Commands:od
- 简单表达式
- ntdll!strcmp
- 防火墙介绍
- 限定符
- CMD下设置网关
- 多域控制器环境下Active Directory灾难恢复
- Mac OSX Commands:mdls
- C++ 获取当前目录
- 解决Dynamic Performance Tables not accessible方法
- 元字符