Function at 0x4c0600
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb4
push ebx
mov ebx, dword [ebp + 8]
mov eax, 0x92492493
push esi
push edi
mov edi, edx
mov dword [ebp - 0xc], ecx
mov esi, ebx
sub esi, edi
sub esi, 0x3880
imul esi
lea eax, [ebp - 0xb0]
add edx, esi
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
xor edx, edx
push eax
call fcn.004bd170
mov ecx, dword [ebp - 0xc]
add esp, 4
add edi, 0x4240
movups xmm0, xmmword [eax]
movups xmm2, xmmword [eax + 0x10]
movups xmm3, xmmword [eax + 0x20]
movups xmm4, xmmword [eax + 0x30]
mov eax, dword [eax + 0x40]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 0x18]
or eax, dword [ecx + 0x1c]
movups xmmword [ebp - 0x68], xmm0
movups xmmword [ebp - 0x58], xmm2
movups xmmword [ebp - 0x48], xmm3
movups xmmword [ebp - 0x38], xmm4
je 0x4c0853
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov esi, dword [edi + 8]
shl edx, 0xb
xor edx, dword [edi]
mov dword [edi], eax
mov eax, dword [edi + 0xc]
mov ecx, eax
shr ecx, 0xb
xor ecx, edx
mov dword [edi + 4], esi
shr ecx, 8
xor ecx, eax
mov dword [edi + 8], eax
xor ecx, edx
mov dword [edi + 0xc], ecx
test cl, 1
je 0x4c0853
mov ebx, dword [ebp - 0x68]
mov ecx, dword [edi]
and ebx, 0xfffc0007
mov eax, dword [edi + 8]
mov dword [edi + 4], eax
mov dword [ebp - 0x18], eax
mov eax, dword [edi + 0xc]
shl ecx, 0xb
xor ecx, dword [edi]
mov dword [edi], esi
mov esi, eax
shr esi, 0xb
xor esi, ecx
mov dword [edi + 8], eax
shr esi, 8
xor esi, eax
mov eax, 0xbacf914d
xor esi, ecx
mov ecx, dword [ebp - 0xc]
mul esi
mov eax, esi
mov dword [edi + 0xc], esi
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ecx + 0x18]
shr eax, 5
imul eax, eax, 0x25
mov dword [ebp - 0x1c], edx
sub esi, eax
shl esi, 3
and esi, 0x3fff8
or ebx, esi
xor esi, esi
mov eax, ebx
mov dword [ebp - 0x14], ebx
shr eax, 3
and eax, 0x7fff
mov dword [ebp - 0x68], ebx
bts esi, eax
xor ebx, ebx
cmp eax, 0x20
cmovae ebx, esi
xor esi, ebx
cmp eax, 0x40
mov eax, esi
cmovae ebx, esi
and eax, edx
mov edx, ebx
and edx, dword [ecx + 0x1c]
test eax, eax
jne 0x4c0744
test edx, edx
je 0x4c0750
lea edx, [ebp - 0x68]
call fcn.004bd220
test al, al
jne 0x4c075b
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
jmp 0x4c06b4
not esi
and esi, dword [ebp - 0x1c]
mov eax, esi
and eax, 8
jne 0x4c0798
mov eax, esi
and eax, 4
jne 0x4c0791
mov eax, esi
and eax, 2
jne 0x4c078a
mov eax, esi
and eax, 1
jne 0x4c0783
mov ecx, 0x1f4
jmp 0x4c079d
mov ecx, 0x258
jmp 0x4c079d
mov ecx, 0x2bc
jmp 0x4c079d
mov ecx, 0x320
jmp 0x4c079d
mov ecx, 0x384
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x60]
cmp eax, ecx
cmovae eax, ecx
mov dword [edx + 0x60], eax
mov eax, esi
and eax, 0x800
jne 0x4c083b
mov eax, esi
and eax, 0x400
jne 0x4c0823
mov eax, esi
and eax, 0x200
jne 0x4c0808
and esi, 0x100
jne 0x4c07ed
movss xmm0, dword [edx + 0x54]
movss xmm1, dword [0x50d568]
minss xmm0, xmm1
movss dword [edx + 0x54], xmm0
jmp 0x4c08b4
movss xmm0, dword [edx + 0x54]
movss xmm1, dword [0x50d59c]
minss xmm0, xmm1
movss dword [edx + 0x54], xmm0
jmp 0x4c08b4
movss xmm0, dword [edx + 0x54]
movss xmm1, dword [0x50d5bc]
minss xmm0, xmm1
movss dword [edx + 0x54], xmm0
jmp 0x4c08b4
movss xmm0, dword [edx + 0x54]
movss xmm1, dword [0x50d5d4]
minss xmm0, xmm1
movss dword [edx + 0x54], xmm0
jmp 0x4c08b4
movss xmm0, dword [edx + 0x54]
movss xmm1, dword [0x50d5ec]
minss xmm0, xmm1
movss dword [edx + 0x54], xmm0
jmp 0x4c08b4
mov ecx, dword [edi]
mov eax, dword [edi + 4]
shl ecx, 0xb
xor ecx, dword [edi]
mov dword [edi], eax
mov eax, dword [edi + 8]
mov dword [edi + 4], eax
mov eax, dword [edi + 0xc]
mov esi, eax
shr esi, 0xb
xor esi, ecx
mov dword [edi + 8], eax
shr esi, 8
xor esi, eax
mov eax, 0xaaaaaaab
xor esi, ecx
mul esi
mov dword [edi + 0xc], esi
shr edx, 2
lea eax, [edx + edx*2]
mov edx, 1
add eax, eax
sub esi, eax
mov ecx, esi
mov esi, dword [ebx + 0x3c]
shl edx, cl
test edx, esi
jne 0x4c0853
mov eax, dword [ebp - 0x68]
mov ecx, edx
shl ecx, 0x12
and eax, 0x3ffff
or ecx, eax
or esi, edx
mov dword [ebp - 0x68], ecx
mov dword [ebx + 0x3c], esi
mov esi, dword [ebp + 0xc]
mov edx, dword [esi + 0x1210]
cmp edx, 0x40
jae 0x4c08f9
mov eax, edx
shl eax, 4
add eax, edx
lea ecx, [esi + eax*4]
lea eax, [edx + 1]
mov dword [esi + 0x1210], eax
mov dword [ecx + 0x40], 0x22
test ecx, ecx
je 0x4c08f9
movups xmm0, xmmword [ebp - 0x68]
mov eax, dword [ebp - 0x10]
movups xmmword [ecx], xmm0
movups xmmword [ecx + 0x10], xmm2
movups xmmword [ecx + 0x20], xmm3
movups xmmword [ecx + 0x30], xmm4
mov dword [ecx + 0x40], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret