Function at 0x42c240
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xffffffe0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x118
mov eax, dword [0x4e0040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebx + 0xc]
movsd xmm3, qword [0x4ccdb0]
movsd xmm2, qword [0x4ccdc0]
vmovdqu ymm6, ymmword [0x4ccf80]
push esi
mov esi, dword [ebx + 8]
sub eax, esi
and eax, 0xffffffe0
mov dword [ebp - 0x64], esi
push edi
add eax, esi
mov dword [ebp - 0x68], esi
vmovupd ymm4, ymmword [esi]
mov edi, esi
vmovsd qword [ebp - 0x78], xmm3
add esi, 0x20
vmovsd qword [ebp - 0x70], xmm2
vpxor xmm0, xmm0, xmm0
vpxor xmm7, xmm7, xmm7
vmovupd ymm5, ymm4
vmovupd ymmword [ebp - 0x100], ymm4
vmovdqu ymmword [ebp - 0xc0], ymm7
vmovupd ymmword [ebp - 0xe0], ymm5
vmovdqu ymmword [ebp - 0xa0], ymm0
cmp esi, eax
je 0x42c33d
nop word [eax + eax]
vmovupd ymm1, ymmword [esi]
vcmpgt_oqpd ymm0, ymm4, ymm1
vpblendvb ymm7, ymm7, ymm6, ymm0
vcmpgt_oqpd ymm0, ymm5, ymm1
vmovdqu ymmword [ebp - 0xc0], ymm7
vpblendvb ymm7, ymm6, ymmword [ebp - 0xa0], ymm0
vpaddq ymm6, ymm6, ymmword [0x4ccf80]
add esi, 0x20
vmovdqu ymmword [ebp - 0xa0], ymm7
vmovdqu ymm7, ymmword [ebp - 0xc0]
vminpd ymm4, ymm1, ymm4
vmaxpd ymm5, ymm5, ymm1
cmp esi, eax
jne 0x42c2e0
vmovupd ymmword [ebp - 0xe0], ymm5
vmovupd ymmword [ebp - 0x100], ymm4
vshufpd ymm0, ymm4, ymm4, 5
vminpd ymm1, ymm0, ymm4
vpermpd ymm0, ymm1, 0x4e
vminpd ymm0, ymm0, ymm1
vcomisd xmm3, xmm0
vmovupd ymmword [ebp - 0x60], ymm0
jbe 0x42c3d2
vmovaps xmm3, xmm0
vcmpeqpd ymm1, ymm0, ymm4
vmovdqu ymm0, ymmword [0x4cd240]
vpblendvb ymm0, ymm0, ymm7, ymm1
vmovsd qword [ebp - 0x78], xmm3
vmovdqu ymmword [ebp - 0x40], ymm0
call fcn.00435150
vpcmpeqq ymm0, ymm0, ymmword [ebp - 0x40]
vmovupd ymm2, ymmword [ebp - 0x60]
vpmovmskb ecx, ymm0
vcmpeqpd ymm0, ymm2, ymmword [ebp - 0x100]
vpmovmskb eax, ymm0
vmovdqu ymm0, ymmword [ebp - 0xc0]
and ecx, eax
vmovsd xmm2, qword [ebp - 0x70]
bsf ecx, ecx
vmovupd ymm5, ymmword [ebp - 0xe0]
mov eax, ecx
mov dword [ebp - 0x7c], ecx
shr eax, 3
vmovdqu ymmword [ebp - 0x60], ymm0
mov eax, dword [ebp + eax*8 - 0x60]
shl eax, 5
add eax, ecx
add eax, edi
mov dword [ebp - 0x64], eax
vshufpd ymm0, ymm5, ymm5, 5
vmaxpd ymm1, ymm0, ymm5
vpermpd ymm0, ymm1, 0x4e
vmaxpd ymm0, ymm0, ymm1
vcomisd xmm0, xmm2
vmovupd ymmword [ebp - 0x40], ymm0
jb 0x42c460
vmovsd qword [ebp - 0x70], xmm0
vcmpeqpd ymm0, ymm0, ymm5
vpxor xmm1, xmm1, xmm1
vpblendvb ymm0, ymm1, ymmword [ebp - 0xa0], ymm0
call fcn.004349b0
vmovupd ymm5, ymmword [ebp - 0x40]
vcmpeqpd ymm2, ymm5, ymmword [ebp - 0xe0]
vmovdqu ymm4, ymmword [ebp - 0xa0]
vpxor xmm6, xmm6, xmm6
vpblendvb ymm1, ymm6, ymm4, ymm2
vpcmpeqq ymm0, ymm0, ymm1
vpmovmskb eax, ymm2
vpmovmskb ecx, ymm0
and ecx, eax
vmovsd xmm2, qword [ebp - 0x70]
bsr ecx, ecx
vmovdqu ymmword [ebp - 0x40], ymm4
add ecx, 0xfffffff9
mov eax, ecx
mov dword [ebp - 0x80], ecx
shr eax, 3
mov edi, dword [ebp + eax*8 - 0x40]
shl edi, 5
add edi, ecx
add edi, dword [ebp - 0x68]
vzeroupper
mov eax, dword [ebx + 0xc]
cmp esi, eax
je 0x42c492
movsd xmm1, qword [ebp - 0x78]
nop
movsd xmm0, qword [esi]
comisd xmm1, xmm0
jbe 0x42c480
mov dword [ebp - 0x64], esi
movaps xmm1, xmm0
comisd xmm0, xmm2
jb 0x42c48b
mov edi, esi
movaps xmm2, xmm0
add esi, 8
cmp esi, eax
jne 0x42c470
mov ecx, dword [ebp - 4]
mov edx, edi
mov eax, dword [ebp - 0x64]
xor ecx, ebp
pop edi
pop esi
call fcn.00403003
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret