Function at 0x42c9c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
mov dword [ebp - 0x18], esi
test bl, 0xf
je 0x42c9e0
pop esi
mov eax, 0xffffffda
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x42cd1e
push edi
test edx, edx
jne 0x42cc89
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
lea eax, [edx + 0xf]
mov dword [ebp - 0x24], eax
lea eax, [ecx + 2]
mov dword [ebp + 8], eax
mov eax, edx
sub eax, ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x10]
sub ecx, eax
lea edi, [eax + 2]
lea eax, [ecx - 2]
mov dword [ebp - 4], edi
mov dword [ebp - 0x20], eax
lea eax, [ebx - 1]
shr eax, 4
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [esi]
movzx ecx, byte [edi - 1]
mov dword [ebp - 0xc], eax
movzx eax, byte [edi - 2]
shl eax, 8
or ecx, eax
movzx edx, byte [edi + 6]
movzx eax, byte [edi]
shl ecx, 8
or ecx, eax
movzx ebx, byte [edi + 0xa]
movzx eax, byte [edi + 1]
shl ecx, 8
or ecx, eax
shl edx, 8
xor ecx, dword [esi + 4]
movzx eax, byte [edi + 3]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x34], ecx
movzx ecx, byte [edi + 2]
shl ecx, 8
or ecx, eax
shl ebx, 8
movzx eax, byte [edi + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [edi + 5]
movups xmm2, xmmword [edi - 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [edi + 7]
xor ecx, dword [esi + 8]
or edx, eax
movzx eax, byte [edi + 8]
shl edx, 8
or edx, eax
mov dword [ebp - 0x10], ecx
movzx eax, byte [edi + 9]
shl edx, 8
or edx, eax
mov dword [ebp - 0x30], ecx
movzx eax, byte [edi + 0xb]
xor edx, dword [esi + 0xc]
or ebx, eax
movzx eax, byte [edi + 0xc]
shl ebx, 8
or ebx, eax
mov dword [ebp - 0x2c], edx
movzx eax, byte [edi + 0xd]
shl ebx, 8
or ebx, eax
xor ebx, dword [esi + 0x10]
add esi, 0x14
cmp dword [ebp - 0xc], 0
mov dword [ebp - 0x28], ebx
je 0x42cb8c
mov edi, dword [ebp - 0xc]
lea eax, [ebp - 0x2c]
mov edx, esi
push eax
lea ecx, [ebp - 0x34]
call fcn.0042b990
lea eax, [ebp - 0x34]
push eax
lea edx, [esi + 8]
lea ecx, [ebp - 0x2c]
call fcn.0042b990
lea eax, [ebp - 0x2c]
push eax
lea edx, [esi + 0x10]
lea ecx, [ebp - 0x34]
call fcn.0042b990
lea eax, [ebp - 0x34]
push eax
lea edx, [esi + 0x18]
lea ecx, [ebp - 0x2c]
call fcn.0042b990
lea eax, [ebp - 0x2c]
push eax
lea edx, [esi + 0x20]
lea ecx, [ebp - 0x34]
call fcn.0042b990
lea eax, [ebp - 0x34]
push eax
lea edx, [esi + 0x28]
lea ecx, [ebp - 0x2c]
call fcn.0042b990
add esp, 0x18
add esi, 0x30
sub edi, 1
je 0x42cb78
mov eax, dword [esi]
mov edx, dword [ebp - 0x34]
and eax, edx
mov ecx, dword [ebp - 0x30]
rol eax, 1
xor ecx, eax
mov eax, dword [esi + 4]
or eax, ecx
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x2c]
xor edx, eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x28]
or eax, edx
xor ecx, eax
mov dword [ebp - 0x2c], ecx
and ecx, dword [esi + 8]
rol ecx, 1
xor edx, ecx
add esi, 0x10
mov dword [ebp - 0x28], edx
jmp 0x42cad7
mov eax, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x2c]
mov edi, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x34]
jmp 0x42cb8f
mov eax, dword [ebp - 0x1c]
mov ecx, dword [esi]
xor ecx, edx
mov edx, dword [esi + 4]
xor edx, ebx
mov ebx, dword [esi + 8]
xor ebx, eax
mov eax, dword [esi + 0xc]
xor eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
add esi, edi
mov edi, dword [ebp + 8]
mov eax, ecx
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [edi - 1], al
mov eax, ecx
shr eax, 8
mov byte [edi], al
mov eax, edi
mov byte [eax + 1], cl
mov ecx, edi
mov eax, edx
shr eax, 0x18
mov byte [ecx + 2], al
mov eax, edx
shr eax, 0x10
mov byte [ecx + 3], al
mov eax, edx
shr eax, 8
mov byte [ecx + 4], al
mov eax, ebx
shr eax, 0x18
mov byte [ecx + 5], dl
mov edx, edi
mov ecx, dword [ebp - 0x1c]
mov edi, dword [ebp - 4]
mov byte [edx + 0xd], cl
mov byte [edx + 6], al
mov eax, ebx
shr eax, 0x10
mov byte [edx + 7], al
mov eax, ebx
shr eax, 8
mov byte [edx + 8], al
mov eax, ecx
shr eax, 0x18
mov byte [edx + 0xa], al
mov eax, ecx
shr eax, 0x10
mov byte [edx + 0xb], al
mov eax, ecx
shr eax, 8
mov byte [edx + 0xc], al
lea eax, [edx + 0xd]
mov byte [edx + 9], bl
mov ebx, dword [ebp + 0xc]
cmp esi, dword [ebp - 0x24]
ja 0x42cc53
cmp eax, ebx
jb 0x42cc53
mov edx, dword [ebp - 8]
mov ecx, 0x10
nop dword [eax + eax]
mov al, byte [edx + esi]
lea esi, [esi + 1]
xor byte [esi - 1], al
sub ecx, 1
jne 0x42cc40
mov edx, dword [ebp + 8]
jmp 0x42cc60
movups xmm0, xmmword [esi]
movups xmm1, xmmword [ebx]
pxor xmm1, xmm0
movups xmmword [esi], xmm1
sub dword [ebp - 8], 0x10
add edi, 0x10
mov esi, dword [ebp - 0x18]
add edx, 0x10
sub dword [ebp - 0x14], 1
movups xmmword [ebx], xmm2
mov dword [ebp - 4], edi
mov dword [ebp + 8], edx
jne 0x42ca25
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
lea edx, [ebx - 1]
mov edi, dword [ebp + 0x10]
mov eax, ecx
mov esi, dword [ebp + 0x14]
sub eax, edi
shr edx, 4
inc edx
mov dword [ebp + 8], eax
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], esi
lea eax, [edi + 0xf]
cmp esi, eax
ja 0x42ccb4
lea eax, [esi + 0xf]
cmp eax, edi
jae 0x42ccc2
lea eax, [ecx + 0xf]
cmp esi, eax
ja 0x42cce7
lea eax, [esi + 0xf]
cmp eax, ecx
jb 0x42cce7
mov ebx, esi
mov ecx, edi
mov esi, dword [ebp + 8]
sub ebx, edi
mov edx, 0x10
mov al, byte [esi + ecx]
lea ecx, [ecx + 1]
xor al, byte [ecx - 1]
mov byte [ecx + ebx - 1], al
sub edx, 1
jne 0x42ccd0
mov esi, dword [ebp - 0x14]
jmp 0x42ccf4
movups xmm1, xmmword [ecx]
movups xmm0, xmmword [edi]
pxor xmm1, xmm0
movups xmmword [esi], xmm1
mov ecx, dword [ebp - 0x18]
push esi
push esi
call fcn.0042c7c0
movups xmm0, xmmword [esi]
mov ecx, dword [ebp + 0xc]
add esi, 0x10
sub dword [ebp + 8], 0x10
add esp, 8
add edi, 0x10
mov dword [ebp - 0x14], esi
sub dword [ebp - 0x10], 1
movups xmmword [ecx], xmm0
jne 0x42cca6
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret