Function at 0x6ebe5430
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
test ecx, ecx
je 0x6ebe56f3
test ebx, ebx
je 0x6ebe56d7
mov eax, dword [esp + 0x48]
test eax, eax
lea ebp, [eax - 1]
je 0x6ebe55dc
mov eax, ebx
or eax, ecx
test al, 3
jne 0x6ebe55e4
cmp dword [esp + 0x48], 8
jbe 0x6ebe55e4
cmp ebp, 2
jbe 0x6ebe56d0
mov edx, dword [esp + 0x48]
mov eax, dword [ecx]
mov esi, dword [ebx]
shr edx, 2
lea edi, [edx - 1]
xor esi, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], esi
mov eax, esi
mov edx, 1
and edi, 7
cmp dword [esp + 0x18], 1
jbe 0x6ebe557f
test edi, edi
je 0x6ebe5526
cmp edi, 1
je 0x6ebe5513
cmp edi, 2
je 0x6ebe5508
cmp edi, 3
je 0x6ebe54fd
cmp edi, 4
je 0x6ebe54f2
cmp edi, 5
je 0x6ebe54e7
cmp edi, 6
je 0x6ebe54dc
mov esi, dword [ecx + 4]
xor esi, dword [ebx + 4]
mov edx, 2
or esi, dword [esp + 0x1c]
mov edi, dword [ecx + edx*4]
xor edi, dword [ebx + edx*4]
add edx, 1
or esi, edi
mov eax, dword [ecx + edx*4]
xor eax, dword [ebx + edx*4]
add edx, 1
or esi, eax
mov edi, dword [ecx + edx*4]
xor edi, dword [ebx + edx*4]
add edx, 1
or esi, edi
mov eax, dword [ecx + edx*4]
xor eax, dword [ebx + edx*4]
add edx, 1
or esi, eax
mov edi, dword [ecx + edx*4]
xor edi, dword [ebx + edx*4]
add edx, 1
or esi, edi
mov eax, dword [ecx + edx*4]
xor eax, dword [ebx + edx*4]
add edx, 1
or eax, esi
cmp dword [esp + 0x18], edx
mov esi, eax
jbe 0x6ebe557f
mov edi, dword [ecx + edx*4]
xor edi, dword [ebx + edx*4]
mov eax, dword [ecx + edx*4 + 8]
xor eax, dword [ebx + edx*4 + 8]
or edi, esi
mov esi, dword [ecx + edx*4 + 4]
xor esi, dword [ebx + edx*4 + 4]
or esi, edi
mov edi, dword [ecx + edx*4 + 0xc]
xor edi, dword [ebx + edx*4 + 0xc]
or esi, eax
mov eax, dword [ecx + edx*4 + 0x18]
xor eax, dword [ebx + edx*4 + 0x18]
or edi, esi
mov esi, dword [ecx + edx*4 + 0x10]
xor esi, dword [ebx + edx*4 + 0x10]
or edi, esi
mov esi, dword [ecx + edx*4 + 0x14]
xor esi, dword [ebx + edx*4 + 0x14]
or esi, edi
or esi, eax
mov eax, dword [ecx + edx*4 + 0x1c]
xor eax, dword [ebx + edx*4 + 0x1c]
add edx, 8
or eax, esi
cmp dword [esp + 0x18], edx
mov esi, eax
ja 0x6ebe5526
mov esi, dword [esp + 0x48]
movzx edx, ah
mov edi, eax
or edx, eax
shr edi, 0x10
shr eax, 0x18
or edx, edi
and esi, 0xfffffffc
or eax, edx
add ecx, esi
add ebx, esi
sub ebp, esi
cmp dword [esp + 0x48], esi
je 0x6ebe55c5
movzx edx, byte [ebx]
xor dl, byte [ecx]
or eax, edx
test ebp, ebp
je 0x6ebe55c5
movzx edx, byte [ecx + 1]
xor dl, byte [ebx + 1]
or eax, edx
cmp ebp, 1
je 0x6ebe55c5
movzx ebx, byte [ebx + 2]
xor bl, byte [ecx + 2]
or eax, ebx
mov ecx, eax
shr cl, 4
or ecx, eax
mov eax, ecx
shr al, 2
or ecx, eax
mov eax, ecx
shr al, 1
or eax, ecx
and eax, 1
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, dword [esp + 0x48]
xor edi, edi
xor eax, eax
and ebp, 7
je 0x6ebe566b
cmp ebp, 1
je 0x6ebe5655
cmp ebp, 2
je 0x6ebe5649
cmp ebp, 3
je 0x6ebe563d
cmp ebp, 4
je 0x6ebe5631
cmp ebp, 5
je 0x6ebe5625
cmp ebp, 6
je 0x6ebe5619
movzx eax, byte [ebx]
mov edi, 1
xor al, byte [ecx]
movzx edx, byte [ebx + edi]
xor dl, byte [ecx + edi]
add edi, 1
or eax, edx
movzx edx, byte [ebx + edi]
xor dl, byte [ecx + edi]
add edi, 1
or eax, edx
movzx edx, byte [ebx + edi]
xor dl, byte [ecx + edi]
add edi, 1
or eax, edx
movzx edx, byte [ebx + edi]
xor dl, byte [ecx + edi]
add edi, 1
or eax, edx
movzx edx, byte [ebx + edi]
xor dl, byte [ecx + edi]
add edi, 1
or eax, edx
movzx edx, byte [ebx + edi]
xor dl, byte [ecx + edi]
add edi, 1
or eax, edx
cmp dword [esp + 0x48], edi
je 0x6ebe55c5
movzx edx, byte [ebx + edi]
xor dl, byte [ecx + edi]
or eax, edx
movzx edx, byte [ebx + edi + 1]
xor dl, byte [ecx + edi + 1]
or eax, edx
movzx edx, byte [ebx + edi + 2]
xor dl, byte [ecx + edi + 2]
or eax, edx
movzx edx, byte [ebx + edi + 3]
xor dl, byte [ecx + edi + 3]
or eax, edx
movzx edx, byte [ebx + edi + 4]
xor dl, byte [ecx + edi + 4]
or eax, edx
movzx edx, byte [ebx + edi + 5]
xor dl, byte [ecx + edi + 5]
or eax, edx
movzx edx, byte [ebx + edi + 6]
xor dl, byte [ecx + edi + 6]
or eax, edx
movzx edx, byte [ebx + edi + 7]
xor dl, byte [ecx + edi + 7]
add edi, 8
or eax, edx
cmp dword [esp + 0x48], edi
jne 0x6ebe566b
jmp 0x6ebe55c5
xor eax, eax
jmp 0x6ebe55a3
mov dword [esp + 8], 0x2a
mov dword [esp + 4], str.src_misc_mem_neq.c
mov dword [esp], str.b___NULL
call fcn.6ebddf90
mov dword [esp + 8], 0x29
mov dword [esp + 4], str.src_misc_mem_neq.c
mov dword [esp], str.a___NULL
call fcn.6ebddf90
nop