Function at 0x5ef540
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
mov ebx, edx
mov ecx, eax
mov esi, 0x601f78
cmp ebx, 8
jb 0x5ef736
movzx eax, byte [ecx]
xor edx, edx
xor eax, dword [ebp + 8]
xor edx, dword [ebp + 0xc]
and eax, 0xff
xor edx, edx
mov edx, dword [esi + eax*8 + 4]
mov eax, dword [esi + eax*8]
push edx
push eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
shrd eax, edx, 8
shr edx, 8
xor eax, dword [esp]
xor edx, dword [esp + 4]
add esp, 8
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
inc ecx
movzx eax, byte [ecx]
xor edx, edx
xor eax, dword [ebp + 8]
xor edx, dword [ebp + 0xc]
and eax, 0xff
xor edx, edx
mov edx, dword [esi + eax*8 + 4]
mov eax, dword [esi + eax*8]
push edx
push eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
shrd eax, edx, 8
shr edx, 8
xor eax, dword [esp]
xor edx, dword [esp + 4]
add esp, 8
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
inc ecx
movzx eax, byte [ecx]
xor edx, edx
xor eax, dword [ebp + 8]
xor edx, dword [ebp + 0xc]
and eax, 0xff
xor edx, edx
mov edx, dword [esi + eax*8 + 4]
mov eax, dword [esi + eax*8]
push edx
push eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
shrd eax, edx, 8
shr edx, 8
xor eax, dword [esp]
xor edx, dword [esp + 4]
add esp, 8
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
inc ecx
movzx eax, byte [ecx]
xor edx, edx
xor eax, dword [ebp + 8]
xor edx, dword [ebp + 0xc]
and eax, 0xff
xor edx, edx
mov edx, dword [esi + eax*8 + 4]
mov eax, dword [esi + eax*8]
push edx
push eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
shrd eax, edx, 8
shr edx, 8
xor eax, dword [esp]
xor edx, dword [esp + 4]
add esp, 8
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
inc ecx
movzx eax, byte [ecx]
xor edx, edx
xor eax, dword [ebp + 8]
xor edx, dword [ebp + 0xc]
and eax, 0xff
xor edx, edx
mov edx, dword [esi + eax*8 + 4]
mov eax, dword [esi + eax*8]
push edx
push eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
shrd eax, edx, 8
shr edx, 8
xor eax, dword [esp]
xor edx, dword [esp + 4]
add esp, 8
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
inc ecx
movzx eax, byte [ecx]
xor edx, edx
xor eax, dword [ebp + 8]
xor edx, dword [ebp + 0xc]
and eax, 0xff
xor edx, edx
mov edx, dword [esi + eax*8 + 4]
mov eax, dword [esi + eax*8]
push edx
push eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
shrd eax, edx, 8
shr edx, 8
xor eax, dword [esp]
xor edx, dword [esp + 4]
add esp, 8
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
inc ecx
movzx eax, byte [ecx]
xor edx, edx
xor eax, dword [ebp + 8]
xor edx, dword [ebp + 0xc]
and eax, 0xff
xor edx, edx
mov edx, dword [esi + eax*8 + 4]
mov eax, dword [esi + eax*8]
push edx
push eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
shrd eax, edx, 8
shr edx, 8
xor eax, dword [esp]
xor edx, dword [esp + 4]
add esp, 8
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
inc ecx
movzx eax, byte [ecx]
xor edx, edx
xor eax, dword [ebp + 8]
xor edx, dword [ebp + 0xc]
and eax, 0xff
xor edx, edx
mov edx, dword [esi + eax*8 + 4]
mov eax, dword [esi + eax*8]
push edx
push eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
shrd eax, edx, 8
shr edx, 8
xor eax, dword [esp]
xor edx, dword [esp + 4]
add esp, 8
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
inc ecx
sub ebx, 8
cmp ebx, 8
jae 0x5ef55a
test ebx, ebx
jbe 0x5ef779
movzx eax, byte [ecx]
xor edx, edx
xor eax, dword [ebp + 8]
xor edx, dword [ebp + 0xc]
and eax, 0xff
xor edx, edx
mov edx, dword [esi + eax*8 + 4]
mov eax, dword [esi + eax*8]
push edx
push eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
shrd eax, edx, 8
shr edx, 8
xor eax, dword [esp]
xor edx, dword [esp + 4]
add esp, 8
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
inc ecx
dec ebx
test ebx, ebx
ja 0x5ef73a
mov eax, dword [ebp + 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret 8