Function at 0x43b000
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x18]
xor edx, edx
push ebp
push esi
mov esi, dword [esp + 0x28]
mov ebp, esi
push edi
mov edi, dword [esp + 0x28]
mov ecx, edi
shr ebp, 2
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ecx
test ebp, ebp
je 0x43b128
cmp ebp, 2
jb 0x43b103
lea eax, [edi - 4]
lea eax, [eax + ebp*4]
cmp ebx, eax
ja 0x43b04d
lea eax, [ebx - 4]
lea eax, [eax + ebp*4]
cmp eax, edi
jae 0x43b103
cmp ebp, 0x10
jb 0x43b0cd
mov ecx, ebp
lea esi, [edi + 0x30]
and ecx, 0xf
mov eax, ebp
sub eax, ecx
mov dword [esp + 0x1c], ecx
mov ecx, edi
mov dword [esp + 0x18], eax
lea eax, [ebx + 0x10]
sub ecx, ebx
nop dword [eax]
movups xmm0, xmmword [eax - 0x10]
add edx, 0x10
lea eax, [eax + 0x40]
lea esi, [esi + 0x40]
movups xmm1, xmmword [esi - 0x70]
pxor xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [ecx + eax - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [esi - 0x50]
pxor xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm0, xmmword [eax - 0x20]
movups xmm1, xmmword [esi - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp edx, dword [esp + 0x18]
jb 0x43b070
cmp dword [esp + 0x1c], 2
mov esi, dword [esp + 0x2c]
jb 0x43b0ff
jmp 0x43b0cf
sub ecx, ebx
mov eax, ebp
and eax, 0xfffffffe
mov dword [esp + 0x1c], eax
lea eax, [ebx + edx*4]
nop dword [eax + eax]
movq xmm0, qword [eax]
lea eax, [eax + 8]
movq xmm1, qword [ecx + eax - 8]
add edx, 2
pxor xmm1, xmm0
movq qword [eax - 8], xmm1
cmp edx, dword [esp + 0x1c]
jb 0x43b0e0
cmp edx, ebp
jae 0x43b126
mov esi, edi
lea ecx, [ebx + edx*4]
mov edi, ebp
sub esi, ebx
sub edi, edx
mov edx, ebp
mov eax, dword [esi + ecx]
lea ecx, [ecx + 4]
xor dword [ecx - 4], eax
sub edi, 1
jne 0x43b110
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ecx, edi
shl edx, 2
sub esi, edx
je 0x43b227
add ebx, edx
add edi, edx
xor edx, edx
test esi, esi
je 0x43b227
cmp esi, 8
jb 0x43b204
lea eax, [edi - 1]
lea ebp, [ebx - 1]
add eax, esi
add ebp, esi
cmp ebx, eax
ja 0x43b160
cmp ebp, edi
jae 0x43b204
cmp esi, 0x40
jb 0x43b1d7
mov eax, esi
mov ebp, esi
and eax, 0x3f
add edi, 0x30
sub ebp, eax
mov dword [esp + 0x1c], eax
sub ecx, dword [esp + 0x14]
lea eax, [ebx + 0x10]
nop dword [eax]
movups xmm0, xmmword [eax - 0x10]
add edx, 0x40
lea edi, [edi + 0x40]
lea eax, [eax + 0x40]
movups xmm1, xmmword [edi - 0x70]
pxor xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [ecx + eax - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [edi - 0x50]
pxor xmm1, xmm0
movups xmm0, xmmword [edi - 0x40]
movups xmmword [eax - 0x30], xmm1
movups xmm1, xmmword [eax - 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp edx, ebp
jb 0x43b180
cmp dword [esp + 0x1c], 8
jb 0x43b200
jmp 0x43b1db
sub ecx, dword [esp + 0x14]
mov edi, esi
lea eax, [edx + ebx]
and edi, 0xfffffff8
movq xmm0, qword [eax]
lea eax, [eax + 8]
movq xmm1, qword [ecx + eax - 8]
add edx, 8
pxor xmm1, xmm0
movq qword [eax - 8], xmm1
cmp edx, edi
jb 0x43b1e3
cmp edx, esi
jae 0x43b227
mov eax, dword [esp + 0x10]
lea ecx, [edx + ebx]
sub eax, dword [esp + 0x14]
sub esi, edx
mov dword [esp + 0x10], eax
mov al, byte [eax + ecx]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
mov eax, dword [esp + 0x10]
sub esi, 1
jne 0x43b215
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret