Function at 0x4657c0
Capabilities:
Encrypt data using des
Resolve function by parsing pe exports

Disassembly:
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x14]
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
inc eax
inc eax
inc eax
inc eax
shl edx, 8
or ecx, edx
movzx edx, byte [eax - 2]
inc eax
shl edx, 0x10
or ecx, edx
movzx edx, byte [eax - 2]
inc eax
shl edx, 0x18
or ecx, edx
movzx edx, byte [eax - 2]
movzx esi, byte [eax - 1]
shl esi, 8
or edx, esi
movzx esi, byte [eax + 1]
movzx eax, byte [eax]
shl esi, 8
or esi, eax
shl esi, 0x10
or edx, esi
mov eax, edx
shr eax, 4
xor eax, ecx
and eax, 0xf0f0f0f
xor ecx, eax
shl eax, 4
xor edx, eax
mov eax, ecx
shr eax, 0x10
xor eax, edx
and eax, 0xffff
xor edx, eax
shl eax, 0x10
xor ecx, eax
mov eax, edx
shr eax, 2
xor eax, ecx
and eax, 0x33333333
xor ecx, eax
add eax, eax
add eax, eax
xor edx, eax
mov eax, ecx
shr eax, 8
xor eax, edx
and eax, 0xff00ff
xor edx, eax
shl eax, 8
xor ecx, eax
mov eax, edx
shr eax, 1
xor eax, ecx
and eax, 0x55555555
xor ecx, eax
add eax, eax
xor eax, edx
mov edx, dword [esp + 0x1c]
rol eax, 1
rol ecx, 1
cmp byte [esp + 0x20], 0
jne 0x46603f
mov ebx, dword [edx + 4]
xor ebx, ecx
mov esi, ebx
shr ebx, 4
mov edi, dword [edx]
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, ecx
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 8]
xor eax, ebx
mov ebx, dword [edx + 0xc]
xor ebx, eax
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, eax
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x10]
xor ecx, ebx
mov ebx, dword [edx + 0x14]
xor ebx, ecx
mov esi, ebx
xor edi, ecx
shl esi, 0x1c
shr ebx, 4
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x18]
xor eax, ebx
mov ebx, dword [edx + 0x1c]
xor ebx, eax
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, eax
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x20]
xor ecx, ebx
mov ebx, dword [edx + 0x24]
xor ebx, ecx
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
mov ebp, esi
shr ebp, 0x10
xor edi, ecx
and ebx, 0x3f
and ebp, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
or ebx, dword [ebp*4 + 0x5a3c28]
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x28]
xor eax, ebx
mov ebx, dword [edx + 0x2c]
xor ebx, eax
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, eax
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x30]
xor ecx, ebx
mov ebx, dword [edx + 0x34]
xor ebx, ecx
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, ecx
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x38]
xor eax, ebx
mov ebx, dword [edx + 0x3c]
xor ebx, eax
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, eax
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x40]
xor ecx, ebx
mov ebx, dword [edx + 0x44]
xor ebx, ecx
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, ecx
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x48]
xor eax, ebx
mov ebx, dword [edx + 0x4c]
xor ebx, eax
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, eax
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x50]
xor ecx, ebx
mov ebx, dword [edx + 0x54]
xor ebx, ecx
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, ecx
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x58]
xor eax, ebx
mov ebx, dword [edx + 0x5c]
xor ebx, eax
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, eax
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x60]
xor ecx, ebx
mov ebx, dword [edx + 0x64]
xor ebx, ecx
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, ecx
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x68]
xor eax, ebx
mov ebx, dword [edx + 0x6c]
xor edi, eax
xor ebx, eax
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x70]
xor ecx, ebx
mov ebx, dword [edx + 0x74]
xor ebx, ecx
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, ecx
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x78]
mov edx, dword [edx + 0x7c]
jmp 0x4667fe
mov ebx, dword [edx + 0x7c]
xor ebx, ecx
mov esi, ebx
shr ebx, 4
mov edi, dword [edx + 0x78]
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, ecx
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x70]
xor eax, ebx
mov ebx, dword [edx + 0x74]
xor ebx, eax
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, eax
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x68]
xor ecx, ebx
mov ebx, dword [edx + 0x6c]
xor ebx, ecx
mov esi, ebx
xor edi, ecx
shl esi, 0x1c
shr ebx, 4
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x60]
xor eax, ebx
mov ebx, dword [edx + 0x64]
xor ebx, eax
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, eax
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x58]
xor ecx, ebx
mov ebx, dword [edx + 0x5c]
xor ebx, ecx
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
mov ebp, esi
shr ebp, 0x10
xor edi, ecx
and ebx, 0x3f
and ebp, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
or ebx, dword [ebp*4 + 0x5a3c28]
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x50]
xor eax, ebx
mov ebx, dword [edx + 0x54]
xor ebx, eax
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, eax
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x48]
xor ecx, ebx
mov ebx, dword [edx + 0x4c]
xor ebx, ecx
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, ecx
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x40]
xor eax, ebx
mov ebx, dword [edx + 0x44]
xor ebx, eax
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, eax
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x38]
xor ecx, ebx
mov ebx, dword [edx + 0x3c]
xor ebx, ecx
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, ecx
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x30]
xor eax, ebx
mov ebx, dword [edx + 0x34]
xor ebx, eax
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, eax
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x28]
xor ecx, ebx
mov ebx, dword [edx + 0x2c]
xor ebx, ecx
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, ecx
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x20]
xor eax, ebx
mov ebx, dword [edx + 0x24]
xor ebx, eax
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, eax
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x18]
xor ecx, ebx
mov ebx, dword [edx + 0x1c]
xor ebx, ecx
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, ecx
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 0x10]
xor eax, ebx
mov ebx, dword [edx + 0x14]
xor edi, eax
xor ebx, eax
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx + 8]
xor ecx, ebx
mov ebx, dword [edx + 0xc]
xor ebx, ecx
mov esi, ebx
shr ebx, 4
shl esi, 0x1c
add esi, ebx
mov ebx, esi
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x5a3e28]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3c28]
xor edi, ecx
mov ebp, edi
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3d28]
mov ebp, esi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3a28]
mov ebp, edi
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3b28]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
or ebx, dword [ebp*4 + 0x5a3928]
and esi, 0x3f
or ebx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or ebx, dword [edi*4 + 0x5a3728]
mov edi, dword [edx]
mov edx, dword [edx + 4]
xor eax, ebx
xor edx, eax
mov esi, edx
shr edx, 4
shl esi, 0x1c
add esi, edx
xor edi, eax
mov edx, esi
shr edx, 0x18
and edx, 0x3f
mov edx, dword [edx*4 + 0x5a3e28]
mov ebx, esi
shr ebx, 0x10
and ebx, 0x3f
or edx, dword [ebx*4 + 0x5a3c28]
mov ebx, edi
shr ebx, 0x18
and ebx, 0x3f
or edx, dword [ebx*4 + 0x5a3d28]
mov ebx, esi
shr ebx, 8
and ebx, 0x3f
or edx, dword [ebx*4 + 0x5a3a28]
mov ebx, edi
shr ebx, 0x10
and ebx, 0x3f
or edx, dword [ebx*4 + 0x5a3b28]
mov ebx, edi
shr ebx, 8
and ebx, 0x3f
or edx, dword [ebx*4 + 0x5a3928]
and esi, 0x3f
or edx, dword [esi*4 + 0x5a3828]
and edi, 0x3f
or edx, dword [edi*4 + 0x5a3728]
xor ecx, edx
ror eax, 1
ror ecx, 1
mov edx, ecx
shr edx, 1
xor edx, eax
and edx, 0x55555555
xor eax, edx
add edx, edx
xor ecx, edx
mov edx, eax
shr edx, 8
xor edx, ecx
and edx, 0xff00ff
xor ecx, edx
shl edx, 8
xor eax, edx
mov edx, ecx
shr edx, 2
xor edx, eax
and edx, 0x33333333
xor eax, edx
add edx, edx
add edx, edx
xor ecx, edx
mov edx, eax
shr edx, 0x10
xor edx, ecx
and edx, 0xffff
xor ecx, edx
shl edx, 0x10
xor eax, edx
mov edx, ecx
shr edx, 4
xor edx, eax
and edx, 0xf0f0f0f
xor eax, edx
shl edx, 4
xor ecx, edx
mov edx, dword [esp + 0x18]
lea esi, [edx + 1]
mov byte [edx], al
mov edx, eax
shr edx, 8
mov byte [esi], dl
inc esi
mov edx, eax
shr edx, 0x10
mov byte [esi], dl
inc esi
shr eax, 0x18
mov byte [esi], al
mov byte [esi + 1], cl
inc esi
mov eax, ecx
inc esi
shr eax, 8
mov byte [esi], al
mov edx, ecx
inc esi
shr edx, 0x10
pop edi
mov byte [esi], dl
shr ecx, 0x18
mov byte [esi + 1], cl
pop esi
pop ebp
pop ebx
ret