Function at 0x420e50
Capabilities:
Encrypt data using des

Disassembly:
mov al, byte [esp + 0x10]
push ebx
mov ebx, dword [esp + 8]
push ebp
push esi
push edi
test al, al
mov eax, ebx
jne 0x420e68
lea eax, [ebx + 0x80]
mov esi, dword [esp + 0x18]
xor ecx, ecx
xor edx, edx
add eax, 4
mov ch, byte [esi]
mov dl, byte [esi + 2]
mov cl, byte [esi + 1]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [esi + 3]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [esi + 6]
mov ebp, ecx
xor ecx, ecx
mov ch, byte [esi + 4]
mov cl, byte [esi + 5]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [esi + 7]
shl ecx, 8
or ecx, edx
mov edx, ebp
shr edx, 4
mov esi, ecx
and edx, 0xf0f0f0f
and esi, 0xf0f0f0f
xor edx, esi
xor ecx, edx
shl edx, 4
xor ebp, edx
mov esi, ecx
mov edx, ebp
and esi, 0xffff
shr edx, 0x10
xor edx, esi
xor ecx, edx
shl edx, 0x10
xor ebp, edx
mov edx, ecx
shr edx, 2
mov esi, ebp
and edx, 0x33333333
and esi, 0x33333333
xor edx, esi
xor ebp, edx
shl edx, 2
xor ecx, edx
mov esi, ebp
mov edx, ecx
and esi, 0xff00ff
shr edx, 8
and edx, 0xff00ff
xor edx, esi
xor ebp, edx
shl edx, 8
xor ecx, edx
mov edi, ecx
add ecx, ecx
shr edi, 0x1f
or edi, ecx
mov ecx, edi
xor ecx, ebp
and ecx, 0xaaaaaaaa
xor ebp, ecx
xor edi, ecx
mov ecx, dword [eax - 4]
mov esi, ebp
shr esi, 0x1f
lea edx, [ebp + ebp]
xor ecx, edi
or esi, edx
mov edx, ecx
shr edx, 0x18
and edx, 0x3f
mov ebp, dword [edx*4 + 0x555bfc]
mov edx, ecx
xor esi, ebp
shr edx, 0x10
and edx, 0x3f
add eax, 4
add eax, 4
mov ebp, dword [edx*4 + 0x555dfc]
mov edx, ecx
shr edx, 8
and edx, 0x3f
xor esi, ebp
and ecx, 0x3f
add eax, 4
mov ebp, dword [edx*4 + 0x555ffc]
mov edx, edi
xor esi, ebp
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, edi
xor esi, ebp
mov ebp, dword [eax - 0xc]
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebp
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555afc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555efc]
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 8]
xor edx, ebp
xor esi, edx
xor ecx, esi
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555ffc]
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, esi
xor edx, ebp
mov ebp, dword [eax - 4]
xor edi, edx
mov edx, esi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebp
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555afc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555efc]
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax]
xor edx, ebp
xor edi, edx
xor ecx, edi
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
add eax, 4
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
add eax, 4
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
add eax, 4
xor edx, dword [ebp*4 + 0x555ffc]
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, edi
add eax, 4
xor edx, ebp
mov ebp, dword [eax - 0xc]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebp
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555afc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555efc]
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 8]
xor edx, ebp
xor esi, edx
xor ecx, esi
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555ffc]
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, esi
xor edx, ebp
mov ebp, dword [eax - 4]
xor edi, edx
mov edx, esi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebp
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555afc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555efc]
and ecx, 0x3f
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax]
xor edx, ebp
add eax, 4
xor edi, edx
add eax, 4
xor ecx, edi
add eax, 4
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
add eax, 4
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555ffc]
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, edi
xor edx, ebp
mov ebp, dword [eax - 0xc]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebp
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555afc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555efc]
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 8]
xor edx, ebp
xor esi, edx
xor ecx, esi
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555ffc]
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, esi
xor edx, ebp
mov ebp, dword [eax - 4]
xor edi, edx
mov edx, esi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebp
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555afc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
and ecx, 0x3f
shr ebp, 8
and ebp, 0x3f
add eax, 4
add eax, 4
xor edx, dword [ebp*4 + 0x555efc]
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 8]
add eax, 4
xor edx, ebp
add eax, 4
xor edi, edx
xor ecx, edi
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555ffc]
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, edi
xor edx, ebp
mov ebp, dword [eax - 0xc]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebp
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555afc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555efc]
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 8]
xor edx, ebp
xor esi, edx
xor ecx, esi
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555ffc]
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, esi
xor edx, ebp
mov ebp, dword [eax - 4]
xor edi, edx
mov edx, esi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebp
mov edx, ecx
shr edx, 0x18
and edx, 0x3f
mov edx, dword [edx*4 + 0x555afc]
mov ebp, ecx
shr ebp, 0x10
and ebp, 0x3f
add eax, 4
add eax, 4
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
add eax, 4
xor edx, dword [ebp*4 + 0x555efc]
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 0xc]
xor edx, ebp
xor edi, edx
xor ecx, edi
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555ffc]
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, edi
xor edx, ebp
mov ebp, dword [eax - 8]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebp
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555afc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555efc]
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 4]
xor edx, ebp
xor esi, edx
xor ecx, esi
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555ffc]
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, esi
xor edx, ebp
mov ebp, dword [eax]
xor edi, edx
mov edx, esi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebp
add eax, 4
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
add eax, 4
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555afc]
and ebp, 0x3f
add eax, 4
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
add eax, 4
xor edx, dword [ebp*4 + 0x555efc]
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 0xc]
xor edx, ebp
xor edi, edx
xor ecx, edi
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555ffc]
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, edi
xor edx, ebp
mov ebp, dword [eax - 8]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebp
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555afc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555efc]
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 4]
xor edx, ebp
xor esi, edx
xor ecx, esi
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555ffc]
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, esi
xor edx, ebp
xor edi, edx
mov ebp, dword [eax]
mov edx, esi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
add eax, 4
xor ecx, ebp
add eax, 4
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
add eax, 4
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555afc]
and ebp, 0x3f
add eax, 4
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555efc]
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 0xc]
xor edx, ebp
xor edi, edx
xor ecx, edi
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555ffc]
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, edi
xor edx, ebp
mov ebp, dword [eax - 8]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebp
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555afc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555efc]
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 4]
xor edx, ebp
xor esi, edx
xor ecx, esi
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555ffc]
and ecx, 0x3f
add eax, 4
add eax, 4
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, esi
xor edx, ebp
mov ebp, dword [eax - 8]
xor edi, edx
mov edx, esi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
add eax, 4
xor ecx, ebp
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555afc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555efc]
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 8]
xor edx, ebp
xor edi, edx
xor ecx, edi
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555ffc]
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, edi
xor edx, ebp
mov ebp, dword [eax - 4]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebp
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555afc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555cfc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
xor edx, dword [ebp*4 + 0x555efc]
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax]
xor edx, ebp
xor esi, edx
xor ecx, esi
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x555bfc]
and ebp, 0x3f
xor edx, dword [ebp*4 + 0x555dfc]
mov ebp, ecx
and ecx, 0x3f
shr ebp, 8
and ebp, 0x3f
push 0x556384
push ebx
xor edx, dword [ebp*4 + 0x555ffc]
mov ebp, dword [ecx*4 + 0x5561fc]
mov ecx, esi
xor edx, ebp
xor edi, edx
mov edx, esi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
mov edx, dword [eax + 4]
xor ecx, edx
mov edx, ecx
mov eax, ecx
shr edx, 0x10
and edx, 0x3f
shr eax, 0x18
mov ebp, dword [edx*4 + 0x555cfc]
mov edx, ecx
and eax, 0x3f
and ecx, 0x3f
shr edx, 8
mov eax, dword [eax*4 + 0x555afc]
and edx, 0x3f
xor eax, ebp
mov ebp, dword [edx*4 + 0x555efc]
mov edx, dword [ecx*4 + 0x5560fc]
xor eax, ebp
xor eax, edx
xor edi, eax
call fcn.00420e10
mov al, byte [esp + 0x28]
add esp, 8
test al, al
mov eax, ebx
jne 0x42186c
lea eax, [ebx + 0x80]
mov ecx, dword [eax]
add eax, 4
xor ecx, edi
add eax, 4
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
add eax, 4
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555bfc]
and ebx, 0x3f
xor edx, ebp
add eax, 4
mov ebp, dword [ebx*4 + 0x555ffc]
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
mov ecx, edi
xor edx, ebx
mov ebx, dword [eax - 0xc]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebx
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555cfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555afc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555efc]
mov ebx, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 8]
xor edx, ebp
xor edx, ebx
xor esi, edx
xor ecx, esi
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555bfc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555ffc]
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
mov ecx, esi
xor edx, ebx
mov ebx, dword [eax - 4]
xor edi, edx
mov edx, esi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebx
mov edx, ecx
mov ebx, ecx
shr edx, 0x18
and edx, 0x3f
shr ebx, 0x10
and ebx, 0x3f
mov edx, dword [edx*4 + 0x555afc]
add eax, 4
mov ebp, dword [ebx*4 + 0x555cfc]
mov ebx, ecx
shr ebx, 8
and ebx, 0x3f
xor edx, ebp
and ecx, 0x3f
add eax, 4
mov ebp, dword [ebx*4 + 0x555efc]
add eax, 4
mov ebx, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 0xc]
xor edx, ebp
xor edx, ebx
xor edi, edx
xor ecx, edi
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555bfc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555ffc]
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
mov ecx, edi
xor edx, ebx
mov ebx, dword [eax - 8]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebx
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555cfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555afc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555efc]
mov ebx, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 4]
xor edx, ebp
xor edx, ebx
xor esi, edx
xor ecx, esi
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555bfc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555ffc]
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
xor edx, ebx
xor edi, edx
mov ebx, dword [eax]
mov ecx, esi
mov edx, esi
add eax, 4
shl ecx, 0x1c
shr edx, 4
or ecx, edx
add eax, 4
xor ecx, ebx
add eax, 4
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
add eax, 4
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555cfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555afc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555efc]
mov ebx, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 0xc]
xor edx, ebp
xor edx, ebx
xor edi, edx
xor ecx, edi
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555bfc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555ffc]
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
mov ecx, edi
xor edx, ebx
mov ebx, dword [eax - 8]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebx
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555cfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555afc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555efc]
mov ebx, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 4]
xor edx, ebp
xor edx, ebx
xor esi, edx
xor ecx, esi
mov edx, ecx
mov ebx, ecx
shr edx, 0x18
and edx, 0x3f
shr ebx, 0x10
and ebx, 0x3f
mov edx, dword [edx*4 + 0x555bfc]
add eax, 4
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
shr ebx, 8
and ebx, 0x3f
xor edx, ebp
and ecx, 0x3f
add eax, 4
mov ebp, dword [ebx*4 + 0x555ffc]
add eax, 4
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
xor edx, ebx
mov ebx, dword [eax - 0xc]
xor edi, edx
mov ecx, esi
mov edx, esi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebx
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555cfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555afc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555efc]
mov ebx, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 8]
xor edx, ebp
xor edx, ebx
xor edi, edx
xor ecx, edi
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555bfc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555ffc]
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
mov ecx, edi
xor edx, ebx
mov ebx, dword [eax - 4]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebx
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
shr edx, 0x18
and ebx, 0x3f
and edx, 0x3f
mov ebp, dword [ebx*4 + 0x555cfc]
mov edx, dword [edx*4 + 0x555afc]
mov ebx, ecx
xor edx, ebp
shr ebx, 8
and ebx, 0x3f
mov ebp, dword [ebx*4 + 0x555efc]
and ecx, 0x3f
xor edx, ebp
add eax, 4
mov ebx, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 4]
xor edx, ebx
add eax, 4
xor esi, edx
add eax, 4
xor ecx, esi
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555bfc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555ffc]
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
mov ecx, esi
xor edx, ebx
mov ebx, dword [eax - 8]
xor edi, edx
mov edx, esi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebx
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555cfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555afc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555efc]
mov ebx, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 4]
xor edx, ebp
xor edx, ebx
xor edi, edx
xor ecx, edi
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555bfc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555ffc]
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
mov ecx, edi
xor edx, ebx
mov ebx, dword [eax]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebx
add eax, 4
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
add eax, 4
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555cfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555afc]
and ebx, 0x3f
xor edx, ebp
add eax, 4
mov ebp, dword [ebx*4 + 0x555efc]
mov ebx, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 8]
xor edx, ebp
xor edx, ebx
add eax, 4
xor esi, edx
xor ecx, esi
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555bfc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555ffc]
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
mov ecx, esi
xor edx, ebx
mov ebx, dword [eax - 8]
xor edi, edx
mov edx, esi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebx
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555cfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555afc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555efc]
mov ebx, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 4]
xor edx, ebp
xor edx, ebx
xor edi, edx
xor ecx, edi
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
shr edx, 0x18
and ebx, 0x3f
and edx, 0x3f
mov ebp, dword [ebx*4 + 0x555dfc]
mov edx, dword [edx*4 + 0x555bfc]
mov ebx, ecx
xor edx, ebp
shr ebx, 8
and ebx, 0x3f
mov ebp, dword [ebx*4 + 0x555ffc]
and ecx, 0x3f
xor edx, ebp
add eax, 4
mov ebx, dword [ecx*4 + 0x5561fc]
mov ecx, edi
xor edx, ebx
mov ebx, dword [eax - 4]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
add eax, 4
xor ecx, ebx
add eax, 4
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555cfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555afc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555efc]
mov ebx, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 8]
xor edx, ebp
xor edx, ebx
xor esi, edx
xor ecx, esi
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555bfc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555ffc]
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
mov ecx, esi
xor edx, ebx
mov ebx, dword [eax - 4]
xor edi, edx
mov edx, esi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebx
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555cfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555afc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555efc]
mov ebx, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax]
xor edx, ebp
xor edx, ebx
xor edi, edx
xor ecx, edi
add eax, 4
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
add eax, 4
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555bfc]
and ebx, 0x3f
xor edx, ebp
add eax, 4
mov ebp, dword [ebx*4 + 0x555ffc]
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
mov ecx, edi
xor edx, ebx
mov ebx, dword [eax - 8]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
add eax, 4
xor ecx, ebx
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555cfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555afc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555efc]
mov ebx, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 8]
xor edx, ebp
xor edx, ebx
xor esi, edx
xor ecx, esi
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555bfc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555ffc]
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
mov ecx, esi
xor edx, ebx
mov ebx, dword [eax - 4]
xor edi, edx
mov edx, esi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebx
mov edx, ecx
mov ebx, ecx
shr edx, 0x18
shr ebx, 0x10
and edx, 0x3f
and ebx, 0x3f
mov edx, dword [edx*4 + 0x555afc]
mov ebp, dword [ebx*4 + 0x555cfc]
mov ebx, ecx
xor edx, ebp
shr ebx, 8
and ebx, 0x3f
and ecx, 0x3f
add eax, 4
mov ebp, dword [ebx*4 + 0x555efc]
mov ebx, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax - 4]
xor edx, ebp
xor edx, ebx
add eax, 4
xor edi, edx
xor ecx, edi
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555bfc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555ffc]
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
mov ecx, edi
xor edx, ebx
mov ebx, dword [eax - 4]
xor esi, edx
mov edx, edi
shl ecx, 0x1c
shr edx, 4
or ecx, edx
xor ecx, ebx
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555cfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555afc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555efc]
xor edx, ebp
mov ebp, dword [ecx*4 + 0x5560fc]
mov ecx, dword [eax]
xor edx, ebp
xor esi, edx
xor ecx, esi
mov ebx, ecx
mov edx, ecx
shr ebx, 0x10
and ebx, 0x3f
shr edx, 0x18
mov ebp, dword [ebx*4 + 0x555dfc]
mov ebx, ecx
and edx, 0x3f
and ecx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x555bfc]
and ebx, 0x3f
xor edx, ebp
mov ebp, dword [ebx*4 + 0x555ffc]
mov ebx, dword [ecx*4 + 0x5561fc]
xor edx, ebp
mov ecx, esi
xor edx, ebx
xor edi, edx
mov edx, esi
shl ecx, 0x1c
shr edx, 4
mov ebx, dword [eax + 4]
or ecx, edx
xor ecx, ebx
mov edx, ecx
mov eax, ecx
shr edx, 0x10
and edx, 0x3f
shr eax, 0x18
mov ebx, dword [edx*4 + 0x555cfc]
mov edx, ecx
and eax, 0x3f
and ecx, 0x3f
shr edx, 8
mov eax, dword [eax*4 + 0x555afc]
and edx, 0x3f
xor eax, ebx
mov ebp, dword [edx*4 + 0x555efc]
mov edx, dword [ecx*4 + 0x5560fc]
xor eax, ebp
xor eax, edx
xor edi, eax
mov eax, edi
shl eax, 0x1f
shr edi, 1
or eax, edi
mov ecx, eax
xor ecx, esi
and ecx, 0xaaaaaaaa
xor esi, ecx
xor eax, ecx
mov ecx, esi
shl ecx, 0x1f
shr esi, 1
or ecx, esi
mov esi, eax
mov edx, ecx
and esi, 0xff00ff
shr edx, 8
and edx, 0xff00ff
xor edx, esi
xor eax, edx
shl edx, 8
xor ecx, edx
mov esi, eax
mov edx, ecx
and esi, 0x33333333
shr edx, 2
and edx, 0x33333333
xor edx, esi
xor eax, edx
shl edx, 2
xor ecx, edx
mov edx, eax
mov esi, ecx
shr edx, 0x10
and esi, 0xffff
xor edx, esi
xor ecx, edx
shl edx, 0x10
xor eax, edx
mov esi, ecx
mov edx, eax
and esi, 0xf0f0f0f
shr edx, 4
and edx, 0xf0f0f0f
xor edx, esi
mov esi, dword [esp + 0x1c]
xor ecx, edx
shl edx, 4
xor eax, edx
mov edx, eax
mov byte [esi + 3], al
shr edx, 0x18
mov byte [esi], dl
mov edx, eax
shr edx, 0x10
mov byte [esi + 1], dl
mov edx, eax
shr edx, 8
mov byte [esi + 2], dl
mov eax, ecx
shr eax, 0x18
mov byte [esi + 4], al
mov edx, ecx
mov eax, ecx
mov byte [esi + 7], cl
shr edx, 0x10
shr eax, 8
mov byte [esi + 5], dl
mov byte [esi + 6], al
pop edi
pop esi
pop ebp
xor al, al
pop ebx
ret