Function at 0x402960
Capabilities:
Encode data using xor
Encrypt data using des

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xc
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
mov edx, dword [eax]
mov eax, dword [eax + 4]
lea edi, [ebp + 0x80]
mov ebx, ebp
mov dword [esp + 4], edi
bswap edx
mov ecx, edx
bswap eax
shr ecx, 4
xor ecx, eax
and ecx, 0xf0f0f0f
xor eax, ecx
shl ecx, 4
xor ecx, edx
mov edx, ecx
shr edx, 0x10
xor edx, eax
movzx edx, dx
xor eax, edx
shl edx, 0x10
mov esi, eax
xor edx, ecx
shr esi, 2
xor esi, edx
and esi, 0x33333333
xor edx, esi
shl esi, 2
xor esi, eax
mov ecx, esi
shr ecx, 8
xor ecx, edx
and ecx, 0xff00ff
mov eax, ecx
xor edx, ecx
shl eax, 8
mov ecx, edx
xor eax, esi
rol eax, 1
xor ecx, eax
and ecx, 0xaaaaaaaa
xor edx, ecx
xor eax, ecx
rol edx, 1
lea esi, [esi]
mov ecx, dword [ebx]
mov edi, eax
add ebx, 0x10
ror edi, 4
xor edi, dword [ebx - 0xc]
xor ecx, eax
mov ebp, edi
mov esi, ecx
and ebp, 0x3f
and esi, 0x3f
mov esi, dword [esi*4 + 0x40d340]
xor esi, dword [ebp*4 + 0x40d440]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
xor esi, dword [ebp*4 + 0x40d540]
mov ebp, ecx
shr ecx, 0x18
shr ebp, 0x10
and ecx, 0x3f
and ebp, 0x3f
xor esi, dword [ebp*4 + 0x40d740]
xor esi, dword [ecx*4 + 0x40d940]
mov ecx, edi
shr ecx, 8
and ecx, 0x3f
xor esi, dword [ecx*4 + 0x40d640]
mov ecx, edi
shr edi, 0x18
shr ecx, 0x10
and edi, 0x3f
and ecx, 0x3f
xor esi, dword [ecx*4 + 0x40d840]
xor esi, dword [edi*4 + 0x40da40]
mov edi, dword [ebx - 8]
xor edx, esi
mov esi, edx
xor edi, edx
ror esi, 4
xor esi, dword [ebx - 4]
mov ecx, edi
mov ebp, edi
shr ecx, 8
and ebp, 0x3f
and ecx, 0x3f
mov ecx, dword [ecx*4 + 0x40d540]
xor ecx, dword [ebp*4 + 0x40d340]
xor ecx, eax
mov eax, edi
shr edi, 0x18
shr eax, 0x10
and edi, 0x3f
and eax, 0x3f
xor ecx, dword [eax*4 + 0x40d740]
mov eax, esi
xor ecx, dword [edi*4 + 0x40d940]
and eax, 0x3f
mov edi, dword [esp + 4]
xor ecx, dword [eax*4 + 0x40d440]
mov eax, esi
shr eax, 8
and eax, 0x3f
xor ecx, dword [eax*4 + 0x40d640]
mov eax, esi
shr esi, 0x18
shr eax, 0x10
and esi, 0x3f
and eax, 0x3f
xor ecx, dword [eax*4 + 0x40d840]
mov eax, dword [esi*4 + 0x40da40]
xor eax, ecx
cmp ebx, edi
jne 0x4029e8
mov ebp, dword [esp + 0x20]
lea edi, [ebp + 0x100]
mov dword [esp + 4], edi
mov ecx, dword [ebx]
mov edi, edx
add ebx, 0x10
ror edi, 4
xor edi, dword [ebx - 0xc]
xor ecx, edx
mov ebp, edi
mov esi, ecx
and ebp, 0x3f
and esi, 0x3f
mov esi, dword [esi*4 + 0x40d340]
xor esi, dword [ebp*4 + 0x40d440]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
xor esi, dword [ebp*4 + 0x40d540]
mov ebp, ecx
shr ecx, 0x18
shr ebp, 0x10
and ecx, 0x3f
and ebp, 0x3f
xor esi, dword [ebp*4 + 0x40d740]
xor esi, dword [ecx*4 + 0x40d940]
mov ecx, edi
shr ecx, 8
and ecx, 0x3f
xor esi, dword [ecx*4 + 0x40d640]
mov ecx, edi
shr edi, 0x18
shr ecx, 0x10
and edi, 0x3f
and ecx, 0x3f
xor esi, dword [ecx*4 + 0x40d840]
xor esi, dword [edi*4 + 0x40da40]
mov edi, dword [ebx - 8]
xor eax, esi
mov esi, eax
xor edi, eax
ror esi, 4
xor esi, dword [ebx - 4]
mov ecx, edi
mov ebp, edi
shr ecx, 8
and ebp, 0x3f
and ecx, 0x3f
mov ecx, dword [ecx*4 + 0x40d540]
xor ecx, dword [ebp*4 + 0x40d340]
xor ecx, edx
mov edx, edi
shr edi, 0x18
shr edx, 0x10
and edi, 0x3f
and edx, 0x3f
xor ecx, dword [edx*4 + 0x40d740]
mov edx, esi
xor ecx, dword [edi*4 + 0x40d940]
and edx, 0x3f
mov edi, dword [esp + 4]
xor ecx, dword [edx*4 + 0x40d440]
mov edx, esi
shr edx, 8
and edx, 0x3f
xor ecx, dword [edx*4 + 0x40d640]
mov edx, esi
shr esi, 0x18
shr edx, 0x10
and esi, 0x3f
and edx, 0x3f
xor ecx, dword [edx*4 + 0x40d840]
mov edx, dword [esi*4 + 0x40da40]
xor edx, ecx
cmp ebx, edi
jne 0x402b00
mov ebp, dword [esp + 0x20]
lea edi, [ebp + 0x180]
mov dword [esp + 4], edi
lea esi, [esi]
nop
mov ecx, dword [ebx]
mov edi, eax
add ebx, 0x10
ror edi, 4
xor edi, dword [ebx - 0xc]
xor ecx, eax
mov ebp, edi
mov esi, ecx
and ebp, 0x3f
and esi, 0x3f
mov esi, dword [esi*4 + 0x40d340]
xor esi, dword [ebp*4 + 0x40d440]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
xor esi, dword [ebp*4 + 0x40d540]
mov ebp, ecx
shr ecx, 0x18
shr ebp, 0x10
and ecx, 0x3f
and ebp, 0x3f
xor esi, dword [ebp*4 + 0x40d740]
xor esi, dword [ecx*4 + 0x40d940]
mov ecx, edi
shr ecx, 8
and ecx, 0x3f
xor esi, dword [ecx*4 + 0x40d640]
mov ecx, edi
shr edi, 0x18
shr ecx, 0x10
and edi, 0x3f
and ecx, 0x3f
xor esi, dword [ecx*4 + 0x40d840]
xor esi, dword [edi*4 + 0x40da40]
mov edi, dword [ebx - 8]
xor edx, esi
mov esi, edx
xor edi, edx
ror esi, 4
xor esi, dword [ebx - 4]
mov ecx, edi
mov ebp, edi
shr ecx, 8
and ebp, 0x3f
and ecx, 0x3f
mov ecx, dword [ecx*4 + 0x40d540]
xor ecx, dword [ebp*4 + 0x40d340]
xor eax, ecx
mov ecx, edi
shr edi, 0x18
shr ecx, 0x10
and edi, 0x3f
and ecx, 0x3f
xor eax, dword [ecx*4 + 0x40d740]
mov ecx, esi
xor eax, dword [edi*4 + 0x40d940]
and ecx, 0x3f
mov edi, dword [esp + 4]
xor eax, dword [ecx*4 + 0x40d440]
mov ecx, esi
shr ecx, 8
and ecx, 0x3f
xor eax, dword [ecx*4 + 0x40d640]
mov ecx, esi
shr esi, 0x18
shr ecx, 0x10
and esi, 0x3f
and ecx, 0x3f
xor eax, dword [ecx*4 + 0x40d840]
xor eax, dword [esi*4 + 0x40da40]
cmp ebx, edi
jne 0x402c20
ror eax, 1
mov ecx, eax
xor ecx, edx
and ecx, 0xaaaaaaaa
xor edx, ecx
xor eax, ecx
ror edx, 1
mov ecx, edx
shr ecx, 8
xor ecx, eax
and ecx, 0xff00ff
xor eax, ecx
shl ecx, 8
xor ecx, edx
mov edx, ecx
shr edx, 2
xor edx, eax
and edx, 0x33333333
xor eax, edx
shl edx, 2
xor edx, ecx
mov ecx, eax
shr ecx, 0x10
xor ecx, edx
movzx ecx, cx
xor edx, ecx
shl ecx, 0x10
xor ecx, eax
mov eax, edx
mov ebx, ecx
shr ebx, 4
xor ebx, edx
and ebx, 0xf0f0f0f
xor eax, ebx
shl ebx, 4
mov edx, ebx
mov esi, eax
xor edx, ecx
shr esi, 0x10
movzx ebx, dl
movzx edi, dh
mov ecx, edx
shl ebx, 8
shr ecx, 0x10
or ebx, edi
movzx ecx, cl
movzx edi, ah
shr edx, 0x18
shl ebx, 8
mov ebp, edx
mov edx, esi
or ebx, ecx
movzx ecx, al
movzx esi, dl
shr eax, 0x18
shl ecx, 8
shl ebx, 8
or ecx, edi
or ebx, ebp
shl ecx, 8
or ecx, esi
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x28]
mov dword [eax], ebx
mov dword [eax + 4], ecx
add esp, 0xc
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret