Function at 0x444bc0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x4abd08]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 4]
push edi
mov edi, ecx
mov ebx, edi
and ebx, 0xf
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x28], ebx
jne 0x444ed6
cmp edi, 0x20
jb 0x444ed6
xor eax, eax
lea edx, [edi - 0x20]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
cmp edx, ecx
jbe 0x444c18
xor edx, edx
lea ebx, [edi - 0x10]
mov dword [ebp - 0x30], ebx
cmp ebx, ecx
jbe 0x444c27
xor ebx, ebx
mov dword [ebp - 0x30], ebx
mov eax, dword [esi]
mov ebx, dword [eax + ebx]
xor ebx, dword [eax + edx]
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 0x30]
mov ebx, dword [eax + ebx + 4]
xor ebx, dword [eax + edx + 4]
lea edx, [edi - 0x18]
mov dword [ebp - 0x20], ebx
cmp edx, ecx
jbe 0x444c49
xor edx, edx
add edi, 0xfffffff8
cmp edi, ecx
jbe 0x444c52
xor edi, edi
mov ecx, dword [eax + edi]
xor ecx, dword [eax + edx]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [eax + edi + 4]
xor ecx, dword [eax + edx + 4]
or eax, 0xffffffff
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x22]
mov edx, 2
movzx edi, byte [ecx - 2]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4ab570]
movzx edi, byte [ecx - 1]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
movzx ebx, byte [ecx]
shr eax, 8
xor eax, dword [edi*4 + 0x4ab570]
add ecx, 6
mov edi, eax
and edi, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4ab570]
movzx edi, byte [ecx - 5]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4ab570]
movzx edi, byte [ecx - 4]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4ab570]
movzx edi, byte [ecx - 3]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4ab570]
dec edx
jne 0x444c71
not eax
cmp dword [ebp - 0x18], eax
jne 0x444ed0
mov ebx, dword [esi + 4]
mov ecx, dword [ebp - 0x1c]
xor edi, edi
mov eax, ebx
sub eax, dword [ebp - 0x24]
mov edx, edi
sbb edx, dword [ebp - 0x20]
mov dword [ebp - 0x50], eax
xor eax, eax
add ecx, dword [ebp - 0x50]
adc eax, edx
add ecx, 0x10
adc eax, edi
cmp eax, edi
ja 0x444ed0
jb 0x444d48
cmp ecx, ebx
ja 0x444ed0
mov ebx, dword [ebp - 0x1c]
lea eax, [ebx + 0x10]
push eax
lea ecx, [ebp - 0x44]
call fcn.00443a30
mov eax, ebx
and eax, 0xfffffff0
test bl, 0xf
je 0x444d64
add eax, 0x10
mov ecx, eax
shr ecx, 2
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x48], ecx
test ecx, ecx
je 0x444e86
mov ebx, dword [ebp - 0x50]
mov dword [ebp - 0x30], ecx
lea ecx, [eax + eax]
lea edi, [eax + eax*2]
mov eax, dword [ebp - 0x44]
shr ecx, 2
shr edi, 2
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x28], edi
mov ecx, dword [ebp - 0x50]
lea edx, [edi + ecx]
mov ecx, dword [esi + 4]
cmp edx, ecx
jbe 0x444da4
xor edx, edx
mov dword [ebp - 0x2c], ebx
cmp ebx, ecx
jbe 0x444daf
xor ebx, ebx
jmp 0x444db2
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], edi
cmp edi, dword [ebp - 0x40]
jbe 0x444dc1
mov dword [ebp - 0x2c], 0
mov ecx, dword [esi]
mov ebx, dword [ecx + ebx]
xor ebx, dword [ecx + edx]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x50]
mov dword [eax + edx], ebx
mov edx, dword [ebp - 0x34]
add ecx, edx
cmp ecx, dword [esi + 4]
jbe 0x444dde
xor ecx, ecx
cmp edi, dword [ebp - 0x40]
jbe 0x444de5
xor edi, edi
cmp edx, dword [ebp - 0x40]
jbe 0x444dec
xor edx, edx
mov ebx, dword [esi]
mov ecx, dword [ebx + ecx]
xor ecx, dword [edi + eax]
mov edi, dword [ebp - 0x30]
mov dword [edx + eax], ecx
mov edx, dword [ebp - 0x50]
lea ecx, [edi + edx]
cmp ecx, dword [esi + 4]
jbe 0x444e07
xor ecx, ecx
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x2c], edx
cmp edx, dword [ebp - 0x40]
jbe 0x444e19
mov dword [ebp - 0x2c], 0
mov edx, edi
cmp edi, dword [ebp - 0x40]
jbe 0x444e22
xor edx, edx
mov ebx, dword [esi]
mov ecx, dword [ebx + ecx]
mov ebx, dword [ebp - 0x2c]
xor ecx, dword [ebx + eax]
mov dword [edx + eax], ecx
mov edx, dword [ebp - 0x3c]
cmp edx, dword [esi + 4]
jbe 0x444e3a
xor edx, edx
mov ebx, dword [ebp - 0x40]
cmp edi, ebx
jbe 0x444e43
xor edi, edi
mov ecx, dword [ebp - 0x38]
cmp ecx, ebx
jbe 0x444e4c
xor ecx, ecx
mov ebx, dword [esi]
mov edx, dword [ebx + edx]
xor edx, dword [edi + eax]
mov edi, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x3c]
add dword [ebp - 0x34], 4
add dword [ebp - 0x30], 4
mov dword [ecx + eax], edx
mov ecx, dword [ebp - 0x38]
add ecx, 4
add edi, 4
add ebx, 4
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x3c], ebx
cmp ecx, dword [ebp - 0x48]
jb 0x444d95
mov ebx, dword [ebp - 0x1c]
push ebx
lea ecx, [ebp - 0x44]
call fcn.004439c0
mov edi, dword [ebp - 0x44]
cmp dword [esi], edi
je 0x444eae
mov ebx, dword [ebp - 0x40]
push ebx
mov ecx, esi
call fcn.004439c0
mov eax, dword [esi]
push ebx
push edi
push eax
call fcn.0046ba50
add esp, 0xc
test edi, edi
je 0x4451b5
push edi
call fcn.0046c650
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046c641
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x444f23
mov ecx, edi
shr ecx, 4
add ecx, 2
shl ecx, 4
push ecx
mov ecx, esi
call fcn.004439c0
mov ecx, dword [esi + 4]
mov eax, edi
shr eax, 1
cmp eax, ecx
jbe 0x444efa
xor eax, eax
mov dword [ebp - 0x28], edi
cmp edi, ecx
jbe 0x444f08
mov dword [ebp - 0x28], 0
mov ecx, dword [esi]
mov edx, 0x10
sub edx, ebx
push edx
add eax, ecx
add ecx, dword [ebp - 0x28]
push eax
push ecx
call fcn.0046ba50
add esp, 0xc
jmp 0x444f34
mov eax, edi
shr eax, 4
inc eax
shl eax, 4
push eax
mov ecx, esi
call fcn.004439c0
mov edx, dword [esi + 4]
sub edx, 0x10
mov ecx, edx
shr ecx, 2
xor eax, eax
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x48], ecx
test ecx, ecx
je 0x44504c
lea edi, [edx + edx*2]
shr edi, 2
mov dword [ebp - 0x3c], edi
lea edi, [edx + edx]
shr edi, 2
mov edx, ecx
mov dword [ebp - 0x38], ecx
mov ecx, dword [esi + 4]
mov dword [ebp - 0x28], eax
cmp eax, ecx
jbe 0x444f77
mov dword [ebp - 0x28], 0
mov ebx, edx
cmp edx, ecx
jbe 0x444f7f
xor ebx, ebx
mov dword [ebp - 0x2c], eax
cmp eax, ecx
jbe 0x444f8d
mov dword [ebp - 0x2c], 0
mov eax, dword [esi]
mov ecx, dword [eax + ebx]
mov ebx, dword [ebp - 0x28]
xor ecx, dword [eax + ebx]
mov ebx, dword [ebp - 0x2c]
mov dword [eax + ebx], ecx
mov eax, dword [esi + 4]
mov ecx, edx
cmp edx, eax
jbe 0x444fa9
xor ecx, ecx
mov ebx, edi
cmp edi, eax
jbe 0x444fb1
xor ebx, ebx
cmp edx, eax
jbe 0x444fb7
xor edx, edx
mov eax, dword [esi]
mov ebx, dword [eax + ebx]
xor ebx, dword [eax + ecx]
mov dword [eax + edx], ebx
mov eax, dword [esi + 4]
mov edx, edi
cmp edi, eax
jbe 0x444fcd
xor edx, edx
mov ecx, dword [ebp - 0x3c]
mov ebx, ecx
cmp ecx, eax
jbe 0x444fd8
xor ebx, ebx
mov dword [ebp - 0x28], edi
cmp edi, eax
jbe 0x444fe6
mov dword [ebp - 0x28], 0
mov eax, dword [esi]
mov ebx, dword [eax + ebx]
xor ebx, dword [eax + edx]
mov edx, dword [ebp - 0x28]
mov dword [eax + edx], ebx
mov eax, dword [esi + 4]
mov edx, ecx
cmp ecx, eax
jbe 0x444fff
xor edx, edx
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x28], ebx
cmp ebx, eax
jbe 0x445010
mov dword [ebp - 0x28], 0
cmp ecx, eax
jbe 0x445016
xor ecx, ecx
mov eax, dword [esi]
mov ebx, dword [ebp - 0x28]
mov ebx, dword [eax + ebx]
xor ebx, dword [eax + edx]
mov edx, dword [ebp - 0x38]
add dword [ebp - 0x3c], 4
mov dword [eax + ecx], ebx
mov eax, dword [ebp - 0x30]
add eax, 4
add edx, 4
add edi, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], edx
cmp eax, dword [ebp - 0x48]
jb 0x444f66
mov edi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
mov ebx, dword [esi + 4]
mov ecx, edx
cmp edx, ebx
jbe 0x445057
xor ecx, ecx
mov eax, dword [esi]
mov dword [ecx + eax], ebx
mov dword [ecx + eax + 4], 0
lea eax, [edx + 8]
cmp eax, dword [esi + 4]
jbe 0x44506e
xor eax, eax
mov ecx, dword [esi]
mov dword [eax + ecx], edi
mov eax, edx
cmp edx, dword [esi + 4]
jbe 0x44507c
xor eax, eax
mov ecx, dword [esi]
add ecx, eax
jne 0x445089
xor eax, eax
jmp 0x445130
or eax, 0xffffffff
mov dword [ebp - 0x28], 2
movzx ebx, byte [ecx]
mov edi, eax
and edi, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4ab570]
movzx edi, byte [ecx + 1]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4ab570]
movzx edi, byte [ecx + 2]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4ab570]
movzx edi, byte [ecx + 3]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4ab570]
movzx edi, byte [ecx + 4]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4ab570]
movzx edi, byte [ecx + 5]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4ab570]
add ecx, 6
dec dword [ebp - 0x28]
jne 0x445093
not eax
lea ecx, [edx + 0xc]
cmp ecx, dword [esi + 4]
jbe 0x44513a
xor ecx, ecx
mov edi, dword [esi]
mov dword [edi + ecx], eax
mov eax, dword [esi + 4]
mov edi, edx
cmp edx, eax
jbe 0x44514a
xor edi, edi
lea ecx, [edx - 0x10]
cmp ecx, eax
jbe 0x445153
xor ecx, ecx
mov dword [ebp - 0x28], edx
cmp edx, eax
jbe 0x445161
mov dword [ebp - 0x28], 0
mov eax, dword [esi]
mov ebx, dword [eax + ecx]
mov ecx, dword [eax + ecx + 4]
xor ecx, dword [eax + edi + 4]
xor ebx, dword [eax + edi]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x28]
mov dword [eax + ecx], ebx
mov ebx, dword [ebp - 0x40]
mov dword [eax + ecx + 4], ebx
mov ecx, dword [esi + 4]
lea eax, [edx + 8]
mov edi, eax
cmp eax, ecx
jbe 0x44518f
xor edi, edi
add edx, 0xfffffff8
cmp edx, ecx
jbe 0x445198
xor edx, edx
cmp eax, ecx
jbe 0x44519e
xor eax, eax
mov esi, dword [esi]
mov ecx, dword [esi + edx]
mov edx, dword [esi + edx + 4]
xor ecx, dword [esi + edi]
xor edx, dword [esi + edi + 4]
mov dword [esi + eax], ecx
mov dword [esi + eax + 4], edx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046c641
mov esp, ebp
pop ebp
ret