Function at 0x45bc00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
push ebx
push esi
push edi
mov edi, ecx
xorps xmm0, xmm0
mov dword [ebp - 0xc], edi
mov esi, edx
movlpd qword [ebp - 0x24], xmm0
movlpd qword [ebp - 0x1c], xmm0
test edi, edi
je 0x45bf03
movups xmm0, xmmword [edi]
lea edx, [ebp - 0x44]
push ecx
mov ecx, edx
movups xmmword [ebp - 0x44], xmm0
call fcn.00459070
mov eax, dword [ebp + 8]
add esp, 4
test eax, eax
je 0x45bd62
test esi, esi
je 0x45bd62
mov ebx, eax
and eax, 0xf
shr ebx, 4
mov dword [ebp - 0x10], eax
test ebx, ebx
je 0x45bd0a
mov edi, esi
movups xmm0, xmmword [edi]
movups xmm1, xmmword [ebp - 0x24]
movups xmmword [ebp - 0x34], xmm0
movd esi, xmm0
psrldq xmm0, 4
movd edx, xmm0
mov eax, esi
rol esi, 8
ror eax, 8
mov ecx, edx
xor esi, eax
rol edx, 8
and esi, 0xff00ff
xor esi, eax
ror ecx, 8
xor edx, ecx
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x2c]
and edx, 0xff00ff
xor edx, ecx
xor eax, eax
or eax, edx
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
mov ecx, edx
mov eax, esi
rol edx, 8
ror eax, 8
ror ecx, 8
rol esi, 8
xor edx, ecx
xor esi, eax
and edx, 0xff00ff
and esi, 0xff00ff
xor edx, ecx
xor esi, eax
lea ecx, [ebp - 0x24]
xor eax, eax
mov dword [ebp - 0x28], esi
or eax, edx
lea edx, [ebp - 0x44]
mov dword [ebp - 0x2c], eax
movups xmm0, xmmword [ebp - 0x34]
xorps xmm1, xmm0
movups xmmword [ebp - 0x24], xmm1
call fcn.0045bae0
add edi, 0x10
sub ebx, 1
jne 0x45bc62
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], edi
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
test eax, eax
je 0x45bd4a
push eax
lea eax, [ebp - 0x34]
xorps xmm0, xmm0
push esi
push eax
movups xmmword [ebp - 0x34], xmm0
call fcn.0046ae20
add esp, 8
lea edx, [ebp - 0x34]
mov ecx, edx
call fcn.00459070
movups xmm1, xmmword [ebp - 0x24]
add esp, 4
lea edx, [ebp - 0x44]
movups xmm0, xmmword [ebp - 0x34]
lea ecx, [ebp - 0x24]
xorps xmm1, xmm0
movups xmmword [ebp - 0x24], xmm1
call fcn.0045bae0
mov eax, dword [ebp - 0x20]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x24]
mov dword [edi + 0x14], eax
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x18], eax
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x1c], eax
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x45be9c
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x45be9c
mov ebx, esi
mov eax, esi
and eax, 0xf
shr ebx, 4
cmp dword [edi + 0x20], 0
mov dword [ebp - 0x10], eax
je 0x45bda7
mov ecx, dword [edi + 0x10]
xor eax, eax
or eax, dword [edi + 0x14]
mov dword [ebp - 0x24], eax
xor eax, eax
or eax, dword [edi + 0x1c]
mov dword [ebp - 0x20], ecx
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
test ebx, ebx
je 0x45be59
mov edi, edx
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0x34], xmm0
movd esi, xmm0
psrldq xmm0, 4
movd edx, xmm0
mov eax, esi
rol esi, 8
ror eax, 8
mov ecx, edx
xor esi, eax
rol edx, 8
and esi, 0xff00ff
movups xmm0, xmmword [ebp - 0x24]
xor esi, eax
ror ecx, 8
xor edx, ecx
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x2c]
and edx, 0xff00ff
xor edx, ecx
xor eax, eax
or eax, edx
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
mov ecx, edx
mov eax, esi
rol edx, 8
ror eax, 8
ror ecx, 8
rol esi, 8
xor edx, ecx
xor esi, eax
and edx, 0xff00ff
and esi, 0xff00ff
xor edx, ecx
xor esi, eax
lea ecx, [ebp - 0x24]
xor eax, eax
mov dword [ebp - 0x28], esi
or eax, edx
lea edx, [ebp - 0x44]
mov dword [ebp - 0x2c], eax
movups xmm1, xmmword [ebp - 0x34]
xorps xmm1, xmm0
movups xmmword [ebp - 0x24], xmm1
call fcn.0045bae0
add edi, 0x10
sub ebx, 1
jne 0x45bdb1
mov esi, dword [ebp + 0x10]
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0xc]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x45be9c
push eax
push edx
lea eax, [ebp - 0x34]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x34], xmm0
call fcn.0046ae20
add esp, 8
lea edx, [ebp - 0x34]
mov ecx, edx
call fcn.00459070
movups xmm0, xmmword [ebp - 0x24]
add esp, 4
lea edx, [ebp - 0x44]
movups xmm1, xmmword [ebp - 0x34]
lea ecx, [ebp - 0x24]
xorps xmm1, xmm0
movups xmmword [ebp - 0x24], xmm1
call fcn.0045bae0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x34], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], 0
test eax, eax
je 0x45bec4
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], 0
movups xmm1, xmmword [ebp - 0x34]
lea edx, [ebp - 0x44]
movups xmm0, xmmword [ebp - 0x24]
lea ecx, [ebp - 0x24]
psllq xmm1, 3
xorps xmm1, xmm0
movups xmmword [ebp - 0x24], xmm1
call fcn.0045bae0
lea edx, [ebp - 0x24]
push ecx
mov ecx, edx
call fcn.00459070
add esp, 4
lea eax, [ebp - 0x24]
push dword [ebp + 0x18]
push eax
push dword [ebp + 0x14]
call fcn.0046ae20
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret