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

Disassembly:
push ebp
push edi
push esi
push ebx
push ebp
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x575360
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
xor eax, 0xffffffff
test edi, edi
je 0x57509f
test cl, 3
je 0x5750ac
mov edx, dword [esp + 0x20]
jmp 0x575085
test cl, 3
je 0x5750a8
mov bl, byte [ecx]
inc ecx
xor ebx, eax
shr eax, 8
and ebx, 0xff
mov esi, dword [ebx*4 + 0x72e360]
xor eax, esi
dec edx
jne 0x575080
pop edx
xor eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x20], edx
cmp dword [esp + 0x20], 0x1f
jbe 0x5752ca
mov esi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp], ecx
mov ecx, dword [ebx]
xor eax, ecx
movzx edi, al
movzx ebp, ah
mov edx, eax
mov ecx, dword [edi*4 + 0x72ef60]
shr eax, 0x18
shr edx, 0x10
mov edi, dword [eax*4 + 0x72e360]
and edx, 0xff
xor ecx, edi
mov eax, dword [ebx + 4]
xor ecx, eax
mov eax, dword [ebp*4 + 0x72eb60]
xor ecx, eax
mov eax, dword [edx*4 + 0x72e760]
xor ecx, eax
mov edi, ecx
mov eax, ecx
movzx ebp, cl
shr edi, 0x18
movzx edx, ch
shr eax, 0x10
mov ecx, dword [ebp*4 + 0x72ef60]
mov ebp, dword [edi*4 + 0x72e360]
and eax, 0xff
xor ecx, ebp
mov edi, dword [ebx + 8]
xor ecx, edi
mov ebp, dword [edx*4 + 0x72eb60]
xor ecx, ebp
mov edx, dword [eax*4 + 0x72e760]
xor ecx, edx
mov ebp, ecx
mov eax, ecx
movzx edi, cl
shr ebp, 0x18
movzx edx, ch
shr eax, 0x10
mov ecx, dword [edi*4 + 0x72ef60]
mov edi, dword [ebp*4 + 0x72e360]
and eax, 0xff
xor ecx, edi
mov ebp, dword [ebx + 0xc]
xor ecx, ebp
mov edi, dword [edx*4 + 0x72eb60]
xor ecx, edi
mov ebp, dword [eax*4 + 0x72e760]
xor ecx, ebp
mov edi, ecx
mov eax, ecx
movzx ebp, cl
shr edi, 0x18
movzx edx, ch
shr eax, 0x10
mov ecx, dword [ebp*4 + 0x72ef60]
mov ebp, dword [edi*4 + 0x72e360]
and eax, 0xff
xor ecx, ebp
mov edi, dword [ebx + 0x10]
xor ecx, edi
mov ebp, dword [edx*4 + 0x72eb60]
xor ecx, ebp
mov edx, dword [eax*4 + 0x72e760]
xor ecx, edx
mov eax, ecx
mov ebp, ecx
shr eax, 0x10
sub esi, 0x20
movzx edi, cl
shr ebp, 0x18
and eax, 0xff
movzx edx, ch
mov ecx, dword [edi*4 + 0x72ef60]
mov edi, dword [ebp*4 + 0x72e360]
xor ecx, edi
mov ebp, dword [ebx + 0x14]
xor ecx, ebp
mov edi, dword [edx*4 + 0x72eb60]
xor ecx, edi
mov ebp, dword [eax*4 + 0x72e760]
xor ecx, ebp
mov edi, ecx
mov eax, ecx
movzx ebp, cl
shr edi, 0x18
movzx edx, ch
shr eax, 0x10
mov ecx, dword [ebp*4 + 0x72ef60]
mov ebp, dword [edi*4 + 0x72e360]
and eax, 0xff
xor ecx, ebp
mov edi, dword [ebx + 0x18]
xor ecx, edi
mov ebp, dword [edx*4 + 0x72eb60]
xor ecx, ebp
mov edx, dword [eax*4 + 0x72e760]
xor ecx, edx
mov ebp, ecx
mov eax, ecx
movzx edx, cl
shr ebp, 0x18
movzx edi, ch
shr eax, 0x10
mov ecx, dword [ebp*4 + 0x72e360]
mov edx, dword [edx*4 + 0x72ef60]
and eax, 0xff
xor edx, ecx
mov ebp, dword [ebx + 0x1c]
xor edx, ebp
mov ecx, dword [edi*4 + 0x72eb60]
xor edx, ecx
mov edi, dword [eax*4 + 0x72e760]
xor edx, edi
add ebx, 0x20
mov eax, edx
mov edi, edx
movzx ebp, dl
shr eax, 0x18
shr edi, 0x10
mov ecx, dword [ebp*4 + 0x72ef60]
movzx edx, dh
and edi, 0xff
mov eax, dword [eax*4 + 0x72e360]
xor eax, ecx
mov ebp, dword [edx*4 + 0x72eb60]
xor eax, ebp
mov edx, dword [edi*4 + 0x72e760]
xor eax, edx
cmp esi, 0x1f
ja 0x5750c0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp]
sub edx, 0x20
and edx, 0xffffffe0
lea ecx, [ecx + edx + 0x20]
mov edx, dword [esp + 0x20]
and edx, 0x1f
mov dword [esp + 0x20], edx
cmp dword [esp + 0x20], 3
jbe 0x57532e
mov edx, dword [esp + 0x20]
sub edx, 4
shr edx, 2
lea esi, [ecx + edx*4 + 4]
nop
mov edx, dword [ecx]
add ecx, 4
xor edx, eax
mov eax, edx
mov ebx, edx
movzx edi, dl
shr eax, 0x18
shr ebx, 0x10
mov ebp, dword [edi*4 + 0x72ef60]
movzx edx, dh
and ebx, 0xff
mov eax, dword [eax*4 + 0x72e360]
xor eax, ebp
mov edi, dword [edx*4 + 0x72eb60]
xor eax, edi
mov ebp, dword [ebx*4 + 0x72e760]
xor eax, ebp
cmp ecx, esi
jne 0x5752e0
mov ebp, dword [esp + 0x20]
and ebp, 3
mov dword [esp + 0x20], ebp
mov edi, dword [esp + 0x20]
test edi, edi
je 0x57509f
mov ebx, dword [esp + 0x20]
add ebx, ecx
mov dl, byte [ecx]
inc ecx
xor edx, eax
shr eax, 8
and edx, 0xff
mov esi, dword [edx*4 + 0x72e360]
xor eax, esi
cmp ecx, ebx
jne 0x575340
jmp 0x57509f
pop edx
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret