Function at 0x42cb60
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], 0
test ecx, ecx
je 0x42cbc7
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
lea edi, [esi + 0x158]
xorps xmm0, xmm0
movups xmmword [esi + 0x168], xmm0
movups xmmword [esi + 0x158], xmm0
mov byte [esi + 0x178], al
movups xmmword [esi + 0x138], xmm0
cmp ecx, 0xc
jne 0x42cbd1
mov eax, dword [ebp + 8]
mov dword [edi + 8], eax
movsd xmm0, qword [ebp]
movsd qword [edi], xmm0
mov byte [esi + 0x167], 1
jmp 0x42cdc6
mov eax, 0xffffffec
jmp 0x42cdde
mov eax, ecx
shr eax, 0x1d
lea edx, [ecx*8]
bswap edx
mov dword [esp + 0xc], edx
bswap eax
mov dword [esp + 0x10], eax
mov dword [esp + 8], edi
jmp 0x42cc0f
mov ecx, esi
mov edi, dword [esp + 8]
mov edx, edi
push edi
call fcn.0042cdf0
add esp, 4
add ebp, ebx
mov ecx, dword [esp + 0x14]
sub ecx, ebx
je 0x42cda5
cmp ecx, 0x10
mov ebx, 0x10
cmovb ebx, ecx
xor eax, eax
cmp ecx, 3
jbe 0x42cc70
mov eax, dword [ebp]
xor dword [edi], eax
mov eax, 4
cmp ecx, 8
jb 0x42cc70
mov eax, dword [ebp + 4]
xor dword [esi + 0x15c], eax
mov eax, 8
cmp ecx, 0xc
jb 0x42cc70
mov eax, dword [ebp + 8]
xor dword [esi + 0x160], eax
mov eax, 0xc
cmp ecx, 0x10
jb 0x42cc70
mov eax, dword [ebp + 0xc]
xor dword [esi + 0x164], eax
mov eax, 0x10
nop word cs:[eax + eax]
mov dword [esp + 0x14], ecx
mov ecx, ebx
sub ecx, eax
jbe 0x42cbf0
mov dword [esp + 4], ecx
cmp ecx, 8
jb 0x42cd20
mov ecx, dword [esp + 8]
lea edx, [ecx + eax]
mov dword [esp], eax
lea edi, [eax + ebp]
lea eax, [ebx + ebp]
cmp edx, eax
jae 0x42ccab
lea eax, [ecx + ebx]
cmp edi, eax
jae 0x42ccab
mov eax, dword [esp]
jmp 0x42cd20
xor ecx, ecx
mov eax, dword [esp + 4]
cmp eax, 0x10
jae 0x42cce7
and eax, 0xfffffff8
add dword [esp], eax
nop dword [eax]
movsd xmm0, qword [edx + ecx]
movsd xmm1, qword [edi + ecx]
xorps xmm1, xmm0
movlps qword [edx + ecx], xmm1
add ecx, 8
cmp eax, ecx
jne 0x42ccc0
cmp dword [esp + 4], eax
mov eax, dword [esp]
je 0x42cbf0
jmp 0x42cd20
mov ecx, eax
and ecx, 0xfffffff0
xor eax, eax
nop
movups xmm0, xmmword [edx + eax]
movups xmm1, xmmword [edi + eax]
xorps xmm1, xmm0
movups xmmword [edx + eax], xmm1
add eax, 0x10
cmp ecx, eax
jne 0x42ccf0
cmp dword [esp + 4], ecx
mov eax, dword [esp]
je 0x42cbf0
test byte [esp + 4], 8
jne 0x42cd9c
add eax, ecx
mov ecx, ebx
sub ecx, eax
mov dword [esp], eax
and ecx, 3
mov edi, dword [esp + 8]
je 0x42cd4c
mov eax, dword [esp]
nop word cs:[eax + eax]
movzx edx, byte [ebp + eax]
xor byte [edi + eax], dl
inc eax
dec ecx
jne 0x42cd40
mov ecx, dword [esp]
sub ecx, ebx
cmp ecx, 0xfffffffc
ja 0x42cbf0
nop word [eax + eax]
movzx ecx, byte [ebp + eax]
xor byte [esi + eax + 0x158], cl
movzx ecx, byte [ebp + eax + 1]
xor byte [esi + eax + 0x159], cl
movzx ecx, byte [ebp + eax + 2]
xor byte [esi + eax + 0x15a], cl
movzx ecx, byte [ebp + eax + 3]
xor byte [esi + eax + 0x15b], cl
add eax, 4
cmp ebx, eax
jne 0x42cd60
jmp 0x42cbf0
mov eax, dword [esp + 4]
jmp 0x42ccb6
mov eax, dword [esp + 0x10]
xor dword [esi + 0x160], eax
mov eax, dword [esp + 0xc]
xor dword [esi + 0x164], eax
mov ecx, esi
mov edx, edi
push edi
call fcn.0042cdf0
add esp, 4
lea eax, [esi + 0x148]
lea ecx, [esp + 0x18]
push ecx
push eax
push 0x10
push edi
push esi
call fcn.004215f0
add esp, 0x14
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret