rendered paste body.text:50C01000 ; int __cdecl sub_50C01000(size_t,void *inbuffer,size_t length,void *hash)
.text:50C01000 sub_50C01000 proc near ; CODE XREF: sub_50C069C8:loc_50C06B6Bp
.text:50C01000
.text:50C01000 var_138 = dword ptr -138h
.text:50C01000 var_4 = dword ptr -4
.text:50C01000 arg_0 = dword ptr 8
.text:50C01000 inbuffer = dword ptr 0Ch
.text:50C01000 length = dword ptr 10h
.text:50C01000 hash = dword ptr 14h
.text:50C01000
.text:50C01000 push ebp
.text:50C01001 mov ebp, esp
.text:50C01003 sub esp, 138h
.text:50C01009 and [ebp+var_4], 0
.text:50C0100D push esi
.text:50C0100E lea eax, [ebp+var_138]
.text:50C01014 push eax
.text:50C01015 push offset unk_50C170B0
.text:50C0101A call sub_50C01427
.text:50C0101F push [ebp+length]
.text:50C01022 lea eax, [ebp+var_138]
.text:50C01028 push [ebp+inbuffer]
.text:50C0102B push [ebp+hash] ; void *
.text:50C0102E push eax ; void *
.text:50C0102F call sub_50C013E8
.text:50C01034 mov esi, [ebp+arg_0]
.text:50C01037 add esp, 18h
.text:50C0103A cmp [ebp+length], 0
.text:50C0103E jz short loc_50C0105A
.text:50C01040 lea eax, [ebp+var_4]
.text:50C01043 push eax ; int
.text:50C01044 push esi ; size_t
.text:50C01045 push [ebp+length] ; size_t
.text:50C01048 lea eax, [ebp+var_138]
.text:50C0104E push [ebp+inbuffer] ; void *
.text:50C01051 push eax ; int
.text:50C01052 call sub_50C022D6
.text:50C01057 add esp, 14h
.text:50C0105A
.text:50C0105A loc_50C0105A: ; CODE XREF: sub_50C01000+3Ej
.text:50C0105A lea eax, [ebp+var_4]
.text:50C0105D push eax
.text:50C0105E mov eax, [ebp+var_4]
.text:50C01061 add eax, esi
.text:50C01063 push eax
.text:50C01064 lea eax, [ebp+var_138]
.text:50C0106A push eax
.text:50C0106B call sub_50C02423
.text:50C01070 add esp, 0Ch
.text:50C01073 pop esi
.text:50C01074 leave
.text:50C01075 retn
.text:50C01075 sub_50C01000 endp
.text:50C01427 sub_50C01427 proc near ; CODE XREF: sub_50C01000+1Ap
.text:50C01427 ; sub_50C01076+1Ap
.text:50C01427
.text:50C01427 arg_0 = dword ptr 4
.text:50C01427 arg_4 = dword ptr 8
.text:50C01427
.text:50C01427 mov eax, [esp+arg_4]
.text:50C0142B mov dword ptr [eax+24h], 8
.text:50C01432 add eax, 28h
.text:50C01435 push eax
.text:50C01436 push [esp+4+arg_0]
.text:50C0143A call sub_50C01442
.text:50C0143F pop ecx
.text:50C01440 pop ecx
.text:50C01441 retn
.text:50C01441 sub_50C01427 endp
.text:50C01442 sub_50C01442 proc near ; CODE XREF: sub_50C01427+13p
.text:50C01442
.text:50C01442 arg_0 = dword ptr 8
.text:50C01442 arg_4 = dword ptr 0Ch
.text:50C01442
.text:50C01442 push ebp
.text:50C01443 mov ebp, esp
.text:50C01445 cmp byte_50C1CA0C, 0
.text:50C0144C jnz short loc_50C01453
.text:50C0144E call sub_50C010EC
.text:50C01453
.text:50C01453 loc_50C01453: ; CODE XREF: sub_50C01442+Aj
.text:50C01453 mov eax, [ebp+arg_0]
.text:50C01456 mov edx, [eax]
.text:50C01458 mov ecx, [ebp+arg_4]
.text:50C0145B mov [ecx], edx
.text:50C0145D mov edx, [eax+10h]
.text:50C01460 push ebx
.text:50C01461 mov [ecx+4], edx
.text:50C01464 mov edx, [eax+20h]
.text:50C01467 push esi
.text:50C01468 lea esi, [ecx+4]
.text:50C0146B mov [ecx+8], edx
.text:50C0146E mov edx, [eax+30h]
.text:50C01471 mov [ecx+0Ch], edx
.text:50C01474 mov edx, [eax+40h]
.text:50C01477 mov [ecx+10h], edx
.text:50C0147A mov edx, [eax+50h]
.text:50C0147D mov [ecx+14h], edx
.text:50C01480 mov edx, [eax+60h]
.text:50C01483 mov [ecx+18h], edx
.text:50C01486 mov eax, [eax+70h]
.text:50C01489 push edi
.text:50C0148A mov [ecx+1Ch], eax
.text:50C0148D mov edi, eax
.text:50C0148F mov [ebp+arg_0], offset unk_50C1C5E4
.text:50C01496
.text:50C01496 loc_50C01496: ; CODE XREF: sub_50C01442+11Fj
.text:50C01496 push 8 ; int
.text:50C01498 push edi ; unsigned __int32
.text:50C01499 call _lrotr
.text:50C0149E mov ebx, eax
.text:50C014A0 push 8 ; int
.text:50C014A2 push edi ; unsigned __int32
.text:50C014A3 shr ebx, 18h
.text:50C014A6 call _lrotr
.text:50C014AB mov ebx, dword_50C1A1E4[ebx*4]
.text:50C014B2 shr eax, 10h
.text:50C014B5 movzx eax, al
.text:50C014B8 xor ebx, dword_50C19DE4[eax*4]
.text:50C014BF push 8 ; int
.text:50C014C1 push edi ; unsigned __int32
.text:50C014C2 call _lrotr
.text:50C014C7 shr eax, 8
.text:50C014CA movzx eax, al
.text:50C014CD xor ebx, dword_50C199E4[eax*4]
.text:50C014D4 push 8 ; int
.text:50C014D6 push edi ; unsigned __int32
.text:50C014D7 call _lrotr
.text:50C014DC movzx eax, al
.text:50C014DF xor ebx, dword_50C195E4[eax*4]
.text:50C014E6 mov eax, [ebp+arg_0]
.text:50C014E9 xor ebx, [eax]
.text:50C014EB lea eax, [esi+20h]
.text:50C014EE xor ebx, [esi-4]
.text:50C014F1 add [ebp+arg_0], 4
.text:50C014F5 mov [esi+1Ch], ebx
.text:50C014F8 xor ebx, [esi]
.text:50C014FA add esp, 20h
.text:50C014FD mov [eax], ebx
.text:50C014FF xor ebx, [esi+4]
.text:50C01502 mov [esi+24h], ebx
.text:50C01505 xor ebx, [esi+8]
.text:50C01508 mov [esi+28h], ebx
.text:50C0150B mov ecx, ebx
.text:50C0150D shr ecx, 18h
.text:50C01510 mov edi, dword_50C1A1E4[ecx*4]
.text:50C01517 mov edx, ebx
.text:50C01519 shr edx, 10h
.text:50C0151C mov ecx, ebx
.text:50C0151E shr ecx, 8
.text:50C01521 movzx edx, dl
.text:50C01524 xor edi, dword_50C19DE4[edx*4]
.text:50C0152B movzx ecx, cl
.text:50C0152E xor edi, dword_50C199E4[ecx*4]
.text:50C01535 xor ecx, ecx
.text:50C01537 mov cl, bl
.text:50C01539 xor edi, dword_50C195E4[ecx*4]
.text:50C01540 xor edi, [esi+0Ch]
.text:50C01543 mov [esi+2Ch], edi
.text:50C01546 xor edi, [esi+10h]
.text:50C01549 mov [esi+30h], edi
.text:50C0154C xor edi, [esi+14h]
.text:50C0154F mov [esi+34h], edi
.text:50C01552 xor edi, [esi+18h]
.text:50C01555 cmp [ebp+arg_0], offset unk_50C1C600
.text:50C0155C mov [esi+38h], edi
.text:50C0155F mov esi, eax
.text:50C01561 jb loc_50C01496
.text:50C01567 pop edi
.text:50C01568 pop esi
.text:50C01569 pop ebx
.text:50C0156A pop ebp
.text:50C0156B retn
.text:50C0156B sub_50C01442 endp
.text:50C010EC sub_50C010EC proc near ; CODE XREF: sub_50C01442+Cp
.text:50C010EC
.text:50C010EC var_4 = dword ptr -4
.text:50C010EC
.text:50C010EC push ecx
.text:50C010ED and byte_50C1C913, 0
.text:50C010F4 push ebx
.text:50C010F5 push ebp
.text:50C010F6 push esi
.text:50C010F7 push edi
.text:50C010F8 push 1
.text:50C010FA xor ecx, ecx
.text:50C010FC pop eax
.text:50C010FD
.text:50C010FD loc_50C010FD: ; CODE XREF: sub_50C010EC+41j
.text:50C010FD mov edx, eax
.text:50C010FF and dl, 80h
.text:50C01102 neg dl
.text:50C01104 sbb dl, dl
.text:50C01106 mov bl, al
.text:50C01108 shl bl, 1
.text:50C0110A mov byte_50C1C80C[ecx], al
.text:50C01110 mov byte_50C1C90C[eax], cl
.text:50C01116 movzx esi, bl
.text:50C01119 and edx, 1Bh
.text:50C0111C movzx edx, dl
.text:50C0111F xor edx, esi
.text:50C01121 movzx eax, al
.text:50C01124 xor eax, edx
.text:50C01126 inc ecx
.text:50C01127 cmp ecx, 100h
.text:50C0112D jb short loc_50C010FD
.text:50C0112F and byte_50C1C90D, 0
.text:50C01136 push 1
.text:50C01138 pop eax
.text:50C01139 mov ecx, offset unk_50C1C5E4
.text:50C0113E
.text:50C0113E loc_50C0113E: ; CODE XREF: sub_50C010EC+73j
.text:50C0113E mov edx, eax
.text:50C01140 and dl, 80h
.text:50C01143 neg dl
.text:50C01145 sbb dl, dl
.text:50C01147 mov [ecx], eax
.text:50C01149 shl al, 1
.text:50C0114B movzx eax, al
.text:50C0114E add ecx, 4
.text:50C01151 and edx, 1Bh
.text:50C01154 movzx edx, dl
.text:50C01157 xor eax, edx
.text:50C01159 cmp ecx, offset byte_50C1C60C
.text:50C0115F jb short loc_50C0113E
.text:50C01161 xor ebx, ebx
.text:50C01163
.text:50C01163 loc_50C01163: ; CODE XREF: sub_50C010EC+F0j
.text:50C01163 test ebx, ebx
.text:50C01165 jz short loc_50C0117A
.text:50C01167 movzx eax, byte_50C1C90C[ebx]
.text:50C0116E mov ecx, offset unk_50C1C90B
.text:50C01173 sub ecx, eax
.text:50C01175 movzx eax, byte ptr [ecx]
.text:50C01178 jmp short loc_50C0117C
.text:50C0117A ; ---------------------------------------------------------------------------
.text:50C0117A
.text:50C0117A loc_50C0117A: ; CODE XREF: sub_50C010EC+79j
.text:50C0117A xor eax, eax
.text:50C0117C
.text:50C0117C loc_50C0117C: ; CODE XREF: sub_50C010EC+8Cj
.text:50C0117C xor edx, edx
.text:50C0117E mov dl, al
.text:50C01180 mov cl, dl
.text:50C01182 shl cl, 1
.text:50C01184 movzx ecx, cl
.text:50C01187 mov eax, edx
.text:50C01189 shr eax, 7
.text:50C0118C movzx eax, al
.text:50C0118F or eax, ecx
.text:50C01191 xor edx, eax
.text:50C01193 mov ecx, eax
.text:50C01195 shr ecx, 7
.text:50C01198 shl al, 1
.text:50C0119A movzx ecx, cl
.text:50C0119D movzx eax, al
.text:50C011A0 or ecx, eax
.text:50C011A2 xor edx, ecx
.text:50C011A4 mov eax, ecx
.text:50C011A6 shl cl, 1
.text:50C011A8 shr eax, 7
.text:50C011AB movzx ecx, cl
.text:50C011AE movzx eax, al
.text:50C011B1 or eax, ecx
.text:50C011B3 xor edx, eax
.text:50C011B5 mov ecx, eax
.text:50C011B7 shr ecx, 7
.text:50C011BA shl al, 1
.text:50C011BC movzx ecx, cl
.text:50C011BF movzx eax, al
.text:50C011C2 or ecx, eax
.text:50C011C4 xor ecx, edx
.text:50C011C6 xor ecx, 63h
.text:50C011C9 mov byte_50C1C70C[ebx], cl
.text:50C011CF mov byte_50C1C60C[ecx], bl
.text:50C011D5 inc ebx
.text:50C011D6 cmp ebx, 100h
.text:50C011DC jb short loc_50C01163
.text:50C011DE xor ebx, ebx
.text:50C011E0
.text:50C011E0 loc_50C011E0: ; CODE XREF: sub_50C010EC+2E9j
.text:50C011E0 movzx edi, byte_50C1C70C[ebx]
.text:50C011E7 mov esi, ebx
.text:50C011E9 push 8 ; int
.text:50C011EB shl esi, 2
.text:50C011EE push edi ; unsigned __int32
.text:50C011EF mov dword_50C195E4[esi], edi
.text:50C011F5 call _lrotl
.text:50C011FA push 10h ; int
.text:50C011FC push edi ; unsigned __int32
.text:50C011FD mov dword_50C199E4[esi], eax
.text:50C01203 call _lrotl
.text:50C01208 push 18h ; int
.text:50C0120A push edi ; unsigned __int32
.text:50C0120B mov dword_50C19DE4[esi], eax
.text:50C01211 call _lrotl
.text:50C01216 add esp, 18h
.text:50C01219 test edi, edi
.text:50C0121B mov dword_50C1A1E4[esi], eax
.text:50C01221 jz short loc_50C01244
.text:50C01223 movzx ecx, byte_50C1C90E
.text:50C0122A movzx eax, byte_50C1C90C[edi]
.text:50C01231 add eax, ecx
.text:50C01233 cdq
.text:50C01234 mov ecx, 0FFh
.text:50C01239 idiv ecx
.text:50C0123B movzx ecx, byte_50C1C80C[edx]
.text:50C01242 jmp short loc_50C01246
.text:50C01244 ; ---------------------------------------------------------------------------
.text:50C01244
.text:50C01244 loc_50C01244: ; CODE XREF: sub_50C010EC+135j
.text:50C01244 xor ecx, ecx
.text:50C01246
.text:50C01246 loc_50C01246: ; CODE XREF: sub_50C010EC+156j
.text:50C01246 test edi, edi
.text:50C01248 jz short loc_50C0126B
.text:50C0124A movzx edx, byte_50C1C90F
.text:50C01251 movzx eax, byte_50C1C90C[edi]
.text:50C01258 add eax, edx
.text:50C0125A cdq
.text:50C0125B mov ebp, 0FFh
.text:50C01260 idiv ebp
.text:50C01262 movzx eax, byte_50C1C80C[edx]
.text:50C01269 jmp short loc_50C0126D
.text:50C0126B ; ---------------------------------------------------------------------------
.text:50C0126B
.text:50C0126B loc_50C0126B: ; CODE XREF: sub_50C010EC+15Cj
.text:50C0126B xor eax, eax
.text:50C0126D
.text:50C0126D loc_50C0126D: ; CODE XREF: sub_50C010EC+17Dj
.text:50C0126D shl eax, 8
.text:50C01270 or eax, edi
.text:50C01272 shl eax, 8
.text:50C01275 or eax, edi
.text:50C01277 shl eax, 8
.text:50C0127A or eax, ecx
.text:50C0127C mov edi, eax
.text:50C0127E push 8 ; int
.text:50C01280 push edi ; unsigned __int32
.text:50C01281 mov dword_50C1B5E4[esi], edi
.text:50C01287 call _lrotl
.text:50C0128C push 10h ; int
.text:50C0128E push edi ; unsigned __int32
.text:50C0128F mov dword_50C1B9E4[esi], eax
.text:50C01295 call _lrotl
.text:50C0129A push 18h ; int
.text:50C0129C push edi ; unsigned __int32
.text:50C0129D mov dword_50C1BDE4[esi], eax
.text:50C012A3 call _lrotl
.text:50C012A8 movzx edi, byte_50C1C60C[ebx]
.text:50C012AF push 8 ; int
.text:50C012B1 push edi ; unsigned __int32
.text:50C012B2 mov dword_50C1C1E4[esi], eax
.text:50C012B8 mov dword_50C185E4[esi], edi
.text:50C012BE call _lrotl
.text:50C012C3 push 10h ; int
.text:50C012C5 push edi ; unsigned __int32
.text:50C012C6 mov dword_50C189E4[esi], eax
.text:50C012CC call _lrotl
.text:50C012D1 push 18h ; int
.text:50C012D3 push edi ; unsigned __int32
.text:50C012D4 mov dword_50C18DE4[esi], eax
.text:50C012DA call _lrotl
.text:50C012DF xor ebp, ebp
.text:50C012E1 add esp, 30h
.text:50C012E4 cmp edi, ebp
.text:50C012E6 mov dword_50C191E4[esi], eax
.text:50C012EC jz short loc_50C01313
.text:50C012EE movzx ecx, byte_50C1C91A
.text:50C012F5 movzx eax, byte_50C1C90C[edi]
.text:50C012FC add eax, ecx
.text:50C012FE cdq
.text:50C012FF mov ecx, 0FFh
.text:50C01304 idiv ecx
.text:50C01306 movzx eax, byte_50C1C80C[edx]
.text:50C0130D mov [esp+14h+var_4], eax
.text:50C01311 jmp short loc_50C01317
.text:50C01313 ; ---------------------------------------------------------------------------
.text:50C01313
.text:50C01313 loc_50C01313: ; CODE XREF: sub_50C010EC+200j
.text:50C01313 mov [esp+14h+var_4], ebp
.text:50C01317
.text:50C01317 loc_50C01317: ; CODE XREF: sub_50C010EC+225j
.text:50C01317 cmp edi, ebp
.text:50C01319 jz short loc_50C0133A
.text:50C0131B movzx ecx, byte_50C1C915
.text:50C01322 movzx eax, byte_50C1C90C[edi]
.text:50C01329 add eax, ecx
.text:50C0132B cdq
.text:50C0132C mov ecx, 0FFh
.text:50C01331 idiv ecx
.text:50C01333 movzx ebp, byte_50C1C80C[edx]
.text:50C0133A
.text:50C0133A loc_50C0133A: ; CODE XREF: sub_50C010EC+22Dj
.text:50C0133A test edi, edi
.text:50C0133C jz short loc_50C0135F
.text:50C0133E movzx ecx, byte_50C1C919
.text:50C01345 movzx eax, byte_50C1C90C[edi]
.text:50C0134C add eax, ecx
.text:50C0134E cdq
.text:50C0134F mov ecx, 0FFh
.text:50C01354 idiv ecx
.text:50C01356 movzx ecx, byte_50C1C80C[edx]
.text:50C0135D jmp short loc_50C01361
.text:50C0135F ; ---------------------------------------------------------------------------
.text:50C0135F
.text:50C0135F loc_50C0135F: ; CODE XREF: sub_50C010EC+250j
.text:50C0135F xor ecx, ecx
.text:50C01361
.text:50C01361 loc_50C01361: ; CODE XREF: sub_50C010EC+271j
.text:50C01361 test edi, edi
.text:50C01363 jz short loc_50C01386
.text:50C01365 movzx eax, byte_50C1C90C[edi]
.text:50C0136C movzx edx, byte_50C1C917
.text:50C01373 add eax, edx
.text:50C01375 cdq
.text:50C01376 mov edi, 0FFh
.text:50C0137B idiv edi
.text:50C0137D movzx eax, byte_50C1C80C[edx]
.text:50C01384 jmp short loc_50C01388
.text:50C01386 ; ---------------------------------------------------------------------------
.text:50C01386
.text:50C01386 loc_50C01386: ; CODE XREF: sub_50C010EC+277j
.text:50C01386 xor eax, eax
.text:50C01388
.text:50C01388 loc_50C01388: ; CODE XREF: sub_50C010EC+298j
.text:50C01388 shl eax, 8
.text:50C0138B or eax, ecx
.text:50C0138D shl eax, 8
.text:50C01390 or eax, ebp
.text:50C01392 shl eax, 8
.text:50C01395 or eax, [esp+14h+var_4]
.text:50C01399 push 8 ; int
.text:50C0139B mov edi, eax
.text:50C0139D push edi ; unsigned __int32
.text:50C0139E mov dword_50C1A5E4[esi], edi
.text:50C013A4 call _lrotl
.text:50C013A9 push 10h ; int
.text:50C013AB push edi ; unsigned __int32
.text:50C013AC mov dword_50C1A9E4[esi], eax
.text:50C013B2 call _lrotl
.text:50C013B7 push 18h ; int
.text:50C013B9 push edi ; unsigned __int32
.text:50C013BA mov dword_50C1ADE4[esi], eax
.text:50C013C0 call _lrotl
.text:50C013C5 add esp, 18h
.text:50C013C8 inc ebx
.text:50C013C9 cmp ebx, 100h
.text:50C013CF mov dword_50C1B1E4[esi], eax
.text:50C013D5 jb loc_50C011E0
.text:50C013DB pop edi
.text:50C013DC pop esi
.text:50C013DD pop ebp
.text:50C013DE mov byte_50C1CA0C, 1
.text:50C013E5 pop ebx
.text:50C013E6 pop ecx
.text:50C013E7 retn
.text:50C013E7 sub_50C010EC endp
.text:50C013E8 ; int __cdecl sub_50C013E8(void *,void *)
.text:50C013E8 sub_50C013E8 proc near ; CODE XREF: sub_50C01000+2Fp
.text:50C013E8 ; sub_50C01076+2Fp
.text:50C013E8
.text:50C013E8 arg_0 = dword ptr 4
.text:50C013E8 arg_4 = dword ptr 8
.text:50C013E8
.text:50C013E8 mov eax, [esp+arg_0]
.text:50C013EC and dword ptr [eax+20h], 0
.text:50C013F0 cmp [esp+arg_4], 0
.text:50C013F5 jz short loc_50C01416
.text:50C013F7 push esi
.text:50C013F8 push edi
.text:50C013F9 push 4
.text:50C013FB mov esi, eax
.text:50C013FD pop edi
.text:50C013FE
.text:50C013FE loc_50C013FE: ; CODE XREF: sub_50C013E8+29j
.text:50C013FE push 4 ; size_t
.text:50C01400 push [esp+0Ch+arg_4] ; void *
.text:50C01404 push esi ; void *
.text:50C01405 call memcpy
.text:50C0140A add esp, 0Ch
.text:50C0140D add esi, 4
.text:50C01410 dec edi
.text:50C01411 jnz short loc_50C013FE
.text:50C01413 pop edi
.text:50C01414 pop esi
.text:50C01415 retn
.text:50C01416 ; ---------------------------------------------------------------------------
.text:50C01416
.text:50C01416 loc_50C01416: ; CODE XREF: sub_50C013E8+Dj
.text:50C01416 push 10h ; size_t
.text:50C01418 push offset unk_50C13098 ; void *
.text:50C0141D push eax ; void *
.text:50C0141E call memcpy
.text:50C01423 add esp, 0Ch
.text:50C01426 retn
.text:50C01426 sub_50C013E8 endp
.text:50C022D6 ; int __cdecl sub_50C022D6(int,void *,size_t,size_t,int)
.text:50C022D6 sub_50C022D6 proc near ; CODE XREF: sub_50C01000+52p
.text:50C022D6
.text:50C022D6 var_4 = dword ptr -4
.text:50C022D6 arg_0 = dword ptr 8
.text:50C022D6 arg_4 = dword ptr 0Ch
.text:50C022D6 arg_8 = dword ptr 10h
.text:50C022D6 arg_C = dword ptr 14h
.text:50C022D6 arg_10 = dword ptr 18h
.text:50C022D6
.text:50C022D6 push ebp
.text:50C022D7 mov ebp, esp
.text:50C022D9 push ecx
.text:50C022DA mov ecx, [ebp+arg_10]
.text:50C022DD push ebx
.text:50C022DE push esi
.text:50C022DF mov esi, [ebp+arg_0]
.text:50C022E2 mov ebx, [esi+20h]
.text:50C022E5 and byte ptr [ebp+arg_0+3], 0
.text:50C022E9 push edi
.text:50C022EA mov edi, [ebp+arg_8]
.text:50C022ED lea eax, [ebx+edi]
.text:50C022F0 cmp eax, 10h
.text:50C022F3 mov [ecx], eax
.text:50C022F5 jnb short loc_50C02316
.text:50C022F7 push edi ; size_t
.text:50C022F8 push [ebp+arg_4] ; void *
.text:50C022FB lea eax, [ebx+esi+10h]
.text:50C022FF push eax ; void *
.text:50C02300 call memcpy
.text:50C02305 mov eax, [ebp+arg_10]
.text:50C02308 add [esi+20h], edi
.text:50C0230B add esp, 0Ch
.text:50C0230E and dword ptr [eax], 0
.text:50C02311 jmp loc_50C0241C
.text:50C02316 ; ---------------------------------------------------------------------------
.text:50C02316
.text:50C02316 loc_50C02316: ; CODE XREF: sub_50C022D6+1Fj
.text:50C02316 mov edi, [ebp+arg_C]
.text:50C02319 cmp [ebp+arg_4], edi
.text:50C0231C jnz short loc_50C02343
.text:50C0231E push [ebp+arg_8] ; size_t
.text:50C02321 call ds:malloc
.text:50C02327 push [ebp+arg_8] ; size_t
.text:50C0232A mov [ebp+var_4], eax
.text:50C0232D push [ebp+arg_4] ; void *
.text:50C02330 push eax ; void *
.text:50C02331 call memcpy
.text:50C02336 mov eax, [ebp+var_4]
.text:50C02339 add esp, 10h
.text:50C0233C mov [ebp+arg_4], eax
.text:50C0233F mov byte ptr [ebp+arg_0+3], 1
.text:50C02343
.text:50C02343 loc_50C02343: ; CODE XREF: sub_50C022D6+46j
.text:50C02343 mov [ebp+arg_C], 10h
.text:50C0234A sub [ebp+arg_C], ebx
.text:50C0234D push [ebp+arg_C] ; size_t
.text:50C02350 lea eax, [ebx+esi+10h]
.text:50C02354 push [ebp+arg_4] ; void *
.text:50C02357 push eax ; void *
.text:50C02358 call memcpy
.text:50C0235D mov eax, [ebp+arg_C]
.text:50C02360 add [ebp+arg_4], eax
.text:50C02363 mov eax, [ebp+arg_8]
.text:50C02366 lea ebx, [eax+ebx-10h]
.text:50C0236A lea eax, [esi+24h]
.text:50C0236D push esi
.text:50C0236E push eax
.text:50C0236F call sub_50C0156C
.text:50C02374 mov eax, [esi]
.text:50C02376 xor eax, [esi+10h]
.text:50C02379 add esp, 14h
.text:50C0237C mov [edi], eax
.text:50C0237E mov eax, [esi+14h]
.text:50C02381 xor eax, [esi+4]
.text:50C02384 add edi, 10h
.text:50C02387 mov [edi-0Ch], eax
.text:50C0238A mov eax, [esi+18h]
.text:50C0238D xor eax, [esi+8]
.text:50C02390 mov [edi-8], eax
.text:50C02393 mov eax, [esi+1Ch]
.text:50C02396 xor eax, [esi+0Ch]
.text:50C02399 cmp ebx, 10h
.text:50C0239C mov [edi-4], eax
.text:50C0239F jb short loc_50C023EA
.text:50C023A1 mov eax, ebx
.text:50C023A3 shr eax, 4
.text:50C023A6 mov [ebp+arg_8], eax
.text:50C023A9
.text:50C023A9 loc_50C023A9: ; CODE XREF: sub_50C022D6+112j
.text:50C023A9 lea eax, [esi+24h]
.text:50C023AC push esi
.text:50C023AD push eax
.text:50C023AE call sub_50C0156C
.text:50C023B3 mov eax, [ebp+arg_4]
.text:50C023B6 pop ecx
.text:50C023B7 pop ecx
.text:50C023B8 mov ecx, [esi]
.text:50C023BA xor ecx, [eax]
.text:50C023BC add eax, 10h
.text:50C023BF mov [edi], ecx
.text:50C023C1 mov ecx, [eax-0Ch]
.text:50C023C4 xor ecx, [esi+4]
.text:50C023C7 add edi, 10h
.text:50C023CA mov [edi-0Ch], ecx
.text:50C023CD mov ecx, [eax-8]
.text:50C023D0 xor ecx, [esi+8]
.text:50C023D3 sub ebx, 10h
.text:50C023D6 mov [edi-8], ecx
.text:50C023D9 mov ecx, [eax-4]
.text:50C023DC xor ecx, [esi+0Ch]
.text:50C023DF dec [ebp+arg_8]
.text:50C023E2 mov [edi-4], ecx
.text:50C023E5 mov [ebp+arg_4], eax
.text:50C023E8 jnz short loc_50C023A9
.text:50C023EA
.text:50C023EA loc_50C023EA: ; CODE XREF: sub_50C022D6+C9j
.text:50C023EA push ebx ; size_t
.text:50C023EB push [ebp+arg_4] ; void *
.text:50C023EE lea eax, [esi+10h]
.text:50C023F1 push eax ; void *
.text:50C023F2 call memcpy
.text:50C023F7 mov eax, [esi+20h]
.text:50C023FA and eax, 0F0000000h
.text:50C023FF add eax, ebx
.text:50C02401 mov [esi+20h], eax
.text:50C02404 mov eax, [ebp+arg_10]
.text:50C02407 sub [eax], ebx
.text:50C02409 add esp, 0Ch
.text:50C0240C cmp byte ptr [ebp+arg_0+3], 0
.text:50C02410 jz short loc_50C0241C
.text:50C02412 push [ebp+var_4] ; void *
.text:50C02415 call ds:free
.text:50C0241B pop ecx
.text:50C0241C
.text:50C0241C loc_50C0241C: ; CODE XREF: sub_50C022D6+3Bj
.text:50C0241C ; sub_50C022D6+13Aj
.text:50C0241C pop edi
.text:50C0241D pop esi
.text:50C0241E mov al, 1
.text:50C02420 pop ebx
.text:50C02421 leave
.text:50C02422 retn
.text:50C02422 sub_50C022D6 endp
.text:50C0156C sub_50C0156C proc near ; CODE XREF: sub_50C022D6+99p
.text:50C0156C ; sub_50C022D6+D8p ...
.text:50C0156C
.text:50C0156C var_20 = dword ptr -20h
.text:50C0156C var_1C = dword ptr -1Ch
.text:50C0156C var_14 = dword ptr -14h
.text:50C0156C var_10 = dword ptr -10h
.text:50C0156C var_C = dword ptr -0Ch
.text:50C0156C var_8 = dword ptr -8
.text:50C0156C var_4 = dword ptr -4
.text:50C0156C arg_0 = dword ptr 8
.text:50C0156C arg_4 = dword ptr 0Ch
.text:50C0156C
.text:50C0156C push ebp
.text:50C0156D mov ebp, esp
.text:50C0156F sub esp, 20h
.text:50C01572 mov eax, [ebp+arg_0]
.text:50C01575 mov ecx, [ebp+arg_4]
.text:50C01578 mov edx, [ecx]
.text:50C0157A xor edx, [eax+4]
.text:50C0157D push ebx
.text:50C0157E mov ebx, [ecx+4]
.text:50C01581 xor ebx, [eax+8]
.text:50C01584 push esi
.text:50C01585 mov esi, [ecx+8]
.text:50C01588 xor esi, [eax+0Ch]
.text:50C0158B mov [ebp+var_C], ebx
.text:50C0158E mov ebx, esi
.text:50C01590 shr ebx, 10h
.text:50C01593 push edi
.text:50C01594 mov edi, [ecx+0Ch]
.text:50C01597 xor edi, [eax+10h]
.text:50C0159A movzx ebx, bl
.text:50C0159D mov [ebp+arg_0], ebx
.text:50C015A0 mov ecx, edi
.text:50C015A2 shr ecx, 18h
.text:50C015A5 mov ebx, dword_50C1C1E4[ecx*4]
.text:50C015AC mov ecx, [ebp+arg_0]
.text:50C015AF xor ebx, dword_50C1BDE4[ecx*4]
.text:50C015B6 mov ecx, [ebp+var_C]
.text:50C015B9 shr ecx, 8
.text:50C015BC movzx ecx, cl
.text:50C015BF xor ebx, dword_50C1B9E4[ecx*4]
.text:50C015C6 xor ecx, ecx
.text:50C015C8 mov cl, dl
.text:50C015CA mov [ebp+var_8], esi
.text:50C015CD mov [ebp+var_10], edx
.text:50C015D0 add eax, 14h
.text:50C015D3 mov [ebp+var_4], edi
.text:50C015D6 xor ebx, dword_50C1B5E4[ecx*4]
.text:50C015DD mov ecx, edi
.text:50C015DF shr ecx, 10h
.text:50C015E2 movzx ecx, cl
.text:50C015E5 mov [ebp+arg_0], ecx
.text:50C015E8 mov ecx, esi
.text:50C015EA mov esi, [ebp+arg_0]
.text:50C015ED mov esi, dword_50C1BDE4[esi*4]
.text:50C015F4 shr ecx, 8
.text:50C015F7 movzx ecx, cl
.text:50C015FA xor esi, dword_50C1B9E4[ecx*4]
.text:50C01601 mov ecx, edx
.text:50C01603 shr ecx, 18h
.text:50C01606 xor esi, dword_50C1C1E4[ecx*4]
.text:50C0160D movzx ecx, byte ptr [ebp+var_C]
.text:50C01611 xor esi, dword_50C1B5E4[ecx*4]
.text:50C01618 shr edx, 10h
.text:50C0161B xor esi, [eax+4]
.text:50C0161E mov ecx, edi
.text:50C01620 shr ecx, 8
.text:50C01623 mov [ebp+var_1C], esi
.text:50C01626 mov esi, [ebp+var_C]
.text:50C01629 movzx ecx, cl
.text:50C0162C mov ecx, dword_50C1B9E4[ecx*4]
.text:50C01633 movzx edx, dl
.text:50C01636 shr esi, 18h
.text:50C01639 xor ecx, dword_50C1C1E4[esi*4]
.text:50C01640 xor ebx, [eax]
.text:50C01642 xor ecx, dword_50C1BDE4[edx*4]
.text:50C01649 mov edx, [ebp+var_8]
.text:50C0164C movzx esi, dl
.text:50C0164F xor ecx, dword_50C1B5E4[esi*4]
.text:50C01656 shr edx, 18h
.text:50C01659 xor ecx, [eax+8]
.text:50C0165C mov [ebp+arg_0], edx
.text:50C0165F mov edx, [ebp+var_C]
.text:50C01662 mov esi, [ebp+arg_0]
.text:50C01665 mov esi, dword_50C1C1E4[esi*4]
.text:50C0166C shr edx, 10h
.text:50C0166F movzx edx, dl
.text:50C01672 xor esi, dword_50C1BDE4[edx*4]
.text:50C01679 mov edx, [ebp+var_10]
.text:50C0167C shr edx, 8
.text:50C0167F movzx edx, dl
.text:50C01682 xor esi, dword_50C1B9E4[edx*4]
.text:50C01689 movzx edx, byte ptr [ebp+var_4]
.text:50C0168D xor esi, dword_50C1B5E4[edx*4]
.text:50C01694 mov [ebp+var_20], ebx
.text:50C01697 xor esi, [eax+0Ch]
.text:50C0169A mov edx, ecx
.text:50C0169C shr edx, 10h
.text:50C0169F movzx edx, dl
.text:50C016A2 mov edi, esi
.text:50C016A4 shr edi, 18h
.text:50C016A7 mov edi, dword_50C1C1E4[edi*4]
.text:50C016AE xor edi, dword_50C1BDE4[edx*4]
.text:50C016B5 mov edx, [ebp+var_1C]
.text:50C016B8 shr edx, 8
.text:50C016BB movzx edx, dl
.text:50C016BE xor edi, dword_50C1B9E4[edx*4]
.text:50C016C5 xor edx, edx
.text:50C016C7 mov dl, bl
.text:50C016C9 add eax, 10h
.text:50C016CC mov [ebp+var_14], esi
.text:50C016CF xor edi, dword_50C1B5E4[edx*4]
.text:50C016D6 mov edx, esi
.text:50C016D8 xor edi, [eax]
.text:50C016DA shr edx, 10h
.text:50C016DD mov [ebp+var_10], edi
.text:50C016E0 movzx edi, dl
.text:50C016E3 mov edi, dword_50C1BDE4[edi*4]
.text:50C016EA mov edx, ecx
.text:50C016EC shr edx, 8
.text:50C016EF movzx edx, dl
.text:50C016F2 xor edi, dword_50C1B9E4[edx*4]
.text:50C016F9 mov edx, ebx
.text:50C016FB shr edx, 18h
.text:50C016FE xor edi, dword_50C1C1E4[edx*4]
.text:50C01705 movzx edx, byte ptr [ebp+var_1C]
.text:50C01709 xor edi, dword_50C1B5E4[edx*4]
.text:50C01710 mov edx, esi
.text:50C01712 mov esi, [ebp+var_1C]
.text:50C01715 xor edi, [eax+4]
.text:50C01718 shr edx, 8
.text:50C0171B movzx edx, dl
.text:50C0171E mov edx, dword_50C1B9E4[edx*4]
.text:50C01725 shr esi, 18h
.text:50C01728 xor edx, dword_50C1C1E4[esi*4]
.text:50C0172F shr ebx, 10h
.text:50C01732 movzx esi, bl
.text:50C01735 xor edx, dword_50C1BDE4[esi*4]
.text:50C0173C mov ebx, [ebp+var_1C]
.text:50C0173F movzx esi, cl
.text:50C01742 xor edx, dword_50C1B5E4[esi*4]
.text:50C01749 shr ecx, 18h
.text:50C0174C mov esi, dword_50C1C1E4[ecx*4]
.text:50C01753 mov ecx, [ebp+var_20]
.text:50C01756 xor edx, [eax+8]
.text:50C01759 shr ecx, 8
.text:50C0175C mov [ebp+var_C], edi
.text:50C0175F shr ebx, 10h
.text:50C01762 movzx ecx, cl
.text:50C01765 movzx edi, bl
.text:50C01768 xor esi, dword_50C1BDE4[edi*4]
.text:50C0176F mov ebx, edx
.text:50C01771 xor esi, dword_50C1B9E4[ecx*4]
.text:50C01778 movzx ecx, byte ptr [ebp+var_14]
.text:50C0177C xor esi, dword_50C1B5E4[ecx*4]
.text:50C01783 shr ebx, 10h
.text:50C01786 xor esi, [eax+0Ch]
.text:50C01789 movzx ebx, bl
.text:50C0178C mov ecx, esi
.text:50C0178E shr ecx, 18h
.text:50C01791 mov edi, dword_50C1C1E4[ecx*4]
.text:50C01798 mov ecx, [ebp+var_C]
.text:50C0179B xor edi, dword_50C1BDE4[ebx*4]
.text:50C017A2 shr ecx, 8
.text:50C017A5 movzx ecx, cl
.text:50C017A8 xor edi, dword_50C1B9E4[ecx*4]
.text:50C017AF movzx ecx, byte ptr [ebp+var_10]
.text:50C017B3 xor edi, dword_50C1B5E4[ecx*4]
.text:50C017BA add eax, 10h
.text:50C017BD xor edi, [eax]
.text:50C017BF mov ecx, esi
.text:50C017C1 shr ecx, 10h
.text:50C017C4 mov [ebp+var_4], esi
.text:50C017C7 mov [ebp+var_20], edi
.text:50C017CA movzx ecx, cl
.text:50C017CD mov ebx, edx
.text:50C017CF mov edi, dword_50C1BDE4[ecx*4]
.text:50C017D6 mov ecx, [ebp+var_10]
.text:50C017D9 shr ecx, 18h
.text:50C017DC shr ebx, 8
.text:50C017DF movzx ebx, bl
.text:50C017E2 xor edi, dword_50C1B9E4[ebx*4]
.text:50C017E9 add eax, 10h
.text:50C017EC xor edi, dword_50C1C1E4[ecx*4]
.text:50C017F3 movzx ecx, byte ptr [ebp+var_C]
.text:50C017F7 xor edi, dword_50C1B5E4[ecx*4]
.text:50C017FE mov ecx, esi
.text:50C01800 shr ecx, 8
.text:50C01803 movzx ecx, cl
.text:50C01806 mov ebx, dword_50C1B9E4[ecx*4]
.text:50C0180D mov ecx, [ebp+var_10]
.text:50C01810 mov esi, [ebp+var_C]
.text:50C01813 shr ecx, 10h
.text:50C01816 movzx ecx, cl
.text:50C01819 shr esi, 18h
.text:50C0181C xor ebx, dword_50C1C1E4[esi*4]
.text:50C01823 xor edi, [eax-0Ch]
.text:50C01826 xor ebx, dword_50C1BDE4[ecx*4]
.text:50C0182D xor ecx, ecx
.text:50C0182F mov cl, dl
.text:50C01831 shr edx, 18h
.text:50C01834 mov esi, dword_50C1C1E4[edx*4]
.text:50C0183B mov [ebp+var_1C], edi
.text:50C0183E xor ebx, dword_50C1B5E4[ecx*4]
.text:50C01845 mov ecx, [ebp+var_C]
.text:50C01848 shr ecx, 10h
.text:50C0184B movzx ecx, cl
.text:50C0184E xor esi, dword_50C1BDE4[ecx*4]
.text:50C01855 mov ecx, [ebp+var_10]
.text:50C01858 xor ebx, [eax-8]
.text:50C0185B shr ecx, 8
.text:50C0185E movzx ecx, cl
.text:50C01861 xor esi, dword_50C1B9E4[ecx*4]
.text:50C01868 movzx ecx, byte ptr [ebp+var_4]
.text:50C0186C xor esi, dword_50C1B5E4[ecx*4]
.text:50C01873 mov edx, ebx
.text:50C01875 xor esi, [eax-4]
.text:50C01878 shr edx, 10h
.text:50C0187B movzx edx, dl
.text:50C0187E mov ecx, esi
.text:50C01880 shr ecx, 18h
.text:50C01883 mov edi, dword_50C1C1E4[ecx*4]
.text:50C0188A xor edi, dword_50C1BDE4[edx*4]
.text:50C01891 mov ecx, [ebp+var_1C]
.text:50C01894 shr ecx, 8
.text:50C01897 movzx ecx, cl
.text:50C0189A xor edi, dword_50C1B9E4[ecx*4]
.text:50C018A1 movzx ecx, byte ptr [ebp+var_20]
.text:50C018A5 xor edi, dword_50C1B5E4[ecx*4]
.text:50C018AC mov ecx, esi
.text:50C018AE xor edi, [eax]
.text:50C018B0 shr ecx, 10h
.text:50C018B3 movzx ecx, cl
.text:50C018B6 mov edx, ebx
.text:50C018B8 shr edx, 8
.text:50C018BB movzx edx, dl
.text:50C018BE mov [ebp+var_10], edi
.text:50C018C1 mov edi, dword_50C1BDE4[ecx*4]
.text:50C018C8 xor edi, dword_50C1B9E4[edx*4]
.text:50C018CF mov ecx, [ebp+var_20]
.text:50C018D2 mov edx, [ebp+var_1C]
.text:50C018D5 shr ecx, 18h
.text:50C018D8 xor edi, dword_50C1C1E4[ecx*4]
.text:50C018DF movzx ecx, byte ptr [ebp+var_1C]
.text:50C018E3 xor edi, dword_50C1B5E4[ecx*4]
.text:50C018EA mov ecx, esi
.text:50C018EC xor edi, [eax+4]
.text:50C018EF shr ecx, 8
.text:50C018F2 movzx ecx, cl
.text:50C018F5 mov ecx, dword_50C1B9E4[ecx*4]
.text:50C018FC shr edx, 18h
.text:50C018FF xor ecx, dword_50C1C1E4[edx*4]
.text:50C01906 mov edx, [ebp+var_20]
.text:50C01909 shr edx, 10h
.text:50C0190C mov [ebp+var_14], esi
.text:50C0190F mov [ebp+var_C], edi
.text:50C01912 movzx edx, dl
.text:50C01915 xor ecx, dword_50C1BDE4[edx*4]
.text:50C0191C xor edx, edx
.text:50C0191E mov dl, bl
.text:50C01920 shr ebx, 18h
.text:50C01923 mov esi, dword_50C1C1E4[ebx*4]
.text:50C0192A add eax, 10h
.text:50C0192D xor ecx, dword_50C1B5E4[edx*4]
.text:50C01934 mov edx, [ebp+var_1C]
.text:50C01937 shr edx, 10h
.text:50C0193A movzx edx, dl
.text:50C0193D xor esi, dword_50C1BDE4[edx*4]
.text:50C01944 mov edx, [ebp+var_20]
.text:50C01947 xor ecx, [eax-8]
.text:50C0194A shr edx, 8
.text:50C0194D movzx edx, dl
.text:50C01950 xor esi, dword_50C1B9E4[edx*4]
.text:50C01957 movzx edx, byte ptr [ebp+var_14]
.text:50C0195B xor esi, dword_50C1B5E4[edx*4]
.text:50C01962 mov ebx, ecx
.text:50C01964 xor esi, [eax-4]
.text:50C01967 shr ebx, 10h
.text:50C0196A mov edx, esi
.text:50C0196C shr edx, 18h
.text:50C0196F mov edi, dword_50C1C1E4[edx*4]
.text:50C01976 mov edx, [ebp+var_C]
.text:50C01979 shr edx, 8
.text:50C0197C movzx edx, dl
.text:50C0197F movzx ebx, bl
.text:50C01982 xor edi, dword_50C1BDE4[ebx*4]
.text:50C01989 mov ebx, ecx
.text:50C0198B xor edi, dword_50C1B9E4[edx*4]
.text:50C01992 movzx edx, byte ptr [ebp+var_10]
.text:50C01996 xor edi, dword_50C1B5E4[edx*4]
.text:50C0199D mov edx, esi
.text:50C0199F xor edi, [eax]
.text:50C019A1 shr edx, 10h
.text:50C019A4 movzx edx, dl
.text:50C019A7 shr ebx, 8
.text:50C019AA mov [ebp+var_20], edi
.text:50C019AD mov edi, dword_50C1BDE4[edx*4]
.text:50C019B4 mov edx, [ebp+var_10]
.text:50C019B7 shr edx, 18h
.text:50C019BA movzx ebx, bl
.text:50C019BD xor edi, dword_50C1B9E4[ebx*4]
.text:50C019C4 mov ebx, [ebp+var_10]
.text:50C019C7 xor edi, dword_50C1C1E4[edx*4]
.text:50C019CE movzx edx, byte ptr [ebp+var_C]
.text:50C019D2 xor edi, dword_50C1B5E4[edx*4]
.text:50C019D9 mov edx, esi
.text:50C019DB xor edi, [eax+4]
.text:50C019DE mov [ebp+var_4], esi
.text:50C019E1 mov esi, [ebp+var_C]
.text:50C019E4 shr edx, 8
.text:50C019E7 movzx edx, dl
.text:50C019EA mov edx, dword_50C1B9E4[edx*4]
.text:50C019F1 shr esi, 18h
.text:50C019F4 xor edx, dword_50C1C1E4[esi*4]
.text:50C019FB shr ebx, 10h
.text:50C019FE movzx esi, bl
.text:50C01A01 xor edx, dword_50C1BDE4[esi*4]
.text:50C01A08 mov ebx, [ebp+var_C]
.text:50C01A0B movzx esi, cl
.text:50C01A0E xor edx, dword_50C1B5E4[esi*4]
.text:50C01A15 shr ecx, 18h
.text:50C01A18 mov esi, dword_50C1C1E4[ecx*4]
.text:50C01A1F mov ecx, [ebp+var_10]
.text:50C01A22 xor edx, [eax+8]
.text:50C01A25 shr ebx, 10h
.text:50C01A28 shr ecx, 8
.text:50C01A2B mov [ebp+var_1C], edi
.text:50C01A2E movzx edi, bl
.text:50C01A31 xor esi, dword_50C1BDE4[edi*4]
.text:50C01A38 movzx ecx, cl
.text:50C01A3B xor esi, dword_50C1B9E4[ecx*4]
.text:50C01A42 movzx ecx, byte ptr [ebp+var_4]
.text:50C01A46 xor esi, dword_50C1B5E4[ecx*4]
.text:50C01A4D add eax, 10h
.text:50C01A50 xor esi, [eax-4]
.text:50C01A53 mov ecx, esi
.text:50C01A55 mov [ebp+var_14], esi
.text:50C01A58 shr ecx, 18h
.text:50C01A5B mov edi, dword_50C1C1E4[ecx*4]
.text:50C01A62 mov ecx, [ebp+var_1C]
.text:50C01A65 shr ecx, 8
.text:50C01A68 movzx ecx, cl
.text:50C01A6B mov ebx, edx
.text:50C01A6D shr ebx, 10h
.text:50C01A70 movzx ebx, bl
.text:50C01A73 xor edi, dword_50C1BDE4[ebx*4]
.text:50C01A7A mov ebx, edx
.text:50C01A7C xor edi, dword_50C1B9E4[ecx*4]
.text:50C01A83 movzx ecx, byte ptr [ebp+var_20]
.text:50C01A87 xor edi, dword_50C1B5E4[ecx*4]
.text:50C01A8E mov ecx, esi
.text:50C01A90 xor edi, [eax]
.text:50C01A92 shr ecx, 10h
.text:50C01A95 movzx ecx, cl
.text:50C01A98 mov [ebp+var_10], edi
.text:50C01A9B mov edi, dword_50C1BDE4[ecx*4]
.text:50C01AA2 mov ecx, [ebp+var_20]
.text:50C01AA5 shr ecx, 18h
.text:50C01AA8 shr ebx, 8
.text:50C01AAB movzx ebx, bl
.text:50C01AAE xor edi, dword_50C1B9E4[ebx*4]
.text:50C01AB5 add eax, 10h
.text:50C01AB8 xor edi, dword_50C1C1E4[ecx*4]
.text:50C01ABF movzx ecx, byte ptr [ebp+var_1C]
.text:50C01AC3 xor edi, dword_50C1B5E4[ecx*4]
.text:50C01ACA mov ecx, esi
.text:50C01ACC mov esi, [ebp+var_1C]
.text:50C01ACF shr ecx, 8
.text:50C01AD2 movzx ecx, cl
.text:50C01AD5 mov ebx, dword_50C1B9E4[ecx*4]
.text:50C01ADC mov ecx, [ebp+var_20]
.text:50C01ADF shr ecx, 10h
.text:50C01AE2 movzx ecx, cl
.text:50C01AE5 shr esi, 18h
.text:50C01AE8 xor ebx, dword_50C1C1E4[esi*4]
.text:50C01AEF xor edi, [eax-0Ch]
.text:50C01AF2 xor ebx, dword_50C1BDE4[ecx*4]
.text:50C01AF9 xor ecx, ecx
.text:50C01AFB mov cl, dl
.text:50C01AFD shr edx, 18h
.text:50C01B00 mov esi, dword_50C1C1E4[edx*4]
.text:50C01B07 mov [ebp+var_C], edi
.text:50C01B0A xor ebx, dword_50C1B5E4[ecx*4]
.text:50C01B11 mov ecx, [ebp+var_1C]
.text:50C01B14 shr ecx, 10h
.text:50C01B17 movzx ecx, cl
.text:50C01B1A xor esi, dword_50C1BDE4[ecx*4]
.text:50C01B21 mov ecx, [ebp+var_20]
.text:50C01B24 xor ebx, [eax-8]
.text:50C01B27 shr ecx, 8
.text:50C01B2A movzx ecx, cl
.text:50C01B2D xor esi, dword_50C1B9E4[ecx*4]
.text:50C01B34 movzx ecx, byte ptr [ebp+var_14]
.text:50C01B38 xor esi, dword_50C1B5E4[ecx*4]
.text:50C01B3F mov edx, ebx
.text:50C01B41 xor esi, [eax-4]
.text:50C01B44 shr edx, 10h
.text:50C01B47 mov ecx, esi
.text:50C01B49 shr ecx, 18h
.text:50C01B4C mov edi, dword_50C1C1E4[ecx*4]
.text:50C01B53 mov ecx, [ebp+var_C]
.text:50C01B56 shr ecx, 8
.text:50C01B59 movzx edx, dl
.text:50C01B5C xor edi, dword_50C1BDE4[edx*4]
.text:50C01B63 movzx ecx, cl
.text:50C01B66 xor edi, dword_50C1B9E4[ecx*4]
.text:50C01B6D movzx ecx, byte ptr [ebp+var_10]
.text:50C01B71 xor edi, dword_50C1B5E4[ecx*4]
.text:50C01B78 mov ecx, esi
.text:50C01B7A xor edi, [eax]
.text:50C01B7C shr ecx, 10h
.text:50C01B7F mov edx, ebx
.text:50C01B81 shr edx, 8
.text:50C01B84 movzx ecx, cl
.text:50C01B87 mov [ebp+var_20], edi
.text:50C01B8A mov edi, dword_50C1BDE4[ecx*4]
.text:50C01B91 movzx edx, dl
.text:50C01B94 xor edi, dword_50C1B9E4[edx*4]
.text:50C01B9B mov [ebp+var_4], esi
.text:50C01B9E mov ecx, [ebp+var_10]
.text:50C01BA1 mov edx, [ebp+var_C]
.text:50C01BA4 shr edx, 18h
.text:50C01BA7 shr ecx, 18h
.text:50C01BAA xor edi, dword_50C1C1E4[ecx*4]
.text:50C01BB1 movzx ecx, byte ptr [ebp+var_C]
.text:50C01BB5 xor edi, dword_50C1B5E4[ecx*4]
.text:50C01BBC mov ecx, esi
.text:50C01BBE shr ecx, 8
.text:50C01BC1 movzx ecx, cl
.text:50C01BC4 mov ecx, dword_50C1B9E4[ecx*4]
.text:50C01BCB xor ecx, dword_50C1C1E4[edx*4]
.text:50C01BD2 mov edx, [ebp+var_10]
.text:50C01BD5 shr edx, 10h
.text:50C01BD8 movzx edx, dl
.text:50C01BDB xor ecx, dword_50C1BDE4[edx*4]
.text:50C01BE2 xor edx, edx
.text:50C01BE4 mov dl, bl
.text:50C01BE6 xor edi, [eax+4]
.text:50C01BE9 shr ebx, 18h
.text:50C01BEC mov esi, dword_50C1C1E4[ebx*4]
.text:50C01BF3 mov [ebp+var_1C], edi
.text:50C01BF6 add eax, 10h
.text:50C01BF9 xor ecx, dword_50C1B5E4[edx*4]
.text:50C01C00 mov edx, [ebp+var_C]
.text:50C01C03 shr edx, 10h
.text:50C01C06 movzx edx, dl
.text:50C01C09 xor esi, dword_50C1BDE4[edx*4]
.text:50C01C10 mov edx, [ebp+var_10]
.text:50C01C13 shr edx, 8
.text:50C01C16 xor ecx, [eax-8]
.text:50C01C19 movzx edx, dl
.text:50C01C1C xor esi, dword_50C1B9E4[edx*4]
.text:50C01C23 movzx edx, byte ptr [ebp+var_4]
.text:50C01C27 xor esi, dword_50C1B5E4[edx*4]
.text:50C01C2E mov ebx, ecx
.text:50C01C30 xor esi, [eax-4]
.text:50C01C33 shr ebx, 10h
.text:50C01C36 mov edx, esi
.text:50C01C38 shr edx, 18h
.text:50C01C3B mov edi, dword_50C1C1E4[edx*4]
.text:50C01C42 mov edx, [ebp+var_1C]
.text:50C01C45 shr edx, 8
.text:50C01C48 movzx edx, dl
.text:50C01C4B movzx ebx, bl
.text:50C01C4E xor edi, dword_50C1BDE4[ebx*4]
.text:50C01C55 mov ebx, ecx
.text:50C01C57 xor edi, dword_50C1B9E4[edx*4]
.text:50C01C5E movzx edx, byte ptr [ebp+var_20]
.text:50C01C62 xor edi, dword_50C1B5E4[edx*4]
.text:50C01C69 mov edx, esi
.text:50C01C6B xor edi, [eax]
.text:50C01C6D shr edx, 10h
.text:50C01C70 movzx edx, dl
.text:50C01C73 shr ebx, 8
.text:50C01C76 mov [ebp+var_10], edi
.text:50C01C79 mov edi, dword_50C1BDE4[edx*4]
.text:50C01C80 mov edx, [ebp+var_20]
.text:50C01C83 shr edx, 18h
.text:50C01C86 movzx ebx, bl
.text:50C01C89 xor edi, dword_50C1B9E4[ebx*4]
.text:50C01C90 mov ebx, [ebp+var_20]
.text:50C01C93 xor edi, dword_50C1C1E4[edx*4]
.text:50C01C9A movzx edx, byte ptr [ebp+var_1C]
.text:50C01C9E xor edi, dword_50C1B5E4[edx*4]
.text:50C01CA5 mov edx, esi
.text:50C01CA7 xor edi, [eax+4]
.text:50C01CAA shr edx, 8
.text:50C01CAD movzx edx, dl
.text:50C01CB0 mov edx, dword_50C1B9E4[edx*4]
.text:50C01CB7 mov [ebp+var_14], esi
.text:50C01CBA mov esi, [ebp+var_1C]
.text:50C01CBD shr esi, 18h
.text:50C01CC0 xor edx, dword_50C1C1E4[esi*4]
.text:50C01CC7 shr ebx, 10h
.text:50C01CCA movzx esi, bl
.text:50C01CCD xor edx, dword_50C1BDE4[esi*4]
.text:50C01CD4 movzx esi, cl
.text:50C01CD7 xor edx, dword_50C1B5E4[esi*4]
.text:50C01CDE mov [ebp+var_C], edi
.text:50C01CE1 xor edx, [eax+8]
.text:50C01CE4 shr ecx, 18h
.text:50C01CE7 mov esi, dword_50C1C1E4[ecx*4]
.text:50C01CEE mov ebx, [ebp+var_1C]
.text:50C01CF1 mov ecx, [ebp+var_20]
.text:50C01CF4 shr ecx, 8
.text:50C01CF7 movzx ecx, cl
.text:50C01CFA shr ebx, 10h
.text:50C01CFD movzx edi, bl
.text:50C01D00 xor esi, dword_50C1BDE4[edi*4]
.text:50C01D07 mov ebx, edx
.text:50C01D09 xor esi, dword_50C1B9E4[ecx*4]
.text:50C01D10 movzx ecx, byte ptr [ebp+var_14]
.text:50C01D14 xor esi, dword_50C1B5E4[ecx*4]
.text:50C01D1B shr ebx, 10h
.text:50C01D1E xor esi, [eax+0Ch]
.text:50C01D21 movzx ebx, bl
.text:50C01D24 mov ecx, esi
.text:50C01D26 shr ecx, 18h
.text:50C01D29 mov edi, dword_50C1C1E4[ecx*4]
.text:50C01D30 xor edi, dword_50C1BDE4[ebx*4]
.text:50C01D37 mov ecx, [ebp+var_C]
.text:50C01D3A shr ecx, 8
.text:50C01D3D movzx ecx, cl
.text:50C01D40 xor edi, dword_50C1B9E4[ecx*4]
.text:50C01D47 movzx ecx, byte ptr [ebp+var_10]
.text:50C01D4B xor edi, dword_50C1B5E4[ecx*4]
.text:50C01D52 mov ecx, esi
.text:50C01D54 xor edi, [eax+10h]
.text:50C01D57 shr ecx, 10h
.text:50C01D5A movzx ecx, cl
.text:50C01D5D add eax, 10h
.text:50C01D60 mov ebx, edx
.text:50C01D62 shr ebx, 8
.text:50C01D65 movzx ebx, bl
.text:50C01D68 mov [ebp+var_20], edi
.text:50C01D6B mov edi, dword_50C1BDE4[ecx*4]
.text:50C01D72 xor edi, dword_50C1B9E4[ebx*4]
.text:50C01D79 mov ecx, [ebp+var_10]
.text:50C01D7C shr ecx, 18h
.text:50C01D7F xor edi, dword_50C1C1E4[ecx*4]
.text:50C01D86 movzx ecx, byte ptr [ebp+var_C]
.text:50C01D8A xor edi, dword_50C1B5E4[ecx*4]
.text:50C01D91 mov ecx, esi
.text:50C01D93 shr ecx, 8
.text:50C01D96 movzx ecx, cl
.text:50C01D99 mov ebx, dword_50C1B9E4[ecx*4]
.text:50C01DA0 mov ecx, [ebp+var_10]
.text:50C01DA3 shr ecx, 10h
.text:50C01DA6 mov [ebp+var_4], esi
.text:50C01DA9 mov esi, [ebp+var_C]
.text:50C01DAC movzx ecx, cl
.text:50C01DAF shr esi, 18h
.text:50C01DB2 xor ebx, dword_50C1C1E4[esi*4]
.text:50C01DB9 xor edi, [eax+4]
.text:50C01DBC xor ebx, dword_50C1BDE4[ecx*4]
.text:50C01DC3 xor ecx, ecx
.text:50C01DC5 mov cl, dl
.text:50C01DC7 shr edx, 18h
.text:50C01DCA mov esi, dword_50C1C1E4[edx*4]
.text:50C01DD1 add eax, 10h
.text:50C01DD4 mov [ebp+var_1C], edi
.text:50C01DD7 xor ebx, dword_50C1B5E4[ecx*4]
.text:50C01DDE mov ecx, [ebp+var_C]
.text:50C01DE1 xor ebx, [eax-8]
.text:50C01DE4 shr ecx, 10h
.text:50C01DE7 movzx ecx, cl
.text:50C01DEA xor esi, dword_50C1BDE4[ecx*4]
.text:50C01DF1 mov ecx, [ebp+var_10]
.text:50C01DF4 shr ecx, 8
.text:50C01DF7 movzx ecx, cl
.text:50C01DFA xor esi, dword_50C1B9E4[ecx*4]
.text:50C01E01 movzx ecx, byte ptr [ebp+var_4]
.text:50C01E05 xor esi, dword_50C1B5E4[ecx*4]
.text:50C01E0C mov edx, ebx
.text:50C01E0E xor esi, [eax-4]
.text:50C01E11 mov ecx, esi
.text:50C01E13 shr ecx, 18h
.text:50C01E16 mov edi, dword_50C1C1E4[ecx*4]
.text:50C01E1D shr edx, 10h
.text:50C01E20 mov [ebp+var_14], esi
.text:50C01E23 movzx edx, dl
.text:50C01E26 xor edi, dword_50C1BDE4[edx*4]
.text:50C01E2D mov ecx, [ebp+var_1C]
.text:50C01E30 shr ecx, 8
.text:50C01E33 movzx ecx, cl
.text:50C01E36 xor edi, dword_50C1B9E4[ecx*4]
.text:50C01E3D movzx ecx, byte ptr [ebp+var_20]
.text:50C01E41 xor edi, dword_50C1B5E4[ecx*4]
.text:50C01E48 mov ecx, esi
.text:50C01E4A xor edi, [eax]
.text:50C01E4C shr ecx, 10h
.text:50C01E4F mov [ebp+var_10], edi
.text:50C01E52 movzx ecx, cl
.text:50C01E55 mov edi, dword_50C1BDE4[ecx*4]
.text:50C01E5C mov ecx, [ebp+var_20]
.text:50C01E5F mov edx, ebx
.text:50C01E61 shr edx, 8
.text:50C01E64 movzx edx, dl
.text:50C01E67 xor edi, dword_50C1B9E4[edx*4]
.text:50C01E6E mov edx, [ebp+var_1C]
.text:50C01E71 shr ecx, 18h
.text:50C01E74 xor edi, dword_50C1C1E4[ecx*4]
.text:50C01E7B movzx ecx, byte ptr [ebp+var_1C]
.text:50C01E7F xor edi, dword_50C1B5E4[ecx*4]
.text:50C01E86 shr edx, 18h
.text:50C01E89 mov ecx, esi
.text:50C01E8B shr ecx, 8
.text:50C01E8E movzx ecx, cl
.text:50C01E91 mov ecx, dword_50C1B9E4[ecx*4]
.text:50C01E98 xor ecx, dword_50C1C1E4[edx*4]
.text:50C01E9F mov edx, [ebp+var_20]
.text:50C01EA2 shr edx, 10h
.text:50C01EA5 movzx edx, dl
.text:50C01EA8 xor ecx, dword_50C1BDE4[edx*4]
.text:50C01EAF xor edx, edx
.text:50C01EB1 mov dl, bl
.text:50C01EB3 xor edi, [eax+4]
.text:50C01EB6 shr ebx, 18h
.text:50C01EB9 mov esi, dword_50C1C1E4[ebx*4]
.text:50C01EC0 mov [ebp+var_C], edi
.text:50C01EC3 add eax, 10h
.text:50C01EC6 xor ecx, dword_50C1B5E4[edx*4]
.text:50C01ECD mov edx, [ebp+var_1C]
.text:50C01ED0 shr edx, 10h
.text:50C01ED3 movzx edx, dl
.text:50C01ED6 xor esi, dword_50C1BDE4[edx*4]
.text:50C01EDD mov edx, [ebp+var_20]
.text:50C01EE0 xor ecx, [eax-8]
.text:50C01EE3 shr edx, 8
.text:50C01EE6 movzx edx, dl
.text:50C01EE9 xor esi, dword_50C1B9E4[edx*4]
.text:50C01EF0 movzx edx, byte ptr [ebp+var_14]
.text:50C01EF4 xor esi, dword_50C1B5E4[edx*4]
.text:50C01EFB mov ebx, ecx
.text:50C01EFD xor esi, [eax-4]
.text:50C01F00 shr ebx, 10h
.text:50C01F03 mov edx, esi
.text:50C01F05 shr edx, 18h
.text:50C01F08 mov edi, dword_50C1C1E4[edx*4]
.text:50C01F0F mov edx, [ebp+var_C]
.text:50C01F12 shr edx, 8
.text:50C01F15 movzx edx, dl
.text:50C01F18 movzx ebx, bl
.text:50C01F1B xor edi, dword_50C1BDE4[ebx*4]
.text:50C01F22 mov ebx, ecx
.text:50C01F24 xor edi, dword_50C1B9E4[edx*4]
.text:50C01F2B movzx edx, byte ptr [ebp+var_10]
.text:50C01F2F xor edi, dword_50C1B5E4[edx*4]
.text:50C01F36 mov edx, esi
.text:50C01F38 xor edi, [eax]
.text:50C01F3A shr edx, 10h
.text:50C01F3D movzx edx, dl
.text:50C01F40 shr ebx, 8
.text:50C01F43 mov [ebp+var_20], edi
.text:50C01F46 mov edi, dword_50C1BDE4[edx*4]
.text:50C01F4D mov edx, [ebp+var_10]
.text:50C01F50 movzx ebx, bl
.text:50C01F53 xor edi, dword_50C1B9E4[ebx*4]
.text:50C01F5A shr edx, 18h
.text:50C01F5D xor edi, dword_50C1C1E4[edx*4]
.text:50C01F64 movzx edx, byte ptr [ebp+var_C]
.text:50C01F68 mov [ebp+var_4], esi
.text:50C01F6B xor edi, dword_50C1B5E4[edx*4]
.text:50C01F72 mov ebx, [ebp+var_10]
.text:50C01F75 xor edi, [eax+4]
.text:50C01F78 mov edx, esi
.text:50C01F7A mov esi, [ebp+var_C]
.text:50C01F7D shr edx, 8
.text:50C01F80 shr ebx, 10h
.text:50C01F83 shr esi, 18h
.text:50C01F86 movzx edx, dl
.text:50C01F89 mov edx, dword_50C1B9E4[edx*4]
.text:50C01F90 xor edx, dword_50C1C1E4[esi*4]
.text:50C01F97 movzx esi, bl
.text:50C01F9A xor edx, dword_50C1BDE4[esi*4]
.text:50C01FA1 mov ebx, [ebp+var_C]
.text:50C01FA4 movzx esi, cl
.text:50C01FA7 xor edx, dword_50C1B5E4[esi*4]
.text:50C01FAE shr ecx, 18h
.text:50C01FB1 mov esi, dword_50C1C1E4[ecx*4]
.text:50C01FB8 mov ecx, [ebp+var_10]
.text:50C01FBB shr ecx, 8
.text:50C01FBE movzx ecx, cl
.text:50C01FC1 xor edx, [eax+8]
.text:50C01FC4 mov [ebp+var_1C], edi
.text:50C01FC7 shr ebx, 10h
.text:50C01FCA movzx edi, bl
.text:50C01FCD xor esi, dword_50C1BDE4[edi*4]
.text:50C01FD4 mov ebx, edx
.text:50C01FD6 xor esi, dword_50C1B9E4[ecx*4]
.text:50C01FDD movzx ecx, byte ptr [ebp+var_4]
.text:50C01FE1 xor esi, dword_50C1B5E4[ecx*4]
.text:50C01FE8 shr ebx, 10h
.text:50C01FEB xor esi, [eax+0Ch]
.text:50C01FEE movzx ebx, bl
.text:50C01FF1 mov ecx, esi
.text:50C01FF3 shr ecx, 18h
.text:50C01FF6 mov edi, dword_50C1C1E4[ecx*4]
.text:50C01FFD xor edi, dword_50C1BDE4[ebx*4]
.text:50C02004 mov ecx, [ebp+var_1C]
.text:50C02007 shr ecx, 8
.text:50C0200A movzx ecx, cl
.text:50C0200D xor edi, dword_50C1B9E4[ecx*4]
.text:50C02014 movzx ecx, byte ptr [ebp+var_20]
.text:50C02018 xor edi, dword_50C1B5E4[ecx*4]
.text:50C0201F mov ecx, esi
.text:50C02021 xor edi, [eax+10h]
.text:50C02024 shr ecx, 10h
.text:50C02027 movzx ecx, cl
.text:50C0202A add eax, 10h
.text:50C0202D mov ebx, edx
.text:50C0202F shr ebx, 8
.text:50C02032 movzx ebx, bl
.text:50C02035 mov [ebp+var_10], edi
.text:50C02038 mov edi, dword_50C1BDE4[ecx*4]
.text:50C0203F xor edi, dword_50C1B9E4[ebx*4]
.text:50C02046 mov ecx, [ebp+var_20]
.text:50C02049 shr ecx, 18h
.text:50C0204C xor edi, dword_50C1C1E4[ecx*4]
.text:50C02053 movzx ecx, byte ptr [ebp+var_1C]
.text:50C02057 xor edi, dword_50C1B5E4[ecx*4]
.text:50C0205E mov ecx, esi
.text:50C02060 shr ecx, 8
.text:50C02063 movzx ecx, cl
.text:50C02066 mov ebx, dword_50C1B9E4[ecx*4]
.text:50C0206D mov ecx, [ebp+var_20]
.text:50C02070 xor edi, [eax+4]
.text:50C02073 shr ecx, 10h
.text:50C02076 mov [ebp+var_14], esi
.text:50C02079 mov esi, [ebp+var_1C]
.text:50C0207C movzx ecx, cl
.text:50C0207F shr esi, 18h
.text:50C02082 xor ebx, dword_50C1C1E4[esi*4]
.text:50C02089 mov [ebp+var_C], edi
.text:50C0208C xor ebx, dword_50C1BDE4[ecx*4]
.text:50C02093 xor ecx, ecx
.text:50C02095 mov cl, dl
.text:50C02097 shr edx, 18h
.text:50C0209A xor ebx, dword_50C1B5E4[ecx*4]
.text:50C020A1 mov ecx, [ebp+var_1C]
.text:50C020A4 xor ebx, [eax+8]
.text:50C020A7 shr ecx, 10h
.text:50C020AA movzx ecx, cl
.text:50C020AD mov esi, dword_50C1C1E4[edx*4]
.text:50C020B4 xor esi, dword_50C1BDE4[ecx*4]
.text:50C020BB mov ecx, [ebp+var_20]
.text:50C020BE shr ecx, 8
.text:50C020C1 movzx ecx, cl
.text:50C020C4 xor esi, dword_50C1B9E4[ecx*4]
.text:50C020CB movzx ecx, byte ptr [ebp+var_14]
.text:50C020CF xor esi, dword_50C1B5E4[ecx*4]
.text:50C020D6 mov edx, ebx
.text:50C020D8 xor esi, [eax+0Ch]
.text:50C020DB shr edx, 10h
.text:50C020DE movzx edx, dl
.text:50C020E1 mov ecx, esi
.text:50C020E3 shr ecx, 18h
.text:50C020E6 mov edi, dword_50C1C1E4[ecx*4]
.text:50C020ED xor edi, dword_50C1BDE4[edx*4]
.text:50C020F4 mov ecx, [ebp+var_C]
.text:50C020F7 shr ecx, 8
.text:50C020FA movzx ecx, cl
.text:50C020FD xor edi, dword_50C1B9E4[ecx*4]
.text:50C02104 movzx ecx, byte ptr [ebp+var_10]
.text:50C02108 xor edi, dword_50C1B5E4[ecx*4]
.text:50C0210F mov ecx, esi
.text:50C02111 xor edi, [eax+10h]
.text:50C02114 shr ecx, 10h
.text:50C02117 movzx ecx, cl
.text:50C0211A mov edx, ebx
.text:50C0211C shr edx, 8
.text:50C0211F movzx edx, dl
.text:50C02122 add eax, 10h
.text:50C02125 mov [ebp+var_20], edi
.text:50C02128 mov edi, dword_50C1BDE4[ecx*4]
.text:50C0212F xor edi, dword_50C1B9E4[edx*4]
.text:50C02136 mov ecx, [ebp+var_10]
.text:50C02139 mov edx, [ebp+var_C]
.text:50C0213C shr ecx, 18h
.text:50C0213F xor edi, dword_50C1C1E4[ecx*4]
.text:50C02146 movzx ecx, byte ptr [ebp+var_C]
.text:50C0214A xor edi, dword_50C1B5E4[ecx*4]
.text:50C02151 shr edx, 18h
.text:50C02154 mov ecx, esi
.text:50C02156 shr ecx, 8
.text:50C02159 movzx ecx, cl
.text:50C0215C mov ecx, dword_50C1B9E4[ecx*4]
.text:50C02163 xor ecx, dword_50C1C1E4[edx*4]
.text:50C0216A mov edx, [ebp+var_10]
.text:50C0216D shr edx, 10h
.text:50C02170 movzx edx, dl
.text:50C02173 xor ecx, dword_50C1BDE4[edx*4]
.text:50C0217A xor edx, edx
.text:50C0217C mov dl, bl
.text:50C0217E xor edi, [eax+4]
.text:50C02181 shr ebx, 18h
.text:50C02184 mov ebx, dword_50C1C1E4[ebx*4]
.text:50C0218B mov [ebp+var_4], esi
.text:50C0218E add eax, 10h
.text:50C02191 mov [ebp+var_1C], edi
.text:50C02194 xor ecx, dword_50C1B5E4[edx*4]
.text:50C0219B mov edx, [ebp+var_C]
.text:50C0219E xor ecx, [eax-8]
.text:50C021A1 shr edx, 10h
.text:50C021A4 movzx edx, dl
.text:50C021A7 xor ebx, dword_50C1BDE4[edx*4]
.text:50C021AE mov edx, [ebp+var_10]
.text:50C021B1 shr edx, 8
.text:50C021B4 movzx edx, dl
.text:50C021B7 xor ebx, dword_50C1B9E4[edx*4]
.text:50C021BE movzx edx, byte ptr [ebp+var_4]
.text:50C021C2 xor ebx, dword_50C1B5E4[edx*4]
.text:50C021C9 mov edx, ecx
.text:50C021CB xor ebx, [eax-4]
.text:50C021CE shr edx, 10h
.text:50C021D1 movzx edx, dl
.text:50C021D4 mov esi, ebx
.text:50C021D6 shr esi, 18h
.text:50C021D9 mov esi, dword_50C1A1E4[esi*4]
.text:50C021E0 xor esi, dword_50C19DE4[edx*4]
.text:50C021E7 mov edx, edi
.text:50C021E9 shr edx, 8
.text:50C021EC movzx edx, dl
.text:50C021EF xor esi, dword_50C199E4[edx*4]
.text:50C021F6 movzx edx, byte ptr [ebp+var_20]
.text:50C021FA xor esi, dword_50C195E4[edx*4]
.text:50C02201 mov edx, ebx
.text:50C02203 shr edx, 10h
.text:50C02206 movzx edi, dl
.text:50C02209 mov edi, dword_50C19DE4[edi*4]
.text:50C02210 mov edx, ecx
.text:50C02212 shr edx, 8
.text:50C02215 movzx edx, dl
.text:50C02218 xor edi, dword_50C199E4[edx*4]
.text:50C0221F mov edx, [ebp+var_20]
.text:50C02222 shr edx, 18h
.text:50C02225 xor edi, dword_50C1A1E4[edx*4]
.text:50C0222C movzx edx, byte ptr [ebp+var_1C]
.text:50C02230 xor edi, dword_50C195E4[edx*4]
.text:50C02237 mov edx, ebx
.text:50C02239 xor edi, [eax+4]
.text:50C0223C shr edx, 8
.text:50C0223F mov [ebp+var_C], edi
.text:50C02242 movzx edi, dl
.text:50C02245 mov edi, dword_50C199E4[edi*4]
.text:50C0224C mov edx, [ebp+var_1C]
.text:50C0224F shr edx, 18h
.text:50C02252 xor edi, dword_50C1A1E4[edx*4]
.text:50C02259 mov edx, [ebp+var_20]
.text:50C0225C shr edx, 10h
.text:50C0225F movzx edx, dl
.text:50C02262 xor edi, dword_50C19DE4[edx*4]
.text:50C02269 xor edx, edx
.text:50C0226B mov dl, cl
.text:50C0226D xor esi, [eax]
.text:50C0226F shr ecx, 18h
.text:50C02272 mov ecx, dword_50C1A1E4[ecx*4]
.text:50C02279 xor edi, dword_50C195E4[edx*4]
.text:50C02280 mov edx, [ebp+var_1C]
.text:50C02283 xor edi, [eax+8]
.text:50C02286 shr edx, 10h
.text:50C02289 movzx edx, dl
.text:50C0228C xor ecx, dword_50C19DE4[edx*4]
.text:50C02293 mov edx, [ebp+var_20]
.text:50C02296 shr edx, 8
.text:50C02299 movzx edx, dl
.text:50C0229C xor ecx, dword_50C199E4[edx*4]
.text:50C022A3 xor edx, edx
.text:50C022A5 mov dl, bl
.text:50C022A7 xor ecx, dword_50C195E4[edx*4]
.text:50C022AE mov edx, [ebp+var_C]
.text:50C022B1 xor ecx, [eax+0Ch]
.text:50C022B4 mov eax, [ebp+arg_4]
.text:50C022B7 mov [eax+8], edi
.text:50C022BA pop edi
.text:50C022BB mov [eax], esi
.text:50C022BD pop esi
.text:50C022BE mov [eax+4], edx
.text:50C022C1 mov [eax+0Ch], ecx
.text:50C022C4 pop ebx
.text:50C022C5 leave
.text:50C022C6 retn
.text:50C022C6 sub_50C0156C endp
.text:50C02423 sub_50C02423 proc near ; CODE XREF: sub_50C01000+6Bp
.text:50C02423
.text:50C02423 arg_0 = dword ptr 8
.text:50C02423 arg_4 = dword ptr 0Ch
.text:50C02423 arg_8 = dword ptr 10h
.text:50C02423
.text:50C02423 push ebx
.text:50C02424 mov ebx, [esp+arg_8]
.text:50C02428 push esi
.text:50C02429 mov esi, [esp+4+arg_0]
.text:50C0242D push edi
.text:50C0242E mov edi, [esi+20h]
.text:50C02431 lea eax, [esi+24h]
.text:50C02434 push esi
.text:50C02435 push eax
.text:50C02436 mov dword ptr [ebx], 10h
.text:50C0243C call sub_50C0156C
.text:50C02441 test edi, edi
.text:50C02443 pop ecx
.text:50C02444 pop ecx
.text:50C02445 jbe short loc_50C0245D
.text:50C02447 mov ecx, [esp+8+arg_4]
.text:50C0244B mov eax, esi
.text:50C0244D sub ecx, esi
.text:50C0244F mov esi, edi
.text:50C02451
.text:50C02451 loc_50C02451: ; CODE XREF: sub_50C02423+38j
.text:50C02451 mov dl, [eax+10h]
.text:50C02454 xor dl, [eax]
.text:50C02456 mov [ecx+eax], dl
.text:50C02459 inc eax
.text:50C0245A dec esi
.text:50C0245B jnz short loc_50C02451
.text:50C0245D
.text:50C0245D loc_50C0245D: ; CODE XREF: sub_50C02423+22j
.text:50C0245D mov [ebx], edi
.text:50C0245F pop edi
.text:50C02460 pop esi
.text:50C02461 mov al, 1
.text:50C02463 pop ebx
.text:50C02464 retn
.text:50C02464 sub_50C02423 endp
.text:50C0156C sub_50C0156C proc near ; CODE XREF: sub_50C022D6+99p
.text:50C0156C ; sub_50C022D6+D8p ...
.text:50C0156C
.text:50C0156C var_20 = dword ptr -20h
.text:50C0156C var_1C = dword ptr -1Ch
.text:50C0156C var_14 = dword ptr -14h
.text:50C0156C var_10 = dword ptr -10h
.text:50C0156C var_C = dword ptr -0Ch
.text:50C0156C var_8 = dword ptr -8
.text:50C0156C var_4 = dword ptr -4
.text:50C0156C arg_0 = dword ptr 8
.text:50C0156C arg_4 = dword ptr 0Ch
.text:50C0156C
.text:50C0156C push ebp
.text:50C0156D mov ebp, esp
.text:50C0156F sub esp, 20h
.text:50C01572 mov eax, [ebp+arg_0]
.text:50C01575 mov ecx, [ebp+arg_4]
.text:50C01578 mov edx, [ecx]
.text:50C0157A xor edx, [eax+4]
.text:50C0157D push ebx
.text:50C0157E mov ebx, [ecx+4]
.text:50C01581 xor ebx, [eax+8]
.text:50C01584 push esi
.text:50C01585 mov esi, [ecx+8]
.text:50C01588 xor esi, [eax+0Ch]
.text:50C0158B mov [ebp+var_C], ebx
.text:50C0158E mov ebx, esi
.text:50C01590 shr ebx, 10h
.text:50C01593 push edi
.text:50C01594 mov edi, [ecx+0Ch]
.text:50C01597 xor edi, [eax+10h]
.text:50C0159A movzx ebx, bl
.text:50C0159D mov [ebp+arg_0], ebx
.text:50C015A0 mov ecx, edi
.text:50C015A2 shr ecx, 18h
.text:50C015A5 mov ebx, dword_50C1C1E4[ecx*4]
.text:50C015AC mov ecx, [ebp+arg_0]
.text:50C015AF xor ebx, dword_50C1BDE4[ecx*4]
.text:50C015B6 mov ecx, [ebp+var_C]
.text:50C015B9 shr ecx, 8
.text:50C015BC movzx ecx, cl
.text:50C015BF xor ebx, dword_50C1B9E4[ecx*4]
.text:50C015C6 xor ecx, ecx
.text:50C015C8 mov cl, dl
.text:50C015CA mov [ebp+var_8], esi
.text:50C015CD mov [ebp+var_10], edx
.text:50C015D0 add eax, 14h
.text:50C015D3 mov [ebp+var_4], edi
.text:50C015D6 xor ebx, dword_50C1B5E4[ecx*4]
.text:50C015DD mov ecx, edi
.text:50C015DF shr ecx, 10h
.text:50C015E2 movzx ecx, cl
.text:50C015E5 mov [ebp+arg_0], ecx
.text:50C015E8 mov ecx, esi
.text:50C015EA mov esi, [ebp+arg_0]
.text:50C015ED mov esi, dword_50C1BDE4[esi*4]
.text:50C015F4 shr ecx, 8
.text:50C015F7 movzx ecx, cl
.text:50C015FA xor esi, dword_50C1B9E4[ecx*4]
.text:50C01601 mov ecx, edx
.text:50C01603 shr ecx, 18h
.text:50C01606 xor esi, dword_50C1C1E4[ecx*4]
.text:50C0160D movzx ecx, byte ptr [ebp+var_C]
.text:50C01611 xor esi, dword_50C1B5E4[ecx*4]
.text:50C01618 shr edx, 10h
.text:50C0161B xor esi, [eax+4]
.text:50C0161E mov ecx, edi
.text:50C01620 shr ecx, 8
.text:50C01623 mov [ebp+var_1C], esi
.text:50C01626 mov esi, [ebp+var_C]
.text:50C01629 movzx ecx, cl
.text:50C0162C mov ecx, dword_50C1B9E4[ecx*4]
.text:50C01633 movzx edx, dl
.text:50C01636 shr esi, 18h
.text:50C01639 xor ecx, dword_50C1C1E4[esi*4]
.text:50C01640 xor ebx, [eax]
.text:50C01642 xor ecx, dword_50C1BDE4[edx*4]
.text:50C01649 mov edx, [ebp+var_8]
.text:50C0164C movzx esi, dl
.text:50C0164F xor ecx, dword_50C1B5E4[esi*4]
.text:50C01656 shr edx, 18h
.text:50C01659 xor ecx, [eax+8]
.text:50C0165C mov [ebp+arg_0], edx
.text:50C0165F mov edx, [ebp+var_C]
.text:50C01662 mov esi, [ebp+arg_0]
.text:50C01665 mov esi, dword_50C1C1E4[esi*4]
.text:50C0166C shr edx, 10h
.text:50C0166F movzx edx, dl
.text:50C01672 xor esi, dword_50C1BDE4[edx*4]
.text:50C01679 mov edx, [ebp+var_10]
.text:50C0167C shr edx, 8
.text:50C0167F movzx edx, dl
.text:50C01682 xor esi, dword_50C1B9E4[edx*4]
.text:50C01689 movzx edx, byte ptr [ebp+var_4]
.text:50C0168D xor esi, dword_50C1B5E4[edx*4]
.text:50C01694 mov [ebp+var_20], ebx
.text:50C01697 xor esi, [eax+0Ch]
.text:50C0169A mov edx, ecx
.text:50C0169C shr edx, 10h
.text:50C0169F movzx edx, dl
.text:50C016A2 mov edi, esi
.text:50C016A4 shr edi, 18h
.text:50C016A7 mov edi, dword_50C1C1E4[edi*4]
.text:50C016AE xor edi, dword_50C1BDE4[edx*4]
.text:50C016B5 mov edx, [ebp+var_1C]
.text:50C016B8 shr edx, 8
.text:50C016BB movzx edx, dl
.text:50C016BE xor edi, dword_50C1B9E4[edx*4]
.text:50C016C5 xor edx, edx
.text:50C016C7 mov dl, bl
.text:50C016C9 add eax, 10h
.text:50C016CC mov [ebp+var_14], esi
.text:50C016CF xor edi, dword_50C1B5E4[edx*4]
.text:50C016D6 mov edx, esi
.text:50C016D8 xor edi, [eax]
.text:50C016DA shr edx, 10h
.text:50C016DD mov [ebp+var_10], edi
.text:50C016E0 movzx edi, dl
.text:50C016E3 mov edi, dword_50C1BDE4[edi*4]
.text:50C016EA mov edx, ecx
.text:50C016EC shr edx, 8
.text:50C016EF movzx edx, dl
.text:50C016F2 xor edi, dword_50C1B9E4[edx*4]
.text:50C016F9 mov edx, ebx
.text:50C016FB shr edx, 18h
.text:50C016FE xor edi, dword_50C1C1E4[edx*4]
.text:50C01705 movzx edx, byte ptr [ebp+var_1C]
.text:50C01709 xor edi, dword_50C1B5E4[edx*4]
.text:50C01710 mov edx, esi
.text:50C01712 mov esi, [ebp+var_1C]
.text:50C01715 xor edi, [eax+4]
.text:50C01718 shr edx, 8
.text:50C0171B movzx edx, dl
.text:50C0171E mov edx, dword_50C1B9E4[edx*4]
.text:50C01725 shr esi, 18h
.text:50C01728 xor edx, dword_50C1C1E4[esi*4]
.text:50C0172F shr ebx, 10h
.text:50C01732 movzx esi, bl
.text:50C01735 xor edx, dword_50C1BDE4[esi*4]
.text:50C0173C mov ebx, [ebp+var_1C]
.text:50C0173F movzx esi, cl
.text:50C01742 xor edx, dword_50C1B5E4[esi*4]
.text:50C01749 shr ecx, 18h
.text:50C0174C mov esi, dword_50C1C1E4[ecx*4]
.text:50C01753 mov ecx, [ebp+var_20]
.text:50C01756 xor edx, [eax+8]
.text:50C01759 shr ecx, 8
.text:50C0175C mov [ebp+var_C], edi
.text:50C0175F shr ebx, 10h
.text:50C01762 movzx ecx, cl
.text:50C01765 movzx edi, bl
.text:50C01768 xor esi, dword_50C1BDE4[edi*4]
.text:50C0176F mov ebx, edx
.text:50C01771 xor esi, dword_50C1B9E4[ecx*4]
.text:50C01778 movzx ecx, byte ptr [ebp+var_14]
.text:50C0177C xor esi, dword_50C1B5E4[ecx*4]
.text:50C01783 shr ebx, 10h
.text:50C01786 xor esi, [eax+0Ch]
.text:50C01789 movzx ebx, bl
.text:50C0178C mov ecx, esi
.text:50C0178E shr ecx, 18h
.text:50C01791 mov edi, dword_50C1C1E4[ecx*4]
.text:50C01798 mov ecx, [ebp+var_C]
.text:50C0179B xor edi, dword_50C1BDE4[ebx*4]
.text:50C017A2 shr ecx, 8
.text:50C017A5 movzx ecx, cl
.text:50C017A8 xor edi, dword_50C1B9E4[ecx*4]
.text:50C017AF movzx ecx, byte ptr [ebp+var_10]
.text:50C017B3 xor edi, dword_50C1B5E4[ecx*4]
.text:50C017BA add eax, 10h
.text:50C017BD xor edi, [eax]
.text:50C017BF mov ecx, esi
.text:50C017C1 shr ecx, 10h
.text:50C017C4 mov [ebp+var_4], esi
.text:50C017C7 mov [ebp+var_20], edi
.text:50C017CA movzx ecx, cl
.text:50C017CD mov ebx, edx
.text:50C017CF mov edi, dword_50C1BDE4[ecx*4]
.text:50C017D6 mov ecx, [ebp+var_10]
.text:50C017D9 shr ecx, 18h
.text:50C017DC shr ebx, 8
.text:50C017DF movzx ebx, bl
.text:50C017E2 xor edi, dword_50C1B9E4[ebx*4]
.text:50C017E9 add eax, 10h
.text:50C017EC xor edi, dword_50C1C1E4[ecx*4]
.text:50C017F3 movzx ecx, byte ptr [ebp+var_C]
.text:50C017F7 xor edi, dword_50C1B5E4[ecx*4]
.text:50C017FE mov ecx, esi
.text:50C01800 shr ecx, 8
.text:50C01803 movzx ecx, cl
.text:50C01806 mov ebx, dword_50C1B9E4[ecx*4]
.text:50C0180D mov ecx, [ebp+var_10]
.text:50C01810 mov esi, [ebp+var_C]
.text:50C01813 shr ecx, 10h
.text:50C01816 movzx ecx, cl
.text:50C01819 shr esi, 18h
.text:50C0181C xor ebx, dword_50C1C1E4[esi*4]
.text:50C01823 xor edi, [eax-0Ch]
.text:50C01826 xor ebx, dword_50C1BDE4[ecx*4]
.text:50C0182D xor ecx, ecx
.text:50C0182F mov cl, dl
.text:50C01831 shr edx, 18h
.text:50C01834 mov esi, dword_50C1C1E4[edx*4]
.text:50C0183B mov [ebp+var_1C], edi
.text:50C0183E xor ebx, dword_50C1B5E4[ecx*4]
.text:50C01845 mov ecx, [ebp+var_C]
.text:50C01848 shr ecx, 10h
.text:50C0184B movzx ecx, cl
.text:50C0184E xor esi, dword_50C1BDE4[ecx*4]
.text:50C01855 mov ecx, [ebp+var_10]
.text:50C01858 xor ebx, [eax-8]
.text:50C0185B shr ecx, 8
.text:50C0185E movzx ecx, cl
.text:50C01861 xor esi, dword_50C1B9E4[ecx*4]
.text:50C01868 movzx ecx, byte ptr [ebp+var_4]
.text:50C0186C xor esi, dword_50C1B5E4[ecx*4]
.text:50C01873 mov edx, ebx
.text:50C01875 xor esi, [eax-4]
.text:50C01878 shr edx, 10h
.text:50C0187B movzx edx, dl
.text:50C0187E mov ecx, esi
.text:50C01880 shr ecx, 18h
.text:50C01883 mov edi, dword_50C1C1E4[ecx*4]
.text:50C0188A xor edi, dword_50C1BDE4[edx*4]
.text:50C01891 mov ecx, [ebp+var_1C]
.text:50C01894 shr ecx, 8
.text:50C01897 movzx ecx, cl
.text:50C0189A xor edi, dword_50C1B9E4[ecx*4]
.text:50C018A1 movzx ecx, byte ptr [ebp+var_20]
.text:50C018A5 xor edi, dword_50C1B5E4[ecx*4]
.text:50C018AC mov ecx, esi
.text:50C018AE xor edi, [eax]
.text:50C018B0 shr ecx, 10h
.text:50C018B3 movzx ecx, cl
.text:50C018B6 mov edx, ebx
.text:50C018B8 shr edx, 8
.text:50C018BB movzx edx, dl
.text:50C018BE mov [ebp+var_10], edi
.text:50C018C1 mov edi, dword_50C1BDE4[ecx*4]
.text:50C018C8 xor edi, dword_50C1B9E4[edx*4]
.text:50C018CF mov ecx, [ebp+var_20]
.text:50C018D2 mov edx, [ebp+var_1C]
.text:50C018D5 shr ecx, 18h
.text:50C018D8 xor edi, dword_50C1C1E4[ecx*4]
.text:50C018DF movzx ecx, byte ptr [ebp+var_1C]
.text:50C018E3 xor edi, dword_50C1B5E4[ecx*4]
.text:50C018EA mov ecx, esi
.text:50C018EC xor edi, [eax+4]
.text:50C018EF shr ecx, 8
.text:50C018F2 movzx ecx, cl
.text:50C018F5 mov ecx, dword_50C1B9E4[ecx*4]
.text:50C018FC shr edx, 18h
.text:50C018FF xor ecx, dword_50C1C1E4[edx*4]
.text:50C01906 mov edx, [ebp+var_20]
.text:50C01909 shr edx, 10h
.text:50C0190C mov [ebp+var_14], esi
.text:50C0190F mov [ebp+var_C], edi
.text:50C01912 movzx edx, dl
.text:50C01915 xor ecx, dword_50C1BDE4[edx*4]
.text:50C0191C xor edx, edx
.text:50C0191E mov dl, bl
.text:50C01920 shr ebx, 18h
.text:50C01923 mov esi, dword_50C1C1E4[ebx*4]
.text:50C0192A add eax, 10h
.text:50C0192D xor ecx, dword_50C1B5E4[edx*4]
.text:50C01934 mov edx, [ebp+var_1C]
.text:50C01937 shr edx, 10h
.text:50C0193A movzx edx, dl
.text:50C0193D xor esi, dword_50C1BDE4[edx*4]
.text:50C01944 mov edx, [ebp+var_20]
.text:50C01947 xor ecx, [eax-8]
.text:50C0194A shr edx, 8
.text:50C0194D movzx edx, dl
.text:50C01950 xor esi, dword_50C1B9E4[edx*4]
.text:50C01957 movzx edx, byte ptr [ebp+var_14]
.text:50C0195B xor esi, dword_50C1B5E4[edx*4]
.text:50C01962 mov ebx, ecx
.text:50C01964 xor esi, [eax-4]
.text:50C01967 shr ebx, 10h
.text:50C0196A mov edx, esi
.text:50C0196C shr edx, 18h
.text:50C0196F mov edi, dword_50C1C1E4[edx*4]
.text:50C01976 mov edx, [ebp+var_C]
.text:50C01979 shr edx, 8
.text:50C0197C movzx edx, dl
.text:50C0197F movzx ebx, bl
.text:50C01982 xor edi, dword_50C1BDE4[ebx*4]
.text:50C01989 mov ebx, ecx
.text:50C0198B xor edi, dword_50C1B9E4[edx*4]
.text:50C01992 movzx edx, byte ptr [ebp+var_10]
.text:50C01996 xor edi, dword_50C1B5E4[edx*4]
.text:50C0199D mov edx, esi
.text:50C0199F xor edi, [eax]
.text:50C019A1 shr edx, 10h
.text:50C019A4 movzx edx, dl
.text:50C019A7 shr ebx, 8
.text:50C019AA mov [ebp+var_20], edi
.text:50C019AD mov edi, dword_50C1BDE4[edx*4]
.text:50C019B4 mov edx, [ebp+var_10]
.text:50C019B7 shr edx, 18h
.text:50C019BA movzx ebx, bl
.text:50C019BD xor edi, dword_50C1B9E4[ebx*4]
.text:50C019C4 mov ebx, [ebp+var_10]
.text:50C019C7 xor edi, dword_50C1C1E4[edx*4]
.text:50C019CE movzx edx, byte ptr [ebp+var_C]
.text:50C019D2 xor edi, dword_50C1B5E4[edx*4]
.text:50C019D9 mov edx, esi
.text:50C019DB xor edi, [eax+4]
.text:50C019DE mov [ebp+var_4], esi
.text:50C019E1 mov esi, [ebp+var_C]
.text:50C019E4 shr edx, 8
.text:50C019E7 movzx edx, dl
.text:50C019EA mov edx, dword_50C1B9E4[edx*4]
.text:50C019F1 shr esi, 18h
.text:50C019F4 xor edx, dword_50C1C1E4[esi*4]
.text:50C019FB shr ebx, 10h
.text:50C019FE movzx esi, bl
.text:50C01A01 xor edx, dword_50C1BDE4[esi*4]
.text:50C01A08 mov ebx, [ebp+var_C]
.text:50C01A0B movzx esi, cl
.text:50C01A0E xor edx, dword_50C1B5E4[esi*4]
.text:50C01A15 shr ecx, 18h
.text:50C01A18 mov esi, dword_50C1C1E4[ecx*4]
.text:50C01A1F mov ecx, [ebp+var_10]
.text:50C01A22 xor edx, [eax+8]
.text:50C01A25 shr ebx, 10h
.text:50C01A28 shr ecx, 8
.text:50C01A2B mov [ebp+var_1C], edi
.text:50C01A2E movzx edi, bl
.text:50C01A31 xor esi, dword_50C1BDE4[edi*4]
.text:50C01A38 movzx ecx, cl
.text:50C01A3B xor esi, dword_50C1B9E4[ecx*4]
.text:50C01A42 movzx ecx, byte ptr [ebp+var_4]
.text:50C01A46 xor esi, dword_50C1B5E4[ecx*4]
.text:50C01A4D add eax, 10h
.text:50C01A50 xor esi, [eax-4]
.text:50C01A53 mov ecx, esi
.text:50C01A55 mov [ebp+var_14], esi
.text:50C01A58 shr ecx, 18h
.text:50C01A5B mov edi, dword_50C1C1E4[ecx*4]
.text:50C01A62 mov ecx, [ebp+var_1C]
.text:50C01A65 shr ecx, 8
.text:50C01A68 movzx ecx, cl
.text:50C01A6B mov ebx, edx
.text:50C01A6D shr ebx, 10h
.text:50C01A70 movzx ebx, bl
.text:50C01A73 xor edi, dword_50C1BDE4[ebx*4]
.text:50C01A7A mov ebx, edx
.text:50C01A7C xor edi, dword_50C1B9E4[ecx*4]
.text:50C01A83 movzx ecx, byte ptr [ebp+var_20]
.text:50C01A87 xor edi, dword_50C1B5E4[ecx*4]
.text:50C01A8E mov ecx, esi
.text:50C01A90 xor edi, [eax]
.text:50C01A92 shr ecx, 10h
.text:50C01A95 movzx ecx, cl
.text:50C01A98 mov [ebp+var_10], edi
.text:50C01A9B mov edi, dword_50C1BDE4[ecx*4]
.text:50C01AA2 mov ecx, [ebp+var_20]
.text:50C01AA5 shr ecx, 18h
.text:50C01AA8 shr ebx, 8
.text:50C01AAB movzx ebx, bl
.text:50C01AAE xor edi, dword_50C1B9E4[ebx*4]
.text:50C01AB5 add eax, 10h
.text:50C01AB8 xor edi, dword_50C1C1E4[ecx*4]
.text:50C01ABF movzx ecx, byte ptr [ebp+var_1C]
.text:50C01AC3 xor edi, dword_50C1B5E4[ecx*4]
.text:50C01ACA mov ecx, esi
.text:50C01ACC mov esi, [ebp+var_1C]
.text:50C01ACF shr ecx, 8
.text:50C01AD2 movzx ecx, cl
.text:50C01AD5 mov ebx, dword_50C1B9E4[ecx*4]
.text:50C01ADC mov ecx, [ebp+var_20]
.text:50C01ADF shr ecx, 10h
.text:50C01AE2 movzx ecx, cl
.text:50C01AE5 shr esi, 18h
.text:50C01AE8 xor ebx, dword_50C1C1E4[esi*4]
.text:50C01AEF xor edi, [eax-0Ch]
.text:50C01AF2 xor ebx, dword_50C1BDE4[ecx*4]
.text:50C01AF9 xor ecx, ecx
.text:50C01AFB mov cl, dl
.text:50C01AFD shr edx, 18h
.text:50C01B00 mov esi, dword_50C1C1E4[edx*4]
.text:50C01B07 mov [ebp+var_C], edi
.text:50C01B0A xor ebx, dword_50C1B5E4[ecx*4]
.text:50C01B11 mov ecx, [ebp+var_1C]
.text:50C01B14 shr ecx, 10h
.text:50C01B17 movzx ecx, cl
.text:50C01B1A xor esi, dword_50C1BDE4[ecx*4]
.text:50C01B21 mov ecx, [ebp+var_20]
.text:50C01B24 xor ebx, [eax-8]
.text:50C01B27 shr ecx, 8
.text:50C01B2A movzx ecx, cl
.text:50C01B2D xor esi, dword_50C1B9E4[ecx*4]
.text:50C01B34 movzx ecx, byte ptr [ebp+var_14]
.text:50C01B38 xor esi, dword_50C1B5E4[ecx*4]
.text:50C01B3F mov edx, ebx
.text:50C01B41 xor esi, [eax-4]
.text:50C01B44 shr edx, 10h
.text:50C01B47 mov ecx, esi
.text:50C01B49 shr ecx, 18h
.text:50C01B4C mov edi, dword_50C1C1E4[ecx*4]
.text:50C01B53 mov ecx, [ebp+var_C]
.text:50C01B56 shr ecx, 8
.text:50C01B59 movzx edx, dl
.text:50C01B5C xor edi, dword_50C1BDE4[edx*4]
.text:50C01B63 movzx ecx, cl
.text:50C01B66 xor edi, dword_50C1B9E4[ecx*4]
.text:50C01B6D movzx ecx, byte ptr [ebp+var_10]
.text:50C01B71 xor edi, dword_50C1B5E4[ecx*4]
.text:50C01B78 mov ecx, esi
.text:50C01B7A xor edi, [eax]
.text:50C01B7C shr ecx, 10h
.text:50C01B7F mov edx, ebx
.text:50C01B81 shr edx, 8
.text:50C01B84 movzx ecx, cl
.text:50C01B87 mov [ebp+var_20], edi
.text:50C01B8A mov edi, dword_50C1BDE4[ecx*4]
.text:50C01B91 movzx edx, dl
.text:50C01B94 xor edi, dword_50C1B9E4[edx*4]
.text:50C01B9B mov [ebp+var_4], esi
.text:50C01B9E mov ecx, [ebp+var_10]
.text:50C01BA1 mov edx, [ebp+var_C]
.text:50C01BA4 shr edx, 18h
.text:50C01BA7 shr ecx, 18h
.text:50C01BAA xor edi, dword_50C1C1E4[ecx*4]
.text:50C01BB1 movzx ecx, byte ptr [ebp+var_C]
.text:50C01BB5 xor edi, dword_50C1B5E4[ecx*4]
.text:50C01BBC mov ecx, esi
.text:50C01BBE shr ecx, 8
.text:50C01BC1 movzx ecx, cl
.text:50C01BC4 mov ecx, dword_50C1B9E4[ecx*4]
.text:50C01BCB xor ecx, dword_50C1C1E4[edx*4]
.text:50C01BD2 mov edx, [ebp+var_10]
.text:50C01BD5 shr edx, 10h
.text:50C01BD8 movzx edx, dl
.text:50C01BDB xor ecx, dword_50C1BDE4[edx*4]
.text:50C01BE2 xor edx, edx
.text:50C01BE4 mov dl, bl
.text:50C01BE6 xor edi, [eax+4]
.text:50C01BE9 shr ebx, 18h
.text:50C01BEC mov esi, dword_50C1C1E4[ebx*4]
.text:50C01BF3 mov [ebp+var_1C], edi
.text:50C01BF6 add eax, 10h
.text:50C01BF9 xor ecx, dword_50C1B5E4[edx*4]
.text:50C01C00 mov edx, [ebp+var_C]
.text:50C01C03 shr edx, 10h
.text:50C01C06 movzx edx, dl
.text:50C01C09 xor esi, dword_50C1BDE4[edx*4]
.text:50C01C10 mov edx, [ebp+var_10]
.text:50C01C13 shr edx, 8
.text:50C01C16 xor ecx, [eax-8]
.text:50C01C19 movzx edx, dl
.text:50C01C1C xor esi, dword_50C1B9E4[edx*4]
.text:50C01C23 movzx edx, byte ptr [ebp+var_4]
.text:50C01C27 xor esi, dword_50C1B5E4[edx*4]
.text:50C01C2E mov ebx, ecx
.text:50C01C30 xor esi, [eax-4]
.text:50C01C33 shr ebx, 10h
.text:50C01C36 mov edx, esi
.text:50C01C38 shr edx, 18h
.text:50C01C3B mov edi, dword_50C1C1E4[edx*4]
.text:50C01C42 mov edx, [ebp+var_1C]
.text:50C01C45 shr edx, 8
.text:50C01C48 movzx edx, dl
.text:50C01C4B movzx ebx, bl
.text:50C01C4E xor edi, dword_50C1BDE4[ebx*4]
.text:50C01C55 mov ebx, ecx
.text:50C01C57 xor edi, dword_50C1B9E4[edx*4]
.text:50C01C5E movzx edx, byte ptr [ebp+var_20]
.text:50C01C62 xor edi, dword_50C1B5E4[edx*4]
.text:50C01C69 mov edx, esi
.text:50C01C6B xor edi, [eax]
.text:50C01C6D shr edx, 10h
.text:50C01C70 movzx edx, dl
.text:50C01C73 shr ebx, 8
.text:50C01C76 mov [ebp+var_10], edi
.text:50C01C79 mov edi, dword_50C1BDE4[edx*4]
.text:50C01C80 mov edx, [ebp+var_20]
.text:50C01C83 shr edx, 18h
.text:50C01C86 movzx ebx, bl
.text:50C01C89 xor edi, dword_50C1B9E4[ebx*4]
.text:50C01C90 mov ebx, [ebp+var_20]
.text:50C01C93 xor edi, dword_50C1C1E4[edx*4]
.text:50C01C9A movzx edx, byte ptr [ebp+var_1C]
.text:50C01C9E xor edi, dword_50C1B5E4[edx*4]
.text:50C01CA5 mov edx, esi
.text:50C01CA7 xor edi, [eax+4]
.text:50C01CAA shr edx, 8
.text:50C01CAD movzx edx, dl
.text:50C01CB0 mov edx, dword_50C1B9E4[edx*4]
.text:50C01CB7 mov [ebp+var_14], esi
.text:50C01CBA mov esi, [ebp+var_1C]
.text:50C01CBD shr esi, 18h
.text:50C01CC0 xor edx, dword_50C1C1E4[esi*4]
.text:50C01CC7 shr ebx, 10h
.text:50C01CCA movzx esi, bl
.text:50C01CCD xor edx, dword_50C1BDE4[esi*4]
.text:50C01CD4 movzx esi, cl
.text:50C01CD7 xor edx, dword_50C1B5E4[esi*4]
.text:50C01CDE mov [ebp+var_C], edi
.text:50C01CE1 xor edx, [eax+8]
.text:50C01CE4 shr ecx, 18h
.text:50C01CE7 mov esi, dword_50C1C1E4[ecx*4]
.text:50C01CEE mov ebx, [ebp+var_1C]
.text:50C01CF1 mov ecx, [ebp+var_20]
.text:50C01CF4 shr ecx, 8
.text:50C01CF7 movzx ecx, cl
.text:50C01CFA shr ebx, 10h
.text:50C01CFD movzx edi, bl
.text:50C01D00 xor esi, dword_50C1BDE4[edi*4]
.text:50C01D07 mov ebx, edx
.text:50C01D09 xor esi, dword_50C1B9E4[ecx*4]
.text:50C01D10 movzx ecx, byte ptr [ebp+var_14]
.text:50C01D14 xor esi, dword_50C1B5E4[ecx*4]
.text:50C01D1B shr ebx, 10h
.text:50C01D1E xor esi, [eax+0Ch]
.text:50C01D21 movzx ebx, bl
.text:50C01D24 mov ecx, esi
.text:50C01D26 shr ecx, 18h
.text:50C01D29 mov edi, dword_50C1C1E4[ecx*4]
.text:50C01D30 xor edi, dword_50C1BDE4[ebx*4]
.text:50C01D37 mov ecx, [ebp+var_C]
.text:50C01D3A shr ecx, 8
.text:50C01D3D movzx ecx, cl
.text:50C01D40 xor edi, dword_50C1B9E4[ecx*4]
.text:50C01D47 movzx ecx, byte ptr [ebp+var_10]
.text:50C01D4B xor edi, dword_50C1B5E4[ecx*4]
.text:50C01D52 mov ecx, esi
.text:50C01D54 xor edi, [eax+10h]
.text:50C01D57 shr ecx, 10h
.text:50C01D5A movzx ecx, cl
.text:50C01D5D add eax, 10h
.text:50C01D60 mov ebx, edx
.text:50C01D62 shr ebx, 8
.text:50C01D65 movzx ebx, bl
.text:50C01D68 mov [ebp+var_20], edi
.text:50C01D6B mov edi, dword_50C1BDE4[ecx*4]
.text:50C01D72 xor edi, dword_50C1B9E4[ebx*4]
.text:50C01D79 mov ecx, [ebp+var_10]
.text:50C01D7C shr ecx, 18h
.text:50C01D7F xor edi, dword_50C1C1E4[ecx*4]
.text:50C01D86 movzx ecx, byte ptr [ebp+var_C]
.text:50C01D8A xor edi, dword_50C1B5E4[ecx*4]
.text:50C01D91 mov ecx, esi
.text:50C01D93 shr ecx, 8
.text:50C01D96 movzx ecx, cl
.text:50C01D99 mov ebx, dword_50C1B9E4[ecx*4]
.text:50C01DA0 mov ecx, [ebp+var_10]
.text:50C01DA3 shr ecx, 10h
.text:50C01DA6 mov [ebp+var_4], esi
.text:50C01DA9 mov esi, [ebp+var_C]
.text:50C01DAC movzx ecx, cl
.text:50C01DAF shr esi, 18h
.text:50C01DB2 xor ebx, dword_50C1C1E4[esi*4]
.text:50C01DB9 xor edi, [eax+4]
.text:50C01DBC xor ebx, dword_50C1BDE4[ecx*4]
.text:50C01DC3 xor ecx, ecx
.text:50C01DC5 mov cl, dl
.text:50C01DC7 shr edx, 18h
.text:50C01DCA mov esi, dword_50C1C1E4[edx*4]
.text:50C01DD1 add eax, 10h
.text:50C01DD4 mov [ebp+var_1C], edi
.text:50C01DD7 xor ebx, dword_50C1B5E4[ecx*4]
.text:50C01DDE mov ecx, [ebp+var_C]
.text:50C01DE1 xor ebx, [eax-8]
.text:50C01DE4 shr ecx, 10h
.text:50C01DE7 movzx ecx, cl
.text:50C01DEA xor esi, dword_50C1BDE4[ecx*4]
.text:50C01DF1 mov ecx, [ebp+var_10]
.text:50C01DF4 shr ecx, 8
.text:50C01DF7 movzx ecx, cl
.text:50C01DFA xor esi, dword_50C1B9E4[ecx*4]
.text:50C01E01 movzx ecx, byte ptr [ebp+var_4]
.text:50C01E05 xor esi, dword_50C1B5E4[ecx*4]
.text:50C01E0C mov edx, ebx
.text:50C01E0E xor esi, [eax-4]
.text:50C01E11 mov ecx, esi
.text:50C01E13 shr ecx, 18h
.text:50C01E16 mov edi, dword_50C1C1E4[ecx*4]
.text:50C01E1D shr edx, 10h
.text:50C01E20 mov [ebp+var_14], esi
.text:50C01E23 movzx edx, dl
.text:50C01E26 xor edi, dword_50C1BDE4[edx*4]
.text:50C01E2D mov ecx, [ebp+var_1C]
.text:50C01E30 shr ecx, 8
.text:50C01E33 movzx ecx, cl
.text:50C01E36 xor edi, dword_50C1B9E4[ecx*4]
.text:50C01E3D movzx ecx, byte ptr [ebp+var_20]
.text:50C01E41 xor edi, dword_50C1B5E4[ecx*4]
.text:50C01E48 mov ecx, esi
.text:50C01E4A xor edi, [eax]
.text:50C01E4C shr ecx, 10h
.text:50C01E4F mov [ebp+var_10], edi
.text:50C01E52 movzx ecx, cl
.text:50C01E55 mov edi, dword_50C1BDE4[ecx*4]
.text:50C01E5C mov ecx, [ebp+var_20]
.text:50C01E5F mov edx, ebx
.text:50C01E61 shr edx, 8
.text:50C01E64 movzx edx, dl
.text:50C01E67 xor edi, dword_50C1B9E4[edx*4]
.text:50C01E6E mov edx, [ebp+var_1C]
.text:50C01E71 shr ecx, 18h
.text:50C01E74 xor edi, dword_50C1C1E4[ecx*4]
.text:50C01E7B movzx ecx, byte ptr [ebp+var_1C]
.text:50C01E7F xor edi, dword_50C1B5E4[ecx*4]
.text:50C01E86 shr edx, 18h
.text:50C01E89 mov ecx, esi
.text:50C01E8B shr ecx, 8
.text:50C01E8E movzx ecx, cl
.text:50C01E91 mov ecx, dword_50C1B9E4[ecx*4]
.text:50C01E98 xor ecx, dword_50C1C1E4[edx*4]
.text:50C01E9F mov edx, [ebp+var_20]
.text:50C01EA2 shr edx, 10h
.text:50C01EA5 movzx edx, dl
.text:50C01EA8 xor ecx, dword_50C1BDE4[edx*4]
.text:50C01EAF xor edx, edx
.text:50C01EB1 mov dl, bl
.text:50C01EB3 xor edi, [eax+4]
.text:50C01EB6 shr ebx, 18h
.text:50C01EB9 mov esi, dword_50C1C1E4[ebx*4]
.text:50C01EC0 mov [ebp+var_C], edi
.text:50C01EC3 add eax, 10h
.text:50C01EC6 xor ecx, dword_50C1B5E4[edx*4]
.text:50C01ECD mov edx, [ebp+var_1C]
.text:50C01ED0 shr edx, 10h
.text:50C01ED3 movzx edx, dl
.text:50C01ED6 xor esi, dword_50C1BDE4[edx*4]
.text:50C01EDD mov edx, [ebp+var_20]
.text:50C01EE0 xor ecx, [eax-8]
.text:50C01EE3 shr edx, 8
.text:50C01EE6 movzx edx, dl
.text:50C01EE9 xor esi, dword_50C1B9E4[edx*4]
.text:50C01EF0 movzx edx, byte ptr [ebp+var_14]
.text:50C01EF4 xor esi, dword_50C1B5E4[edx*4]
.text:50C01EFB mov ebx, ecx
.text:50C01EFD xor esi, [eax-4]
.text:50C01F00 shr ebx, 10h
.text:50C01F03 mov edx, esi
.text:50C01F05 shr edx, 18h
.text:50C01F08 mov edi, dword_50C1C1E4[edx*4]
.text:50C01F0F mov edx, [ebp+var_C]
.text:50C01F12 shr edx, 8
.text:50C01F15 movzx edx, dl
.text:50C01F18 movzx ebx, bl
.text:50C01F1B xor edi, dword_50C1BDE4[ebx*4]
.text:50C01F22 mov ebx, ecx
.text:50C01F24 xor edi, dword_50C1B9E4[edx*4]
.text:50C01F2B movzx edx, byte ptr [ebp+var_10]
.text:50C01F2F xor edi, dword_50C1B5E4[edx*4]
.text:50C01F36 mov edx, esi
.text:50C01F38 xor edi, [eax]
.text:50C01F3A shr edx, 10h
.text:50C01F3D movzx edx, dl
.text:50C01F40 shr ebx, 8
.text:50C01F43 mov [ebp+var_20], edi
.text:50C01F46 mov edi, dword_50C1BDE4[edx*4]
.text:50C01F4D mov edx, [ebp+var_10]
.text:50C01F50 movzx ebx, bl
.text:50C01F53 xor edi, dword_50C1B9E4[ebx*4]
.text:50C01F5A shr edx, 18h
.text:50C01F5D xor edi, dword_50C1C1E4[edx*4]
.text:50C01F64 movzx edx, byte ptr [ebp+var_C]
.text:50C01F68 mov [ebp+var_4], esi
.text:50C01F6B xor edi, dword_50C1B5E4[edx*4]
.text:50C01F72 mov ebx, [ebp+var_10]
.text:50C01F75 xor edi, [eax+4]
.text:50C01F78 mov edx, esi
.text:50C01F7A mov esi, [ebp+var_C]
.text:50C01F7D shr edx, 8
.text:50C01F80 shr ebx, 10h
.text:50C01F83 shr esi, 18h
.text:50C01F86 movzx edx, dl
.text:50C01F89 mov edx, dword_50C1B9E4[edx*4]
.text:50C01F90 xor edx, dword_50C1C1E4[esi*4]
.text:50C01F97 movzx esi, bl
.text:50C01F9A xor edx, dword_50C1BDE4[esi*4]
.text:50C01FA1 mov ebx, [ebp+var_C]
.text:50C01FA4 movzx esi, cl
.text:50C01FA7 xor edx, dword_50C1B5E4[esi*4]
.text:50C01FAE shr ecx, 18h
.text:50C01FB1 mov esi, dword_50C1C1E4[ecx*4]
.text:50C01FB8 mov ecx, [ebp+var_10]
.text:50C01FBB shr ecx, 8
.text:50C01FBE movzx ecx, cl
.text:50C01FC1 xor edx, [eax+8]
.text:50C01FC4 mov [ebp+var_1C], edi
.text:50C01FC7 shr ebx, 10h
.text:50C01FCA movzx edi, bl
.text:50C01FCD xor esi, dword_50C1BDE4[edi*4]
.text:50C01FD4 mov ebx, edx
.text:50C01FD6 xor esi, dword_50C1B9E4[ecx*4]
.text:50C01FDD movzx ecx, byte ptr [ebp+var_4]
.text:50C01FE1 xor esi, dword_50C1B5E4[ecx*4]
.text:50C01FE8 shr ebx, 10h
.text:50C01FEB xor esi, [eax+0Ch]
.text:50C01FEE movzx ebx, bl
.text:50C01FF1 mov ecx, esi
.text:50C01FF3 shr ecx, 18h
.text:50C01FF6 mov edi, dword_50C1C1E4[ecx*4]
.text:50C01FFD xor edi, dword_50C1BDE4[ebx*4]
.text:50C02004 mov ecx, [ebp+var_1C]
.text:50C02007 shr ecx, 8
.text:50C0200A movzx ecx, cl
.text:50C0200D xor edi, dword_50C1B9E4[ecx*4]
.text:50C02014 movzx ecx, byte ptr [ebp+var_20]
.text:50C02018 xor edi, dword_50C1B5E4[ecx*4]
.text:50C0201F mov ecx, esi
.text:50C02021 xor edi, [eax+10h]
.text:50C02024 shr ecx, 10h
.text:50C02027 movzx ecx, cl
.text:50C0202A add eax, 10h
.text:50C0202D mov ebx, edx
.text:50C0202F shr ebx, 8
.text:50C02032 movzx ebx, bl
.text:50C02035 mov [ebp+var_10], edi
.text:50C02038 mov edi, dword_50C1BDE4[ecx*4]
.text:50C0203F xor edi, dword_50C1B9E4[ebx*4]
.text:50C02046 mov ecx, [ebp+var_20]
.text:50C02049 shr ecx, 18h
.text:50C0204C xor edi, dword_50C1C1E4[ecx*4]
.text:50C02053 movzx ecx, byte ptr [ebp+var_1C]
.text:50C02057 xor edi, dword_50C1B5E4[ecx*4]
.text:50C0205E mov ecx, esi
.text:50C02060 shr ecx, 8
.text:50C02063 movzx ecx, cl
.text:50C02066 mov ebx, dword_50C1B9E4[ecx*4]
.text:50C0206D mov ecx, [ebp+var_20]
.text:50C02070 xor edi, [eax+4]
.text:50C02073 shr ecx, 10h
.text:50C02076 mov [ebp+var_14], esi
.text:50C02079 mov esi, [ebp+var_1C]
.text:50C0207C movzx ecx, cl
.text:50C0207F shr esi, 18h
.text:50C02082 xor ebx, dword_50C1C1E4[esi*4]
.text:50C02089 mov [ebp+var_C], edi
.text:50C0208C xor ebx, dword_50C1BDE4[ecx*4]
.text:50C02093 xor ecx, ecx
.text:50C02095 mov cl, dl
.text:50C02097 shr edx, 18h
.text:50C0209A xor ebx, dword_50C1B5E4[ecx*4]
.text:50C020A1 mov ecx, [ebp+var_1C]
.text:50C020A4 xor ebx, [eax+8]
.text:50C020A7 shr ecx, 10h
.text:50C020AA movzx ecx, cl
.text:50C020AD mov esi, dword_50C1C1E4[edx*4]
.text:50C020B4 xor esi, dword_50C1BDE4[ecx*4]
.text:50C020BB mov ecx, [ebp+var_20]
.text:50C020BE shr ecx, 8
.text:50C020C1 movzx ecx, cl
.text:50C020C4 xor esi, dword_50C1B9E4[ecx*4]
.text:50C020CB movzx ecx, byte ptr [ebp+var_14]
.text:50C020CF xor esi, dword_50C1B5E4[ecx*4]
.text:50C020D6 mov edx, ebx
.text:50C020D8 xor esi, [eax+0Ch]
.text:50C020DB shr edx, 10h
.text:50C020DE movzx edx, dl
.text:50C020E1 mov ecx, esi
.text:50C020E3 shr ecx, 18h
.text:50C020E6 mov edi, dword_50C1C1E4[ecx*4]
.text:50C020ED xor edi, dword_50C1BDE4[edx*4]
.text:50C020F4 mov ecx, [ebp+var_C]
.text:50C020F7 shr ecx, 8
.text:50C020FA movzx ecx, cl
.text:50C020FD xor edi, dword_50C1B9E4[ecx*4]
.text:50C02104 movzx ecx, byte ptr [ebp+var_10]
.text:50C02108 xor edi, dword_50C1B5E4[ecx*4]
.text:50C0210F mov ecx, esi
.text:50C02111 xor edi, [eax+10h]
.text:50C02114 shr ecx, 10h
.text:50C02117 movzx ecx, cl
.text:50C0211A mov edx, ebx
.text:50C0211C shr edx, 8
.text:50C0211F movzx edx, dl
.text:50C02122 add eax, 10h
.text:50C02125 mov [ebp+var_20], edi
.text:50C02128 mov edi, dword_50C1BDE4[ecx*4]
.text:50C0212F xor edi, dword_50C1B9E4[edx*4]
.text:50C02136 mov ecx, [ebp+var_10]
.text:50C02139 mov edx, [ebp+var_C]
.text:50C0213C shr ecx, 18h
.text:50C0213F xor edi, dword_50C1C1E4[ecx*4]
.text:50C02146 movzx ecx, byte ptr [ebp+var_C]
.text:50C0214A xor edi, dword_50C1B5E4[ecx*4]
.text:50C02151 shr edx, 18h
.text:50C02154 mov ecx, esi
.text:50C02156 shr ecx, 8
.text:50C02159 movzx ecx, cl
.text:50C0215C mov ecx, dword_50C1B9E4[ecx*4]
.text:50C02163 xor ecx, dword_50C1C1E4[edx*4]
.text:50C0216A mov edx, [ebp+var_10]
.text:50C0216D shr edx, 10h
.text:50C02170 movzx edx, dl
.text:50C02173 xor ecx, dword_50C1BDE4[edx*4]
.text:50C0217A xor edx, edx
.text:50C0217C mov dl, bl
.text:50C0217E xor edi, [eax+4]
.text:50C02181 shr ebx, 18h
.text:50C02184 mov ebx, dword_50C1C1E4[ebx*4]
.text:50C0218B mov [ebp+var_4], esi
.text:50C0218E add eax, 10h
.text:50C02191 mov [ebp+var_1C], edi
.text:50C02194 xor ecx, dword_50C1B5E4[edx*4]
.text:50C0219B mov edx, [ebp+var_C]
.text:50C0219E xor ecx, [eax-8]
.text:50C021A1 shr edx, 10h
.text:50C021A4 movzx edx, dl
.text:50C021A7 xor ebx, dword_50C1BDE4[edx*4]
.text:50C021AE mov edx, [ebp+var_10]
.text:50C021B1 shr edx, 8
.text:50C021B4 movzx edx, dl
.text:50C021B7 xor ebx, dword_50C1B9E4[edx*4]
.text:50C021BE movzx edx, byte ptr [ebp+var_4]
.text:50C021C2 xor ebx, dword_50C1B5E4[edx*4]
.text:50C021C9 mov edx, ecx
.text:50C021CB xor ebx, [eax-4]
.text:50C021CE shr edx, 10h
.text:50C021D1 movzx edx, dl
.text:50C021D4 mov esi, ebx
.text:50C021D6 shr esi, 18h
.text:50C021D9 mov esi, dword_50C1A1E4[esi*4]
.text:50C021E0 xor esi, dword_50C19DE4[edx*4]
.text:50C021E7 mov edx, edi
.text:50C021E9 shr edx, 8
.text:50C021EC movzx edx, dl
.text:50C021EF xor esi, dword_50C199E4[edx*4]
.text:50C021F6 movzx edx, byte ptr [ebp+var_20]
.text:50C021FA xor esi, dword_50C195E4[edx*4]
.text:50C02201 mov edx, ebx
.text:50C02203 shr edx, 10h
.text:50C02206 movzx edi, dl
.text:50C02209 mov edi, dword_50C19DE4[edi*4]
.text:50C02210 mov edx, ecx
.text:50C02212 shr edx, 8
.text:50C02215 movzx edx, dl
.text:50C02218 xor edi, dword_50C199E4[edx*4]
.text:50C0221F mov edx, [ebp+var_20]
.text:50C02222 shr edx, 18h
.text:50C02225 xor edi, dword_50C1A1E4[edx*4]
.text:50C0222C movzx edx, byte ptr [ebp+var_1C]
.text:50C02230 xor edi, dword_50C195E4[edx*4]
.text:50C02237 mov edx, ebx
.text:50C02239 xor edi, [eax+4]
.text:50C0223C shr edx, 8
.text:50C0223F mov [ebp+var_C], edi
.text:50C02242 movzx edi, dl
.text:50C02245 mov edi, dword_50C199E4[edi*4]
.text:50C0224C mov edx, [ebp+var_1C]
.text:50C0224F shr edx, 18h
.text:50C02252 xor edi, dword_50C1A1E4[edx*4]
.text:50C02259 mov edx, [ebp+var_20]
.text:50C0225C shr edx, 10h
.text:50C0225F movzx edx, dl
.text:50C02262 xor edi, dword_50C19DE4[edx*4]
.text:50C02269 xor edx, edx
.text:50C0226B mov dl, cl
.text:50C0226D xor esi, [eax]
.text:50C0226F shr ecx, 18h
.text:50C02272 mov ecx, dword_50C1A1E4[ecx*4]
.text:50C02279 xor edi, dword_50C195E4[edx*4]
.text:50C02280 mov edx, [ebp+var_1C]
.text:50C02283 xor edi, [eax+8]
.text:50C02286 shr edx, 10h
.text:50C02289 movzx edx, dl
.text:50C0228C xor ecx, dword_50C19DE4[edx*4]
.text:50C02293 mov edx, [ebp+var_20]
.text:50C02296 shr edx, 8
.text:50C02299 movzx edx, dl
.text:50C0229C xor ecx, dword_50C199E4[edx*4]
.text:50C022A3 xor edx, edx
.text:50C022A5 mov dl, bl
.text:50C022A7 xor ecx, dword_50C195E4[edx*4]
.text:50C022AE mov edx, [ebp+var_C]
.text:50C022B1 xor ecx, [eax+0Ch]
.text:50C022B4 mov eax, [ebp+arg_4]
.text:50C022B7 mov [eax+8], edi
.text:50C022BA pop edi
.text:50C022BB mov [eax], esi
.text:50C022BD pop esi
.text:50C022BE mov [eax+4], edx
.text:50C022C1 mov [eax+0Ch], ecx
.text:50C022C4 pop ebx
.text:50C022C5 leave
.text:50C022C6 retn
.text:50C022C6 sub_50C0156C endp