All pastes #214661 Raw Edit

Stuff

public text v1 · immutable
#214661 ·published 2006-10-22 04:37 UTC
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