Function at 0x4d2620
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
pxor xmm0, xmm0
cmp esi, 0xc
mov dword [ebx + 0x174], 0
mov dword [ebx + 0x170], 0
movdqa xmmword [ebx], xmm0
movdqa xmmword [ebx + 0x30], xmm0
movdqa xmmword [ebx + 0x40], xmm0
jne 0x4d267f
mov eax, dword [edi + 8]
mov esi, 0x2000000
mov dword [ebx + 8], eax
movq xmm0, qword [edi]
movq qword [ebx], xmm0
mov byte [ebx + 0xf], 1
jmp 0x4d2a52
cmp esi, 0x10
jb 0x4d288a
xor edx, edx
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp + 0x14], esi
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], 0
mov ah, dl
mov al, dl
mov dword [esp + 0x10], eax
mov ah, dl
mov al, dl
mov dword [esp + 0xc], eax
mov ah, dl
mov al, dl
mov dword [esp + 8], eax
mov eax, ebx
mov bh, dl
mov bl, dl
xor edx, edx
add eax, 0x60
mov dword [esp + 0x38], eax
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax + eax]
xor bl, byte [edi]
mov esi, dword [ebp + 8]
pxor xmm2, xmm2
mov byte [esi], bl
xor bh, byte [edi + 1]
mov byte [esi + 1], bh
mov ebx, dword [esp + 0x28]
xor bl, byte [edi + 2]
mov byte [esi + 2], bl
xor al, byte [edi + 3]
mov byte [esi + 3], al
mov eax, dword [esp + 8]
xor al, byte [edi + 4]
mov byte [esi + 4], al
xor ah, byte [edi + 5]
mov byte [esi + 5], ah
mov eax, dword [esp + 0x34]
xor al, byte [edi + 6]
mov byte [esi + 6], al
mov eax, dword [esp + 0x2c]
xor al, byte [edi + 7]
mov byte [esi + 7], al
mov eax, dword [esp + 0xc]
xor al, byte [edi + 8]
mov byte [esi + 8], al
xor ah, byte [edi + 9]
mov byte [esi + 9], ah
mov eax, dword [esp + 0x10]
xor cl, byte [edi + 0xa]
mov byte [esi + 0xa], cl
lea ecx, [esp + 0x18]
xor dl, byte [edi + 0xb]
mov byte [esi + 0xb], dl
mov edx, dword [esp + 0x38]
xor al, byte [edi + 0xc]
mov byte [esi + 0xc], al
xor ah, byte [edi + 0xd]
mov byte [esi + 0xd], ah
mov eax, dword [esp + 0x30]
xor al, byte [edi + 0xe]
mov byte [esi + 0xe], al
mov eax, dword [esp + 4]
xor al, byte [edi + 0xf]
mov byte [esi + 0xf], al
movdqu xmm0, xmmword [esi]
movdqa xmm1, xmm0
punpckhbw xmm0, xmm2
punpcklbw xmm1, xmm2
pshufd xmm0, xmm0, 0x4e
pshufd xmm1, xmm1, 0x4e
pshuflw xmm0, xmm0, 0x1b
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm0, xmm0, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [esp + 0x18], xmm0
call fcn.004d4ba0
movdqu xmm1, xmmword [esp + 0x18]
pxor xmm3, xmm3
add dword [esp + 0x14], 0xfffffff0
add edi, 0x10
movdqa xmm0, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm0, xmm3
pshufd xmm1, xmm1, 0x4e
pshufd xmm0, xmm0, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm0, 0x1b
packuswb xmm0, xmm0
packuswb xmm1, xmm2
pshufd xmm2, xmm1, 0xe5
movd ebx, xmm1
movdqu xmmword [esi], xmm1
pshufd xmm1, xmm1, 0xe7
movd esi, xmm0
movd eax, xmm2
movd edx, xmm1
mov dword [esp + 0xc], esi
mov ecx, eax
mov dword [esp + 8], eax
shr eax, 0x18
mov dword [esp + 0x10], edx
shr ecx, 0x10
mov dword [esp + 0x2c], eax
mov eax, ebx
mov dword [esp + 0x34], ecx
mov ecx, ebx
shr eax, 0x18
shr ecx, 0x10
mov dword [esp + 0x28], ecx
mov ecx, edx
shr edx, 0x18
shr ecx, 0x10
mov dword [esp + 4], edx
mov edx, esi
mov dword [esp + 0x30], ecx
mov ecx, esi
shr edx, 0x18
shr ecx, 0x10
cmp dword [esp + 0x14], 0xf
ja 0x4d26f0
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xc]
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
test edx, edx
jne 0x4d28a8
jmp 0x4d29b3
mov dword [esp + 4], 0
mov dword [esp + 8], 0
xor ecx, ecx
xor eax, eax
mov edx, esi
test edx, edx
je 0x4d29b3
xor eax, eax
cmp edx, 0x1f
jbe 0x4d2904
lea ecx, [edi + edx]
cmp ecx, ebx
jbe 0x4d28bd
lea ecx, [ebx + edx]
cmp edi, ecx
jb 0x4d2904
mov eax, edx
xor ecx, ecx
and eax, 0xffffffe0
nop word cs:[eax + eax]
nop
movdqu xmm0, xmmword [edi + ecx]
movdqu xmm2, xmmword [ebx + ecx]
movdqu xmm1, xmmword [edi + ecx + 0x10]
movdqu xmm3, xmmword [ebx + ecx + 0x10]
pxor xmm2, xmm0
pxor xmm3, xmm1
movdqu xmmword [ebx + ecx], xmm2
movdqu xmmword [ebx + ecx + 0x10], xmm3
add ecx, 0x20
cmp eax, ecx
jne 0x4d28d0
cmp edx, eax
je 0x4d290d
mov cl, byte [edi + eax]
xor byte [ebx + eax], cl
inc eax
jmp 0x4d2900
movdqu xmm0, xmmword [ebx]
pxor xmm2, xmm2
lea edx, [ebx + 0x60]
lea ecx, [esp + 0x18]
movdqa xmm1, xmm0
punpckhbw xmm0, xmm2
punpcklbw xmm1, xmm2
pshufd xmm0, xmm0, 0x4e
pshufd xmm1, xmm1, 0x4e
pshuflw xmm0, xmm0, 0x1b
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm0, xmm0, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [esp + 0x18], xmm0
call fcn.004d4ba0
movdqu xmm0, xmmword [esp + 0x18]
pxor xmm3, xmm3
movdqa xmm1, xmm0
punpckhbw xmm0, xmm3
punpcklbw xmm1, xmm3
pshufd xmm0, xmm0, 0x4e
pshufd xmm1, xmm1, 0x4e
pshuflw xmm0, xmm0, 0x1b
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm0, xmm0, 0x1b
pshufhw xmm2, xmm1, 0x1b
packuswb xmm0, xmm2
pshufd xmm2, xmm0, 0xe5
movdqu xmmword [ebx], xmm0
movd dword [esp + 4], xmm0
pshufd xmm0, xmm0, 0xe7
packuswb xmm1, xmm1
movd eax, xmm0
movd dword [esp + 8], xmm2
movd ecx, xmm1
mov edi, esi
shl esi, 3
mov edx, eax
movd xmm2, dword [esp + 4]
shr edi, 0x1d
bswap esi
bswap edi
xor esi, edx
lea edx, [ebx + 0x60]
xor edi, ecx
movd xmm0, esi
lea ecx, [esp + 0x18]
mov dword [ebx + 0xc], esi
movd xmm1, edi
mov dword [ebx + 8], edi
punpckldq xmm1, xmm0
movd xmm0, dword [esp + 8]
punpckldq xmm2, xmm0
pxor xmm0, xmm0
punpcklbw xmm1, xmm0
punpcklbw xmm2, xmm0
pshufd xmm1, xmm1, 0x4e
pshufd xmm0, xmm2, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm1, xmm1, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm1, xmm0
movdqu xmmword [esp + 0x18], xmm1
call fcn.004d4ba0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
bswap ecx
bswap eax
mov dword [ebx + 4], eax
mov dword [ebx], ecx
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, esi
inc esi
bswap eax
bswap ecx
bswap esi
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
mov ecx, dword [ebp + 0xc]
lea eax, [ebx + 0x20]
push ecx
push eax
push ebx
call dword [ebx + 0x168]
add esp, 0xc
mov dword [ebx + 0xc], esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret