Function at 0x5692d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
mov esi, dword [ebp + 0x18]
mov ebx, ecx
mov dword [ebp - 0x18], ebx
test esi, esi
jne 0x5692ef
lea eax, [esi + 1]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, esi
mov ecx, 0x6c
cdq
xor eax, edx
sub eax, edx
test esi, esi
mov dword [ebp - 4], eax
mov eax, 0xec
cmovle ecx, eax
push edi
lea eax, [ecx + ebx]
mov ecx, 0xac
mov dword [ebp - 0x14], eax
mov eax, 0x2c
cmovle eax, ecx
mov ecx, dword [ebp + 8]
add eax, ebx
mov esi, ecx
mov dword [ebp - 0x10], eax
mov eax, ecx
mov ebx, dword [ebp + 0xc]
mov edx, ebx
shr eax, 0x10
movzx eax, al
shl eax, 2
mov dword [ebp - 0xc], eax
mov eax, ecx
shr eax, 8
movzx eax, al
shl eax, 2
mov dword [ebp - 8], eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
shl eax, 2
mov dword [ebp + 8], eax
mov eax, ebx
shr eax, 8
movzx edi, al
movzx eax, bl
movzx ecx, cl
shl edi, 2
shr edx, 0x18
mov ebx, dword [eax*4 + 0x7e61a0]
or ebx, dword [ecx*4 + 0x7e51a0]
mov eax, dword [eax*4 + 0x7e81a0]
or ebx, dword [edx*4 + 0x7e55a0]
or eax, dword [ecx*4 + 0x7e71a0]
or eax, dword [edx*4 + 0x7e75a0]
shr esi, 0x18
mov ecx, dword [ebp - 8]
mov dword [ebp + 0xc], edi
or ebx, dword [esi*4 + 0x7e45a0]
or ebx, dword [edi + 0x7e5da0]
or eax, dword [esi*4 + 0x7e65a0]
mov dword [ebp + 0x18], ebx
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0x18]
or edi, dword [ebx + 0x7e59a0]
mov ebx, dword [ebp - 8]
or edi, dword [ebx + 0x7e4da0]
mov ebx, dword [ebp - 0xc]
or edi, dword [ebx + 0x7e49a0]
mov ebx, dword [ebp + 8]
mov dword [ebp + 0x18], edi
mov edi, dword [ebp + 0xc]
or eax, dword [edi + 0x7e7da0]
or eax, dword [ebx + 0x7e79a0]
or eax, dword [ecx + 0x7e6da0]
mov ecx, dword [ebp - 0xc]
mov ebx, dword [ebp + 0x18]
or eax, dword [ecx + 0x7e69a0]
mov ecx, dword [ebp - 4]
test ecx, ecx
je 0x569525
dec ecx
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp + 0x18], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp + 8], ecx
mov ecx, 0x10
dec ecx
mov edi, eax
mov dword [ebp + 0xc], ecx
mov esi, eax
shr edi, 2
mov ecx, eax
and ecx, 0x1f80000
and edi, 0x7e000
or edi, ecx
and esi, 0x1f800
shr edi, 2
mov ecx, eax
and ecx, 0x1f800000
shl esi, 2
or edi, ecx
mov ecx, eax
and ecx, 0xf80001ff
shr edi, 2
or edi, ecx
mov ecx, eax
and ecx, 1
shr edi, 9
shl ecx, 0x17
or edi, ecx
mov ecx, eax
and ecx, 0x1f80
or esi, ecx
mov ecx, eax
and ecx, 0x1f8
shl esi, 2
or esi, ecx
mov ecx, eax
and ecx, 0x1f
shl esi, 2
or esi, ecx
mov ecx, eax
shr ecx, 0x1f
add esi, esi
or esi, ecx
mov ecx, dword [ebp - 0x18]
mov edx, esi
xor edx, edi
and edx, dword [ecx + 0x134]
mov ecx, dword [ebp + 0x18]
add dword [ebp + 0x18], 4
mov ecx, dword [ecx]
xor ecx, edx
xor edi, ecx
mov ecx, dword [ebp + 8]
add dword [ebp + 8], 4
mov ecx, dword [ecx]
xor ecx, edx
xor esi, ecx
mov ecx, esi
and esi, 0xfff
shr ecx, 0xc
movzx edx, byte [ecx + 0x7e15a0]
mov ecx, edi
shr ecx, 0xc
and edi, 0xfff
mov edx, dword [edx*4 + 0x7e3da0]
movzx ecx, byte [ecx + 0x7df5a0]
or edx, dword [ecx*4 + 0x7e35a0]
movzx ecx, byte [esi + 0x7e25a0]
or edx, dword [ecx*4 + 0x7e41a0]
movzx ecx, byte [edi + 0x7e05a0]
or edx, dword [ecx*4 + 0x7e39a0]
mov ecx, dword [ebp + 0xc]
xor edx, ebx
mov ebx, eax
mov eax, edx
test ecx, ecx
jne 0x569418
mov ecx, dword [ebp - 4]
mov eax, ebx
mov ebx, edx
test ecx, ecx
jne 0x569403
mov dword [ebp + 0x18], ebx
mov ecx, ebx
movzx esi, al
shr ecx, 8
movzx ecx, cl
shl ecx, 2
mov dword [ebp - 8], ecx
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
shl ecx, 2
mov dword [ebp - 0xc], ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
shl ecx, 2
mov dword [ebp + 0xc], ecx
mov ecx, ebx
shr ecx, 0x10
mov ebx, eax
movzx ecx, cl
shl ecx, 2
mov dword [ebp + 8], ecx
mov ecx, dword [ebp + 0x18]
mov edi, ecx
mov eax, dword [ebp + 8]
movzx edx, cl
shr ebx, 0x18
shr edi, 0x18
mov ecx, dword [edx*4 + 0x7e91a0]
or ecx, dword [esi*4 + 0x7ea1a0]
or ecx, dword [ebx*4 + 0x7e95a0]
or ecx, dword [edi*4 + 0x7e85a0]
or ecx, dword [eax + 0x7e89a0]
mov eax, dword [ebp + 0xc]
or ecx, dword [eax + 0x7e9da0]
mov eax, dword [ebp - 8]
or ecx, dword [eax + 0x7e8da0]
mov eax, dword [ebp - 0xc]
or ecx, dword [eax + 0x7e99a0]
mov eax, dword [ebp + 0x10]
mov dword [eax], ecx
mov ecx, dword [edx*4 + 0x7eb1a0]
or ecx, dword [esi*4 + 0x7ec1a0]
or ecx, dword [ebx*4 + 0x7eb5a0]
or ecx, dword [edi*4 + 0x7ea5a0]
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
or ecx, dword [eax + 0x7ea9a0]
mov eax, dword [ebp + 0xc]
or ecx, dword [eax + 0x7ebda0]
mov eax, dword [ebp - 0xc]
or ecx, dword [eax + 0x7eb9a0]
mov eax, dword [ebp - 8]
or ecx, dword [eax + 0x7eada0]
mov eax, dword [ebp + 0x14]
mov dword [eax], ecx
xor eax, eax
mov esp, ebp
pop ebp
ret 0x14