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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x14
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
test edx, edx
je 0x449450
mov dword [esp + 0x10], 1
mov eax, dword [esp + 0x28]
not eax
test ecx, ecx
jne 0x4491e5
jmp 0x449445
mov bl, byte [edx]
xor ebx, eax
movzx ebx, bl
shr eax, 8
xor eax, dword [ebx*4 + 0x46e4e0]
inc edx
dec ecx
je 0x449445
test dl, 3
jne 0x4491cc
cmp ecx, 0x1f
jbe 0x4493cc
mov ebx, ecx
mov esi, edx
mov dword [esp], edx
nop
xor eax, dword [esi]
movzx ebp, ah
mov edx, eax
shr edx, 0x10
and edx, 0xff
movzx edi, al
shr eax, 0x18
mov edi, dword [edi*4 + 0x46f0e0]
xor edi, dword [eax*4 + 0x46e4e0]
xor edi, dword [esi + 4]
xor edi, dword [ebp*4 + 0x46ece0]
xor edi, dword [edx*4 + 0x46e8e0]
mov eax, edi
movzx edx, ah
shr eax, 0x10
and eax, 0xff
mov ebp, edi
and ebp, 0xff
shr edi, 0x18
mov ebp, dword [ebp*4 + 0x46f0e0]
xor ebp, dword [edi*4 + 0x46e4e0]
xor ebp, dword [esi + 8]
xor ebp, dword [edx*4 + 0x46ece0]
xor ebp, dword [eax*4 + 0x46e8e0]
mov eax, ebp
movzx edx, ah
shr eax, 0x10
and eax, 0xff
mov edi, ebp
and edi, 0xff
shr ebp, 0x18
mov edi, dword [edi*4 + 0x46f0e0]
xor edi, dword [ebp*4 + 0x46e4e0]
xor edi, dword [esi + 0xc]
xor edi, dword [edx*4 + 0x46ece0]
xor edi, dword [eax*4 + 0x46e8e0]
mov eax, edi
movzx edx, ah
shr eax, 0x10
and eax, 0xff
mov ebp, edi
and ebp, 0xff
shr edi, 0x18
mov ebp, dword [ebp*4 + 0x46f0e0]
xor ebp, dword [edi*4 + 0x46e4e0]
xor ebp, dword [esi + 0x10]
xor ebp, dword [edx*4 + 0x46ece0]
xor ebp, dword [eax*4 + 0x46e8e0]
mov eax, ebp
movzx edx, ah
shr eax, 0x10
and eax, 0xff
mov edi, ebp
and edi, 0xff
shr ebp, 0x18
mov edi, dword [edi*4 + 0x46f0e0]
xor edi, dword [ebp*4 + 0x46e4e0]
xor edi, dword [esi + 0x14]
xor edi, dword [edx*4 + 0x46ece0]
xor edi, dword [eax*4 + 0x46e8e0]
mov eax, edi
movzx edx, ah
shr eax, 0x10
and eax, 0xff
mov ebp, edi
and ebp, 0xff
shr edi, 0x18
mov ebp, dword [ebp*4 + 0x46f0e0]
xor ebp, dword [edi*4 + 0x46e4e0]
xor ebp, dword [esi + 0x18]
xor ebp, dword [edx*4 + 0x46ece0]
xor ebp, dword [eax*4 + 0x46e8e0]
mov eax, ebp
movzx edi, ah
shr eax, 0x10
and eax, 0xff
mov edx, ebp
and edx, 0xff
shr ebp, 0x18
mov edx, dword [edx*4 + 0x46f0e0]
xor edx, dword [ebp*4 + 0x46e4e0]
xor edx, dword [esi + 0x1c]
xor edx, dword [edi*4 + 0x46ece0]
xor edx, dword [eax*4 + 0x46e8e0]
add esi, 0x20
mov edi, edx
shr edi, 0x10
and edi, 0xff
mov eax, edx
shr eax, 0x18
movzx ebp, dl
mov eax, dword [eax*4 + 0x46e4e0]
xor eax, dword [ebp*4 + 0x46f0e0]
movzx edx, dh
xor eax, dword [edx*4 + 0x46ece0]
xor eax, dword [edi*4 + 0x46e8e0]
sub ebx, 0x20
cmp ebx, 0x1f
ja 0x4491fc
mov edx, dword [esp]
lea ebx, [ecx - 0x20]
and ebx, 0xffffffe0
lea edx, [edx + ebx + 0x20]
and ecx, 0x1f
cmp ecx, 3
jbe 0x449429
mov edi, ecx
mov esi, edx
mov dword [esp], edx
mov edx, dword [esi]
xor edx, eax
add esi, 4
mov ebx, edx
shr ebx, 0x10
and ebx, 0xff
mov eax, edx
shr eax, 0x18
movzx ebp, dl
mov eax, dword [eax*4 + 0x46e4e0]
xor eax, dword [ebp*4 + 0x46f0e0]
movzx edx, dh
xor eax, dword [edx*4 + 0x46ece0]
xor eax, dword [ebx*4 + 0x46e8e0]
sub edi, 4
cmp edi, 3
ja 0x4493d8
mov edx, dword [esp]
lea ebx, [ecx - 4]
shr ebx, 2
lea edx, [edx + ebx*4 + 4]
and ecx, 3
test ecx, ecx
je 0x449445
lea esi, [esi]
mov bl, byte [edx]
xor ebx, eax
movzx ebx, bl
shr eax, 8
xor eax, dword [ebx*4 + 0x46e4e0]
inc edx
dec ecx
jne 0x449430
not eax
add esp, 0x14
pop ebx
pop esi
pop edi
pop ebp
ret
xor eax, eax
add esp, 0x14
pop ebx
pop esi
pop edi
pop ebp
ret