Function at 0x44b920
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x144
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x138], edx
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x140], edi
cmp edi, 0xa
je 0x44b959
cmp edi, 0x10
jne 0x44bd7f
cmp edi, 0x10
mov eax, 0x5a1ae8
mov ecx, 0x5a1af8
cmovne eax, ecx
mov dword [ebp - 0x134], eax
test edi, edi
jle 0x44b9c0
xor ebx, ebx
movsx esi, word [edx + ebx*2]
mov ecx, esi
sar ecx, 8
lea eax, [ecx + ecx]
shl ecx, 8
movsx edx, word [eax + 0x5b4840]
sub esi, ecx
movsx eax, word [eax + 0x5b4842]
sub eax, edx
shl edx, 8
imul esi, eax
mov eax, dword [ebp - 0x134]
movzx eax, byte [ebx + eax]
add esi, edx
mov edx, dword [ebp - 0x138]
inc ebx
sar esi, 3
inc esi
sar esi, 1
mov dword [ebp + eax*4 - 0x130], esi
cmp ebx, edi
jl 0x44b975
mov esi, edi
lea edx, [ebp - 0x130]
sar esi, 1
lea ecx, [ebp - 0x9c]
push esi
mov dword [ebp - 0x134], esi
call fcn.0044b870
add esp, 4
lea edx, [ebp - 0x12c]
lea ecx, [ebp - 0xd0]
push esi
call fcn.0044b870
xor esi, esi
add esp, 4
cmp dword [ebp - 0x134], esi
jle 0x44ba48
lea ebx, [ebp + edi*4 - 0x6c]
mov edi, dword [ebp - 0x134]
nop dword [eax + eax]
mov edx, dword [ebp + esi*4 - 0x98]
lea ebx, [ebx - 4]
add edx, dword [ebp + esi*4 - 0x9c]
mov ecx, dword [ebp + esi*4 - 0xcc]
sub ecx, dword [ebp + esi*4 - 0xd0]
lea eax, [ecx + edx]
sub ecx, edx
neg eax
mov dword [ebp + esi*4 - 0x68], eax
inc esi
mov dword [ebx + 4], ecx
cmp esi, edi
jl 0x44ba10
mov edi, dword [ebp - 0x140]
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], ecx
xor esi, esi
xor ebx, ebx
test edi, edi
jle 0x44ba92
mov eax, dword [ebp + ebx*4 - 0x68]
cdq
xor eax, edx
sub eax, edx
cmp eax, esi
mov edx, eax
mov eax, ebx
cmovle eax, dword [ebp - 0x138]
cmovle edx, esi
inc ebx
mov dword [ebp - 0x138], eax
mov esi, edx
cmp ebx, edi
jl 0x44ba60
mov ecx, dword [ebp - 0x134]
mov dword [ebp - 0x138], eax
sar esi, 4
inc esi
sar esi, 1
cmp esi, 0x7fff
jle 0x44baef
lea ecx, [eax + 1]
mov edx, 0x27ffe
cmp esi, edx
mov eax, 0x7fff
cmovl edx, esi
imul ecx, edx
sub eax, edx
shl eax, 0xe
cdq
sar ecx, 2
idiv ecx
mov edx, edi
lea ecx, [ebp - 0x68]
add eax, 0xffbe
push eax
call fcn.0044dcc0
mov ecx, dword [ebp - 0x134]
add esp, 4
mov eax, dword [ebp - 0x138]
inc ecx
mov dword [ebp - 0x134], ecx
cmp ecx, 0xa
jl 0x44ba58
mov ebx, dword [ebp - 0x13c]
cmp ecx, 0xa
jne 0x44bb49
xor ecx, ecx
test edi, edi
jle 0x44bbf3
mov edx, 0xffff8000
nop dword [eax]
mov eax, dword [ebp + ecx*4 - 0x68]
sar eax, 4
inc eax
sar eax, 1
cmp eax, 0x7fff
jle 0x44bb28
mov eax, 0x7fff
jmp 0x44bb30
cmp eax, 0xffff8000
cmovl eax, edx
movzx eax, ax
mov word [ebx + ecx*2], ax
cwde
shl eax, 5
mov dword [ebp + ecx*4 - 0x68], eax
inc ecx
cmp ecx, edi
jl 0x44bb10
jmp 0x44bbf3
xor ecx, ecx
test edi, edi
jle 0x44bbf3
cmp edi, 8
jb 0x44bbe0
lea eax, [ebp + edi*4 - 0x6c]
lea edx, [ebx - 2]
lea edx, [edx + edi*2]
cmp ebx, eax
ja 0x44bb71
lea eax, [ebp - 0x68]
cmp edx, eax
jae 0x44bbe0
movaps xmm1, xmmword [0x5bab10]
lea esi, [ebp - 0x68]
mov eax, edi
and eax, 0xfffffff8
movups xmm0, xmmword [esi + ecx*4]
psrad xmm0, 4
paddd xmm0, xmm1
psrad xmm0, 1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [ebx + ecx*2], xmm0
movups xmm0, xmmword [ebp + ecx*4 - 0x58]
psrad xmm0, 4
paddd xmm0, xmm1
psrad xmm0, 1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [ebx + ecx*2 + 8], xmm0
add ecx, 8
mov edx, ecx
cmp ecx, eax
jl 0x44bb80
cmp edx, edi
jge 0x44bbf3
nop dword [eax + eax]
mov eax, dword [ebp + ecx*4 - 0x68]
sar eax, 4
inc eax
sar eax, 1
mov word [ebx + ecx*2], ax
inc ecx
cmp ecx, edi
jl 0x44bbe0
xor esi, esi
mov edx, edi
mov ecx, ebx
mov dword [ebp - 0x134], esi
call fcn.0044cd30
test eax, eax
jne 0x44bd6e
nop dword [eax]
cmp esi, 0x10
jge 0x44bd6e
mov ecx, esi
mov edx, 2
shl edx, cl
mov eax, 0x10000
sub eax, edx
lea ecx, [ebp - 0x68]
push eax
mov edx, edi
call fcn.0044dcc0
add esp, 4
xor eax, eax
test edi, edi
jle 0x44bd56
cmp edi, 0x10
jb 0x44bd43
lea ecx, [ebp + edi*4 - 0x6c]
lea edx, [edi - 1]
lea edx, [ebx + edx*2]
cmp ebx, ecx
ja 0x44bc63
lea ecx, [ebp - 0x68]
cmp edx, ecx
jae 0x44bd43
movaps xmm1, xmmword [0x5bab10]
lea ecx, [ebx + 0x10]
mov ebx, dword [ebp - 0x13c]
lea esi, [ebp - 0x48]
mov edx, edi
lea edi, [ebp - 0x68]
and edx, 0xfffffff0
nop
movups xmm0, xmmword [edi + eax*4]
lea edi, [ebp - 0x38]
lea ecx, [ecx + 0x20]
psrad xmm0, 4
paddd xmm0, xmm1
psrad xmm0, 1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [ecx - 0x30], xmm0
movups xmm0, xmmword [ebp + eax*4 - 0x58]
psrad xmm0, 4
paddd xmm0, xmm1
psrad xmm0, 1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [ecx - 0x28], xmm0
movups xmm0, xmmword [esi + eax*4]
psrad xmm0, 4
paddd xmm0, xmm1
psrad xmm0, 1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [ecx - 0x20], xmm0
movups xmm0, xmmword [edi + eax*4]
add eax, 0x10
lea edi, [ebp - 0x68]
psrad xmm0, 4
paddd xmm0, xmm1
psrad xmm0, 1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [ecx - 0x18], xmm0
cmp eax, edx
jl 0x44bc80
mov edi, dword [ebp - 0x140]
mov esi, dword [ebp - 0x134]
mov dword [ebp - 0x138], eax
cmp eax, edi
jge 0x44bd56
mov ecx, dword [ebp + eax*4 - 0x68]
sar ecx, 4
inc ecx
sar ecx, 1
mov word [ebx + eax*2], cx
inc eax
cmp eax, edi
jl 0x44bd43
inc esi
mov edx, edi
mov ecx, ebx
mov dword [ebp - 0x134], esi
call fcn.0044cd30
test eax, eax
je 0x44bc10
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00457d6e
mov esp, ebp
pop ebp
ret
push 0x59
mov edx, str.C:projectlibopus_silkNLSF2A.c
mov ecx, str.assertion_failed:_d10__d16
call fcn.004127a0
int3