005C8900 >/$ 55 PUSH EBP
005C8901 |. 8BEC MOV EBP,ESP
005C8903 |. 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C] ; edx = hash2
005C8906 |. 56 PUSH ESI
005C8907 |. 8B72 0C MOV ESI,DWORD PTR DS:[EDX+C] ; esi = [hash2+C]
005C890A |. 57 PUSH EDI
005C890B |. 8B7D 08 MOV EDI,DWORD PTR SS:[EBP+8] ; edi = hash1
005C890E |. 8577 14 TEST DWORD PTR DS:[EDI+14],ESI ; if ( [hash1+14] & [hash2+C] ) == 0
005C8911 |. 74 09 JE SHORT WoW.005C891C ; skip over return of 1
005C8913 |. 5F POP EDI
005C8914 |. B8 01000000 MOV EAX,1 ; return 1 (hostile)
005C8919 |. 5E POP ESI
005C891A |. 5D POP EBP
005C891B |. C3 RETN
005C891C |> 33C9 XOR ECX,ECX ; zero ecx
005C891E |. 394F 18 CMP DWORD PTR DS:[EDI+18],ECX ; compare [hash1+18] and 0
005C8921 |. 8D47 18 LEA EAX,DWORD PTR DS:[EDI+18] ; hashcheck1 = hash1+18
005C8924 |. 53 PUSH EBX
005C8925 |. 74 17 JE SHORT WoW.005C893E ; if [hashcheck1] == 0, skip
005C8927 |> 83F9 04 /CMP ECX,4 ; loop 4 times
005C892A |. 73 12 |JNB SHORT WoW.005C893E
005C892C |. 8B18 |MOV EBX,DWORD PTR DS:[EAX]
005C892E |. 3B5A 04 |CMP EBX,DWORD PTR DS:[EDX+4] ; compare [hashcheck1] and [hash2+4]
005C8931 |. 74 6E |JE SHORT WoW.005C89A1 ; if equal, return 1 (hostile)
005C8933 |. 83C0 04 |ADD EAX,4 ; hashcheck1 += 4
005C8936 |. 83C1 01 |ADD ECX,1 ; loopcount+=1
005C8939 |. 8338 00 |CMP DWORD PTR DS:[EAX],0 ; if hashcheck != 0
005C893C |.^75 E9 \JNZ SHORT WoW.005C8927 ; loop
005C893E |> 8577 10 TEST DWORD PTR DS:[EDI+10],ESI ; if ([hash1+10] & [hash2+C]) != 0
005C8941 |. 75 68 JNZ SHORT WoW.005C89AB ; return 4
005C8943 |. 33C9 XOR ECX,ECX ; ecx = 0
005C8945 |. 394F 28 CMP DWORD PTR DS:[EDI+28],ECX ; if ([hash1+28]) == 0
005C8948 |. 8D47 28 LEA EAX,DWORD PTR DS:[EDI+28] ; hashcheck1 = [hash1+28]
005C894B |. 74 1A JE SHORT WoW.005C8967
005C894D |. 8D49 00 LEA ECX,DWORD PTR DS:[ECX]
005C8950 |> 83F9 04 /CMP ECX,4
005C8953 |. 73 12 |JNB SHORT WoW.005C8967
005C8955 |. 8B30 |MOV ESI,DWORD PTR DS:[EAX]
005C8957 |. 3B72 04 |CMP ESI,DWORD PTR DS:[EDX+4]
005C895A |. 74 4F |JE SHORT WoW.005C89AB ; if equal, return 4 (friendly)
005C895C |. 83C0 04 |ADD EAX,4
005C895F |. 83C1 01 |ADD ECX,1
005C8962 |. 8338 00 |CMP DWORD PTR DS:[EAX],0
005C8965 |.^75 E9 \JNZ SHORT WoW.005C8950
005C8967 |> 8B47 0C MOV EAX,DWORD PTR DS:[EDI+C] ; eax = [hash1+C]
005C896A |. 8542 10 TEST DWORD PTR DS:[EDX+10],EAX ; if ([hash2+10] & [hash1+C]) != 0
005C896D |. 75 3C JNZ SHORT WoW.005C89AB ; return 4
005C896F |. 33C9 XOR ECX,ECX ; ecx = 0
005C8971 |. 394A 28 CMP DWORD PTR DS:[EDX+28],ECX ; compare [hash2+28] and 0
005C8974 |. 8D42 28 LEA EAX,DWORD PTR DS:[EDX+28] ; hashcheck = hash2+28
005C8977 |. 74 1E JE SHORT WoW.005C8997 ; if hashcheck == 0, return 3
005C8979 |. 8DA424 0000000>LEA ESP,DWORD PTR SS:[ESP]
005C8980 |> 83F9 04 /CMP ECX,4
005C8983 |. 73 12 |JNB SHORT WoW.005C8997
005C8985 |. 8B10 |MOV EDX,DWORD PTR DS:[EAX]
005C8987 |. 3B57 04 |CMP EDX,DWORD PTR DS:[EDI+4]
005C898A |. 74 1F |JE SHORT WoW.005C89AB ; if equal, return 4 (friendly)
005C898C |. 83C0 04 |ADD EAX,4
005C898F |. 83C1 01 |ADD ECX,1
005C8992 |. 8338 00 |CMP DWORD PTR DS:[EAX],0
005C8995 |.^75 E9 \JNZ SHORT WoW.005C8980
005C8997 |> 5B POP EBX
005C8998 |. 5F POP EDI
005C8999 |. B8 03000000 MOV EAX,3 ; return 3 (neutral)
005C899E |. 5E POP ESI
005C899F |. 5D POP EBP
005C89A0 |. C3 RETN
005C89A1 |> 5B POP EBX
005C89A2 |. 5F POP EDI
005C89A3 |. B8 01000000 MOV EAX,1 ; return 1 (hostile)
005C89A8 |. 5E POP ESI
005C89A9 |. 5D POP EBP
005C89AA |. C3 RETN
005C89AB |> 5B POP EBX
005C89AC |. 5F POP EDI
005C89AD |. B8 04000000 MOV EAX,4 ; return 4 (friendly)
005C89B2 |. 5E POP ESI
005C89B3 |. 5D POP EBP
005C89B4 \. C3 RETN