Function at 0x4206ba
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, eax
shr esi, 4
xor esi, edx
and esi, 0xf0f0f0f
xor edx, esi
push edi
mov edi, esi
shl edi, 4
xor eax, edi
mov esi, eax
shr esi, 0x10
xor esi, edx
and esi, 0xffff
xor edx, esi
mov edi, esi
mov esi, edx
shr esi, 2
shl edi, 0x10
xor eax, edi
xor esi, eax
and esi, 0x33333333
xor eax, esi
mov edi, esi
shl edi, 2
xor edx, edi
mov esi, edx
shr esi, 8
xor esi, eax
and esi, 0xff00ff
xor eax, esi
mov edi, esi
mov esi, eax
shl edi, 8
xor edx, edi
shr esi, 1
xor esi, edx
and esi, 0x55555555
xor edx, esi
lea edi, [esi + esi]
mov esi, edx
xor eax, edi
mov edi, dword [ecx + 0x7c]
mov dword [ebp + 0xc], eax
lea eax, [edx + edx]
shr esi, 0x1f
or esi, eax
mov eax, dword [ecx + 0x3c]
xor eax, esi
mov edx, eax
shl edx, 0x1c
shr eax, 4
or edx, eax
mov dword [ebp - 4], edx
xor edi, esi
mov edx, edi
shr edx, 0x18
push 0x3f
pop eax
and edx, eax
mov edx, dword [edx*4 + 0x45eec8]
mov ebx, edi
shr ebx, 0x10
and ebx, eax
or edx, dword [ebx*4 + 0x45f0c8]
mov ebx, edi
shr ebx, 8
and ebx, eax
or edx, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edx, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edx, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edx, dword [ebx*4 + 0x45f1c8]
and edi, eax
or edx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or edx, dword [edi*4 + 0x45f3c8]
mov edi, dword [ebp + 0xc]
mov ebx, edi
shr ebx, 0x1f
add edi, edi
or ebx, edi
xor edx, ebx
mov ebx, dword [ecx + 0x78]
xor ebx, edx
mov dword [ebp + 0xc], ebx
mov edi, dword [ecx + 0x38]
xor edi, edx
mov ebx, edi
shl ebx, 0x1c
shr edi, 4
or ebx, edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp + 0xc]
shr ebx, 0x10
and ebx, eax
shr edi, 0x18
and edi, eax
mov edi, dword [edi*4 + 0x45eec8]
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, dword [ebp + 0xc]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
mov ebx, edi
mov edi, dword [ebp + 0xc]
and edi, eax
or ebx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or ebx, dword [edi*4 + 0x45f3c8]
mov edi, dword [ecx + 0x34]
xor esi, ebx
mov ebx, dword [ecx + 0x74]
xor ebx, esi
mov dword [ebp + 0xc], ebx
xor edi, esi
mov ebx, edi
shl ebx, 0x1c
shr edi, 4
or ebx, edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp + 0xc]
shr edi, 0x18
shr ebx, 0x10
and ebx, eax
and edi, eax
mov edi, dword [edi*4 + 0x45eec8]
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, dword [ebp + 0xc]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
mov ebx, edi
mov edi, dword [ebp + 0xc]
and edi, eax
or ebx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or ebx, dword [edi*4 + 0x45f3c8]
mov edi, dword [ecx + 0x30]
xor edx, ebx
mov ebx, dword [ecx + 0x70]
xor ebx, edx
mov dword [ebp + 0xc], ebx
xor edi, edx
mov ebx, edi
shl ebx, 0x1c
shr edi, 4
or ebx, edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp + 0xc]
shr ebx, 0x10
and ebx, eax
shr edi, 0x18
and edi, eax
mov edi, dword [edi*4 + 0x45eec8]
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, dword [ebp + 0xc]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
mov ebx, edi
mov edi, dword [ebp + 0xc]
and edi, eax
or ebx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or ebx, dword [edi*4 + 0x45f3c8]
mov edi, dword [ecx + 0x2c]
xor esi, ebx
mov ebx, dword [ecx + 0x6c]
xor ebx, esi
xor edi, esi
mov dword [ebp + 0xc], ebx
mov ebx, edi
shr edi, 4
shl ebx, 0x1c
or ebx, edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp + 0xc]
shr edi, 0x18
and edi, eax
mov edi, dword [edi*4 + 0x45eec8]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, dword [ebp + 0xc]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
mov ebx, edi
mov edi, dword [ebp + 0xc]
and edi, eax
or ebx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or ebx, dword [edi*4 + 0x45f3c8]
mov edi, dword [ecx + 0x28]
xor edx, ebx
mov ebx, dword [ecx + 0x68]
xor ebx, edx
mov dword [ebp + 0xc], ebx
xor edi, edx
mov ebx, edi
shl ebx, 0x1c
shr edi, 4
or ebx, edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp + 0xc]
shr ebx, 0x10
and ebx, eax
shr edi, 0x18
and edi, eax
mov edi, dword [edi*4 + 0x45eec8]
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, dword [ebp + 0xc]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
mov ebx, edi
mov edi, dword [ebp + 0xc]
and edi, eax
or ebx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or ebx, dword [edi*4 + 0x45f3c8]
mov edi, dword [ecx + 0x24]
xor esi, ebx
mov ebx, dword [ecx + 0x64]
xor ebx, esi
xor edi, esi
mov dword [ebp + 0xc], ebx
mov ebx, edi
shr edi, 4
shl ebx, 0x1c
or ebx, edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp + 0xc]
shr edi, 0x18
and edi, eax
shr ebx, 0x10
mov edi, dword [edi*4 + 0x45eec8]
and ebx, eax
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, dword [ebp + 0xc]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
mov ebx, edi
mov edi, dword [ebp + 0xc]
and edi, eax
or ebx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or ebx, dword [edi*4 + 0x45f3c8]
mov edi, dword [ecx + 0x20]
xor edx, ebx
mov ebx, dword [ecx + 0x60]
xor ebx, edx
mov dword [ebp + 0xc], ebx
xor edi, edx
mov ebx, edi
shl ebx, 0x1c
shr edi, 4
or ebx, edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp + 0xc]
shr ebx, 0x10
and ebx, eax
shr edi, 0x18
and edi, eax
mov edi, dword [edi*4 + 0x45eec8]
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, dword [ebp + 0xc]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
mov ebx, edi
mov edi, dword [ebp + 0xc]
and edi, eax
or ebx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or ebx, dword [edi*4 + 0x45f3c8]
mov edi, dword [ecx + 0x1c]
xor esi, ebx
mov ebx, dword [ecx + 0x5c]
xor ebx, esi
xor edi, esi
mov dword [ebp + 0xc], ebx
mov ebx, edi
shl ebx, 0x1c
shr edi, 4
or ebx, edi
mov dword [ebp - 4], ebx
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0xc]
shr ebx, 0x10
and ebx, eax
shr edi, 0x18
and edi, eax
mov edi, dword [edi*4 + 0x45eec8]
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, dword [ebp + 0xc]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
mov ebx, edi
mov edi, dword [ebp + 0xc]
and edi, eax
or ebx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or ebx, dword [edi*4 + 0x45f3c8]
mov edi, dword [ecx + 0x18]
xor edx, ebx
mov ebx, dword [ecx + 0x58]
xor ebx, edx
mov dword [ebp + 0xc], ebx
xor edi, edx
mov ebx, edi
shl ebx, 0x1c
shr edi, 4
or ebx, edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp + 0xc]
shr ebx, 0x10
shr edi, 0x18
and ebx, eax
and edi, eax
mov edi, dword [edi*4 + 0x45eec8]
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, dword [ebp + 0xc]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
mov ebx, edi
mov edi, dword [ebp + 0xc]
and edi, eax
or ebx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or ebx, dword [edi*4 + 0x45f3c8]
mov edi, dword [ecx + 0x14]
xor esi, ebx
mov ebx, dword [ecx + 0x54]
xor edi, esi
xor ebx, esi
mov dword [ebp + 0xc], ebx
mov ebx, edi
shl ebx, 0x1c
shr edi, 4
or ebx, edi
mov dword [ebp - 4], ebx
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0xc]
shr ebx, 0x10
and ebx, eax
shr edi, 0x18
and edi, eax
mov edi, dword [edi*4 + 0x45eec8]
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, dword [ebp + 0xc]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
mov ebx, edi
mov edi, dword [ebp + 0xc]
and edi, eax
or ebx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or ebx, dword [edi*4 + 0x45f3c8]
mov edi, dword [ecx + 0x10]
xor edx, ebx
mov ebx, dword [ecx + 0x50]
xor ebx, edx
mov dword [ebp + 0xc], ebx
xor edi, edx
mov ebx, edi
shl ebx, 0x1c
shr edi, 4
or ebx, edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp + 0xc]
shr ebx, 0x10
and ebx, eax
shr edi, 0x18
and edi, eax
mov edi, dword [edi*4 + 0x45eec8]
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, dword [ebp + 0xc]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
mov ebx, edi
mov edi, dword [ebp + 0xc]
and edi, eax
or ebx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or ebx, dword [edi*4 + 0x45f3c8]
xor esi, ebx
mov ebx, dword [ecx + 0x4c]
xor ebx, esi
mov dword [ebp + 0xc], ebx
mov edi, dword [ecx + 0xc]
xor edi, esi
mov ebx, edi
shl ebx, 0x1c
shr edi, 4
or ebx, edi
mov dword [ebp - 4], ebx
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0xc]
shr ebx, 0x10
and ebx, eax
shr edi, 0x18
and edi, eax
mov edi, dword [edi*4 + 0x45eec8]
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, dword [ebp + 0xc]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
mov ebx, edi
mov edi, dword [ebp + 0xc]
and edi, eax
or ebx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or ebx, dword [edi*4 + 0x45f3c8]
mov edi, dword [ecx + 8]
xor edx, ebx
mov ebx, dword [ecx + 0x48]
xor ebx, edx
mov dword [ebp + 0xc], ebx
xor edi, edx
mov ebx, edi
shl ebx, 0x1c
shr edi, 4
or ebx, edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp + 0xc]
shr ebx, 0x10
and ebx, eax
shr edi, 0x18
and edi, eax
mov edi, dword [edi*4 + 0x45eec8]
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, dword [ebp + 0xc]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
mov ebx, edi
mov edi, dword [ebp + 0xc]
and edi, eax
or ebx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or ebx, dword [edi*4 + 0x45f3c8]
mov edi, dword [ecx + 4]
xor esi, ebx
mov ebx, dword [ecx + 0x44]
xor ebx, esi
mov dword [ebp + 0xc], ebx
xor edi, esi
mov ebx, edi
shl ebx, 0x1c
shr edi, 4
or ebx, edi
mov dword [ebp - 4], ebx
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0xc]
shr ebx, 0x10
and ebx, eax
shr edi, 0x18
and edi, eax
mov edi, dword [edi*4 + 0x45eec8]
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, dword [ebp + 0xc]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
mov ebx, edi
mov edi, dword [ebp + 0xc]
and edi, eax
or ebx, dword [edi*4 + 0x45f4c8]
mov edi, dword [ebp - 4]
and edi, eax
or ebx, dword [edi*4 + 0x45f3c8]
mov edi, dword [ecx]
mov ecx, dword [ecx + 0x40]
xor edx, ebx
xor edi, edx
mov ebx, edi
shl ebx, 0x1c
shr edi, 4
or ebx, edi
mov dword [ebp - 4], ebx
xor ecx, edx
mov edi, ecx
shr edi, 0x18
and edi, eax
mov edi, dword [edi*4 + 0x45eec8]
mov ebx, ecx
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45f0c8]
mov ebx, ecx
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f2c8]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
and ebx, eax
or edi, dword [ebx*4 + 0x45edc8]
mov ebx, dword [ebp - 4]
shr ebx, 0x10
and ebx, eax
or edi, dword [ebx*4 + 0x45efc8]
mov ebx, dword [ebp - 4]
shr ebx, 8
and ebx, eax
or edi, dword [ebx*4 + 0x45f1c8]
and ecx, eax
or edi, dword [ecx*4 + 0x45f4c8]
mov ecx, dword [ebp - 4]
and ecx, eax
or edi, dword [ecx*4 + 0x45f3c8]
xor esi, edi
mov ecx, esi
shr esi, 1
shl ecx, 0x1f
or ecx, esi
mov edi, edx
shr edx, 1
mov eax, ecx
shr eax, 1
shl edi, 0x1f
or edi, edx
xor eax, edi
and eax, 0x55555555
lea esi, [eax + eax]
xor ecx, esi
mov edx, edi
xor edx, eax
mov eax, edx
shr eax, 8
xor eax, ecx
and eax, 0xff00ff
mov esi, eax
xor ecx, eax
shl esi, 8
xor edx, esi
mov eax, edx
shr eax, 2
xor eax, ecx
and eax, 0x33333333
xor ecx, eax
mov esi, eax
shl esi, 2
xor edx, esi
mov eax, ecx
shr eax, 0x10
xor eax, edx
and eax, 0xffff
mov esi, eax
shl esi, 0x10
xor ecx, esi
xor edx, eax
mov eax, ecx
shr eax, 4
xor eax, edx
and eax, 0xf0f0f0f
mov esi, eax
shl esi, 4
xor esi, ecx
mov ecx, dword [ebp + 8]
pop edi
mov dword [ecx], esi
xor eax, edx
pop esi
mov dword [ecx + 4], eax
pop ebx
leave
ret