Function at 0x4d56ae
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x14]
cmp eax, 0xa
ja case.default.0x4d53e8
push edi
jmp dword [eax*4 + 0x4d5714]
mov eax, dword [ebp + 0xc]
xor ecx, ecx
xor edx, edx
lea edi, [eax*4]
lea eax, [edi + ebx]
shr edi, 2
cmp ebx, eax
cmova edi, ecx
test edi, edi
je 0x4d570e
mov ecx, dword [ebx]
lea esi, [esi + 3]
mov eax, ecx
lea ebx, [ebx + 4]
shr eax, 0x10
inc edx
mov byte [esi - 3], al
mov eax, ecx
shr eax, 8
mov byte [esi - 2], al
mov byte [esi - 1], cl
cmp edx, edi
jb 0x4d5410
pop edi
pop esi
pop ebx
pop ebp
ret
push esi
push dword [ebp + 0xc]
push ebx
call fcn.004d49a0
add esp, 0xc
pop edi
pop esi
pop ebx
pop ebp
ret
mov edi, dword [ebp + 0xc]
push esi
push edi
push ebx
call fcn.004d49a0
push 0
push 1
push edi
push 0
push esi
call dword [0x582898]
add esp, 0x20
pop edi
pop esi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 0xc]
xor ecx, ecx
xor edx, edx
lea edi, [eax*4]
lea eax, [edi + ebx]
shr edi, 2
cmp ebx, eax
cmova edi, ecx
test edi, edi
je 0x4d570e
nop dword [eax]
mov ecx, dword [ebx]
lea esi, [esi + 3]
mov byte [esi - 3], cl
lea ebx, [ebx + 4]
mov eax, ecx
inc edx
shr eax, 8
shr ecx, 0x10
mov byte [esi - 2], al
mov byte [esi - 1], cl
cmp edx, edi
jb 0x4d5490
pop edi
pop esi
pop ebx
pop ebp
ret
push 1
push esi
push dword [ebp + 0xc]
push ebx
call fcn.004d4a70
add esp, 0x10
pop edi
pop esi
pop ebx
pop ebp
ret
mov edi, dword [ebp + 0xc]
push 1
push esi
push edi
push ebx
call fcn.004d4a70
push 0
push 1
push edi
push 0
push esi
call dword [0x582898]
add esp, 0x24
pop edi
pop esi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 0xc]
xor edi, edi
xor ecx, ecx
lea edx, [eax*4]
lea eax, [edx + ebx]
shr edx, 2
cmp ebx, eax
cmova edx, edi
test edx, edx
je 0x4d570e
cmp edx, 0x10
jb 0x4d558f
cmp dword [0x5958c8], 2
jl 0x4d558f
lea eax, [ebx - 4]
lea eax, [eax + edx*4]
lea edi, [esi - 4]
lea edi, [edi + edx*4]
cmp esi, eax
ja 0x4d552d
cmp edi, ebx
jae 0x4d558f
mov eax, edx
and eax, 0xfffffff0
nop dword [eax]
nop word [eax + eax]
movups xmm0, xmmword [ebx]
add ecx, 0x10
pshufb xmm0, xmmword [0x55ebd0]
movups xmmword [esi], xmm0
movups xmm0, xmmword [ebx + 0x10]
pshufb xmm0, xmmword [0x55ebd0]
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [ebx + 0x20]
pshufb xmm0, xmmword [0x55ebd0]
movups xmmword [esi + 0x20], xmm0
movups xmm0, xmmword [ebx + 0x30]
add ebx, 0x40
pshufb xmm0, xmmword [0x55ebd0]
movups xmmword [esi + 0x30], xmm0
add esi, 0x40
cmp ecx, eax
jb 0x4d5540
cmp ecx, edx
jae 0x4d570e
sub ebx, esi
nop dword [eax]
mov eax, dword [ebx + esi]
lea esi, [esi + 4]
bswap eax
inc ecx
mov dword [esi - 4], eax
cmp ecx, edx
jb 0x4d55a0
pop edi
pop esi
pop ebx
pop ebp
ret
mov edi, dword [ebp + 0xc]
xor edx, edx
shl edi, 2
mov ecx, esi
lea eax, [edi + ebx]
shr edi, 2
cmp ebx, eax
cmova edi, edx
test edi, edi
je 0x4d5665
cmp edi, 0x10
jb 0x4d564f
cmp dword [0x5958c8], 2
jl 0x4d564f
lea eax, [ebx - 4]
lea eax, [eax + edi*4]
cmp esi, eax
ja 0x4d55f4
lea eax, [esi - 4]
lea eax, [eax + edi*4]
cmp eax, ebx
jae 0x4d564f
mov eax, edi
and eax, 0xfffffff0
nop dword [eax]
movups xmm0, xmmword [ebx]
add edx, 0x10
pshufb xmm0, xmmword [0x55ebd0]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [ebx + 0x10]
pshufb xmm0, xmmword [0x55ebd0]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [ebx + 0x20]
pshufb xmm0, xmmword [0x55ebd0]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [ebx + 0x30]
add ebx, 0x40
pshufb xmm0, xmmword [0x55ebd0]
movups xmmword [ecx + 0x30], xmm0
add ecx, 0x40
cmp edx, eax
jb 0x4d5600
cmp edx, edi
jae 0x4d5665
sub ebx, ecx
mov eax, dword [ebx + ecx]
lea ecx, [ecx + 4]
bswap eax
inc edx
mov dword [ecx - 4], eax
cmp edx, edi
jb 0x4d5655
push 0
push 1
push dword [ebp + 0xc]
push 1
push esi
call dword [0x582898]
add esp, 0x14
pop edi
pop esi
pop ebx
pop ebp
ret
push esi
push dword [ebp + 0xc]
push ebx
call fcn.004d4a00
add esp, 0xc
pop edi
pop esi
pop ebx
pop ebp
ret
mov edi, dword [ebp + 0xc]
push esi
push edi
push ebx
call fcn.004d4a00
push 0
push 1
push edi
push esi
call dword [0x58289c]
add esp, 0x1c
pop edi
pop esi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 0xc]
xor edx, edx
xor edi, edi
lea ecx, [eax*4]
lea eax, [ecx + ebx]
shr ecx, 2
cmp ebx, eax
cmova ecx, edx
mov dword [ebp + 0x10], ecx
test ecx, ecx
je 0x4d570e
nop
mov edx, dword [ebx]
lea esi, [esi + 2]
mov ecx, edx
lea ebx, [ebx + 4]
shr ecx, 0x10
mov eax, edx
shr eax, 0xd
inc edi
xor cl, al
mov eax, edx
and cl, 7
shr eax, 0x10
xor cl, al
mov eax, edx
mov byte [esi - 2], cl
mov ecx, edx
shr ecx, 5
shr eax, 3
xor cl, al
shr edx, 5
and cl, 0x1f
xor cl, dl
mov byte [esi - 1], cl
cmp edi, dword [ebp + 0x10]
jb 0x4d56d0
pop edi
pop esi
pop ebx
pop ebp
ret