Function at 0x420d50
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x4fa054]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0xc]
push esi
xor esi, esi
mov dword [ebp - 0x10], edx
push edi
mov edi, dword [ebx + 8]
cmp ecx, 0xe0
jb 0x420ea4
movups xmm2, xmmword [edx]
mov edx, 0xe0
mov ecx, dword [ebx + 0x10]
sub edx, ecx
movaps xmm6, xmmword [0x4d7de0]
movaps xmm7, xmmword [0x4d7dd0]
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], edx
movups xmm0, xmmword [ecx]
lea eax, [ecx + 0x10]
mov edx, 0xd
movups xmm1, xmmword [edi + 0x1c0]
lea ecx, [edi + 0x1b0]
pshufb xmm0, xmm6
pxor xmm0, xmm2
movaps xmm3, xmm0
movaps xmm4, xmm0
movaps xmm5, xmm0
pclmulqdq xmm3, xmm1, 0x10
pclmulqdq xmm0, xmm1, 1
pclmulqdq xmm4, xmm1, 0x11
pclmulqdq xmm5, xmm1, 0
pxor xmm3, xmm0
movups xmm2, xmmword [ecx]
lea ecx, [ecx - 0x10]
lea eax, [eax + 0x10]
movups xmm1, xmmword [eax - 0x10]
pshufb xmm1, xmm6
movaps xmm0, xmm1
pclmulqdq xmm0, xmm2, 0x11
pxor xmm4, xmm0
movaps xmm0, xmm1
pclmulqdq xmm0, xmm2, 0
pxor xmm5, xmm0
movaps xmm0, xmm1
pclmulqdq xmm0, xmm2, 0x10
pclmulqdq xmm1, xmm2, 1
pxor xmm0, xmm1
pxor xmm3, xmm0
sub edx, 1
jne 0x420df6
mov ecx, dword [ebp - 8]
movaps xmm0, xmm3
mov edx, dword [ebp - 0x10]
add ecx, 0xe0
mov eax, dword [ebp - 0xc]
add esi, 0xe0
pslldq xmm0, 8
add eax, ecx
pxor xmm0, xmm5
psrldq xmm3, 8
movaps xmm1, xmm0
pshufd xmm0, xmm0, 0x4e
pxor xmm3, xmm4
mov dword [ebp - 8], ecx
pclmulqdq xmm1, xmm7, 0
pxor xmm1, xmm0
movaps xmm2, xmm1
pshufd xmm0, xmm1, 0x4e
pclmulqdq xmm2, xmm7, 0
pxor xmm2, xmm0
pxor xmm2, xmm3
movups xmmword [edx], xmm2
cmp eax, dword [ebx + 0x14]
jbe 0x420db0
mov ecx, dword [ebx + 0x14]
lea eax, [esi + 0x70]
cmp eax, ecx
ja 0x421105
mov eax, dword [ebx + 0x10]
movaps xmm0, xmmword [0x4d7de0]
mov dword [ebp - 0xc], 0x60
lea edx, [eax + 0x10]
add edx, esi
sub dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
mov edx, dword [ebp - 0x10]
nop
mov eax, dword [ebp - 8]
movups xmm5, xmmword [edi + 0x150]
movups xmm2, xmmword [edi + 0x140]
movups xmm7, xmmword [eax - 0x10]
movups xmm1, xmmword [eax]
pshufb xmm7, xmm0
pshufb xmm1, xmm0
pxor xmm7, xmmword [edx]
movaps xmm3, xmm1
movaps xmm0, xmm7
pclmulqdq xmm0, xmm5, 0x11
pclmulqdq xmm3, xmm2, 0x11
pxor xmm3, xmm0
movaps xmm4, xmm1
pclmulqdq xmm4, xmm2, 0
movaps xmm0, xmm7
movaps xmm6, xmm1
pclmulqdq xmm0, xmm5, 0
pxor xmm4, xmm0
movaps xmm0, xmm7
pclmulqdq xmm0, xmm5, 0x10
pclmulqdq xmm6, xmm2, 0x10
pclmulqdq xmm1, xmm2, 1
pclmulqdq xmm7, xmm5, 1
pxor xmm0, xmm7
pxor xmm6, xmm1
movaps xmm7, xmmword [0x4d7de0]
pxor xmm6, xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmm1, xmmword [edi + 0x130]
pshufb xmm0, xmm7
movaps xmm2, xmm0
movaps xmm5, xmm0
pclmulqdq xmm2, xmm1, 0x11
pxor xmm2, xmm3
movaps xmm3, xmm0
pclmulqdq xmm0, xmm1, 1
pclmulqdq xmm5, xmm1, 0x10
pxor xmm5, xmm0
movups xmm0, xmmword [eax + 0x20]
pclmulqdq xmm3, xmm1, 0
movups xmm1, xmmword [edi + 0x120]
pxor xmm3, xmm4
pshufb xmm0, xmm7
pxor xmm5, xmm6
movaps xmm4, xmm0
movaps xmm6, xmm0
pclmulqdq xmm4, xmm1, 0x11
pxor xmm4, xmm2
movaps xmm2, xmm0
pclmulqdq xmm0, xmm1, 1
pclmulqdq xmm6, xmm1, 0x10
pxor xmm6, xmm0
movups xmm0, xmmword [eax + 0x30]
pclmulqdq xmm2, xmm1, 0
movups xmm1, xmmword [edi + 0x110]
pxor xmm2, xmm3
pshufb xmm0, xmm7
pxor xmm6, xmm5
movaps xmm3, xmm0
movaps xmm5, xmm0
pclmulqdq xmm3, xmm1, 0x11
pxor xmm3, xmm4
movaps xmm4, xmm0
pclmulqdq xmm0, xmm1, 1
pclmulqdq xmm5, xmm1, 0x10
pxor xmm5, xmm0
movups xmm0, xmmword [eax + 0x40]
pxor xmm5, xmm6
pshufb xmm0, xmm7
pclmulqdq xmm4, xmm1, 0
movups xmm1, xmmword [edi + 0x100]
pxor xmm4, xmm2
movaps xmm7, xmm0
movaps xmm6, xmm0
pclmulqdq xmm7, xmm1, 0x11
pclmulqdq xmm6, xmm1, 0
movaps xmm2, xmm0
pxor xmm7, xmm3
pxor xmm6, xmm4
pclmulqdq xmm2, xmm1, 0x10
movups xmm4, xmmword [edi + 0xf0]
add esi, 0x70
pclmulqdq xmm0, xmm1, 1
pxor xmm2, xmm0
mov edi, dword [ebx + 8]
pxor xmm2, xmm5
movups xmm5, xmmword [eax + 0x50]
add eax, 0x70
mov dword [ebp - 8], eax
pshufb xmm5, xmmword [0x4d7de0]
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 8]
movaps xmm3, xmm5
movaps xmm0, xmm5
movaps xmm1, xmm5
pclmulqdq xmm0, xmm4, 1
pclmulqdq xmm3, xmm4, 0x10
pxor xmm3, xmm0
pxor xmm3, xmm2
movaps xmm0, xmm3
psrldq xmm3, 8
pslldq xmm0, 8
pclmulqdq xmm1, xmm4, 0
pxor xmm1, xmm6
pxor xmm1, xmm0
pshufd xmm0, xmm1, 0x4e
movaps xmm2, xmm1
pclmulqdq xmm2, xmmword [0x4d7dd0], 0
pxor xmm2, xmm0
pshufd xmm0, xmm2, 0x4e
movaps xmm1, xmm2
pclmulqdq xmm1, xmmword [0x4d7dd0], 0
pxor xmm1, xmm0
movaps xmm0, xmmword [0x4d7de0]
pclmulqdq xmm5, xmm4, 0x11
pxor xmm5, xmm7
pxor xmm5, xmm3
pxor xmm5, xmm1
movups xmmword [edx], xmm5
cmp eax, ecx
jbe 0x420ed0
lea eax, [esi + 0x40]
cmp eax, ecx
ja 0x42129e
mov eax, dword [ebx + 0x10]
movaps xmm0, xmmword [0x4d7de0]
mov dword [ebp - 8], 0x30
lea ecx, [eax + 0x10]
add ecx, esi
sub dword [ebp - 8], eax
nop dword [eax]
movups xmm4, xmmword [ecx - 0x10]
mov eax, dword [ebp - 8]
add esi, 0x40
movups xmm1, xmmword [ecx]
movups xmm3, xmmword [edi + 0x120]
movups xmm2, xmmword [edi + 0x110]
pshufb xmm1, xmm0
pshufb xmm4, xmm0
movaps xmm7, xmm1
movaps xmm5, xmm1
pxor xmm4, xmmword [edx]
pclmulqdq xmm7, xmm2, 0x11
movaps xmm0, xmm4
movaps xmm6, xmm4
pclmulqdq xmm0, xmm3, 0x11
pxor xmm7, xmm0
movaps xmm0, xmm4
pclmulqdq xmm0, xmm3, 0
pclmulqdq xmm5, xmm2, 0
pxor xmm5, xmm0
movaps xmm0, xmm1
pclmulqdq xmm0, xmm2, 0x10
pclmulqdq xmm1, xmm2, 1
pxor xmm0, xmm1
movups xmm1, xmmword [edi + 0x100]
pclmulqdq xmm6, xmm3, 0x10
pclmulqdq xmm4, xmm3, 1
pxor xmm6, xmm4
pxor xmm6, xmm0
movups xmm0, xmmword [ecx + 0x10]
pshufb xmm0, xmmword [0x4d7de0]
movaps xmm2, xmm0
movaps xmm4, xmm0
pclmulqdq xmm2, xmm1, 0x11
pxor xmm2, xmm7
movups xmmword [ebp - 0x20], xmm2
movaps xmm2, xmm0
pclmulqdq xmm0, xmm1, 1
pclmulqdq xmm2, xmm1, 0x10
pxor xmm2, xmm0
pxor xmm2, xmm6
movups xmm6, xmmword [ecx + 0x20]
add ecx, 0x40
pclmulqdq xmm4, xmm1, 0
pshufb xmm6, xmmword [0x4d7de0]
add eax, ecx
pxor xmm4, xmm5
movups xmm5, xmmword [edi + 0xf0]
movaps xmm3, xmm6
movaps xmm0, xmm6
movaps xmm1, xmm6
pclmulqdq xmm0, xmm5, 1
pclmulqdq xmm3, xmm5, 0x10
pxor xmm3, xmm0
pxor xmm3, xmm2
movaps xmm0, xmm3
psrldq xmm3, 8
pclmulqdq xmm1, xmm5, 0
pxor xmm1, xmm4
pslldq xmm0, 8
pxor xmm1, xmm0
movaps xmm2, xmm1
pshufd xmm0, xmm1, 0x4e
pclmulqdq xmm2, xmmword [0x4d7dd0], 0
pxor xmm2, xmm0
movaps xmm1, xmm2
pshufd xmm0, xmm2, 0x4e
pclmulqdq xmm1, xmmword [0x4d7dd0], 0
pxor xmm1, xmm0
movaps xmm0, xmmword [0x4d7de0]
pclmulqdq xmm6, xmm5, 0x11
pxor xmm6, xmmword [ebp - 0x20]
pxor xmm6, xmm3
pxor xmm6, xmm1
movups xmmword [edx], xmm6
cmp eax, dword [ebx + 0x14]
jbe 0x421130
mov ecx, dword [ebx + 0x14]
lea eax, [esi + 0x20]
cmp eax, ecx
ja 0x4213a2
mov eax, dword [ebx + 0x10]
movaps xmm1, xmmword [0x4d7de0]
movups xmm7, xmmword [edx]
mov dword [ebp - 8], 0x20
sub dword [ebp - 8], eax
lea ecx, [esi + eax]
movups xmm0, xmmword [ecx]
mov eax, dword [ebp - 8]
add esi, 0x20
movups xmm4, xmmword [ecx + 0x10]
add ecx, 0x20
movups xmm6, xmmword [edi + 0x100]
add eax, ecx
movups xmm5, xmmword [edi + 0xf0]
pshufb xmm0, xmm1
pshufb xmm4, xmm1
pxor xmm7, xmm0
movaps xmm3, xmm7
movaps xmm0, xmm7
movaps xmm1, xmm4
pclmulqdq xmm0, xmm6, 1
pclmulqdq xmm1, xmm5, 0x10
pclmulqdq xmm3, xmm6, 0x10
pxor xmm3, xmm0
movaps xmm0, xmm4
pclmulqdq xmm0, xmm5, 1
pxor xmm1, xmm0
movaps xmm0, xmm4
pxor xmm3, xmm1
movaps xmm1, xmm7
pclmulqdq xmm1, xmm6, 0
pclmulqdq xmm0, xmm5, 0
pxor xmm1, xmm0
movaps xmm0, xmm3
pslldq xmm0, 8
pxor xmm1, xmm0
psrldq xmm3, 8
movaps xmm2, xmm1
pshufd xmm0, xmm1, 0x4e
pclmulqdq xmm2, xmmword [0x4d7dd0], 0
pxor xmm2, xmm0
movaps xmm1, xmm2
pshufd xmm0, xmm2, 0x4e
pclmulqdq xmm1, xmmword [0x4d7dd0], 0
pxor xmm1, xmm0
pclmulqdq xmm7, xmm6, 0x11
pclmulqdq xmm4, xmm5, 0x11
pxor xmm7, xmm4
pxor xmm7, xmm3
pxor xmm7, xmm1
movaps xmm1, xmmword [0x4d7de0]
movups xmmword [edx], xmm7
cmp eax, dword [ebx + 0x14]
jbe 0x4212c3
mov ecx, dword [ebx + 0x14]
cmp esi, ecx
jae 0x421432
mov eax, dword [ebx + 0x10]
movups xmm5, xmmword [edi + 0xf0]
movups xmm6, xmmword [esi + eax]
pshufb xmm6, xmmword [0x4d7de0]
pxor xmm6, xmmword [edx]
movaps xmm4, xmm6
movaps xmm0, xmm6
pclmulqdq xmm0, xmm5, 1
pclmulqdq xmm4, xmm5, 0x10
pxor xmm4, xmm0
movaps xmm1, xmm6
pclmulqdq xmm1, xmm5, 0
movaps xmm0, xmm4
psrldq xmm4, 8
pslldq xmm0, 8
pxor xmm1, xmm0
movaps xmm3, xmm1
pshufd xmm0, xmm1, 0x4e
pclmulqdq xmm3, xmmword [0x4d7dd0], 0
pxor xmm3, xmm0
movaps xmm1, xmm3
pshufd xmm0, xmm3, 0x4e
pclmulqdq xmm1, xmmword [0x4d7dd0], 0
pclmulqdq xmm6, xmm5, 0x11
pxor xmm6, xmm4
pxor xmm1, xmm0
pxor xmm6, xmm1
movups xmmword [edx], xmm6
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.0041e47d
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret