Skip to content

Instantly share code, notes, and snippets.

@sprite2005
Created March 11, 2012 13:22
Show Gist options
  • Save sprite2005/2016464 to your computer and use it in GitHub Desktop.
Save sprite2005/2016464 to your computer and use it in GitHub Desktop.
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