Function at 0x42a26f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc8
push esi
mov esi, ecx
push edi
mov dword [esp + 0x28], esi
mov ecx, dword [esi + 0x230]
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x42a298
lea ecx, [esi + 0x40]
mov dword [esp + 0x10], ecx
mov edx, dword [esi + 0x214]
mov eax, dword [esi + 0x210]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edx
test edx, edx
jne 0x42a30e
cmp eax, 0xf0
ja 0x42a30e
mov edx, dword [esi + 0x220]
mov eax, edx
mov edi, dword [esi + 0x224]
or eax, edi
je 0x42a2eb
push edi
push edx
mov edx, dword [esi + 0x210]
lea eax, [esp + 0x48]
lea ecx, [esi + 0x100]
push eax
call fcn.0042995e
add esp, 0xc
mov esi, eax
jmp 0x42a631
mov eax, dword [esi + 0x21c]
mov edx, dword [esi + 0x210]
add eax, 0x40
push eax
push ecx
lea eax, [esp + 0x48]
lea ecx, [esi + 0x100]
push eax
call fcn.00429214
jmp 0x42a2e1
push 0x40
pop edi
push edi
lea eax, [esp + 0x54]
push esi
push eax
call fcn.0042a9fb
mov ecx, dword [esi + 0x200]
add esp, 0xc
cmp ecx, edi
jb 0x42a531
mov edx, dword [esi + 0x21c]
dec ecx
mov eax, dword [esi + 0x208]
mov dword [esp + 0xc], edx
lea edx, [esi + 0x100]
mov dword [esp + 0x14], edx
mov edx, dword [esi + 0x218]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
shr ecx, 6
mov dword [esp + 0x20], ecx
lea edx, [edx + eax*8]
mov dword [esp + 8], edx
mov edx, dword [esi + 0x218]
mov dword [esp + 0x18], edx
sub dword [esp + 0x18], eax
mov edx, dword [esp + 8]
cmp ecx, dword [esp + 0x18]
jb 0x42a4a8
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0xc]
movdqa xmm3, xmmword [0x437510]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], eax
test esi, esi
je 0x42a42c
mov ecx, dword [esp + 0x14]
mov eax, edx
lea edx, [esp + 0x50]
mov dword [esp + 0x2c], ecx
sub eax, edx
mov dword [esp + 0xc], esi
mov edx, dword [esp + 8]
mov dword [esp + 0x24], eax
prefetcht0 byte [ecx + 0x180]
lea eax, [esp + 0x50]
mov edi, dword [esp + 0x24]
mov esi, ecx
push 4
sub esi, edx
mov edx, eax
pop ecx
lea eax, [edi + edx]
movdqu xmm0, xmmword [eax + esi]
movdqu xmm2, xmmword [eax]
pshufd xmm1, xmm0, 0x4e
paddq xmm1, xmmword [edx]
pxor xmm2, xmm0
pshufd xmm0, xmm2, 0x31
pmuludq xmm0, xmm2
paddq xmm1, xmm0
movdqa xmmword [edx], xmm1
lea edx, [edx + 0x10]
dec ecx
jne 0x42a3d5
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 8]
add dword [esp + 0x24], 8
add edx, 8
push 0x40
pop edi
add ecx, edi
mov dword [esp + 8], edx
dec dword [esp + 0xc]
mov dword [esp + 0x2c], ecx
jne 0x42a3bd
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x50]
mov ecx, eax
mov dword [esp + 0xc], 4
sub edx, ecx
mov ecx, dword [esp + 0x20]
dec dword [esp + 0xc]
movdqa xmm1, xmmword [eax]
movdqu xmm0, xmmword [edx + eax]
psrlq xmm1, 0x2f
pxor xmm1, xmmword [eax]
pxor xmm1, xmm0
pshufd xmm0, xmm1, 0x31
pmuludq xmm0, xmm3
pmuludq xmm1, xmm3
psllq xmm0, 0x20
paddq xmm0, xmm1
movdqa xmmword [eax], xmm0
lea eax, [eax + 0x10]
jne 0x42a444
mov edx, dword [esp + 0x10]
mov eax, esi
shl eax, 6
sub ecx, esi
mov esi, dword [esp + 0x1c]
add dword [esp + 0x14], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 8], edx
cmp ecx, esi
jae 0x42a399
mov esi, dword [esp + 0x28]
test ecx, ecx
je 0x42a523
lea eax, [esp + 0x50]
mov esi, edx
sub esi, eax
mov eax, dword [esp + 0x14]
prefetcht0 byte [eax + 0x180]
lea edi, [esp + 0x50]
sub eax, edx
push 4
mov dword [esp + 0x20], eax
mov ecx, eax
pop edx
lea eax, [edi + esi]
movdqu xmm2, xmmword [eax + ecx]
movdqu xmm0, xmmword [eax]
pxor xmm0, xmm2
pshufd xmm1, xmm0, 0x31
pmuludq xmm1, xmm0
pshufd xmm0, xmm2, 0x4e
paddq xmm0, xmmword [edi]
paddq xmm1, xmm0
movdqa xmmword [edi], xmm1
lea edi, [edi + 0x10]
dec edx
jne 0x42a4ce
mov eax, dword [esp + 0x14]
add esi, 8
mov edx, dword [esp + 8]
push 0x40
pop edi
add eax, edi
add edx, 8
dec dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 8], edx
jne 0x42a4b8
mov esi, dword [esp + 0x28]
lea edx, [esi + 0xc0]
add edx, dword [esi + 0x200]
jmp 0x42a575
sub edi, ecx
mov eax, esi
sub eax, edi
add eax, 0x200
push edi
push eax
lea eax, [esp + 0x98]
push eax
call fcn.0042a9fb
mov eax, dword [esi + 0x200]
add esp, 0xc
push eax
lea eax, [esi + 0x100]
push eax
lea eax, [esp + 0x98]
add eax, edi
push eax
call fcn.0042a9fb
add esp, 0xc
lea edx, [esp + 0x90]
mov eax, dword [esi + 0x21c]
lea ecx, [esp + 0x50]
mov edi, dword [esp + 0x10]
add edi, 0xfffffff9
mov dword [esp + 0x1c], eax
add edi, eax
mov eax, ecx
push 4
sub edx, edi
sub edi, eax
pop esi
lea eax, [edi + ecx]
movdqu xmm2, xmmword [eax + edx]
movdqu xmm0, xmmword [eax]
pxor xmm0, xmm2
pshufd xmm1, xmm0, 0x31
pmuludq xmm1, xmm0
pshufd xmm0, xmm2, 0x4e
paddq xmm0, xmmword [ecx]
paddq xmm1, xmm0
movdqa xmmword [ecx], xmm1
lea ecx, [ecx + 0x10]
dec esi
jne 0x42a595
mov edi, dword [esp + 0x34]
push 0x9e3779b1
push 0x85ebca87
push dword [esp + 0x38]
push edi
call fcn.0042a988
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x50]
push edx
push eax
lea edx, [esi + 0xb]
call fcn.00424666
pop ecx
pop ecx
push 0xc2b2ae3d
push 0x27d4eb4f
push dword [esp + 0x38]
mov dword [esp + 0x4c], eax
push edi
mov dword [esp + 0x54], edx
call fcn.0042a988
not edx
lea ecx, [esp + 0x50]
push edx
not eax
lea edx, [esi - 0xb]
add edx, dword [esp + 0x20]
push eax
call fcn.00424666
pop ecx
pop ecx
mov dword [esp + 0x48], eax
lea esi, [esp + 0x40]
mov dword [esp + 0x4c], edx
mov eax, dword [ebp + 8]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret