Function at 0x404c30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x100
push ebx
push ecx
push edx
push esi
push edi
lea eax, [ebp - 0x50]
add eax, 0xf
and eax, 0xfffffff0
mov dword [ebp - 0xf4], eax
lea eax, [ebp - 0xa0]
add eax, 0xf
and eax, 0xfffffff0
mov dword [ebp - 0xf8], eax
lea eax, [ebp - 0xf0]
add eax, 0xf
and eax, 0xfffffff0
mov dword [ebp - 0xfc], eax
cmp dword [ebp + 0x14], 0
je 0x404ff0
mov esi, dword [ebp - 0xfc]
xorps xmm0, xmm0
movups xmmword [esi], xmm0
movups xmmword [esi + 0x10], xmm0
movups xmmword [esi + 0x20], xmm0
movups xmmword [esi + 0x30], xmm0
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 0xf4]
movups xmm0, xmmword [esi]
movups xmm1, xmmword [esi + 0x10]
movups xmm2, xmmword [esi + 0x20]
movups xmm3, xmmword [esi + 0x30]
movups xmmword [edi], xmm0
movups xmmword [edi + 0x10], xmm1
movups xmmword [edi + 0x20], xmm2
movups xmmword [edi + 0x30], xmm3
cmp dword [ebp + 0x14], 0x40
jae 0x404cea
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x100], eax
mov edx, dword [ebp - 0xfc]
mov edi, edx
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
mov al, byte [esi + ecx - 1]
mov byte [edi + ecx - 1], al
dec ecx
test ecx, ecx
jne 0x404cd7
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x10], edx
mov esi, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xf8]
movups xmm0, xmmword [esi]
movups xmm1, xmmword [esi + 0x10]
movups xmm2, xmmword [esi + 0x20]
movups xmm3, xmmword [esi + 0x30]
movups xmmword [edi], xmm0
movups xmmword [edi + 0x10], xmm1
movups xmmword [edi + 0x20], xmm2
movups xmmword [edi + 0x30], xmm3
push ebp
push esi
mov ebp, 0xa
mov eax, dword [edi]
mov ebx, dword [edi + 0x10]
mov ecx, dword [edi + 0x20]
mov edx, dword [edi + 0x30]
mov esi, eax
add esi, edx
rol esi, 7
xor ebx, esi
mov esi, ebx
add esi, eax
rol esi, 9
xor ecx, esi
mov esi, ecx
add esi, ebx
rol esi, 0xd
xor edx, esi
mov esi, edx
add esi, ecx
rol esi, 0x12
xor eax, esi
mov dword [edi], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x30], edx
mov eax, dword [edi + 0x14]
mov ebx, dword [edi + 0x24]
mov ecx, dword [edi + 0x34]
mov edx, dword [edi + 4]
mov esi, eax
add esi, edx
rol esi, 7
xor ebx, esi
mov esi, ebx
add esi, eax
rol esi, 9
xor ecx, esi
mov esi, ecx
add esi, ebx
rol esi, 0xd
xor edx, esi
mov esi, edx
add esi, ecx
rol esi, 0x12
xor eax, esi
mov dword [edi + 0x14], eax
mov dword [edi + 0x24], ebx
mov dword [edi + 0x34], ecx
mov dword [edi + 4], edx
mov eax, dword [edi + 0x28]
mov ebx, dword [edi + 0x38]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0x18]
mov esi, eax
add esi, edx
rol esi, 7
xor ebx, esi
mov esi, ebx
add esi, eax
rol esi, 9
xor ecx, esi
mov esi, ecx
add esi, ebx
rol esi, 0xd
xor edx, esi
mov esi, edx
add esi, ecx
rol esi, 0x12
xor eax, esi
mov dword [edi + 0x28], eax
mov dword [edi + 0x38], ebx
mov dword [edi + 8], ecx
mov dword [edi + 0x18], edx
mov eax, dword [edi + 0x3c]
mov ebx, dword [edi + 0xc]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x2c]
mov esi, eax
add esi, edx
rol esi, 7
xor ebx, esi
mov esi, ebx
add esi, eax
rol esi, 9
xor ecx, esi
mov esi, ecx
add esi, ebx
rol esi, 0xd
xor edx, esi
mov esi, edx
add esi, ecx
rol esi, 0x12
xor eax, esi
mov dword [edi + 0x3c], eax
mov dword [edi + 0xc], ebx
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x2c], edx
mov eax, dword [edi]
mov ebx, dword [edi + 4]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov esi, eax
add esi, edx
rol esi, 7
xor ebx, esi
mov esi, ebx
add esi, eax
rol esi, 9
xor ecx, esi
mov esi, ecx
add esi, ebx
rol esi, 0xd
xor edx, esi
mov esi, edx
add esi, ecx
rol esi, 0x12
xor eax, esi
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov eax, dword [edi + 0x14]
mov ebx, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x10]
mov esi, eax
add esi, edx
rol esi, 7
xor ebx, esi
mov esi, ebx
add esi, eax
rol esi, 9
xor ecx, esi
mov esi, ecx
add esi, ebx
rol esi, 0xd
xor edx, esi
mov esi, edx
add esi, ecx
rol esi, 0x12
xor eax, esi
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], ebx
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x10], edx
mov eax, dword [edi + 0x28]
mov ebx, dword [edi + 0x2c]
mov ecx, dword [edi + 0x20]
mov edx, dword [edi + 0x24]
mov esi, eax
add esi, edx
rol esi, 7
xor ebx, esi
mov esi, ebx
add esi, eax
rol esi, 9
xor ecx, esi
mov esi, ecx
add esi, ebx
rol esi, 0xd
xor edx, esi
mov esi, edx
add esi, ecx
rol esi, 0x12
xor eax, esi
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], ebx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], edx
mov eax, dword [edi + 0x3c]
mov ebx, dword [edi + 0x30]
mov ecx, dword [edi + 0x34]
mov edx, dword [edi + 0x38]
mov esi, eax
add esi, edx
rol esi, 7
xor ebx, esi
mov esi, ebx
add esi, eax
rol esi, 9
xor ecx, esi
mov esi, ecx
add esi, ebx
rol esi, 0xd
xor edx, esi
mov esi, edx
add esi, ecx
rol esi, 0x12
xor eax, esi
mov dword [edi + 0x3c], eax
mov dword [edi + 0x30], ebx
mov dword [edi + 0x34], ecx
mov dword [edi + 0x38], edx
dec ebp
test ebp, ebp
jne 0x404d1b
pop esi
pop ebp
movq mm0, qword [edi]
movq mm1, qword [edi + 8]
movq mm2, qword [edi + 0x10]
movq mm3, qword [edi + 0x18]
movq mm4, qword [edi + 0x20]
movq mm5, qword [edi + 0x28]
movq mm6, qword [edi + 0x30]
movq mm7, qword [edi + 0x38]
paddd mm0, qword [esi]
paddd mm1, qword [esi + 8]
paddd mm2, qword [esi + 0x10]
paddd mm3, qword [esi + 0x18]
paddd mm4, qword [esi + 0x20]
paddd mm5, qword [esi + 0x28]
paddd mm6, qword [esi + 0x30]
paddd mm7, qword [esi + 0x38]
movq qword [edi], mm0
movq qword [edi + 8], mm1
movq qword [edi + 0x10], mm2
movq qword [edi + 0x18], mm3
movq qword [edi + 0x20], mm4
movq qword [edi + 0x28], mm5
movq qword [edi + 0x30], mm6
movq qword [edi + 0x38], mm7
mov esi, dword [ebp + 0xc]
movups xmm0, xmmword [esi]
movups xmm1, xmmword [esi + 0x10]
movups xmm2, xmmword [esi + 0x20]
movups xmm3, xmmword [esi + 0x30]
xorps xmm0, xmmword [edi]
xorps xmm1, xmmword [edi + 0x10]
xorps xmm2, xmmword [edi + 0x20]
xorps xmm3, xmmword [edi + 0x30]
mov esi, dword [ebp + 0x10]
movups xmmword [esi], xmm0
movups xmmword [esi + 0x10], xmm1
movups xmmword [esi + 0x20], xmm2
movups xmmword [esi + 0x30], xmm3
mov ebx, dword [ebp - 0xf4]
inc dword [ebx + 0x20]
cmp dword [ebx + 0x20], 0
jne 0x404fa4
inc dword [ebx + 0x24]
cmp dword [ebp + 0x14], 0x40
ja 0x404fda
cmp dword [ebp + 0x14], 0x40
jae 0x404fda
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp - 0x100]
mov al, byte [esi + ecx - 1]
mov byte [edi + ecx - 1], al
dec ecx
test ecx, ecx
jne 0x404fbc
mov edx, dword [ebp + 8]
mov eax, dword [ebx + 0x20]
mov dword [edx + 0x20], eax
mov eax, dword [ebx + 0x24]
mov dword [edx + 0x24], eax
jmp 0x404ff0
add dword [ebp + 0x10], 0x40
add dword [ebp + 0xc], 0x40
sub dword [ebp + 0x14], 0x40
cmp dword [ebp + 0x14], 0
jne 0x404cba
pop edi
pop esi
pop edx
pop ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x10