Function at 0x46b950
Capabilities:
Hash data with crc32

Disassembly:
push ecx
push ebx
push esi
push edi
mov esi, eax
call fcn.00493a10
push esi
lea edi, [esp + 0x13]
call fcn.0046ca90
test eax, eax
je 0x46bbf8
lea ecx, [ecx]
mov bl, byte [esp + 0xf]
mov al, bl
mov ecx, esi
call fcn.0046e8a0
test al, al
jne 0x46bbf8
cmp bl, 0x2a
je 0x46bbe6
cmp bl, 0x18
je 0x46b9ad
movzx eax, bl
push eax
call fcn.00493a10
mov ecx, dword [esi + 0x24]
mov edx, dword [ecx + 8]
add esp, 4
mov dword [esi + 0x28], edx
jmp 0x46bbe6
mov ebx, 1
cmp ebx, 5
jge 0x46bc04
push esi
lea edi, [esp + 0x13]
call fcn.0046ca90
test eax, eax
je 0x46bbf8
mov al, byte [esp + 0xf]
inc ebx
cmp al, 0x18
je 0x46b9b2
cmp ebx, 5
jge 0x46bc04
movzx ecx, al
mov eax, ecx
sub eax, 0x41
je 0x46ba12
sub eax, 1
je 0x46ba0a
sub eax, 1
je 0x46ba01
push ecx
call fcn.00493a10
add esp, 4
jmp 0x46bbe6
mov edi, esi
call fcn.0046bdb0
jmp 0x46ba19
push esi
call fcn.0046bcf0
jmp 0x46ba19
mov edi, esi
call fcn.0046bc30
test al, al
je 0x46bbf8
cmp byte [esi + 0x984], 0
jne 0x46bb22
movzx ax, byte [esi + 0x977]
xor ax, word [0x66f3e0]
movzx ecx, ax
mov eax, dword [esi + 0x978]
movzx edx, cx
shr edx, 8
shl ecx, 8
xor cx, word [edx*2 + 0x66f3e0]
movzx dx, al
xor cx, dx
mov ebx, eax
movzx ecx, cx
movzx edx, cx
shr edx, 8
shr ebx, 8
movzx di, bl
xor di, word [edx*2 + 0x66f3e0]
shl ecx, 8
xor di, cx
mov ebx, eax
movzx ecx, di
movzx edx, cx
shr edx, 8
shr ebx, 0x10
movzx di, bl
xor di, word [edx*2 + 0x66f3e0]
shl ecx, 8
xor di, cx
movzx ecx, di
shr eax, 0x18
movzx edx, cx
shr edx, 8
xor ax, word [edx*2 + 0x66f3e0]
shl ecx, 8
xor ax, cx
movzx ecx, word [esi + 0x97c]
movzx eax, ax
movzx edx, ax
shr edx, 8
shl eax, 8
xor ax, word [edx*2 + 0x66f3e0]
movzx dx, cl
xor ax, dx
movzx eax, ax
movzx edx, ax
mov ebx, ecx
shr ebx, 8
shr edx, 8
movzx di, bl
xor di, word [edx*2 + 0x66f3e0]
shl eax, 8
xor di, ax
movzx eax, di
test ax, ax
sete dl
test dl, dl
jne 0x46bc15
call fcn.00493a10
movzx ecx, cx
push ecx
call fcn.00493a10
movzx edx, ax
push edx
jmp 0x46bbc4
mov al, byte [esi + 0x977]
not al
movzx ecx, al
mov eax, dword [ecx*4 + 0x66f5e0]
mov ecx, dword [esi + 0x978]
xor eax, 0xffffff
mov edx, eax
and edx, 0xff
movzx edi, cl
xor edx, edi
shr eax, 8
xor eax, dword [edx*4 + 0x66f5e0]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edi, eax
and edi, 0xff
xor edx, edi
shr eax, 8
xor eax, dword [edx*4 + 0x66f5e0]
mov edx, ecx
shr edx, 0x10
movzx edx, dl
mov edi, eax
and edi, 0xff
xor edx, edi
shr eax, 8
xor eax, dword [edx*4 + 0x66f5e0]
shr ecx, 0x18
mov edx, eax
and edx, 0xff
xor ecx, edx
shr eax, 8
xor eax, dword [ecx*4 + 0x66f5e0]
mov ecx, dword [esi + 0x980]
mov edx, eax
not edx
cmp edx, ecx
sete dl
test dl, dl
jne 0x46bc15
call fcn.00493a10
push ecx
call fcn.00493a10
push eax
call fcn.00493a10
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
add esp, 8
call edx
mov eax, esi
call fcn.0046de80
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 8]
mov dword [esi + 0x28], ecx
push esi
lea edi, [esp + 0x13]
call fcn.0046ca90
test eax, eax
jne 0x46b970
call fcn.00493a10
pop edi
pop esi
xor eax, eax
pop ebx
pop ecx
ret
call fcn.00493a10
call fcn.0046e970
pop edi
pop esi
xor eax, eax
pop ebx
pop ecx
ret
call fcn.00493a10
pop edi
pop esi
mov eax, 1
pop ebx
pop ecx
ret