Function at 0x40291b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
push ebx
push esi
mov esi, eax
shr esi, 0x1d
lea esi, [esi + eax*8]
mov eax, edx
shr eax, 0x1d
cmp dword [ebp + 0xc], 0
push edi
lea eax, [eax + edx*8]
push 0x3f
mov dword [ebp - 4], eax
mov dword [ebp - 8], esi
pop eax
je 0x402b6f
add ecx, 8
mov dword [ebp + 0xc], 4
mov edi, dword [ecx - 4]
xor edi, esi
mov edx, dword [ecx - 8]
xor edx, esi
mov esi, edi
shr edi, 4
shl esi, 0x1c
add esi, edi
mov edi, esi
shr edi, 0x12
and edi, eax
mov edi, dword [edi*4 + 0x40d620]
mov ebx, esi
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d420]
mov ebx, esi
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d220]
mov ebx, edx
shr ebx, 0x12
and ebx, eax
xor edi, dword [ebx*4 + 0x40d520]
mov ebx, edx
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d320]
mov ebx, edx
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d120]
shr esi, 0x1a
xor edi, dword [esi*4 + 0x40d820]
shr edx, 0x1a
xor edi, dword [edx*4 + 0x40d720]
mov edx, dword [ecx]
xor dword [ebp - 4], edi
mov edi, dword [ecx + 4]
xor edi, dword [ebp - 4]
xor edx, dword [ebp - 4]
mov esi, edi
shr edi, 4
shl esi, 0x1c
add esi, edi
mov edi, esi
shr edi, 0x12
and edi, eax
mov edi, dword [edi*4 + 0x40d620]
mov ebx, esi
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d420]
mov ebx, esi
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d220]
mov ebx, edx
shr ebx, 0x12
and ebx, eax
xor edi, dword [ebx*4 + 0x40d520]
mov ebx, edx
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d320]
mov ebx, edx
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d120]
shr esi, 0x1a
xor edi, dword [esi*4 + 0x40d820]
shr edx, 0x1a
xor edi, dword [edx*4 + 0x40d720]
mov edx, dword [ecx + 8]
xor dword [ebp - 8], edi
mov edi, dword [ecx + 0xc]
xor edi, dword [ebp - 8]
xor edx, dword [ebp - 8]
mov esi, edi
shl esi, 0x1c
shr edi, 4
add esi, edi
mov edi, esi
shr edi, 0x12
and edi, eax
mov edi, dword [edi*4 + 0x40d620]
mov ebx, esi
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d420]
mov ebx, esi
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d220]
mov ebx, edx
shr ebx, 0x12
and ebx, eax
xor edi, dword [ebx*4 + 0x40d520]
mov ebx, edx
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d320]
mov ebx, edx
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d120]
shr esi, 0x1a
xor edi, dword [esi*4 + 0x40d820]
shr edx, 0x1a
xor edi, dword [edx*4 + 0x40d720]
mov edx, dword [ecx + 0x10]
xor dword [ebp - 4], edi
mov edi, dword [ecx + 0x14]
xor edi, dword [ebp - 4]
xor edx, dword [ebp - 4]
mov esi, edi
shr edi, 4
shl esi, 0x1c
add esi, edi
mov edi, esi
shr edi, 0x12
and edi, eax
mov edi, dword [edi*4 + 0x40d620]
mov ebx, esi
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d420]
mov ebx, esi
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d220]
mov ebx, edx
shr ebx, 0x12
and ebx, eax
xor edi, dword [ebx*4 + 0x40d520]
mov ebx, edx
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d320]
mov ebx, edx
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d120]
shr esi, 0x1a
xor edi, dword [esi*4 + 0x40d820]
mov esi, dword [ebp - 8]
shr edx, 0x1a
xor edi, dword [edx*4 + 0x40d720]
add ecx, 0x20
xor esi, edi
dec dword [ebp + 0xc]
mov dword [ebp - 8], esi
jne 0x402958
jmp 0x402d8b
add ecx, 0x70
mov dword [ebp + 0xc], 4
mov edi, dword [ecx + 0xc]
xor edi, esi
mov edx, dword [ecx + 8]
xor edx, esi
mov esi, edi
shr edi, 4
shl esi, 0x1c
add esi, edi
mov edi, esi
shr edi, 0x12
and edi, eax
mov edi, dword [edi*4 + 0x40d620]
mov ebx, esi
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d420]
mov ebx, esi
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d220]
mov ebx, edx
shr ebx, 0x12
and ebx, eax
xor edi, dword [ebx*4 + 0x40d520]
mov ebx, edx
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d320]
mov ebx, edx
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d120]
shr esi, 0x1a
xor edi, dword [esi*4 + 0x40d820]
shr edx, 0x1a
xor edi, dword [edx*4 + 0x40d720]
mov edx, dword [ecx]
xor dword [ebp - 4], edi
mov edi, dword [ecx + 4]
xor edi, dword [ebp - 4]
xor edx, dword [ebp - 4]
mov esi, edi
shr edi, 4
shl esi, 0x1c
add esi, edi
mov edi, esi
shr edi, 0x12
and edi, eax
mov edi, dword [edi*4 + 0x40d620]
mov ebx, esi
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d420]
mov ebx, esi
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d220]
mov ebx, edx
shr ebx, 0x12
and ebx, eax
xor edi, dword [ebx*4 + 0x40d520]
mov ebx, edx
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d320]
mov ebx, edx
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d120]
shr esi, 0x1a
xor edi, dword [esi*4 + 0x40d820]
shr edx, 0x1a
xor edi, dword [edx*4 + 0x40d720]
mov edx, dword [ecx - 8]
xor dword [ebp - 8], edi
mov edi, dword [ecx - 4]
xor edi, dword [ebp - 8]
xor edx, dword [ebp - 8]
mov esi, edi
shl esi, 0x1c
shr edi, 4
add esi, edi
mov edi, esi
shr edi, 0x12
and edi, eax
mov edi, dword [edi*4 + 0x40d620]
mov ebx, esi
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d420]
mov ebx, esi
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d220]
mov ebx, edx
shr ebx, 0x12
and ebx, eax
xor edi, dword [ebx*4 + 0x40d520]
mov ebx, edx
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d320]
mov ebx, edx
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d120]
shr esi, 0x1a
xor edi, dword [esi*4 + 0x40d820]
shr edx, 0x1a
xor edi, dword [edx*4 + 0x40d720]
mov edx, dword [ecx - 0x10]
xor dword [ebp - 4], edi
mov edi, dword [ecx - 0xc]
xor edi, dword [ebp - 4]
xor edx, dword [ebp - 4]
mov esi, edi
shr edi, 4
shl esi, 0x1c
add esi, edi
mov edi, esi
shr edi, 0x12
and edi, eax
mov edi, dword [edi*4 + 0x40d620]
mov ebx, esi
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d420]
mov ebx, esi
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d220]
mov ebx, edx
shr ebx, 0x12
and ebx, eax
xor edi, dword [ebx*4 + 0x40d520]
mov ebx, edx
shr ebx, 0xa
and ebx, eax
xor edi, dword [ebx*4 + 0x40d320]
mov ebx, edx
shr ebx, 2
and ebx, eax
xor edi, dword [ebx*4 + 0x40d120]
shr esi, 0x1a
xor edi, dword [esi*4 + 0x40d820]
mov esi, dword [ebp - 8]
shr edx, 0x1a
xor edi, dword [edx*4 + 0x40d720]
sub ecx, 0x20
xor esi, edi
dec dword [ebp + 0xc]
mov dword [ebp - 8], esi
jne 0x402b79
mov eax, dword [ebp - 4]
mov ecx, eax
shl ecx, 0x1d
shr eax, 3
add ecx, eax
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov ecx, esi
shr esi, 3
shl ecx, 0x1d
pop edi
add ecx, esi
pop esi
mov dword [eax + 4], ecx
pop ebx
leave
ret