Function at 0x44d5f0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x100
push esi
mov esi, dword [esp + 0x108]
xorps xmm0, xmm0
push edi
mov edi, dword [esp + 0x110]
mov ecx, esi
movups xmmword [esp + 0x4c], xmm0
mov dword [esp + 0x84], 0
mov edx, edi
movups xmmword [esp + 0x5c], xmm0
mov dword [esp + 0x88], 0
movups xmmword [esp + 0x6c], xmm0
movq qword [esp + 0x7c], xmm0
nop dword [eax + eax]
mov eax, dword [ecx]
lea ecx, [ecx + 4]
inc dword [esp + eax*4 + 0x4c]
sub edx, 1
jne 0x44d640
cmp dword [esp + 0x4c], edi
jne 0x44d671
mov eax, dword [esp + 0x120]
pop edi
pop esi
mov dword [eax], edx
mov eax, dword [esp + 0x11c]
mov dword [eax], edx
xor eax, eax
add esp, 0x100
ret
mov eax, dword [esp + 0x124]
mov ecx, 1
push ebx
mov ebx, dword [eax]
cmp dword [esp + ecx*4 + 0x50], 0
jne 0x44d68d
inc ecx
cmp ecx, 0xf
jbe 0x44d680
cmp ebx, ecx
mov dword [esp + 0x10], ecx
mov edx, 0xf
cmovb ebx, ecx
nop dword [eax + eax]
cmp dword [esp + edx*4 + 0x50], 0
jne 0x44d6ac
sub edx, 1
jne 0x44d6a0
cmp ebx, edx
mov dword [esp + 0x2c], edx
push ebp
cmova ebx, edx
mov ebp, 1
shl ebp, cl
mov dword [esp + 0x20], ebx
mov dword [eax], ebx
cmp ecx, edx
jae 0x44d6e1
nop word [eax + eax]
sub ebp, dword [esp + ecx*4 + 0x54]
js 0x44da6c
inc ecx
add ebp, ebp
cmp ecx, edx
jb 0x44d6d0
lea ebx, [edx*4]
mov eax, dword [esp + ebx + 0x54]
sub ebp, eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x50], ebp
js 0x44da6c
add eax, ebp
xor ecx, ecx
mov dword [esp + ebx + 0x54], eax
mov dword [esp + 0x98], ecx
sub edx, 1
je 0x44d725
xor eax, eax
add ecx, dword [esp + eax + 0x58]
lea eax, [eax + 4]
mov dword [esp + eax + 0x98], ecx
sub edx, 1
jne 0x44d712
mov ebx, dword [esp + 0x138]
xor ecx, ecx
nop
mov edx, dword [esi]
lea esi, [esi + 4]
test edx, edx
je 0x44d74b
mov eax, dword [esp + edx*4 + 0x94]
mov dword [ebx + eax*4], ecx
inc eax
mov dword [esp + edx*4 + 0x94], eax
inc ecx
cmp ecx, edi
jb 0x44d730
mov ebx, dword [esp + 0x34]
xor edi, edi
mov edx, dword [esp + 0x20]
or ecx, 0xffffffff
xor ebp, ebp
mov dword [esp + 0x24], edi
xor esi, esi
mov dword [esp + 0x10], ecx
mov eax, dword [esp + ebx + 0x94]
mov ebx, edx
mov dword [esp + 0x4c], eax
neg ebx
mov eax, dword [esp + 0x138]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x94], edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0xd4], edi
mov dword [esp + 0x34], ebp
cmp eax, dword [esp + 0x30]
jg 0x44da4e
lea eax, [esp + eax*4 + 0x54]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
nop dword [eax + eax]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx]
test ecx, ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x10]
je 0x44da3a
mov eax, dword [esp + 0x28]
nop word [eax + eax]
mov dword [esp + 0x48], eax
dec eax
mov dword [esp + 0x28], eax
lea eax, [ebx + edx]
cmp dword [esp + 0x14], eax
jle 0x44d90c
sub ebx, edx
mov ebp, ebx
jmp 0x44d804
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
mov ebx, eax
add ebp, edx
mov dword [esp + 0x40], ebx
inc ecx
mov dword [esp + 0x44], ebp
sub edi, ebx
mov dword [esp + 0x10], ecx
cmp edi, edx
mov eax, 1
cmova edi, edx
mov edx, dword [esp + 0x14]
sub edx, ebx
mov ecx, edx
shl eax, cl
cmp eax, dword [esp + 0x48]
jbe 0x44d863
mov esi, dword [esp + 0x2c]
or ecx, 0xffffffff
sub ecx, dword [esp + 0x28]
add eax, ecx
cmp edx, edi
jae 0x44d863
inc edx
cmp edx, edi
jae 0x44d863
nop dword [eax + eax]
mov ecx, dword [esi + 4]
lea esi, [esi + 4]
add eax, eax
cmp eax, ecx
jbe 0x44d863
inc edx
sub eax, ecx
cmp edx, edi
jb 0x44d850
mov edi, dword [esp + 0x134]
mov ecx, edx
mov esi, 1
shl esi, cl
mov eax, dword [edi]
lea ecx, [eax + esi]
cmp ecx, 0x5a0
ja 0x44da6c
mov ebp, dword [esp + 0x130]
mov dword [edi], ecx
mov edi, dword [esp + 0x24]
lea ebp, [ebp + eax*8]
mov eax, dword [esp + 0x10]
mov ecx, eax
mov dword [esp + 0x34], ebp
mov dword [esp + eax*4 + 0xd4], ebp
test ecx, ecx
je 0x44d8f2
mov eax, dword [esp + 0x20]
mov byte [esp + 0x39], al
mov eax, dword [esp + 0x10]
mov byte [esp + 0x38], dl
mov edx, edi
mov dword [esp + ecx*4 + 0x94], edi
mov ecx, dword [esp + 0x44]
shr edx, cl
mov ecx, dword [esp + eax*4 + 0xd0]
mov eax, ebp
sub eax, ecx
sar eax, 3
sub eax, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov dword [ecx + edx*8], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + edx*8 + 4], eax
mov ecx, dword [esp + 0x10]
jmp 0x44d8fb
mov eax, dword [esp + 0x128]
mov dword [eax], ebp
mov edx, dword [esp + 0x20]
lea eax, [ebx + edx]
cmp dword [esp + 0x14], eax
jg 0x44d800
mov edx, dword [esp + 0x14]
mov al, dl
mov ecx, dword [esp + 0x4c]
sub al, bl
mov byte [esp + 0x39], al
mov eax, dword [esp + 0x138]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jb 0x44d935
mov byte [esp + 0x38], 0xc0
jmp 0x44d97d
mov ecx, dword [ecx]
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x1c], ecx
cmp ecx, eax
jae 0x44d958
cmp ecx, 0x100
sbb al, al
and al, 0xa0
add al, 0x60
mov byte [esp + 0x38], al
jmp 0x44d978
sub ecx, eax
mov eax, dword [esp + 0x124]
mov al, byte [eax + ecx*4]
add al, 0x50
mov byte [esp + 0x38], al
mov eax, dword [esp + 0x120]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x1c], ecx
add dword [esp + 0x18], 4
mov ecx, edx
mov eax, edi
sub ecx, ebx
mov edx, 1
shl edx, cl
mov ecx, ebx
shr eax, cl
cmp eax, esi
jae 0x44d9c5
mov ebx, dword [esp + 0x1c]
lea ecx, [eax*8]
add ecx, ebp
lea edi, [edx*8]
mov ebp, dword [esp + 0x38]
nop word [eax + eax]
mov dword [ecx], ebp
add eax, edx
mov dword [ecx + 4], ebx
add ecx, edi
cmp eax, esi
jb 0x44d9b0
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov eax, 1
lea ecx, [ecx - 1]
shl eax, cl
test edi, eax
je 0x44d9df
xor edi, eax
shr eax, 1
test edi, eax
jne 0x44d9d7
mov edx, dword [esp + 0x20]
xor edi, eax
mov ecx, ebx
mov dword [esp + 0x24], edi
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x10]
dec eax
and eax, edi
cmp eax, dword [esp + ecx*4 + 0x94]
je 0x44da26
dec ecx
sub ebx, edx
mov dword [esp + 0x10], ecx
mov eax, 1
mov ecx, ebx
shl eax, cl
mov ecx, dword [esp + 0x10]
dec eax
and eax, edi
cmp eax, dword [esp + ecx*4 + 0x94]
jne 0x44da02
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x34]
test eax, eax
jne 0x44d7e0
mov eax, dword [esp + 0x14]
add dword [esp + 0x2c], 4
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x30]
jle 0x44d7c0
cmp dword [esp + 0x50], 0
je 0x44da7c
cmp dword [esp + 0x30], 1
je 0x44da7c
pop ebp
pop ebx
pop edi
mov eax, 0xfffffffb
pop esi
add esp, 0x100
ret
pop ebp
pop ebx
pop edi
mov eax, 0xfffffffd
pop esi
add esp, 0x100
ret
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x100
ret