Function at 0x4d2260
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push esi
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 0x528]
cmp eax, 0x10
jg 0x4d25fe
test eax, eax
js 0x4d25fe
cmp dword [esi + 0x524], 0
push ebx
push edi
jne 0x4d24c5
cmp dword [esi + 0x520], 0
jne 0x4d22c9
cmp eax, 0xc
jne 0x4d22c9
movq xmm0, qword [esi + 0x510]
mov eax, dword [esi + 0x518]
movq qword [esi + 0x4f0], xmm0
mov dword [esi + 0x4f8], eax
mov dword [esi + 0x4fc], 0x1000000
jmp 0x4d2485
test eax, eax
je 0x4d22f4
mov edx, 0xfffffb20
lea ecx, [esi + 0x4e0]
sub edx, esi
nop word [eax + eax]
mov al, byte [ecx + 0x30]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
lea eax, [ecx + edx]
cmp eax, dword [esi + 0x528]
jb 0x4d22e0
mov eax, dword [esi + 0x528]
mov ebx, dword [ebp + 0x14]
test eax, eax
je 0x4d2325
mov ecx, 8
imul ecx
push ebx
add dword [esi + 0x530], eax
lea eax, [esi + 0x4e0]
push eax
adc dword [esi + 0x534], edx
push esi
call fcn.004d4f30
add esp, 0xc
xorps xmm0, xmm0
lea edi, [esi + 0x4e0]
movq qword [esi + 0x510], xmm0
movzx eax, byte [esi + 0x537]
mov byte [esi + 0x518], al
movzx eax, byte [esi + 0x536]
mov byte [esi + 0x519], al
movzx eax, byte [esi + 0x535]
mov byte [esi + 0x51a], al
movzx eax, byte [esi + 0x534]
mov byte [esi + 0x51b], al
movzx eax, byte [esi + 0x533]
mov byte [esi + 0x51c], al
movzx eax, byte [esi + 0x532]
mov byte [esi + 0x51d], al
movzx eax, byte [esi + 0x531]
mov byte [esi + 0x51e], al
movzx eax, byte [esi + 0x530]
mov byte [esi + 0x51f], al
movzx eax, byte [esi + 0x510]
xor byte [edi], al
movzx eax, byte [esi + 0x511]
xor byte [esi + 0x4e1], al
movzx eax, byte [esi + 0x512]
xor byte [esi + 0x4e2], al
movzx eax, byte [esi + 0x513]
xor byte [esi + 0x4e3], al
movzx eax, byte [esi + 0x514]
xor byte [esi + 0x4e4], al
movzx eax, byte [esi + 0x515]
xor byte [esi + 0x4e5], al
movzx eax, byte [esi + 0x516]
xor byte [esi + 0x4e6], al
movzx eax, byte [esi + 0x517]
xor byte [esi + 0x4e7], al
movzx eax, byte [esi + 0x518]
xor byte [esi + 0x4e8], al
movzx eax, byte [esi + 0x519]
xor byte [esi + 0x4e9], al
movzx eax, byte [esi + 0x51a]
xor byte [esi + 0x4ea], al
movzx eax, byte [esi + 0x51b]
xor byte [esi + 0x4eb], al
movzx eax, byte [esi + 0x51c]
xor byte [esi + 0x4ec], al
movzx eax, byte [esi + 0x51d]
xor byte [esi + 0x4ed], al
movzx eax, byte [esi + 0x51e]
xor byte [esi + 0x4ee], al
movzx eax, byte [esi + 0x51f]
xor byte [esi + 0x4ef], al
push ebx
push edi
push esi
call fcn.004d4f30
movups xmm0, xmmword [edi]
add esp, 0xc
movups xmmword [esi + 0x4f0], xmm0
xorps xmm0, xmm0
movups xmmword [edi], xmm0
movups xmm0, xmmword [esi + 0x4f0]
movups xmmword [esi + 0x500], xmm0
xorps xmm0, xmm0
movups xmmword [esi + 0x510], xmm0
mov dword [esi + 0x528], 0
mov dword [esi + 0x530], 0
mov dword [esi + 0x534], 0
mov dword [esi + 0x524], 1
cmp dword [esi + 0x524], 1
jne 0x4d25e6
cmp dword [esi + 0x528], 0x10
jge 0x4d25e6
mov edi, dword [ebp + 0x10]
lea ecx, [edi + 0x4c]
call fcn.00414910
mov ebx, eax
lea ecx, [edi + 0x4c]
mov dword [ebp + 0x10], ebx
call fcn.00401c90
xor edi, edi
mov edx, eax
mov dword [ebp + 0xc], edx
cmp dword [esi + 0x528], edi
jne 0x4d2571
and eax, 0xfffffff0
mov dword [ebp - 4], eax
jbe 0x4d256f
mov ecx, dword [ebp + 0x10]
lea ebx, [esi + 0x4e0]
add ecx, 8
mov dword [ebp - 8], ecx
nop dword [eax]
mov eax, dword [ecx + edi - 8]
xor dword [ebx], eax
mov eax, dword [ecx + edi - 4]
push dword [ebp + 0x14]
xor dword [ebx + 4], eax
mov eax, dword [ecx + edi]
xor dword [esi + 0x4e8], eax
mov eax, dword [ecx + edi + 4]
xor dword [esi + 0x4ec], eax
push ebx
push esi
call fcn.004d4f30
mov ecx, dword [ebp - 8]
add esp, 0xc
add dword [esi + 0x530], 0x80
adc dword [esi + 0x534], 0
add edi, 0x10
cmp edi, dword [ebp - 4]
jb 0x4d2520
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
add ebx, edi
cmp edi, edx
jae 0x4d25db
sub edx, edi
mov dword [ebp + 0xc], edx
nop word [eax + eax]
mov ecx, dword [esi + 0x528]
lea ebx, [ebx + 1]
mov al, byte [ebx - 1]
xor byte [ecx + esi + 0x4e0], al
inc dword [esi + 0x528]
cmp dword [esi + 0x528], 0x10
jne 0x4d25d3
push dword [ebp + 0x14]
lea eax, [esi + 0x4e0]
push eax
push esi
call fcn.004d4f30
mov edx, dword [ebp + 0xc]
add esp, 0xc
add dword [esi + 0x530], 0x80
mov dword [esi + 0x528], 0
adc dword [esi + 0x534], 0
sub edx, 1
mov dword [ebp + 0xc], edx
jne 0x4d2580
pop edi
pop ebx
mov al, 1
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp + 0x14]
push str.Internal_error_2
mov eax, dword [ecx]
call dword [eax + 0x14]
pop edi
pop ebx
xor al, al
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp + 0x14]
push str.Internal_error.
mov eax, dword [ecx]
call dword [eax + 0x14]
xor al, al
pop esi
mov esp, ebp
pop ebp
ret 0x10