Created
March 11, 2012 13:22
-
-
Save sprite2005/2016464 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ext:100340B0 | |
.text:100340B0 ; =============== S U B R O U T I N E ======================================= | |
.text:100340B0 | |
.text:100340B0 ; Attributes: bp-based frame | |
.text:100340B0 | |
.text:100340B0 HashFunction proc near ; CODE XREF: LoginHashFunction+186p | |
.text:100340B0 ; sub_1002FC20+1E9p ... | |
.text:100340B0 | |
.text:100340B0 var_2C = dword ptr -2Ch | |
.text:100340B0 var_28 = dword ptr -28h | |
.text:100340B0 var_24 = dword ptr -24h | |
.text:100340B0 var_20 = dword ptr -20h | |
.text:100340B0 var_1C = dword ptr -1Ch | |
.text:100340B0 var_18 = dword ptr -18h | |
.text:100340B0 var_14 = dword ptr -14h | |
.text:100340B0 var_10 = dword ptr -10h | |
.text:100340B0 var_C = dword ptr -0Ch | |
.text:100340B0 var_8 = dword ptr -8 | |
.text:100340B0 var_4 = dword ptr -4 | |
.text:100340B0 pInputString = dword ptr 8 | |
.text:100340B0 inputLength = dword ptr 0Ch | |
.text:100340B0 hashH = dword ptr 10h | |
.text:100340B0 hashL = dword ptr 14h | |
.text:100340B0 | |
.text:100340B0 55 push ebp | |
.text:100340B1 8B EC mov ebp, esp | |
.text:100340B3 83 EC 2C sub esp, 2Ch | |
.text:100340B6 8B 45 10 mov eax, [ebp+hashH] | |
.text:100340B9 8B 08 mov ecx, [eax] | |
.text:100340BB 8B 55 0C mov edx, [ebp+inputLength] | |
.text:100340BE 8D 84 0A EF BE AD DE lea eax, [edx+ecx-21524111h] | |
.text:100340C5 89 45 F0 mov [ebp+var_10], eax | |
.text:100340C8 8B 4D F0 mov ecx, [ebp+var_10] | |
.text:100340CB 89 4D F4 mov [ebp+var_C], ecx | |
.text:100340CE 8B 55 F4 mov edx, [ebp+var_C] | |
.text:100340D1 89 55 FC mov [ebp+var_4], edx | |
.text:100340D4 8B 45 14 mov eax, [ebp+hashL] | |
.text:100340D7 8B 4D F0 mov ecx, [ebp+var_10] | |
.text:100340DA 03 08 add ecx, [eax] | |
.text:100340DC 89 4D F0 mov [ebp+var_10], ecx | |
.text:100340DF 8B 55 08 mov edx, [ebp+pInputString] | |
.text:100340E2 89 55 F8 mov [ebp+var_8], edx | |
.text:100340E5 33 C0 xor eax, eax | |
.text:100340E7 0F 84 D4 02 00 00 jz loc_100343C1 | |
.text:100340ED 8B 4D 08 mov ecx, [ebp+pInputString] | |
.text:100340F0 89 4D EC mov [ebp+var_14], ecx | |
.text:100340F3 | |
.text:100340F3 loc_100340F3: ; CODE XREF: HashFunction+166j | |
.text:100340F3 83 7D 0C 0C cmp [ebp+inputLength], 0Ch | |
.text:100340F7 0F 86 1E 01 00 00 jbe loc_1003421B | |
.text:100340FD 8B 55 EC mov edx, [ebp+var_14] | |
.text:10034100 8B 45 FC mov eax, [ebp+var_4] | |
.text:10034103 03 02 add eax, [edx] | |
.text:10034105 89 45 FC mov [ebp+var_4], eax | |
.text:10034108 8B 4D EC mov ecx, [ebp+var_14] | |
.text:1003410B 8B 55 F4 mov edx, [ebp+var_C] | |
.text:1003410E 03 51 04 add edx, [ecx+4] | |
.text:10034111 89 55 F4 mov [ebp+var_C], edx | |
.text:10034114 8B 45 EC mov eax, [ebp+var_14] | |
.text:10034117 8B 4D F0 mov ecx, [ebp+var_10] | |
.text:1003411A 03 48 08 add ecx, [eax+8] | |
.text:1003411D 89 4D F0 mov [ebp+var_10], ecx | |
.text:10034120 8B 55 FC mov edx, [ebp+var_4] | |
.text:10034123 2B 55 F0 sub edx, [ebp+var_10] | |
.text:10034126 89 55 FC mov [ebp+var_4], edx | |
.text:10034129 8B 45 F0 mov eax, [ebp+var_10] | |
.text:1003412C C1 E0 04 shl eax, 4 | |
.text:1003412F 8B 4D F0 mov ecx, [ebp+var_10] | |
.text:10034132 C1 E9 1C shr ecx, 1Ch | |
.text:10034135 33 C1 xor eax, ecx | |
.text:10034137 33 45 FC xor eax, [ebp+var_4] | |
.text:1003413A 89 45 FC mov [ebp+var_4], eax | |
.text:1003413D 8B 55 F0 mov edx, [ebp+var_10] | |
.text:10034140 03 55 F4 add edx, [ebp+var_C] | |
.text:10034143 89 55 F0 mov [ebp+var_10], edx | |
.text:10034146 8B 45 F4 mov eax, [ebp+var_C] | |
.text:10034149 2B 45 FC sub eax, [ebp+var_4] | |
.text:1003414C 89 45 F4 mov [ebp+var_C], eax | |
.text:1003414F 8B 4D FC mov ecx, [ebp+var_4] | |
.text:10034152 C1 E1 06 shl ecx, 6 | |
.text:10034155 8B 55 FC mov edx, [ebp+var_4] | |
.text:10034158 C1 EA 1A shr edx, 1Ah | |
.text:1003415B 33 CA xor ecx, edx | |
.text:1003415D 33 4D F4 xor ecx, [ebp+var_C] | |
.text:10034160 89 4D F4 mov [ebp+var_C], ecx | |
.text:10034163 8B 45 FC mov eax, [ebp+var_4] | |
.text:10034166 03 45 F0 add eax, [ebp+var_10] | |
.text:10034169 89 45 FC mov [ebp+var_4], eax | |
.text:1003416C 8B 4D F0 mov ecx, [ebp+var_10] | |
.text:1003416F 2B 4D F4 sub ecx, [ebp+var_C] | |
.text:10034172 89 4D F0 mov [ebp+var_10], ecx | |
.text:10034175 8B 55 F4 mov edx, [ebp+var_C] | |
.text:10034178 C1 E2 08 shl edx, 8 | |
.text:1003417B 8B 45 F4 mov eax, [ebp+var_C] | |
.text:1003417E C1 E8 18 shr eax, 18h | |
.text:10034181 33 D0 xor edx, eax | |
.text:10034183 33 55 F0 xor edx, [ebp+var_10] | |
.text:10034186 89 55 F0 mov [ebp+var_10], edx | |
.text:10034189 8B 4D F4 mov ecx, [ebp+var_C] | |
.text:1003418C 03 4D FC add ecx, [ebp+var_4] | |
.text:1003418F 89 4D F4 mov [ebp+var_C], ecx | |
.text:10034192 8B 55 FC mov edx, [ebp+var_4] | |
.text:10034195 2B 55 F0 sub edx, [ebp+var_10] | |
.text:10034198 89 55 FC mov [ebp+var_4], edx | |
.text:1003419B 8B 45 F0 mov eax, [ebp+var_10] | |
.text:1003419E C1 E0 10 shl eax, 10h | |
.text:100341A1 8B 4D F0 mov ecx, [ebp+var_10] | |
.text:100341A4 C1 E9 10 shr ecx, 10h | |
.text:100341A7 33 C1 xor eax, ecx | |
.text:100341A9 33 45 FC xor eax, [ebp+var_4] | |
.text:100341AC 89 45 FC mov [ebp+var_4], eax | |
.text:100341AF 8B 55 F0 mov edx, [ebp+var_10] | |
.text:100341B2 03 55 F4 add edx, [ebp+var_C] | |
.text:100341B5 89 55 F0 mov [ebp+var_10], edx | |
.text:100341B8 8B 45 F4 mov eax, [ebp+var_C] | |
.text:100341BB 2B 45 FC sub eax, [ebp+var_4] | |
.text:100341BE 89 45 F4 mov [ebp+var_C], eax | |
.text:100341C1 8B 4D FC mov ecx, [ebp+var_4] | |
.text:100341C4 C1 E1 13 shl ecx, 13h | |
.text:100341C7 8B 55 FC mov edx, [ebp+var_4] | |
.text:100341CA C1 EA 0D shr edx, 0Dh | |
.text:100341CD 33 CA xor ecx, edx | |
.text:100341CF 33 4D F4 xor ecx, [ebp+var_C] | |
.text:100341D2 89 4D F4 mov [ebp+var_C], ecx | |
.text:100341D5 8B 45 FC mov eax, [ebp+var_4] | |
.text:100341D8 03 45 F0 add eax, [ebp+var_10] | |
.text:100341DB 89 45 FC mov [ebp+var_4], eax | |
.text:100341DE 8B 4D F0 mov ecx, [ebp+var_10] | |
.text:100341E1 2B 4D F4 sub ecx, [ebp+var_C] | |
.text:100341E4 89 4D F0 mov [ebp+var_10], ecx | |
.text:100341E7 8B 55 F4 mov edx, [ebp+var_C] | |
.text:100341EA C1 E2 04 shl edx, 4 | |
.text:100341ED 8B 45 F4 mov eax, [ebp+var_C] | |
.text:100341F0 C1 E8 1C shr eax, 1Ch | |
.text:100341F3 33 D0 xor edx, eax | |
.text:100341F5 33 55 F0 xor edx, [ebp+var_10] | |
.text:100341F8 89 55 F0 mov [ebp+var_10], edx | |
.text:100341FB 8B 4D F4 mov ecx, [ebp+var_C] | |
.text:100341FE 03 4D FC add ecx, [ebp+var_4] | |
.text:10034201 89 4D F4 mov [ebp+var_C], ecx | |
.text:10034204 8B 55 0C mov edx, [ebp+inputLength] | |
.text:10034207 83 EA 0C sub edx, 0Ch | |
.text:1003420A 89 55 0C mov [ebp+inputLength], edx | |
.text:1003420D 8B 45 EC mov eax, [ebp+var_14] | |
.text:10034210 83 C0 0C add eax, 0Ch | |
.text:10034213 89 45 EC mov [ebp+var_14], eax | |
.text:10034216 E9 D8 FE FF FF jmp loc_100340F3 | |
.text:1003421B ; --------------------------------------------------------------------------- | |
.text:1003421B | |
.text:1003421B loc_1003421B: ; CODE XREF: HashFunction+47j | |
.text:1003421B 8B 4D 0C mov ecx, [ebp+inputLength] | |
.text:1003421E 89 4D DC mov [ebp+var_24], ecx | |
.text:10034221 83 7D DC 0C cmp [ebp+var_24], 0Ch ; switch 13 cases | |
.text:10034225 0F 87 91 01 00 00 ja loc_100343BC ; jumptable 1003422E default case | |
.text:1003422B 8B 55 DC mov edx, [ebp+var_24] | |
.text:1003422E FF 24 95 5C 4A 03 10 jmp ds:off_10034A5C[edx*4] ; switch jump | |
.text:10034235 | |
.text:10034235 loc_10034235: ; DATA XREF: .text:off_10034A5Co | |
.text:10034235 8B 45 EC mov eax, [ebp+var_14] ; jumptable 1003422E case 12 | |
.text:10034238 8B 4D F0 mov ecx, [ebp+var_10] | |
.text:1003423B 03 48 08 add ecx, [eax+8] | |
.text:1003423E 89 4D F0 mov [ebp+var_10], ecx | |
.text:10034241 8B 55 EC mov edx, [ebp+var_14] | |
.text:10034244 8B 45 F4 mov eax, [ebp+var_C] | |
.text:10034247 03 42 04 add eax, [edx+4] | |
.text:1003424A 89 45 F4 mov [ebp+var_C], eax | |
.text:1003424D 8B 4D EC mov ecx, [ebp+var_14] | |
.text:10034250 8B 55 FC mov edx, [ebp+var_4] | |
.text:10034253 03 11 add edx, [ecx] | |
.text:10034255 89 55 FC mov [ebp+var_4], edx | |
.text:10034258 E9 5F 01 00 00 jmp loc_100343BC ; jumptable 1003422E default case | |
.text:1003425D ; --------------------------------------------------------------------------- | |
.text:1003425D | |
.text:1003425D loc_1003425D: ; CODE XREF: HashFunction+17Ej | |
.text:1003425D ; DATA XREF: .text:off_10034A5Co | |
.text:1003425D 8B 45 EC mov eax, [ebp+var_14] ; jumptable 1003422E case 11 | |
.text:10034260 8B 48 08 mov ecx, [eax+8] | |
.text:10034263 81 E1 FF FF FF 00 and ecx, 0FFFFFFh | |
.text:10034269 03 4D F0 add ecx, [ebp+var_10] | |
.text:1003426C 89 4D F0 mov [ebp+var_10], ecx | |
.text:1003426F 8B 55 EC mov edx, [ebp+var_14] | |
.text:10034272 8B 45 F4 mov eax, [ebp+var_C] | |
.text:10034275 03 42 04 add eax, [edx+4] | |
.text:10034278 89 45 F4 mov [ebp+var_C], eax | |
.text:1003427B 8B 4D EC mov ecx, [ebp+var_14] | |
.text:1003427E 8B 55 FC mov edx, [ebp+var_4] | |
.text:10034281 03 11 add edx, [ecx] | |
.text:10034283 89 55 FC mov [ebp+var_4], edx | |
.text:10034286 E9 31 01 00 00 jmp loc_100343BC ; jumptable 1003422E default case | |
.text:1003428B ; --------------------------------------------------------------------------- | |
.text:1003428B | |
.text:1003428B loc_1003428B: ; CODE XREF: HashFunction+17Ej | |
.text:1003428B ; DATA XREF: .text:off_10034A5Co | |
.text:1003428B 8B 45 EC mov eax, [ebp+var_14] ; jumptable 1003422E case 10 | |
.text:1003428E 8B 48 08 mov ecx, [eax+8] | |
.text:10034291 81 E1 FF FF 00 00 and ecx, 0FFFFh | |
.text:10034297 03 4D F0 add ecx, [ebp+var_10] | |
.text:1003429A 89 4D F0 mov [ebp+var_10], ecx | |
.text:1003429D 8B 55 EC mov edx, [ebp+var_14] | |
.text:100342A0 8B 45 F4 mov eax, [ebp+var_C] | |
.text:100342A3 03 42 04 add eax, [edx+4] | |
.text:100342A6 89 45 F4 mov [ebp+var_C], eax | |
.text:100342A9 8B 4D EC mov ecx, [ebp+var_14] | |
.text:100342AC 8B 55 FC mov edx, [ebp+var_4] | |
.text:100342AF 03 11 add edx, [ecx] | |
.text:100342B1 89 55 FC mov [ebp+var_4], edx | |
.text:100342B4 E9 03 01 00 00 jmp loc_100343BC ; jumptable 1003422E default case | |
.text:100342B9 ; --------------------------------------------------------------------------- | |
.text:100342B9 | |
.text:100342B9 loc_100342B9: ; CODE XREF: HashFunction+17Ej | |
.text:100342B9 ; DATA XREF: .text:off_10034A5Co | |
.text:100342B9 8B 45 EC mov eax, [ebp+var_14] ; jumptable 1003422E case 9 | |
.text:100342BC 8B 48 08 mov ecx, [eax+8] | |
.text:100342BF 81 E1 FF 00 00 00 and ecx, 0FFh | |
.text:100342C5 03 4D F0 add ecx, [ebp+var_10] | |
.text:100342C8 89 4D F0 mov [ebp+var_10], ecx | |
.text:100342CB 8B 55 EC mov edx, [ebp+var_14] | |
.text:100342CE 8B 45 F4 mov eax, [ebp+var_C] | |
.text:100342D1 03 42 04 add eax, [edx+4] | |
.text:100342D4 89 45 F4 mov [ebp+var_C], eax | |
.text:100342D7 8B 4D EC mov ecx, [ebp+var_14] | |
.text:100342DA 8B 55 FC mov edx, [ebp+var_4] | |
.text:100342DD 03 11 add edx, [ecx] | |
.text:100342DF 89 55 FC mov [ebp+var_4], edx | |
.text:100342E2 E9 D5 00 00 00 jmp loc_100343BC ; jumptable 1003422E default case | |
.text:100342E7 ; --------------------------------------------------------------------------- | |
.text:100342E7 | |
.text:100342E7 loc_100342E7: ; CODE XREF: HashFunction+17Ej | |
.text:100342E7 ; DATA XREF: .text:off_10034A5Co | |
.text:100342E7 8B 45 EC mov eax, [ebp+var_14] ; jumptable 1003422E case 8 | |
.text:100342EA 8B 4D F4 mov ecx, [ebp+var_C] | |
.text:100342ED 03 48 04 add ecx, [eax+4] | |
.text:100342F0 89 4D F4 mov [ebp+var_C], ecx | |
.text:100342F3 8B 55 EC mov edx, [ebp+var_14] | |
.text:100342F6 8B 45 FC mov eax, [ebp+var_4] | |
.text:100342F9 03 02 add eax, [edx] | |
.text:100342FB 89 45 FC mov [ebp+var_4], eax | |
.text:100342FE E9 B9 00 00 00 jmp loc_100343BC ; jumptable 1003422E default case | |
.text:10034303 ; --------------------------------------------------------------------------- | |
.text:10034303 | |
.text:10034303 loc_10034303: ; CODE XREF: HashFunction+17Ej | |
.text:10034303 ; DATA XREF: .text:off_10034A5Co | |
.text:10034303 8B 4D EC mov ecx, [ebp+var_14] ; jumptable 1003422E case 7 | |
.text:10034306 8B 51 04 mov edx, [ecx+4] | |
.text:10034309 81 E2 FF FF FF 00 and edx, 0FFFFFFh | |
.text:1003430F 03 55 F4 add edx, [ebp+var_C] | |
.text:10034312 89 55 F4 mov [ebp+var_C], edx | |
.text:10034315 8B 45 EC mov eax, [ebp+var_14] | |
.text:10034318 8B 4D FC mov ecx, [ebp+var_4] | |
.text:1003431B 03 08 add ecx, [eax] | |
.text:1003431D 89 4D FC mov [ebp+var_4], ecx | |
.text:10034320 E9 97 00 00 00 jmp loc_100343BC ; jumptable 1003422E default case | |
.text:10034325 ; --------------------------------------------------------------------------- | |
.text:10034325 | |
.text:10034325 loc_10034325: ; CODE XREF: HashFunction+17Ej | |
.text:10034325 ; DATA XREF: .text:off_10034A5Co | |
.text:10034325 8B 55 EC mov edx, [ebp+var_14] ; jumptable 1003422E case 6 | |
.text:10034328 8B 42 04 mov eax, [edx+4] | |
.text:1003432B 25 FF FF 00 00 and eax, 0FFFFh | |
.text:10034330 03 45 F4 add eax, [ebp+var_C] | |
.text:10034333 89 45 F4 mov [ebp+var_C], eax | |
.text:10034336 8B 4D EC mov ecx, [ebp+var_14] | |
.text:10034339 8B 55 FC mov edx, [ebp+var_4] | |
.text:1003433C 03 11 add edx, [ecx] | |
.text:1003433E 89 55 FC mov [ebp+var_4], edx | |
.text:10034341 EB 79 jmp short loc_100343BC ; jumptable 1003422E default case | |
.text:10034343 ; --------------------------------------------------------------------------- | |
.text:10034343 | |
.text:10034343 loc_10034343: ; CODE XREF: HashFunction+17Ej | |
.text:10034343 ; DATA XREF: .text:off_10034A5Co | |
.text:10034343 8B 45 EC mov eax, [ebp+var_14] ; jumptable 1003422E case 5 | |
.text:10034346 8B 48 04 mov ecx, [eax+4] | |
.text:10034349 81 E1 FF 00 00 00 and ecx, 0FFh | |
.text:1003434F 03 4D F4 add ecx, [ebp+var_C] | |
.text:10034352 89 4D F4 mov [ebp+var_C], ecx | |
.text:10034355 8B 55 EC mov edx, [ebp+var_14] | |
.text:10034358 8B 45 FC mov eax, [ebp+var_4] | |
.text:1003435B 03 02 add eax, [edx] | |
.text:1003435D 89 45 FC mov [ebp+var_4], eax | |
.text:10034360 EB 5A jmp short loc_100343BC ; jumptable 1003422E default case | |
.text:10034362 ; --------------------------------------------------------------------------- | |
.text:10034362 | |
.text:10034362 loc_10034362: ; CODE XREF: HashFunction+17Ej | |
.text:10034362 ; DATA XREF: .text:off_10034A5Co | |
.text:10034362 8B 4D EC mov ecx, [ebp+var_14] ; jumptable 1003422E case 4 | |
.text:10034365 8B 55 FC mov edx, [ebp+var_4] | |
.text:10034368 03 11 add edx, [ecx] | |
.text:1003436A 89 55 FC mov [ebp+var_4], edx | |
.text:1003436D EB 4D jmp short loc_100343BC ; jumptable 1003422E default case | |
.text:1003436F ; --------------------------------------------------------------------------- | |
.text:1003436F | |
.text:1003436F loc_1003436F: ; CODE XREF: HashFunction+17Ej | |
.text:1003436F ; DATA XREF: .text:off_10034A5Co | |
.text:1003436F 8B 45 EC mov eax, [ebp+var_14] ; jumptable 1003422E case 3 | |
.text:10034372 8B 08 mov ecx, [eax] | |
.text:10034374 81 E1 FF FF FF 00 and ecx, 0FFFFFFh | |
.text:1003437A 03 4D FC add ecx, [ebp+var_4] | |
.text:1003437D 89 4D FC mov [ebp+var_4], ecx | |
.text:10034380 EB 3A jmp short loc_100343BC ; jumptable 1003422E default case | |
.text:10034382 ; --------------------------------------------------------------------------- | |
.text:10034382 | |
.text:10034382 loc_10034382: ; CODE XREF: HashFunction+17Ej | |
.text:10034382 ; DATA XREF: .text:off_10034A5Co | |
.text:10034382 8B 55 EC mov edx, [ebp+var_14] ; jumptable 1003422E case 2 | |
.text:10034385 8B 02 mov eax, [edx] | |
.text:10034387 25 FF FF 00 00 and eax, 0FFFFh | |
.text:1003438C 03 45 FC add eax, [ebp+var_4] | |
.text:1003438F 89 45 FC mov [ebp+var_4], eax | |
.text:10034392 EB 28 jmp short loc_100343BC ; jumptable 1003422E default case | |
.text:10034394 ; --------------------------------------------------------------------------- | |
.text:10034394 | |
.text:10034394 loc_10034394: ; CODE XREF: HashFunction+17Ej | |
.text:10034394 ; DATA XREF: .text:off_10034A5Co | |
.text:10034394 8B 4D EC mov ecx, [ebp+var_14] ; jumptable 1003422E case 1 | |
.text:10034397 8B 11 mov edx, [ecx] | |
.text:10034399 81 E2 FF 00 00 00 and edx, 0FFh | |
.text:1003439F 03 55 FC add edx, [ebp+var_4] | |
.text:100343A2 89 55 FC mov [ebp+var_4], edx | |
.text:100343A5 EB 15 jmp short loc_100343BC ; jumptable 1003422E default case | |
.text:100343A7 ; --------------------------------------------------------------------------- | |
.text:100343A7 | |
.text:100343A7 loc_100343A7: ; CODE XREF: HashFunction+17Ej | |
.text:100343A7 ; DATA XREF: .text:off_10034A5Co | |
.text:100343A7 8B 45 10 mov eax, [ebp+hashH] ; jumptable 1003422E case 0 | |
.text:100343AA 8B 4D F0 mov ecx, [ebp+var_10] | |
.text:100343AD 89 08 mov [eax], ecx | |
.text:100343AF 8B 55 14 mov edx, [ebp+hashL] | |
.text:100343B2 8B 45 F4 mov eax, [ebp+var_C] | |
.text:100343B5 89 02 mov [edx], eax | |
.text:100343B7 E9 9C 06 00 00 jmp loc_10034A58 | |
.text:100343BC ; --------------------------------------------------------------------------- | |
.text:100343BC | |
.text:100343BC loc_100343BC: ; CODE XREF: HashFunction+175j | |
.text:100343BC ; HashFunction+1A8j ... | |
.text:100343BC E9 AE 05 00 00 jmp loc_1003496F ; jumptable 1003422E default case | |
.text:100343C1 ; --------------------------------------------------------------------------- | |
.text:100343C1 | |
.text:100343C1 loc_100343C1: ; CODE XREF: HashFunction+37j | |
.text:100343C1 33 C9 xor ecx, ecx | |
.text:100343C3 0F 84 FE 02 00 00 jz loc_100346C7 | |
.text:100343C9 8B 55 08 mov edx, [ebp+pInputString] | |
.text:100343CC 89 55 E4 mov [ebp+var_1C], edx | |
.text:100343CF | |
.text:100343CF loc_100343CF: ; CODE XREF: HashFunction+469j | |
.text:100343CF 83 7D 0C 0C cmp [ebp+inputLength], 0Ch | |
.text:100343D3 0F 86 45 01 00 00 jbe loc_1003451E | |
.text:100343D9 8B 45 E4 mov eax, [ebp+var_1C] | |
.text:100343DC 0F B7 08 movzx ecx, word ptr [eax] | |
.text:100343DF 8B 55 E4 mov edx, [ebp+var_1C] | |
.text:100343E2 0F B7 42 02 movzx eax, word ptr [edx+2] | |
.text:100343E6 C1 E0 10 shl eax, 10h | |
.text:100343E9 03 45 FC add eax, [ebp+var_4] | |
.text:100343EC 03 C1 add eax, ecx | |
.text:100343EE 89 45 FC mov [ebp+var_4], eax | |
.text:100343F1 8B 4D E4 mov ecx, [ebp+var_1C] | |
.text:100343F4 0F B7 51 04 movzx edx, word ptr [ecx+4] | |
.text:100343F8 8B 45 E4 mov eax, [ebp+var_1C] | |
.text:100343FB 0F B7 48 06 movzx ecx, word ptr [eax+6] | |
.text:100343FF C1 E1 10 shl ecx, 10h | |
.text:10034402 03 4D F4 add ecx, [ebp+var_C] | |
.text:10034405 03 CA add ecx, edx | |
.text:10034407 89 4D F4 mov [ebp+var_C], ecx | |
.text:1003440A 8B 55 E4 mov edx, [ebp+var_1C] | |
.text:1003440D 0F B7 42 08 movzx eax, word ptr [edx+8] | |
.text:10034411 8B 4D E4 mov ecx, [ebp+var_1C] | |
.text:10034414 0F B7 51 0A movzx edx, word ptr [ecx+0Ah] | |
.text:10034418 C1 E2 10 shl edx, 10h | |
.text:1003441B 03 55 F0 add edx, [ebp+var_10] | |
.text:1003441E 03 D0 add edx, eax | |
.text:10034420 89 55 F0 mov [ebp+var_10], edx | |
.text:10034423 8B 45 FC mov eax, [ebp+var_4] | |
.text:10034426 2B 45 F0 sub eax, [ebp+var_10] | |
.text:10034429 89 45 FC mov [ebp+var_4], eax | |
.text:1003442C 8B 4D F0 mov ecx, [ebp+var_10] | |
.text:1003442F C1 E1 04 shl ecx, 4 | |
.text:10034432 8B 55 F0 mov edx, [ebp+var_10] | |
.text:10034435 C1 EA 1C shr edx, 1Ch | |
.text:10034438 33 CA xor ecx, edx | |
.text:1003443A 33 4D FC xor ecx, [ebp+var_4] | |
.text:1003443D 89 4D FC mov [ebp+var_4], ecx | |
.text:10034440 8B 45 F0 mov eax, [ebp+var_10] | |
.text:10034443 03 45 F4 add eax, [ebp+var_C] | |
.text:10034446 89 45 F0 mov [ebp+var_10], eax | |
.text:10034449 8B 4D F4 mov ecx, [ebp+var_C] | |
.text:1003444C 2B 4D FC sub ecx, [ebp+var_4] | |
.text:1003444F 89 4D F4 mov [ebp+var_C], ecx | |
.text:10034452 8B 55 FC mov edx, [ebp+var_4] | |
.text:10034455 C1 E2 06 shl edx, 6 | |
.text:10034458 8B 45 FC mov eax, [ebp+var_4] | |
.text:1003445B C1 E8 1A shr eax, 1Ah | |
.text:1003445E 33 D0 xor edx, eax | |
.text:10034460 33 55 F4 xor edx, [ebp+var_C] | |
.text:10034463 89 55 F4 mov [ebp+var_C], edx | |
.text:10034466 8B 4D FC mov ecx, [ebp+var_4] | |
.text:10034469 03 4D F0 add ecx, [ebp+var_10] | |
.text:1003446C 89 4D FC mov [ebp+var_4], ecx | |
.text:1003446F 8B 55 F0 mov edx, [ebp+var_10] | |
.text:10034472 2B 55 F4 sub edx, [ebp+var_C] | |
.text:10034475 89 55 F0 mov [ebp+var_10], edx | |
.text:10034478 8B 45 F4 mov eax, [ebp+var_C] | |
.text:1003447B C1 E0 08 shl eax, 8 | |
.text:1003447E 8B 4D F4 mov ecx, [ebp+var_C] | |
.text:10034481 C1 E9 18 shr ecx, 18h | |
.text:10034484 33 C1 xor eax, ecx | |
.text:10034486 33 45 F0 xor eax, [ebp+var_10] | |
.text:10034489 89 45 F0 mov [ebp+var_10], eax | |
.text:1003448C 8B 55 F4 mov edx, [ebp+var_C] | |
.text:1003448F 03 55 FC add edx, [ebp+var_4] | |
.text:10034492 89 55 F4 mov [ebp+var_C], edx | |
.text:10034495 8B 45 FC mov eax, [ebp+var_4] | |
.text:10034498 2B 45 F0 sub eax, [ebp+var_10] | |
.text:1003449B 89 45 FC mov [ebp+var_4], eax | |
.text:1003449E 8B 4D F0 mov ecx, [ebp+var_10] | |
.text:100344A1 C1 E1 10 shl ecx, 10h | |
.text:100344A4 8B 55 F0 mov edx, [ebp+var_10] | |
.text:100344A7 C1 EA 10 shr edx, 10h | |
.text:100344AA 33 CA xor ecx, edx | |
.text:100344AC 33 4D FC xor ecx, [ebp+var_4] | |
.text:100344AF 89 4D FC mov [ebp+var_4], ecx | |
.text:100344B2 8B 45 F0 mov eax, [ebp+var_10] | |
.text:100344B5 03 45 F4 add eax, [ebp+var_C] | |
.text:100344B8 89 45 F0 mov [ebp+var_10], eax | |
.text:100344BB 8B 4D F4 mov ecx, [ebp+var_C] | |
.text:100344BE 2B 4D FC sub ecx, [ebp+var_4] | |
.text:100344C1 89 4D F4 mov [ebp+var_C], ecx | |
.text:100344C4 8B 55 FC mov edx, [ebp+var_4] | |
.text:100344C7 C1 E2 13 shl edx, 13h | |
.text:100344CA 8B 45 FC mov eax, [ebp+var_4] | |
.text:100344CD C1 E8 0D shr eax, 0Dh | |
.text:100344D0 33 D0 xor edx, eax | |
.text:100344D2 33 55 F4 xor edx, [ebp+var_C] | |
.text:100344D5 89 55 F4 mov [ebp+var_C], edx | |
.text:100344D8 8B 4D FC mov ecx, [ebp+var_4] | |
.text:100344DB 03 4D F0 add ecx, [ebp+var_10] | |
.text:100344DE 89 4D FC mov [ebp+var_4], ecx | |
.text:100344E1 8B 55 F0 mov edx, [ebp+var_10] | |
.text:100344E4 2B 55 F4 sub edx, [ebp+var_C] | |
.text:100344E7 89 55 F0 mov [ebp+var_10], edx | |
.text:100344EA 8B 45 F4 mov eax, [ebp+var_C] | |
.text:100344ED C1 E0 04 shl eax, 4 | |
.text:100344F0 8B 4D F4 mov ecx, [ebp+var_C] | |
.text:100344F3 C1 E9 1C shr ecx, 1Ch | |
.text:100344F6 33 C1 xor eax, ecx | |
.text:100344F8 33 45 F0 xor eax, [ebp+var_10] | |
.text:100344FB 89 45 F0 mov [ebp+var_10], eax | |
.text:100344FE 8B 55 F4 mov edx, [ebp+var_C] | |
.text:10034501 03 55 FC add edx, [ebp+var_4] | |
.text:10034504 89 55 F4 mov [ebp+var_C], edx | |
.text:10034507 8B 45 0C mov eax, [ebp+inputLength] | |
.text:1003450A 83 E8 0C sub eax, 0Ch | |
.text:1003450D 89 45 0C mov [ebp+inputLength], eax | |
.text:10034510 8B 4D E4 mov ecx, [ebp+var_1C] | |
.text:10034513 83 C1 0C add ecx, 0Ch | |
.text:10034516 89 4D E4 mov [ebp+var_1C], ecx | |
.text:10034519 E9 B1 FE FF FF jmp loc_100343CF | |
.text:1003451E ; --------------------------------------------------------------------------- | |
.text:1003451E | |
.text:1003451E loc_1003451E: ; CODE XREF: HashFunction+323j | |
.text:1003451E 8B 55 E4 mov edx, [ebp+var_1C] | |
.text:10034521 89 55 E8 mov [ebp+var_18], edx | |
.text:10034524 8B 45 0C mov eax, [ebp+inputLength] | |
.text:10034527 89 45 D8 mov [ebp+var_28], eax | |
.text:1003452A 83 7D D8 0C cmp [ebp+var_28], 0Ch ; switch 13 cases | |
.text:1003452E 0F 87 8E 01 00 00 ja loc_100346C2 ; jumptable 10034537 default case | |
.text:10034534 8B 4D D8 mov ecx, [ebp+var_28] | |
.text:10034537 FF 24 8D 90 4A 03 10 jmp ds:off_10034A90[ecx*4] ; switch jump | |
.text:1003453E | |
.text:1003453E loc_1003453E: ; DATA XREF: .text:off_10034A90o | |
.text:1003453E 8B 55 E4 mov edx, [ebp+var_1C] ; jumptable 10034537 case 12 | |
.text:10034541 0F B7 42 08 movzx eax, word ptr [edx+8] | |
.text:10034545 8B 4D E4 mov ecx, [ebp+var_1C] | |
.text:10034548 0F B7 51 0A movzx edx, word ptr [ecx+0Ah] | |
.text:1003454C C1 E2 10 shl edx, 10h | |
.text:1003454F 03 55 F0 add edx, [ebp+var_10] | |
.text:10034552 03 D0 add edx, eax | |
.text:10034554 89 55 F0 mov [ebp+var_10], edx | |
.text:10034557 8B 45 E4 mov eax, [ebp+var_1C] | |
.text:1003455A 0F B7 48 04 movzx ecx, word ptr [eax+4] | |
.text:1003455E 8B 55 E4 mov edx, [ebp+var_1C] | |
.text:10034561 0F B7 42 06 movzx eax, word ptr [edx+6] | |
.text:10034565 C1 E0 10 shl eax, 10h | |
.text:10034568 03 45 F4 add eax, [ebp+var_C] | |
.text:1003456B 03 C1 add eax, ecx | |
.text:1003456D 89 45 F4 mov [ebp+var_C], eax | |
.text:10034570 8B 4D E4 mov ecx, [ebp+var_1C] | |
.text:10034573 0F B7 11 movzx edx, word ptr [ecx] | |
.text:10034576 8B 45 E4 mov eax, [ebp+var_1C] | |
.text:10034579 0F B7 48 02 movzx ecx, word ptr [eax+2] | |
.text:1003457D C1 E1 10 shl ecx, 10h | |
.text:10034580 03 4D FC add ecx, [ebp+var_4] | |
.text:10034583 03 CA add ecx, edx | |
.text:10034585 89 4D FC mov [ebp+var_4], ecx | |
.text:10034588 E9 35 01 00 00 jmp loc_100346C2 ; jumptable 10034537 default case | |
.text:1003458D ; --------------------------------------------------------------------------- | |
.text:1003458D | |
.text:1003458D loc_1003458D: ; CODE XREF: HashFunction+487j | |
.text:1003458D ; DATA XREF: .text:off_10034A90o | |
.text:1003458D 8B 55 E8 mov edx, [ebp+var_18] ; jumptable 10034537 case 11 | |
.text:10034590 0F B6 42 0A movzx eax, byte ptr [edx+0Ah] | |
.text:10034594 C1 E0 10 shl eax, 10h | |
.text:10034597 03 45 F0 add eax, [ebp+var_10] | |
.text:1003459A 89 45 F0 mov [ebp+var_10], eax | |
.text:1003459D | |
.text:1003459D loc_1003459D: ; CODE XREF: HashFunction+487j | |
.text:1003459D ; DATA XREF: .text:off_10034A90o | |
.text:1003459D 8B 4D E4 mov ecx, [ebp+var_1C] ; jumptable 10034537 case 10 | |
.text:100345A0 0F B7 51 08 movzx edx, word ptr [ecx+8] | |
.text:100345A4 03 55 F0 add edx, [ebp+var_10] | |
.text:100345A7 89 55 F0 mov [ebp+var_10], edx | |
.text:100345AA 8B 45 E4 mov eax, [ebp+var_1C] | |
.text:100345AD 0F B7 48 04 movzx ecx, word ptr [eax+4] | |
.text:100345B1 8B 55 E4 mov edx, [ebp+var_1C] | |
.text:100345B4 0F B7 42 06 movzx eax, word ptr [edx+6] | |
.text:100345B8 C1 E0 10 shl eax, 10h | |
.text:100345BB 03 45 F4 add eax, [ebp+var_C] | |
.text:100345BE 03 C1 add eax, ecx | |
.text:100345C0 89 45 F4 mov [ebp+var_C], eax | |
.text:100345C3 8B 4D E4 mov ecx, [ebp+var_1C] | |
.text:100345C6 0F B7 11 movzx edx, word ptr [ecx] | |
.text:100345C9 8B 45 E4 mov eax, [ebp+var_1C] | |
.text:100345CC 0F B7 48 02 movzx ecx, word ptr [eax+2] | |
.text:100345D0 C1 E1 10 shl ecx, 10h | |
.text:100345D3 03 4D FC add ecx, [ebp+var_4] | |
.text:100345D6 03 CA add ecx, edx | |
.text:100345D8 89 4D FC mov [ebp+var_4], ecx | |
.text:100345DB E9 E2 00 00 00 jmp loc_100346C2 ; jumptable 10034537 default case | |
.text:100345E0 ; --------------------------------------------------------------------------- | |
.text:100345E0 | |
.text:100345E0 loc_100345E0: ; CODE XREF: HashFunction+487j | |
.text:100345E0 ; DATA XREF: .text:off_10034A90o | |
.text:100345E0 8B 55 E8 mov edx, [ebp+var_18] ; jumptable 10034537 case 9 | |
.text:100345E3 0F B6 42 08 movzx eax, byte ptr [edx+8] | |
.text:100345E7 03 45 F0 add eax, [ebp+var_10] | |
.text:100345EA 89 45 F0 mov [ebp+var_10], eax | |
.text:100345ED | |
.text:100345ED loc_100345ED: ; CODE XREF: HashFunction+487j | |
.text:100345ED ; DATA XREF: .text:off_10034A90o | |
.text:100345ED 8B 4D E4 mov ecx, [ebp+var_1C] ; jumptable 10034537 case 8 | |
.text:100345F0 0F B7 51 04 movzx edx, word ptr [ecx+4] | |
.text:100345F4 8B 45 E4 mov eax, [ebp+var_1C] | |
.text:100345F7 0F B7 48 06 movzx ecx, word ptr [eax+6] | |
.text:100345FB C1 E1 10 shl ecx, 10h | |
.text:100345FE 03 4D F4 add ecx, [ebp+var_C] | |
.text:10034601 03 CA add ecx, edx | |
.text:10034603 89 4D F4 mov [ebp+var_C], ecx | |
.text:10034606 8B 55 E4 mov edx, [ebp+var_1C] | |
.text:10034609 0F B7 02 movzx eax, word ptr [edx] | |
.text:1003460C 8B 4D E4 mov ecx, [ebp+var_1C] | |
.text:1003460F 0F B7 51 02 movzx edx, word ptr [ecx+2] | |
.text:10034613 C1 E2 10 shl edx, 10h | |
.text:10034616 03 55 FC add edx, [ebp+var_4] | |
.text:10034619 03 D0 add edx, eax | |
.text:1003461B 89 55 FC mov [ebp+var_4], edx | |
.text:1003461E E9 9F 00 00 00 jmp loc_100346C2 ; jumptable 10034537 default case | |
.text:10034623 ; --------------------------------------------------------------------------- | |
.text:10034623 | |
.text:10034623 loc_10034623: ; CODE XREF: HashFunction+487j | |
.text:10034623 ; DATA XREF: .text:off_10034A90o | |
.text:10034623 8B 45 E8 mov eax, [ebp+var_18] ; jumptable 10034537 case 7 | |
.text:10034626 0F B6 48 06 movzx ecx, byte ptr [eax+6] | |
.text:1003462A C1 E1 10 shl ecx, 10h | |
.text:1003462D 03 4D F4 add ecx, [ebp+var_C] | |
.text:10034630 89 4D F4 mov [ebp+var_C], ecx | |
.text:10034633 | |
.text:10034633 loc_10034633: ; CODE XREF: HashFunction+487j | |
.text:10034633 ; DATA XREF: .text:off_10034A90o | |
.text:10034633 8B 55 E4 mov edx, [ebp+var_1C] ; jumptable 10034537 case 6 | |
.text:10034636 0F B7 42 04 movzx eax, word ptr [edx+4] | |
.text:1003463A 03 45 F4 add eax, [ebp+var_C] | |
.text:1003463D 89 45 F4 mov [ebp+var_C], eax | |
.text:10034640 8B 4D E4 mov ecx, [ebp+var_1C] | |
.text:10034643 0F B7 11 movzx edx, word ptr [ecx] | |
.text:10034646 8B 45 E4 mov eax, [ebp+var_1C] | |
.text:10034649 0F B7 48 02 movzx ecx, word ptr [eax+2] | |
.text:1003464D C1 E1 10 shl ecx, 10h | |
.text:10034650 03 4D FC add ecx, [ebp+var_4] | |
.text:10034653 03 CA add ecx, edx | |
.text:10034655 89 4D FC mov [ebp+var_4], ecx | |
.text:10034658 EB 68 jmp short loc_100346C2 ; jumptable 10034537 default case | |
.text:1003465A ; --------------------------------------------------------------------------- | |
.text:1003465A | |
.text:1003465A loc_1003465A: ; CODE XREF: HashFunction+487j | |
.text:1003465A ; DATA XREF: .text:off_10034A90o | |
.text:1003465A 8B 55 E8 mov edx, [ebp+var_18] ; jumptable 10034537 case 5 | |
.text:1003465D 0F B6 42 04 movzx eax, byte ptr [edx+4] | |
.text:10034661 03 45 F4 add eax, [ebp+var_C] | |
.text:10034664 89 45 F4 mov [ebp+var_C], eax | |
.text:10034667 | |
.text:10034667 loc_10034667: ; CODE XREF: HashFunction+487j | |
.text:10034667 ; DATA XREF: .text:off_10034A90o | |
.text:10034667 8B 4D E4 mov ecx, [ebp+var_1C] ; jumptable 10034537 case 4 | |
.text:1003466A 0F B7 11 movzx edx, word ptr [ecx] | |
.text:1003466D 8B 45 E4 mov eax, [ebp+var_1C] | |
.text:10034670 0F B7 48 02 movzx ecx, word ptr [eax+2] | |
.text:10034674 C1 E1 10 shl ecx, 10h | |
.text:10034677 03 4D FC add ecx, [ebp+var_4] | |
.text:1003467A 03 CA add ecx, edx | |
.text:1003467C 89 4D FC mov [ebp+var_4], ecx | |
.text:1003467F EB 41 jmp short loc_100346C2 ; jumptable 10034537 default case | |
.text:10034681 ; --------------------------------------------------------------------------- | |
.text:10034681 | |
.text:10034681 loc_10034681: ; CODE XREF: HashFunction+487j | |
.text:10034681 ; DATA XREF: .text:off_10034A90o | |
.text:10034681 8B 55 E8 mov edx, [ebp+var_18] ; jumptable 10034537 case 3 | |
.text:10034684 0F B6 42 02 movzx eax, byte ptr [edx+2] | |
.text:10034688 C1 E0 10 shl eax, 10h | |
.text:1003468B 03 45 FC add eax, [ebp+var_4] | |
.text:1003468E 89 45 FC mov [ebp+var_4], eax | |
.text:10034691 | |
.text:10034691 loc_10034691: ; CODE XREF: HashFunction+487j | |
.text:10034691 ; DATA XREF: .text:off_10034A90o | |
.text:10034691 8B 4D E4 mov ecx, [ebp+var_1C] ; jumptable 10034537 case 2 | |
.text:10034694 0F B7 11 movzx edx, word ptr [ecx] | |
.text:10034697 03 55 FC add edx, [ebp+var_4] | |
.text:1003469A 89 55 FC mov [ebp+var_4], edx | |
.text:1003469D EB 23 jmp short loc_100346C2 ; jumptable 10034537 default case | |
.text:1003469F ; --------------------------------------------------------------------------- | |
.text:1003469F | |
.text:1003469F loc_1003469F: ; CODE XREF: HashFunction+487j | |
.text:1003469F ; DATA XREF: .text:off_10034A90o | |
.text:1003469F 8B 45 E8 mov eax, [ebp+var_18] ; jumptable 10034537 case 1 | |
.text:100346A2 0F B6 08 movzx ecx, byte ptr [eax] | |
.text:100346A5 03 4D FC add ecx, [ebp+var_4] | |
.text:100346A8 89 4D FC mov [ebp+var_4], ecx | |
.text:100346AB EB 15 jmp short loc_100346C2 ; jumptable 10034537 default case | |
.text:100346AD ; --------------------------------------------------------------------------- | |
.text:100346AD | |
.text:100346AD loc_100346AD: ; CODE XREF: HashFunction+487j | |
.text:100346AD ; DATA XREF: .text:off_10034A90o | |
.text:100346AD 8B 55 10 mov edx, [ebp+hashH] ; jumptable 10034537 case 0 | |
.text:100346B0 8B 45 F0 mov eax, [ebp+var_10] | |
.text:100346B3 89 02 mov [edx], eax | |
.text:100346B5 8B 4D 14 mov ecx, [ebp+hashL] | |
.text:100346B8 8B 55 F4 mov edx, [ebp+var_C] | |
.text:100346BB 89 11 mov [ecx], edx | |
.text:100346BD E9 96 03 00 00 jmp loc_10034A58 | |
.text:100346C2 ; --------------------------------------------------------------------------- | |
.text:100346C2 | |
.text:100346C2 loc_100346C2: ; CODE XREF: HashFunction+47Ej | |
.text:100346C2 ; HashFunction+4D8j ... | |
.text:100346C2 E9 A8 02 00 00 jmp loc_1003496F ; jumptable 10034537 default case | |
.text:100346C7 ; --------------------------------------------------------------------------- | |
.text:100346C7 | |
.text:100346C7 loc_100346C7: ; CODE XREF: HashFunction+313j | |
.text:100346C7 8B 45 08 mov eax, [ebp+pInputString] | |
.text:100346CA 89 45 E0 mov [ebp+var_20], eax | |
.text:100346CD | |
.text:100346CD loc_100346CD: ; CODE XREF: HashFunction+7D3j | |
.text:100346CD 83 7D 0C 0C cmp [ebp+inputLength], 0Ch | |
.text:100346D1 0F 86 B1 01 00 00 jbe loc_10034888 | |
.text:100346D7 8B 4D E0 mov ecx, [ebp+var_20] | |
.text:100346DA 0F B6 11 movzx edx, byte ptr [ecx] | |
.text:100346DD 03 55 FC add edx, [ebp+var_4] | |
.text:100346E0 89 55 FC mov [ebp+var_4], edx | |
.text:100346E3 8B 45 E0 mov eax, [ebp+var_20] | |
.text:100346E6 0F B6 48 01 movzx ecx, byte ptr [eax+1] | |
.text:100346EA C1 E1 08 shl ecx, 8 | |
.text:100346ED 03 4D FC add ecx, [ebp+var_4] | |
.text:100346F0 89 4D FC mov [ebp+var_4], ecx | |
.text:100346F3 8B 55 E0 mov edx, [ebp+var_20] | |
.text:100346F6 0F B6 42 02 movzx eax, byte ptr [edx+2] | |
.text:100346FA C1 E0 10 shl eax, 10h | |
.text:100346FD 03 45 FC add eax, [ebp+var_4] | |
.text:10034700 89 45 FC mov [ebp+var_4], eax | |
.text:10034703 8B 4D E0 mov ecx, [ebp+var_20] | |
.text:10034706 0F B6 51 03 movzx edx, byte ptr [ecx+3] | |
.text:1003470A C1 E2 18 shl edx, 18h | |
.text:1003470D 03 55 FC add edx, [ebp+var_4] | |
.text:10034710 89 55 FC mov [ebp+var_4], edx | |
.text:10034713 8B 45 E0 mov eax, [ebp+var_20] | |
.text:10034716 0F B6 48 04 movzx ecx, byte ptr [eax+4] | |
.text:1003471A 03 4D F4 add ecx, [ebp+var_C] | |
.text:1003471D 89 4D F4 mov [ebp+var_C], ecx | |
.text:10034720 8B 55 E0 mov edx, [ebp+var_20] | |
.text:10034723 0F B6 42 05 movzx eax, byte ptr [edx+5] | |
.text:10034727 C1 E0 08 shl eax, 8 | |
.text:1003472A 03 45 F4 add eax, [ebp+var_C] | |
.text:1003472D 89 45 F4 mov [ebp+var_C], eax | |
.text:10034730 8B 4D E0 mov ecx, [ebp+var_20] | |
.text:10034733 0F B6 51 06 movzx edx, byte ptr [ecx+6] | |
.text:10034737 C1 E2 10 shl edx, 10h | |
.text:1003473A 03 55 F4 add edx, [ebp+var_C] | |
.text:1003473D 89 55 F4 mov [ebp+var_C], edx | |
.text:10034740 8B 45 E0 mov eax, [ebp+var_20] | |
.text:10034743 0F B6 48 07 movzx ecx, byte ptr [eax+7] | |
.text:10034747 C1 E1 18 shl ecx, 18h | |
.text:1003474A 03 4D F4 add ecx, [ebp+var_C] | |
.text:1003474D 89 4D F4 mov [ebp+var_C], ecx | |
.text:10034750 8B 55 E0 mov edx, [ebp+var_20] | |
.text:10034753 0F B6 42 08 movzx eax, byte ptr [edx+8] | |
.text:10034757 03 45 F0 add eax, [ebp+var_10] | |
.text:1003475A 89 45 F0 mov [ebp+var_10], eax | |
.text:1003475D 8B 4D E0 mov ecx, [ebp+var_20] | |
.text:10034760 0F B6 51 09 movzx edx, byte ptr [ecx+9] | |
.text:10034764 C1 E2 08 shl edx, 8 | |
.text:10034767 03 55 F0 add edx, [ebp+var_10] | |
.text:1003476A 89 55 F0 mov [ebp+var_10], edx | |
.text:1003476D 8B 45 E0 mov eax, [ebp+var_20] | |
.text:10034770 0F B6 48 0A movzx ecx, byte ptr [eax+0Ah] | |
.text:10034774 C1 E1 10 shl ecx, 10h | |
.text:10034777 03 4D F0 add ecx, [ebp+var_10] | |
.text:1003477A 89 4D F0 mov [ebp+var_10], ecx | |
.text:1003477D 8B 55 E0 mov edx, [ebp+var_20] | |
.text:10034780 0F B6 42 0B movzx eax, byte ptr [edx+0Bh] | |
.text:10034784 C1 E0 18 shl eax, 18h | |
.text:10034787 03 45 F0 add eax, [ebp+var_10] | |
.text:1003478A 89 45 F0 mov [ebp+var_10], eax | |
.text:1003478D 8B 4D FC mov ecx, [ebp+var_4] | |
.text:10034790 2B 4D F0 sub ecx, [ebp+var_10] | |
.text:10034793 89 4D FC mov [ebp+var_4], ecx | |
.text:10034796 8B 55 F0 mov edx, [ebp+var_10] | |
.text:10034799 C1 E2 04 shl edx, 4 | |
.text:1003479C 8B 45 F0 mov eax, [ebp+var_10] | |
.text:1003479F C1 E8 1C shr eax, 1Ch | |
.text:100347A2 33 D0 xor edx, eax | |
.text:100347A4 33 55 FC xor edx, [ebp+var_4] | |
.text:100347A7 89 55 FC mov [ebp+var_4], edx | |
.text:100347AA 8B 4D F0 mov ecx, [ebp+var_10] | |
.text:100347AD 03 4D F4 add ecx, [ebp+var_C] | |
.text:100347B0 89 4D F0 mov [ebp+var_10], ecx | |
.text:100347B3 8B 55 F4 mov edx, [ebp+var_C] | |
.text:100347B6 2B 55 FC sub edx, [ebp+var_4] | |
.text:100347B9 89 55 F4 mov [ebp+var_C], edx | |
.text:100347BC 8B 45 FC mov eax, [ebp+var_4] | |
.text:100347BF C1 E0 06 shl eax, 6 | |
.text:100347C2 8B 4D FC mov ecx, [ebp+var_4] | |
.text:100347C5 C1 E9 1A shr ecx, 1Ah | |
.text:100347C8 33 C1 xor eax, ecx | |
.text:100347CA 33 45 F4 xor eax, [ebp+var_C] | |
.text:100347CD 89 45 F4 mov [ebp+var_C], eax | |
.text:100347D0 8B 55 FC mov edx, [ebp+var_4] | |
.text:100347D3 03 55 F0 add edx, [ebp+var_10] | |
.text:100347D6 89 55 FC mov [ebp+var_4], edx | |
.text:100347D9 8B 45 F0 mov eax, [ebp+var_10] | |
.text:100347DC 2B 45 F4 sub eax, [ebp+var_C] | |
.text:100347DF 89 45 F0 mov [ebp+var_10], eax | |
.text:100347E2 8B 4D F4 mov ecx, [ebp+var_C] | |
.text:100347E5 C1 E1 08 shl ecx, 8 | |
.text:100347E8 8B 55 F4 mov edx, [ebp+var_C] | |
.text:100347EB C1 EA 18 shr edx, 18h | |
.text:100347EE 33 CA xor ecx, edx | |
.text:100347F0 33 4D F0 xor ecx, [ebp+var_10] | |
.text:100347F3 89 4D F0 mov [ebp+var_10], ecx | |
.text:100347F6 8B 45 F4 mov eax, [ebp+var_C] | |
.text:100347F9 03 45 FC add eax, [ebp+var_4] | |
.text:100347FC 89 45 F4 mov [ebp+var_C], eax | |
.text:100347FF 8B 4D FC mov ecx, [ebp+var_4] | |
.text:10034802 2B 4D F0 sub ecx, [ebp+var_10] | |
.text:10034805 89 4D FC mov [ebp+var_4], ecx | |
.text:10034808 8B 55 F0 mov edx, [ebp+var_10] | |
.text:1003480B C1 E2 10 shl edx, 10h | |
.text:1003480E 8B 45 F0 mov eax, [ebp+var_10] | |
.text:10034811 C1 E8 10 shr eax, 10h | |
.text:10034814 33 D0 xor edx, eax | |
.text:10034816 33 55 FC xor edx, [ebp+var_4] | |
.text:10034819 89 55 FC mov [ebp+var_4], edx | |
.text:1003481C 8B 4D F0 mov ecx, [ebp+var_10] | |
.text:1003481F 03 4D F4 add ecx, [ebp+var_C] | |
.text:10034822 89 4D F0 mov [ebp+var_10], ecx | |
.text:10034825 8B 55 F4 mov edx, [ebp+var_C] | |
.text:10034828 2B 55 FC sub edx, [ebp+var_4] | |
.text:1003482B 89 55 F4 mov [ebp+var_C], edx | |
.text:1003482E 8B 45 FC mov eax, [ebp+var_4] | |
.text:10034831 C1 E0 13 shl eax, 13h | |
.text:10034834 8B 4D FC mov ecx, [ebp+var_4] | |
.text:10034837 C1 E9 0D shr ecx, 0Dh | |
.text:1003483A 33 C1 xor eax, ecx | |
.text:1003483C 33 45 F4 xor eax, [ebp+var_C] | |
.text:1003483F 89 45 F4 mov [ebp+var_C], eax | |
.text:10034842 8B 55 FC mov edx, [ebp+var_4] | |
.text:10034845 03 55 F0 add edx, [ebp+var_10] | |
.text:10034848 89 55 FC mov [ebp+var_4], edx | |
.text:1003484B 8B 45 F0 mov eax, [ebp+var_10] | |
.text:1003484E 2B 45 F4 sub eax, [ebp+var_C] | |
.text:10034851 89 45 F0 mov [ebp+var_10], eax | |
.text:10034854 8B 4D F4 mov ecx, [ebp+var_C] | |
.text:10034857 C1 E1 04 shl ecx, 4 | |
.text:1003485A 8B 55 F4 mov edx, [ebp+var_C] | |
.text:1003485D C1 EA 1C shr edx, 1Ch | |
.text:10034860 33 CA xor ecx, edx | |
.text:10034862 33 4D F0 xor ecx, [ebp+var_10] | |
.text:10034865 89 4D F0 mov [ebp+var_10], ecx | |
.text:10034868 8B 45 F4 mov eax, [ebp+var_C] | |
.text:1003486B 03 45 FC add eax, [ebp+var_4] | |
.text:1003486E 89 45 F4 mov [ebp+var_C], eax | |
.text:10034871 8B 4D 0C mov ecx, [ebp+inputLength] | |
.text:10034874 83 E9 0C sub ecx, 0Ch | |
.text:10034877 89 4D 0C mov [ebp+inputLength], ecx | |
.text:1003487A 8B 55 E0 mov edx, [ebp+var_20] | |
.text:1003487D 83 C2 0C add edx, 0Ch | |
.text:10034880 89 55 E0 mov [ebp+var_20], edx | |
.text:10034883 E9 45 FE FF FF jmp loc_100346CD | |
.text:10034888 ; --------------------------------------------------------------------------- | |
.text:10034888 | |
.text:10034888 loc_10034888: ; CODE XREF: HashFunction+621j | |
.text:10034888 8B 45 0C mov eax, [ebp+inputLength] | |
.text:1003488B 89 45 D4 mov [ebp+var_2C], eax | |
.text:1003488E 83 7D D4 0C cmp [ebp+var_2C], 0Ch ; switch 13 cases | |
.text:10034892 0F 87 D7 00 00 00 ja loc_1003496F ; jumptable 1003489B default case | |
.text:10034898 8B 4D D4 mov ecx, [ebp+var_2C] | |
.text:1003489B FF 24 8D C4 4A 03 10 jmp ds:off_10034AC4[ecx*4] ; switch jump | |
.text:100348A2 | |
.text:100348A2 loc_100348A2: ; DATA XREF: .text:off_10034AC4o | |
.text:100348A2 8B 55 E0 mov edx, [ebp+var_20] ; jumptable 1003489B case 12 | |
.text:100348A5 0F B6 42 0B movzx eax, byte ptr [edx+0Bh] | |
.text:100348A9 C1 E0 18 shl eax, 18h | |
.text:100348AC 03 45 F0 add eax, [ebp+var_10] | |
.text:100348AF 89 45 F0 mov [ebp+var_10], eax | |
.text:100348B2 | |
.text:100348B2 loc_100348B2: ; CODE XREF: HashFunction+7EBj | |
.text:100348B2 ; DATA XREF: .text:off_10034AC4o | |
.text:100348B2 8B 4D E0 mov ecx, [ebp+var_20] ; jumptable 1003489B case 11 | |
.text:100348B5 0F B6 51 0A movzx edx, byte ptr [ecx+0Ah] | |
.text:100348B9 C1 E2 10 shl edx, 10h | |
.text:100348BC 03 55 F0 add edx, [ebp+var_10] | |
.text:100348BF 89 55 F0 mov [ebp+var_10], edx | |
.text:100348C2 | |
.text:100348C2 loc_100348C2: ; CODE XREF: HashFunction+7EBj | |
.text:100348C2 ; DATA XREF: .text:off_10034AC4o | |
.text:100348C2 8B 45 E0 mov eax, [ebp+var_20] ; jumptable 1003489B case 10 | |
.text:100348C5 0F B6 48 09 movzx ecx, byte ptr [eax+9] | |
.text:100348C9 C1 E1 08 shl ecx, 8 | |
.text:100348CC 03 4D F0 add ecx, [ebp+var_10] | |
.text:100348CF 89 4D F0 mov [ebp+var_10], ecx | |
.text:100348D2 | |
.text:100348D2 loc_100348D2: ; CODE XREF: HashFunction+7EBj | |
.text:100348D2 ; DATA XREF: .text:off_10034AC4o | |
.text:100348D2 8B 55 E0 mov edx, [ebp+var_20] ; jumptable 1003489B case 9 | |
.text:100348D5 0F B6 42 08 movzx eax, byte ptr [edx+8] | |
.text:100348D9 03 45 F0 add eax, [ebp+var_10] | |
.text:100348DC 89 45 F0 mov [ebp+var_10], eax | |
.text:100348DF | |
.text:100348DF loc_100348DF: ; CODE XREF: HashFunction+7EBj | |
.text:100348DF ; DATA XREF: .text:off_10034AC4o | |
.text:100348DF 8B 4D E0 mov ecx, [ebp+var_20] ; jumptable 1003489B case 8 | |
.text:100348E2 0F B6 51 07 movzx edx, byte ptr [ecx+7] | |
.text:100348E6 C1 E2 18 shl edx, 18h | |
.text:100348E9 03 55 F4 add edx, [ebp+var_C] | |
.text:100348EC 89 55 F4 mov [ebp+var_C], edx | |
.text:100348EF | |
.text:100348EF loc_100348EF: ; CODE XREF: HashFunction+7EBj | |
.text:100348EF ; DATA XREF: .text:off_10034AC4o | |
.text:100348EF 8B 45 E0 mov eax, [ebp+var_20] ; jumptable 1003489B case 7 | |
.text:100348F2 0F B6 48 06 movzx ecx, byte ptr [eax+6] | |
.text:100348F6 C1 E1 10 shl ecx, 10h | |
.text:100348F9 03 4D F4 add ecx, [ebp+var_C] | |
.text:100348FC 89 4D F4 mov [ebp+var_C], ecx | |
.text:100348FF | |
.text:100348FF loc_100348FF: ; CODE XREF: HashFunction+7EBj | |
.text:100348FF ; DATA XREF: .text:off_10034AC4o | |
.text:100348FF 8B 55 E0 mov edx, [ebp+var_20] ; jumptable 1003489B case 6 | |
.text:10034902 0F B6 42 05 movzx eax, byte ptr [edx+5] | |
.text:10034906 C1 E0 08 shl eax, 8 | |
.text:10034909 03 45 F4 add eax, [ebp+var_C] | |
.text:1003490C 89 45 F4 mov [ebp+var_C], eax | |
.text:1003490F | |
.text:1003490F loc_1003490F: ; CODE XREF: HashFunction+7EBj | |
.text:1003490F ; DATA XREF: .text:off_10034AC4o | |
.text:1003490F 8B 4D E0 mov ecx, [ebp+var_20] ; jumptable 1003489B case 5 | |
.text:10034912 0F B6 51 04 movzx edx, byte ptr [ecx+4] | |
.text:10034916 03 55 F4 add edx, [ebp+var_C] | |
.text:10034919 89 55 F4 mov [ebp+var_C], edx | |
.text:1003491C | |
.text:1003491C loc_1003491C: ; CODE XREF: HashFunction+7EBj | |
.text:1003491C ; DATA XREF: .text:off_10034AC4o | |
.text:1003491C 8B 45 E0 mov eax, [ebp+var_20] ; jumptable 1003489B case 4 | |
.text:1003491F 0F B6 48 03 movzx ecx, byte ptr [eax+3] | |
.text:10034923 C1 E1 18 shl ecx, 18h | |
.text:10034926 03 4D FC add ecx, [ebp+var_4] | |
.text:10034929 89 4D FC mov [ebp+var_4], ecx | |
.text:1003492C | |
.text:1003492C loc_1003492C: ; CODE XREF: HashFunction+7EBj | |
.text:1003492C ; DATA XREF: .text:off_10034AC4o | |
.text:1003492C 8B 55 E0 mov edx, [ebp+var_20] ; jumptable 1003489B case 3 | |
.text:1003492F 0F B6 42 02 movzx eax, byte ptr [edx+2] | |
.text:10034933 C1 E0 10 shl eax, 10h | |
.text:10034936 03 45 FC add eax, [ebp+var_4] | |
.text:10034939 89 45 FC mov [ebp+var_4], eax | |
.text:1003493C | |
.text:1003493C loc_1003493C: ; CODE XREF: HashFunction+7EBj | |
.text:1003493C ; DATA XREF: .text:off_10034AC4o | |
.text:1003493C 8B 4D E0 mov ecx, [ebp+var_20] ; jumptable 1003489B case 2 | |
.text:1003493F 0F B6 51 01 movzx edx, byte ptr [ecx+1] | |
.text:10034943 C1 E2 08 shl edx, 8 | |
.text:10034946 03 55 FC add edx, [ebp+var_4] | |
.text:10034949 89 55 FC mov [ebp+var_4], edx | |
.text:1003494C | |
.text:1003494C loc_1003494C: ; CODE XREF: HashFunction+7EBj | |
.text:1003494C ; DATA XREF: .text:off_10034AC4o | |
.text:1003494C 8B 45 E0 mov eax, [ebp+var_20] ; jumptable 1003489B case 1 | |
.text:1003494F 0F B6 08 movzx ecx, byte ptr [eax] | |
.text:10034952 03 4D FC add ecx, [ebp+var_4] | |
.text:10034955 89 4D FC mov [ebp+var_4], ecx | |
.text:10034958 EB 15 jmp short loc_1003496F ; jumptable 1003489B default case | |
.text:1003495A ; --------------------------------------------------------------------------- | |
.text:1003495A | |
.text:1003495A loc_1003495A: ; CODE XREF: HashFunction+7EBj | |
.text:1003495A ; DATA XREF: .text:off_10034AC4o | |
.text:1003495A 8B 55 10 mov edx, [ebp+hashH] ; jumptable 1003489B case 0 | |
.text:1003495D 8B 45 F0 mov eax, [ebp+var_10] | |
.text:10034960 89 02 mov [edx], eax | |
.text:10034962 8B 4D 14 mov ecx, [ebp+hashL] | |
.text:10034965 8B 55 F4 mov edx, [ebp+var_C] | |
.text:10034968 89 11 mov [ecx], edx | |
.text:1003496A E9 E9 00 00 00 jmp loc_10034A58 | |
.text:1003496F ; --------------------------------------------------------------------------- | |
.text:1003496F | |
.text:1003496F loc_1003496F: ; CODE XREF: HashFunction:loc_100343BCj | |
.text:1003496F ; HashFunction:loc_100346C2j ... | |
.text:1003496F 8B 45 F0 mov eax, [ebp+var_10] ; jumptable 1003489B default case | |
.text:10034972 33 45 F4 xor eax, [ebp+var_C] | |
.text:10034975 89 45 F0 mov [ebp+var_10], eax | |
.text:10034978 8B 4D F4 mov ecx, [ebp+var_C] | |
.text:1003497B C1 E1 0E shl ecx, 0Eh | |
.text:1003497E 8B 55 F4 mov edx, [ebp+var_C] | |
.text:10034981 C1 EA 12 shr edx, 12h | |
.text:10034984 33 CA xor ecx, edx | |
.text:10034986 8B 45 F0 mov eax, [ebp+var_10] | |
.text:10034989 2B C1 sub eax, ecx | |
.text:1003498B 89 45 F0 mov [ebp+var_10], eax | |
.text:1003498E 8B 4D FC mov ecx, [ebp+var_4] | |
.text:10034991 33 4D F0 xor ecx, [ebp+var_10] | |
.text:10034994 89 4D FC mov [ebp+var_4], ecx | |
.text:10034997 8B 55 F0 mov edx, [ebp+var_10] | |
.text:1003499A C1 E2 0B shl edx, 0Bh | |
.text:1003499D 8B 45 F0 mov eax, [ebp+var_10] | |
.text:100349A0 C1 E8 15 shr eax, 15h | |
.text:100349A3 33 D0 xor edx, eax | |
.text:100349A5 8B 4D FC mov ecx, [ebp+var_4] | |
.text:100349A8 2B CA sub ecx, edx | |
.text:100349AA 89 4D FC mov [ebp+var_4], ecx | |
.text:100349AD 8B 55 F4 mov edx, [ebp+var_C] | |
.text:100349B0 33 55 FC xor edx, [ebp+var_4] | |
.text:100349B3 89 55 F4 mov [ebp+var_C], edx | |
.text:100349B6 8B 45 FC mov eax, [ebp+var_4] | |
.text:100349B9 C1 E0 19 shl eax, 19h | |
.text:100349BC 8B 4D FC mov ecx, [ebp+var_4] | |
.text:100349BF C1 E9 07 shr ecx, 7 | |
.text:100349C2 33 C1 xor eax, ecx | |
.text:100349C4 8B 55 F4 mov edx, [ebp+var_C] | |
.text:100349C7 2B D0 sub edx, eax | |
.text:100349C9 89 55 F4 mov [ebp+var_C], edx | |
.text:100349CC 8B 45 F0 mov eax, [ebp+var_10] | |
.text:100349CF 33 45 F4 xor eax, [ebp+var_C] | |
.text:100349D2 89 45 F0 mov [ebp+var_10], eax | |
.text:100349D5 8B 4D F4 mov ecx, [ebp+var_C] | |
.text:100349D8 C1 E1 10 shl ecx, 10h | |
.text:100349DB 8B 55 F4 mov edx, [ebp+var_C] | |
.text:100349DE C1 EA 10 shr edx, 10h | |
.text:100349E1 33 CA xor ecx, edx | |
.text:100349E3 8B 45 F0 mov eax, [ebp+var_10] | |
.text:100349E6 2B C1 sub eax, ecx | |
.text:100349E8 89 45 F0 mov [ebp+var_10], eax | |
.text:100349EB 8B 4D FC mov ecx, [ebp+var_4] | |
.text:100349EE 33 4D F0 xor ecx, [ebp+var_10] | |
.text:100349F1 89 4D FC mov [ebp+var_4], ecx | |
.text:100349F4 8B 55 F0 mov edx, [ebp+var_10] | |
.text:100349F7 C1 E2 04 shl edx, 4 | |
.text:100349FA 8B 45 F0 mov eax, [ebp+var_10] | |
.text:100349FD C1 E8 1C shr eax, 1Ch | |
.text:10034A00 33 D0 xor edx, eax | |
.text:10034A02 8B 4D FC mov ecx, [ebp+var_4] | |
.text:10034A05 2B CA sub ecx, edx | |
.text:10034A07 89 4D FC mov [ebp+var_4], ecx | |
.text:10034A0A 8B 55 F4 mov edx, [ebp+var_C] | |
.text:10034A0D 33 55 FC xor edx, [ebp+var_4] | |
.text:10034A10 89 55 F4 mov [ebp+var_C], edx | |
.text:10034A13 8B 45 FC mov eax, [ebp+var_4] | |
.text:10034A16 C1 E0 0E shl eax, 0Eh | |
.text:10034A19 8B 4D FC mov ecx, [ebp+var_4] | |
.text:10034A1C C1 E9 12 shr ecx, 12h | |
.text:10034A1F 33 C1 xor eax, ecx | |
.text:10034A21 8B 55 F4 mov edx, [ebp+var_C] | |
.text:10034A24 2B D0 sub edx, eax | |
.text:10034A26 89 55 F4 mov [ebp+var_C], edx | |
.text:10034A29 8B 45 F0 mov eax, [ebp+var_10] | |
.text:10034A2C 33 45 F4 xor eax, [ebp+var_C] | |
.text:10034A2F 89 45 F0 mov [ebp+var_10], eax | |
.text:10034A32 8B 4D F4 mov ecx, [ebp+var_C] | |
.text:10034A35 C1 E1 18 shl ecx, 18h | |
.text:10034A38 8B 55 F4 mov edx, [ebp+var_C] | |
.text:10034A3B C1 EA 08 shr edx, 8 | |
.text:10034A3E 33 CA xor ecx, edx | |
.text:10034A40 8B 45 F0 mov eax, [ebp+var_10] | |
.text:10034A43 2B C1 sub eax, ecx | |
.text:10034A45 89 45 F0 mov [ebp+var_10], eax | |
.text:10034A48 8B 4D 10 mov ecx, [ebp+hashH] | |
.text:10034A4B 8B 55 F0 mov edx, [ebp+var_10] | |
.text:10034A4E 89 11 mov [ecx], edx | |
.text:10034A50 8B 45 14 mov eax, [ebp+hashL] | |
.text:10034A53 8B 4D F4 mov ecx, [ebp+var_C] | |
.text:10034A56 89 08 mov [eax], ecx | |
.text:10034A58 | |
.text:10034A58 loc_10034A58: ; CODE XREF: HashFunction+307j | |
.text:10034A58 ; HashFunction+60Dj ... | |
.text:10034A58 8B E5 mov esp, ebp | |
.text:10034A5A 5D pop ebp | |
.text:10034A5B C3 retn | |
.text:10034A5B HashFunction endp |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment