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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x4a5c78]
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 0x442016
cmp edi, 0x20
jb 0x442016
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 0x441d58
xor edx, edx
lea ebx, [edi - 0x10]
mov dword [ebp - 0x30], ebx
cmp ebx, ecx
jbe 0x441d67
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 0x441d89
xor edx, edx
add edi, 0xfffffff8
cmp edi, ecx
jbe 0x441d92
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 + 0x4a54e0]
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 + 0x4a54e0]
add ecx, 6
mov edi, eax
and edi, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4a54e0]
movzx edi, byte [ecx - 5]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4a54e0]
movzx edi, byte [ecx - 4]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4a54e0]
movzx edi, byte [ecx - 3]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4a54e0]
dec edx
jne 0x441db1
not eax
cmp dword [ebp - 0x18], eax
jne 0x442010
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 0x442010
jb 0x441e88
cmp ecx, ebx
ja 0x442010
mov ebx, dword [ebp - 0x1c]
lea eax, [ebx + 0x10]
push eax
lea ecx, [ebp - 0x44]
call fcn.00440b70
mov eax, ebx
and eax, 0xfffffff0
test bl, 0xf
je 0x441ea4
add eax, 0x10
mov ecx, eax
shr ecx, 2
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x48], ecx
test ecx, ecx
je 0x441fc6
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 0x441ee4
xor edx, edx
mov dword [ebp - 0x2c], ebx
cmp ebx, ecx
jbe 0x441eef
xor ebx, ebx
jmp 0x441ef2
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], edi
cmp edi, dword [ebp - 0x40]
jbe 0x441f01
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 0x441f1e
xor ecx, ecx
cmp edi, dword [ebp - 0x40]
jbe 0x441f25
xor edi, edi
cmp edx, dword [ebp - 0x40]
jbe 0x441f2c
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 0x441f47
xor ecx, ecx
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x2c], edx
cmp edx, dword [ebp - 0x40]
jbe 0x441f59
mov dword [ebp - 0x2c], 0
mov edx, edi
cmp edi, dword [ebp - 0x40]
jbe 0x441f62
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 0x441f7a
xor edx, edx
mov ebx, dword [ebp - 0x40]
cmp edi, ebx
jbe 0x441f83
xor edi, edi
mov ecx, dword [ebp - 0x38]
cmp ecx, ebx
jbe 0x441f8c
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 0x441ed5
mov ebx, dword [ebp - 0x1c]
push ebx
lea ecx, [ebp - 0x44]
call fcn.00440b00
mov edi, dword [ebp - 0x44]
cmp dword [esi], edi
je 0x441fee
mov ebx, dword [ebp - 0x40]
push ebx
mov ecx, esi
call fcn.00440b00
mov eax, dword [esi]
push ebx
push edi
push eax
call fcn.00467c80
add esp, 0xc
test edi, edi
je 0x4422f5
push edi
call fcn.00468870
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00468861
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x442063
mov ecx, edi
shr ecx, 4
add ecx, 2
shl ecx, 4
push ecx
mov ecx, esi
call fcn.00440b00
mov ecx, dword [esi + 4]
mov eax, edi
shr eax, 1
cmp eax, ecx
jbe 0x44203a
xor eax, eax
mov dword [ebp - 0x28], edi
cmp edi, ecx
jbe 0x442048
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.00467c80
add esp, 0xc
jmp 0x442074
mov eax, edi
shr eax, 4
inc eax
shl eax, 4
push eax
mov ecx, esi
call fcn.00440b00
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 0x44218c
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 0x4420b7
mov dword [ebp - 0x28], 0
mov ebx, edx
cmp edx, ecx
jbe 0x4420bf
xor ebx, ebx
mov dword [ebp - 0x2c], eax
cmp eax, ecx
jbe 0x4420cd
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 0x4420e9
xor ecx, ecx
mov ebx, edi
cmp edi, eax
jbe 0x4420f1
xor ebx, ebx
cmp edx, eax
jbe 0x4420f7
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 0x44210d
xor edx, edx
mov ecx, dword [ebp - 0x3c]
mov ebx, ecx
cmp ecx, eax
jbe 0x442118
xor ebx, ebx
mov dword [ebp - 0x28], edi
cmp edi, eax
jbe 0x442126
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 0x44213f
xor edx, edx
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x28], ebx
cmp ebx, eax
jbe 0x442150
mov dword [ebp - 0x28], 0
cmp ecx, eax
jbe 0x442156
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 0x4420a6
mov edi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
mov ebx, dword [esi + 4]
mov ecx, edx
cmp edx, ebx
jbe 0x442197
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 0x4421ae
xor eax, eax
mov ecx, dword [esi]
mov dword [eax + ecx], edi
mov eax, edx
cmp edx, dword [esi + 4]
jbe 0x4421bc
xor eax, eax
mov ecx, dword [esi]
add ecx, eax
jne 0x4421c9
xor eax, eax
jmp 0x442270
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 + 0x4a54e0]
movzx edi, byte [ecx + 1]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4a54e0]
movzx edi, byte [ecx + 2]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4a54e0]
movzx edi, byte [ecx + 3]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4a54e0]
movzx edi, byte [ecx + 4]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4a54e0]
movzx edi, byte [ecx + 5]
mov ebx, eax
and ebx, 0xff
xor edi, ebx
shr eax, 8
xor eax, dword [edi*4 + 0x4a54e0]
add ecx, 6
dec dword [ebp - 0x28]
jne 0x4421d3
not eax
lea ecx, [edx + 0xc]
cmp ecx, dword [esi + 4]
jbe 0x44227a
xor ecx, ecx
mov edi, dword [esi]
mov dword [edi + ecx], eax
mov eax, dword [esi + 4]
mov edi, edx
cmp edx, eax
jbe 0x44228a
xor edi, edi
lea ecx, [edx - 0x10]
cmp ecx, eax
jbe 0x442293
xor ecx, ecx
mov dword [ebp - 0x28], edx
cmp edx, eax
jbe 0x4422a1
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 0x4422cf
xor edi, edi
add edx, 0xfffffff8
cmp edx, ecx
jbe 0x4422d8
xor edx, edx
cmp eax, ecx
jbe 0x4422de
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.00468861
mov esp, ebp
pop ebp
ret