Function at 0x42fa10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
mov eax, dword [0x46c004]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x68], edx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp + 0x10]
push eax
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x4c], 0
call fcn.00444c5f
mov esi, 0x20
mov ebx, eax
cmp dword [ebp - 0x64], esi
lea eax, [ebp - 0x48]
mov dword [ebp - 0x58], ebx
cmovb esi, dword [ebp - 0x64]
push esi
push dword [ebp - 0x68]
mov dword [ebp - 0x54], esi
push eax
call fcn.00456380
add esp, 0x10
cmp esi, 0x20
jae 0x42fb06
add esi, 0xfffffff0
lea eax, [ebp - 0x48]
add eax, esi
push edi
push eax
push eax
call fcn.0043c140
add esp, 0xc
xor ecx, ecx
test esi, esi
je 0x42fadd
cmp esi, 0x20
jb 0x42fac8
mov eax, esi
and eax, 0xffffffe0
nop word [eax + eax]
movups xmm1, xmmword [ebp + ecx - 0x38]
movups xmm0, xmmword [ebp + ecx - 0x48]
pxor xmm0, xmm1
movups xmmword [ebp + ecx - 0x48], xmm0
movups xmm0, xmmword [ebp + ecx - 0x28]
pxor xmm0, xmm1
movups xmmword [ebp + ecx - 0x38], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x42faa0
cmp ecx, esi
jae 0x42fadd
nop dword [eax]
mov al, byte [ebp + ecx - 0x38]
xor byte [ebp + ecx - 0x48], al
inc ecx
cmp ecx, esi
jb 0x42fad0
push esi
lea eax, [ebp - 0x48]
push eax
push ebx
call fcn.00456380
mov edx, dword [ebp - 0x70]
add esp, 0xc
mov eax, dword [ebp - 0x74]
mov dword [edx], ebx
pop edi
mov dword [eax], esi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043de43
mov esp, ebp
pop ebp
ret
lea ebx, [ebp - 0x48]
mov dword [ebp - 0x5c], 0x10
lea eax, [ebp - 0x38]
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x60], eax
lea edi, [ebp - 0x28]
nop dword [eax]
mov eax, dword [ebp - 0x64]
sub eax, esi
mov esi, 0x10
cmp eax, esi
cmovb esi, eax
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x68]
push esi
push eax
push edi
call fcn.00456380
push dword [ebp - 0x6c]
add dword [ebp - 0x54], esi
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x60]
call fcn.0043c140
add esp, 0x18
test esi, esi
je 0x42fc62
cmp esi, 0x10
je 0x42fc62
xor eax, eax
mov dword [ebp - 0x5c], esi
test esi, esi
je 0x42fbdf
cmp esi, 0x20
jb 0x42fbc1
lea ecx, [edi - 1]
add ecx, esi
lea ebx, [ebp - 0x18]
lea edx, [ebp + esi - 0x19]
cmp ebx, ecx
ja 0x42fb85
cmp edx, edi
jae 0x42fbc1
mov edx, esi
lea ecx, [ebp - 0x18]
mov ebx, edi
and edx, 0xffffffe0
sub ebx, ecx
movups xmm0, xmmword [ebp + eax - 0x18]
lea ecx, [ebx + eax]
movups xmm1, xmmword [ebp + ecx - 0x18]
pxor xmm1, xmm0
movups xmmword [ebp + eax - 0x18], xmm1
movups xmm0, xmmword [ebp + eax - 8]
movups xmm1, xmmword [edi + eax + 0x10]
pxor xmm1, xmm0
movups xmmword [ebp + eax - 8], xmm1
add eax, 0x20
cmp eax, edx
jb 0x42fb91
cmp eax, esi
jae 0x42fbdf
mov ebx, edi
lea ecx, [ebp - 0x18]
sub ebx, ecx
nop dword [eax]
lea edx, [ebp - 0x18]
add edx, eax
inc eax
mov cl, byte [ebx + edx]
xor byte [edx], cl
cmp eax, esi
jb 0x42fbd0
cmp esi, 0x10
jae 0x42fbfe
mov eax, 0x10
lea ecx, [ebp - 0x18]
sub eax, esi
lea edx, [edi + esi]
push eax
add ecx, esi
push ecx
push edx
call fcn.00456380
add esp, 0xc
push dword [ebp - 0x6c]
push edi
push edi
call fcn.0043c140
mov ebx, dword [ebp - 0x50]
lea ecx, [edi + 0xf]
add esp, 0xc
lea eax, [ebx + 0xf]
cmp edi, eax
ja 0x42fc40
cmp ecx, ebx
jb 0x42fc40
mov ecx, edi
sub ebx, edi
mov edx, 0x10
mov al, byte [ebx + ecx]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub edx, 1
jne 0x42fc25
mov ebx, dword [ebp - 0x50]
jmp 0x42fc4d
movups xmm1, xmmword [ebx]
movups xmm0, xmmword [edi]
pxor xmm1, xmm0
movups xmmword [edi], xmm1
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x58]
movups xmm0, xmmword [edi]
movups xmmword [ecx + eax], xmm0
add eax, 0x10
mov dword [ebp - 0x4c], eax
jmp 0x42fcaa
lea eax, [ebx + 0xf]
xor edx, edx
lea ecx, [ebp - 0x18]
cmp ecx, eax
ja 0x42fc95
lea eax, [ebp - 9]
cmp eax, ebx
jb 0x42fc95
mov eax, ecx
sub ebx, eax
nop dword [eax]
lea ecx, [ebp - 0x18]
add ecx, edx
inc edx
mov al, byte [ecx + ebx]
xor byte [ecx], al
cmp edx, 0x10
jb 0x42fc80
mov ebx, dword [ebp - 0x50]
jmp 0x42fca4
movups xmm0, xmmword [ebp - 0x18]
movups xmm1, xmmword [ebx]
pxor xmm1, xmm0
movups xmmword [ebp - 0x18], xmm1
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x4c]
push dword [ebp - 0x5c]
lea edx, [ebp - 0x18]
add eax, ecx
push edx
push eax
call fcn.00456380
mov ecx, dword [ebp - 0x4c]
mov eax, ebx
add ecx, dword [ebp - 0x5c]
add esp, 0xc
mov ebx, dword [ebp - 0x60]
cmp esi, 0x10
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x60], edi
mov edi, eax
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], ebx
je 0x42fb20
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x58]
pop edi
pop esi
mov dword [edx], eax
mov eax, dword [ebp - 0x74]
pop ebx
mov dword [eax], ecx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043de43
mov esp, ebp
pop ebp
ret